本发明属于计算视觉目标跟踪领域,特别涉及一种基于多级模板的相关滤波目标跟踪方法及系统。
背景技术:
目标跟踪是计算机视觉领域的基础性研究,在精密控制、自动驾驶和机器人等方面有着广泛的应用。最近国内外众多研究学者在这个方向上相继取得了许多显著的成果,但是在这类方法应用过程中,存在着各种挑战,包括部分遮挡、快速运动、运动模糊、背景杂乱、照明变化等情况,这类挑战导致跟踪器不能准确的跟踪目标甚至会跟踪失败。为克服视频序列中可能出现的挑战内容,设计一种鲁棒性的跟踪方法具有一定难度。
相关滤波跟踪方法最早是由bolme提出的mosse,该方法为后续相关领域的研究奠定了基础。henriques通过引入循环采样并利用循环矩的傅里叶对角化性质提速训练和检测过程提出csk。之后,henriques进一步改进csk,引入核函数并扩展多通道方向梯度特征(hog)特征提出了kcf。danelljanm在csk的基础上采用多通道颜色特征colornames(cn),有效利用目标的颜色信息,提出了cn。
虽然这些方法在目标跟踪领域已经取得很不错的效果,但是它们的框架中都只包含一个滤波器模板,该模板尺寸固定不变,且目标的检测范围必须和目标的尺寸保持一致,这导致目标搜索范围受限。当目标出现运动速度过快等特殊运动情况时,单个模板的相关滤波方法往往不能很好的适应,导致跟踪漂移甚至跟踪失败。需要一种面对目标快速运动和背景杂乱情况时保证跟踪器效果的技术方案,为此,提出一种双模板尺度自适应相关滤波实时跟踪方法及系统。
技术实现要素:
本发明所要解决的技术问题是面对目标快速运动和背景杂乱情况时,跟踪器效果不佳的问题,提出一种基于多级模板的相关滤波目标跟踪方法及系统。
事先建立用于表示图像像素位置的x-y坐标系,目标中心位置用(xn,yn)表示,其中n表示帧数。视频序列第一帧的目标中心位置(x1,y1)事先设置,目标尺寸(high,width)事先设置,事先估计目标运动的速度和加速度。
本发明的基于多级模板的相关滤波目标跟踪方法,包括以下步骤:
计算多级平移滤波器模板的尺寸:读取视频序列第1帧,根据目标尺寸(high,width)和目标运动速度的估计峰值vmax计算平移滤波器的最大尺寸,用变量sizemax=(size_highmax,size_widthmax)表示,根据目标运动的估计加速度a、目标尺寸及平移滤波器最大尺寸计算平移滤波器模板的级别m,根据平移滤波器模板级别m计算各级滤波器模板的尺寸,记为window_sz_i,其中1≤i≤m。
所述
所述平移滤波器模板的级别
所述window_sz_1=tmin·(high,width),其中tmin是事先设置的最小步长,
确定多级平移滤波器模板:在目标中心位置(xn,yn),根据m级平移滤波器模板的尺寸window_sz_i,确定确定高斯型标签yf_i,截取图像块patch_for_train_i_n,其中n表示帧数;分别提取图像块特征,添加余弦窗得到平移特征样本xf_for_train_i_n,利用平移高斯型标签和平移特征样本得到m个不同尺寸的平移滤波器模板,用α_i表示;
所述平移滤波器模板
确定多级平移滤波器的输出响应输出:令n=n+1,读取视频序列第n帧,在第n-1帧目标中心位置(xn-1,yn-1),按照平移滤波器模板尺寸window_sz_i截取图像块patch_for_det_i_n,提取图像特征并添加余弦窗得到待检测平移特征样本zf_for_det_i_n,利用平移模板α_i计算得到响应输出矩阵response_i以及响应峰值max_response_i。
所述
判断平移滤波器模板是否满足响应峰值要求:判断响应峰值max_response_i(i的初始值为1)是否大于事先设置的输出响应阈值r,若是,则判定第i级平移平移滤波器响应峰值满足需求,令响应输出矩阵response=response_i,响应峰值max_response=max_response_i,进入步骤:预测目标中心在当前帧的位置,否则判定第i级平移滤波器响应峰值不满足需求,i=i+1,进入步骤:在多级平移滤波器模板中选择合适的响应输出。
在多级平移滤波器模板中选择合适的响应输出:比较两个级别的平移滤波器模板计算得到的响应峰值,若max_response_i-1>max_response_i,则选择第i-1级平移滤波器模板的响应输出,即令响应输出矩阵response=response_i-1,响应峰值max_response=max_response_i-1;否则返回步骤:判断平移滤波器模板是否满足响应峰值要求。
根据平移滤波器预测目标中心在当前帧的位置:根据平移滤波器的响应输出峰值max_response在响应输出矩阵response中的位置,预测目标中心在当前第n帧的位置(xn,yn)。返回步骤:确定多级平移滤波器模板。
本发明的基于多级模板的相关滤波目标跟踪系统,包括:
视频序列;
计算机;
以及
一个或多个程序,其中所述一个或多个程序被存储在计算机的存储器中,并且被配置成由所述计算机的处理器执行,所述程序包括:
计算多级平移滤波器模板的尺寸模块:读取视频序列第1帧,根据目标尺寸(high,width)和目标运动速度的估计峰值vmax计算平移滤波器的最大尺寸,用变量sizemax=(size_highmax,size_widthmax)表示,根据目标运动的估计加速度a、目标尺寸及平移滤波器最大尺寸计算平移滤波器模板的级别m,根据平移滤波器模板级别m计算各级滤波器模板的尺寸,记为window_sz_i,其中1≤i≤m。
所述
所述平移滤波器模板的级别
所述window_sz_1=tmin·(high,width),其中tmin是事先设置的最小步长,
确定多级平移滤波器模板模块:在目标中心位置(xn,yn),根据m级平移滤波器模板的尺寸window_sz_i,确定确定高斯型标签yf_i,截取图像块patch_for_train_i_n,其中n表示帧数;分别提取图像块特征,添加余弦窗得到平移特征样本xf_for_train_i_n,利用平移高斯型标签和平移特征样本得到m个不同尺寸的平移滤波器模板,用α_i表示;
所述平移滤波器模板
确定多级平移滤波器的输出响应输出模块:令n=n+1,读取视频序列第n帧,在第n-1帧目标中心位置(xn-1,yn-1),按照平移滤波器模板尺寸window_sz_i截取图像块patch_for_det_i_n,提取图像特征并添加余弦窗得到待检测平移特征样本zf_for_det_i_n,利用平移模板α_i计算得到响应输出矩阵response_i以及响应峰值max_response_i。
所述
判断平移滤波器模板是否满足响应峰值要求模块:判断响应峰值max_response_i(i的初始值为1)是否大于事先设置的输出响应阈值r,若是,则判定第i级平移平移滤波器响应峰值满足需求,令响应输出矩阵response=response_i,响应峰值max_response=max_response_i,进入预测目标中心在当前帧的位置模块,否则判定第i级平移滤波器响应峰值不满足需求,i=i+1,进入在多级平移滤波器模板中选择合适的响应输出模块。
在多级平移滤波器模板中选择合适的响应输出模块:比较两个级别的平移滤波器模板计算得到的响应峰值,若max_response_i-1>max_response_i,则选择第i-1级平移滤波器模板的响应输出,即令响应输出矩阵response=response_i-1,响应峰值max_response=max_response_i-1;否则返回判断平移滤波器模板是否满足响应峰值要求模块。
根据平移滤波器预测目标中心在当前帧的位置模块:根据平移滤波器的响应输出峰值max_response在响应输出矩阵response中的位置,预测目标中心在当前第n帧的位置(xn,yn)。返回确定多级平移滤波器模板模块。
本发明具有的优点是:
(1)在面对快速运动目标时,选取合适的滤波器模板数量和滤波器模板尺寸,即使目标以最大速度运动,检测范围仍然可以包含完整的目标;
(2)采用多级平移滤波器模板预测运动目标位置,使目标检测过程搜索范围可变,可以适应目标多变的运动速度;
(3)在最终预测目标位置时,对比多个滤波器模板的检测结果,直到响应输出峰值比上一级别的低,可以避免滤波器模板过大导致的检测范围内包含过多杂乱背景以及响应输出产生的波动对最终预测位置的影响;
附图说明
图1是本发明实施例的基于多级模板的相关滤波目标跟踪方法流程图;
图2是本发明实施例的基于多级模板的相关滤波目标跟踪系统结构示意图。
具体实施方式
下面对本发明优选实施例作详细说明。
事先建立用于表示图像像素位置的x-y坐标系,目标中心位置用(xn,yn)表示,其中n表示帧数。视频序列第一帧的目标中心位置(x1,y1)事先设置,目标尺寸(high,width)事先设置,事先估计目标运动的速度和加速度。本实施例中,图像像素位置坐标系中,图像左上角像素点的位置为(1,1),第一帧图像中给出目标中心位置(x1,y1)=(48,65),目标尺寸为20像素×20像素,即high=20,width=20,事先估计目标运动的速度峰值vmax=2.5pix/ms,加速度a=0.025pix/ms2。
本发明的基于多级模板的相关滤波目标跟踪方法,包括以下步骤:
计算多级平移滤波器模板的尺寸:读取视频序列第1帧,根据目标尺寸(high,width)和目标运动速度的估计峰值vmax计算平移滤波器的最大尺寸,用变量sizemax=(size_highmax,size_widthmax)表示,根据目标运动的估计加速度a、目标尺寸及平移滤波器最大尺寸计算平移滤波器模板的级别m,根据平移滤波器模板级别m计算各级滤波器模板的尺寸,记为window_sz_i,其中1≤i≤m。
所述
所述平移滤波器模板的级别
所述window_sz_1=tmin·(high,width),其中tmin是事先设置的最小步长,
确定多级平移滤波器模板:在目标中心位置(xn,yn),根据m级平移滤波器模板的尺寸window_sz_i,确定确定高斯型标签yf_i,截取图像块patch_for_train_i_n,其中n表示帧数;分别提取图像块特征,添加余弦窗得到平移特征样本xf_for_train_i_n,利用平移高斯型标签和平移特征样本得到m个不同尺寸的平移滤波器模板,用α_i表示;
所述平移滤波器模板
确定多级平移滤波器的输出响应输出:令n=n+1,读取视频序列第n帧,在第n-1帧目标中心位置(xn-1,yn-1),按照平移滤波器模板尺寸window_sz_i截取图像块patch_for_det_i_n,提取图像特征并添加余弦窗得到待检测平移特征样本zf_for_det_i_n,利用平移模板α_i计算得到响应输出矩阵response_i以及响应峰值max_response_i。
所述
判断平移滤波器模板是否满足响应峰值要求:判断响应峰值max_response_i(i的初始值为1)是否大于事先设置的输出响应阈值r,若是,则判定第i级平移平移滤波器响应峰值满足需求,令响应输出矩阵response=response_i,响应峰值max_response=max_response_i,进入步骤:预测目标中心在当前帧的位置,否则判定第i级平移滤波器响应峰值不满足需求,i=i+1,进入步骤:在多级平移滤波器模板中选择合适的响应输出。本实施例中,事先设置的输出响应阈值r=0.8,本实施例中判断max_response_1=0.7<0.8,判定第1级平移滤波器响应峰值不满足需求,i=i+1=2,进入步骤:在多级平移滤波器模板中选择合适的响应输出。
在多级平移滤波器模板中选择合适的响应输出:比较两个级别的平移滤波器模板计算得到的响应峰值,若max_response_i-1>max_response_i,则选择第i-1级平移滤波器模板的响应输出,即令响应输出矩阵response=response_i-1,响应峰值max_response=max_response_i-1;否则返回步骤:判断平移滤波器模板是否满足响应峰值要求。本实施例中,max_response_1=max_response_2,则返回步骤:判断平移滤波器模板是否满足响应峰值要求。
在步骤:判断平移滤波器模板是否满足响应峰值要求中,max_response_2=0.7<0.8,判定第2级平移滤波器响应峰值不满足需求,i=i+1=3,进入步骤:在多级平移滤波器模板中选择合适的响应输出。
在步骤:在多级平移滤波器模板中选择合适的响应输出中,max_response_2=0.7>max_response_3=0.6,则选择第2级平移滤波器模板的响应输出,即令响应输出矩阵response=response_2,响应峰值max_response=max_response_2。
根据平移滤波器预测目标中心在当前帧的位置:根据平移滤波器的响应输出峰值max_response在响应输出矩阵response中的位置,预测目标中心在当前第n帧的位置(xn,yn)。返回步骤:确定多级平移滤波器模板。本实施例中,根据平移滤波器的响应输出峰值max_response在响应输出矩阵response中的位置,预测目标中心在当前第2帧的位置(x2,y2)=(50,67),返回步骤:确定多级平移滤波器模板。
更新平移滤波器后,读取视频序列下一帧,按照上述步骤执行,直到视频最后一帧。
本实施例的基于多级模板的相关滤波目标跟踪方法流程图,如图1所示。
本实施例的基于多级模板的相关滤波目标跟踪系统,包括:
视频序列;
计算机;
以及
一个或多个程序,其中所述一个或多个程序被存储在计算机的存储器中,并且被配置成由所述计算机的处理器执行,所述程序包括:
计算多级平移滤波器模板的尺寸模块:读取视频序列第1帧,根据目标尺寸(high,width)和目标运动速度的估计峰值vmax计算平移滤波器的最大尺寸,用变量sizemax=(size_highmax,size_widthmax)表示,根据目标运动的估计加速度a、目标尺寸及平移滤波器最大尺寸计算平移滤波器模板的级别m,根据平移滤波器模板级别m计算各级滤波器模板的尺寸,记为window_sz_i,其中1≤i≤m。
所述
所述平移滤波器模板的级别
所述window_sz_1=tmin·(high,width),其中tmin是事先设置的最小步长,
确定多级平移滤波器模板模块:在目标中心位置(xn,yn),根据m级平移滤波器模板的尺寸window_sz_i,确定确定高斯型标签yf_i,截取图像块patch_for_train_i_n,其中n表示帧数;分别提取图像块特征,添加余弦窗得到平移特征样本xf_for_train_i_n,利用平移高斯型标签和平移特征样本得到m个不同尺寸的平移滤波器模板,用α_i表示;
所述平移滤波器模板
确定多级平移滤波器的输出响应输出模块:令n=n+1,读取视频序列第n帧,在第n-1帧目标中心位置(xn-1,yn-1),按照平移滤波器模板尺寸window_sz_i截取图像块patch_for_det_i_n,提取图像特征并添加余弦窗得到待检测平移特征样本zf_for_det_i_n,利用平移模板α_i计算得到响应输出矩阵response_i以及响应峰值max_response_i。
所述
判断平移滤波器模板是否满足响应峰值要求模块:判断响应峰值max_response_i(i的初始值为1)是否大于事先设置的输出响应阈值r,若是,则判定第i级平移平移滤波器响应峰值满足需求,令响应输出矩阵response=response_i,响应峰值max_response=max_response_i,进入预测目标中心在当前帧的位置模块,否则判定第i级平移滤波器响应峰值不满足需求,i=i+1,进入在多级平移滤波器模板中选择合适的响应输出模块。本实施例中,事先设置的输出响应阈值r=0.8,本实施例中判断max_response_1=0.7<0.8,判定第1级平移滤波器响应峰值不满足需求,i=i+1=2,进入在多级平移滤波器模板中选择合适的响应输出模块。
在多级平移滤波器模板中选择合适的响应输出模块:比较两个级别的平移滤波器模板计算得到的响应峰值,若max_response_i-1>max_response_i,则选择第i-1级平移滤波器模板的响应输出,即令响应输出矩阵response=response_i-1,响应峰值max_response=max_response_i-1;否则返回判断平移滤波器模板是否满足响应峰值要求模块。本实施例中,max_response_1=max_response_2,则返回判断平移滤波器模板是否满足响应峰值要求模块。
在判断平移滤波器模板是否满足响应峰值要求模块中,max_response_2=0.7<0.8,判定第2级平移滤波器响应峰值不满足需求,i=i+1=3,进入在多级平移滤波器模板中选择合适的响应输出模块。
在在多级平移滤波器模板中选择合适的响应输出模块中,max_response_2=0.7>max_response_3=0.6,则选择第2级平移滤波器模板的响应输出,即令响应输出矩阵response=response_2,响应峰值max_response=max_response_2。
根据平移滤波器预测目标中心在当前帧的位置模块:根据平移滤波器的响应输出峰值max_response在响应输出矩阵response中的位置,预测目标中心在当前第n帧的位置(xn,yn)。返回确定多级平移滤波器模板模块。本实施例中,根据平移滤波器的响应输出峰值max_response在响应输出矩阵response中的位置,预测目标中心在当前第2帧的位置(x2,y2)=(50,67),返回确定多级平移滤波器模板模块。
更新平移滤波器后,读取视频序列下一帧,按照上述步骤执行,直到视频最后一帧。
本实施例的基于多级模板的相关滤波目标跟踪系统结构示意图,如图2所示。
当然,本技术领域中的普通技术人员应当认识到,以上实施例仅是用来说明本发明的,而并非作为对本发明的限定,只要在本发明的范围内,对以上实施例的变化、变型都将落入本发明的保护范围。