基于卷积特征和全局搜索检测的长时遮挡鲁棒跟踪方法与流程

文档序号:11730205阅读:182来源:国知局

本发明属计算机视觉领域,涉及一种目标跟踪方法,具体涉及一种基于卷积特征和全局搜索检测的长时遮挡鲁棒跟踪方法。



背景技术:

目标跟踪的主要任务是获取视频序列中特定目标的位置与运动信息,在视频监控、人机交互等领域具有广泛的应用。跟踪过程中,光照变化、背景复杂、目标发生旋转或缩放等因素都会增加目标跟踪问题的复杂性,尤其是当目标被长时遮挡时,则更容易导致跟踪失败。

文献“tracking-learning-detection,ieeetransactionsonpatternanalysisandmachineintelligence,2012,34(7):1409-1422”提出的跟踪方法(简称tld)首次将传统的跟踪算法和检测算法结合起来,利用检测结果完善跟踪结果,提高了系统的可靠性和鲁棒性。其跟踪算法基于光流法,检测算法产生大量的检测窗口,对于每个检测窗口,都必须被三个检测器接受才能成为最后的检测结果。针对遮挡问题,tld提供了一个切实有效的解决思路,能够对目标进行长时跟踪(long-termtracking)。但是,tld使用的是浅层的人工特征,对目标的表征能力有限,且检测算法的设计也较为复杂,有一定的改进空间。



技术实现要素:

要解决的技术问题

为了避免现有技术的不足之处,本发明提出一种基于卷积特征和全局搜索检测的长时遮挡鲁棒跟踪方法,解决视频运动目标在跟踪过程中由于长时遮挡或目标平移出视野之外等因素造成外观模型漂移,从而易导致跟踪失败的问题。

技术方案

一种基于卷积特征和全局搜索检测的长时遮挡鲁棒跟踪方法,其特征在于步骤如下:

步骤1读取视频中第一帧图像数据以及目标所在的初始位置信息[x,y,w,h],其中x,y表示目标中心的横坐标和纵坐标,w,h表示目标的宽和高。将(x,y)对应的坐标点记为p,以p为中心,大小为w×h的目标初始区域记为rinit,再将目标的尺度记为scale,初始化为1。

步骤2以p为中心,确定一个包含目标及背景信息的区域rbkg,rbkg的大小为m×n,m=2w,n=2h。采用vggnet-19作为cnn模型,在第5层卷积层(conv5-4)对r'提取卷积特征图ztarget_init。然后根据ztarget_init构建跟踪模块的目标模型t∈{1,2,...,t},t为cnn模型通道数,计算方法如下:

其中,大写的变量为相应的小写变量在频域上的表示,高斯滤波模板m,n为高斯函数自变量,m∈{1,2,...,m},n∈{1,2,...,n},σtarget为高斯核的带宽,⊙代表元素相乘运算,上划线表示复共轭,λ1为调整参数(为了避免分母为0而引入),设定为0.0001。

步骤3以p为中心,提取s个不同尺度的图像子块,s设定为33。每个子块的大小为w×h×s,变量s为图像子块的尺度因子,s∈[0.7,1.4]。然后分别提取每个图像子块的hog特征,合并后成为一个s维的hog特征向量,这里将其命名为尺度特征向量,记为zscale_init。再根据zscale_init构建跟踪模块的尺度模型wscale,计算方法与步骤2中计算类似(将尺度特征向量替换掉卷积特征图),具体如下:

其中,s'为高斯函数自变量,s'∈{1,2,...,s},σscale为高斯核的带宽,λ2为调整参数,设定为0.0001。

步骤4对目标初始区域rinit提取灰度特征,得到的灰度特征表示是一个二维矩阵,这里将该矩阵命名为目标外观表示矩阵,记为ak,下标k表示当前帧数,初始时k=1。然后将检测模块的滤波模型d初始化为a1,即d=a1,再初始化历史目标表示矩阵集合ahis。ahis的作用是存储当前及之前每一帧的目标外观表示矩阵,即ahis={a1,a2,...,ak},初始时ahis={a1}。

步骤5读取下一帧图像,仍然以p为中心,提取大小为rbkg×scale的经过尺度缩放后的目标搜索区域。然后通过步骤2中的cnn网络提取目标搜索区域的卷积特征,并以双边插值的方式采样到rbkg的大小得到当前帧的卷积特征图ztarget_cur,再利用目标模型计算目标置信图ftarget,计算方法如下:

其中,为傅里叶逆变换。最后更新p的坐标,将(x,y)修正为ftarget中的最大响应值所对应的坐标:

步骤6以p为中心,提取s个不同尺度的图像子块,然后分别提取每个图像子块的hog特征,合并后得到当前帧的尺度特征向量zscale_cur(同步骤3中zscale_init的计算方法)。再利用尺度模型wscale计算尺度置信图:

最后更新目标的尺度scale,计算方法如下:

至此,可以得到跟踪模块在当前帧(第k帧)的输出:以坐标为(x,y)的p为中心,大小为rinit×scale的图像子块tpatchk。另外,将已经计算完成的ftarget中的最大响应值简记为tpeakk,即tpeakk=ftarget(x,y)。

步骤7检测模块以全局搜索的方式将滤波模型d与当前帧的整幅图像进行卷积,计算滤波模型d与当前帧各个位置的相似程度。取响应度最高的前j个值(j设定为10),并分别以这j个值对应的位置点为中心,提取大小为rinit×scale的j个图像子块。将这j个图像子块作为元素,生成一个图像子块集合dpatchesk,即检测模块在第k帧的输出。

步骤8对检测模块输出的集合dpatchesk中各图像子块,分别计算其与跟踪模块输出的tpatchk之间的像素重叠率,可以得到j个值,将其中最高的值记为如果小于阈值(设定为0.05),判定为目标被完全遮挡,需要抑制跟踪模块在模型更新时的学习率β,并转步骤9;否则按初始学习率βinit(βinit设定为0.02)进行更新,并转步骤10。β的计算公式如下:

步骤9根据dpatchesk中各图像子块的中心,分别提取大小为rbkg×scale的j个目标搜索区域,按照步骤5中的方法对每一个目标搜索区域提取卷积特征图并计算目标置信图,可以得到j个目标搜索区域上的最大响应值。在这j个响应值中再进行比较,将最大的值记为dpeakk。如果dpeakk大于tpeakk,则再次更新p的坐标,将(x,y)修正为dpeakk所对应的坐标。并重新计算目标尺度特征向量和目标尺度scale(同步骤6中的计算方式)。

步骤10目标在当前帧最优的位置中心确定为p,最优尺度确定为scale。在图像中标示出新的目标区域rnew,即以p为中心,宽和高分别为w×scale、h×scale的矩形框。另外,将已经计算完成、并且能够得到最优目标位置中心p的卷积特征图简记为ztarget;同样,将能够得到最优目标尺度scale的尺度特征向量简记为zscale。

步骤11利用ztarget、zscale,以及上一帧建立的跟踪模块中的目标模型和尺度模型wscale,分别以加权求和的方式进行模型更新,计算方法如下:

其中,β为步骤8计算后的学习率。

步骤12对新的目标区域rnew提取灰度特征后得到当前帧的目标外观表示矩阵ak,将ak加入到历史目标表示矩阵集合ahis。如果集合ahis中元素个数大于c(c设定为20),则从ahis中随机选择c个元素生成一个三维矩阵ck,ck(:,i)对应的是ahis中任意一个元素(即二维矩阵ak);否则用ahis中所有元素生成矩阵ck。然后对ck进行平均化得到二维矩阵,将这个二维矩阵作为检测模块新的滤波模型d,计算方法如下:

步骤13判断是否处理完视频中所有的图像帧,若处理完则算法结束,否则转步骤5继续执行。

有益效果

本发明提出的一种基于卷积特征和全局搜索检测的长时遮挡鲁棒跟踪方法,分别设计了跟踪模块和检测模块,跟踪过程中,两个模块协同工作:跟踪模块主要利用卷积神经网络(convolutionalneuralnetwork,cnn)提取目标的卷积特征用于构建鲁棒的目标模型,并通过方向梯度直方图(histogramoforientedgradient,hog)特征构建尺度模型,结合相关滤波方法来分别确定目标的位置中心和尺度;检测模块提取灰度特征构建目标的滤波模型,采用全局搜索的方式在整幅图像中对目标进行快速检测并判断遮挡的发生,一旦目标被完全遮挡(或其它因素导致目标外观剧烈变化),检测模块利用检测结果修正跟踪目标的位置,并抑制跟踪模块的模型更新,防止引入不必要的噪声从而导致模型漂移和跟踪失败。

优越性:通过在跟踪模块中使用卷积特征和多尺度相关滤波方法,增强了跟踪目标外观模型的特征表达能力,使得跟踪结果对于光照变化、目标尺度变化、目标旋转等因素具有很强的鲁棒性;又通过引入的全局搜索检测机制,使得当目标被长时遮挡导致跟踪失败时,检测模块可以再次检测到目标,使跟踪模块从错误中恢复过来,这样即使在目标外观变化的情况下,也能够被长时间持续地跟踪。

附图说明

图1:基于卷积特征和全局搜索检测的长时遮挡鲁棒跟踪方法流程图

具体实施方式

现结合实施例、附图对本发明作进一步描述:

步骤1读取视频中第一帧图像数据以及目标所在的初始位置信息[x,y,w,h],其中x,y表示目标中心的横坐标和纵坐标,w,h表示目标的宽和高。将(x,y)对应的坐标点记为p,以p为中心,大小为w×h的目标初始区域记为rinit,再将目标的尺度记为scale,初始化为1。

步骤2以p为中心,确定一个包含目标及背景信息的区域rbkg,rbkg的大小为m×n,m=2w,n=2h。采用vggnet-19作为cnn模型,在第5层卷积层(conv5-4)对r'提取卷积特征图ztarget_init。然后根据ztarget_init构建跟踪模块的目标模型t∈{1,2,...,t},t为cnn模型通道数,计算方法如下:

其中,大写的变量为相应的小写变量在频域上的表示,高斯滤波模板m,n为高斯函数自变量,m∈{1,2,...,m},n∈{1,2,...,n},σtarget为高斯核的带宽,⊙代表元素相乘运算,上划线表示复共轭,λ1为调整参数(为了避免分母为0而引入),设定为0.0001。

步骤3以p为中心,提取s个不同尺度的图像子块,s设定为33。每个子块的大小为w×h×s,变量s为图像子块的尺度因子,s∈[0.7,1.4]。然后分别提取每个图像子块的hog特征,合并后成为一个s维的hog特征向量,这里将其命名为尺度特征向量,记为zscale_init。再根据zscale_init构建跟踪模块的尺度模型wscale,计算方法与步骤2中计算类似(将尺度特征向量替换掉卷积特征图),具体如下:

其中,s'为高斯函数自变量,s'∈{1,2,...,s},σscale为高斯核的带宽,λ2为调整参数,设定为0.0001。

步骤4对目标初始区域rinit提取灰度特征,得到的灰度特征表示是一个二维矩阵,这里将该矩阵命名为目标外观表示矩阵,记为ak,下标k表示当前帧数,初始时k=1。然后将检测模块的滤波模型d初始化为a1,即d=a1,再初始化历史目标表示矩阵集合ahis。ahis的作用是存储当前及之前每一帧的目标外观表示矩阵,即ahis={a1,a2,...,ak},初始时ahis={a1}。

步骤5读取下一帧图像,仍然以p为中心,提取大小为rbkg×scale的经过尺度缩放后的目标搜索区域。然后通过步骤2中的cnn网络提取目标搜索区域的卷积特征,并以双边插值的方式采样到rbkg的大小得到当前帧的卷积特征图ztarget_cur,再利用目标模型计算目标置信图ftarget,计算方法如下:

其中,为傅里叶逆变换。最后更新p的坐标,将(x,y)修正为ftarget中的最大响应值所对应的坐标:

步骤6以p为中心,提取s个不同尺度的图像子块,然后分别提取每个图像子块的hog特征,合并后得到当前帧的尺度特征向量zscale_cur(同步骤3中zscale_init的计算方法)。再利用尺度模型wscale计算尺度置信图:

最后更新目标的尺度scale,计算方法如下:

至此,可以得到跟踪模块在当前帧(第k帧)的输出:以坐标为(x,y)的p为中心,大小为rinit×scale的图像子块tpatchk。另外,将已经计算完成的ftarget中的最大响应值简记为tpeakk,即tpeakk=ftarget(x,y)。

步骤7检测模块以全局搜索的方式将滤波模型d与当前帧的整幅图像进行卷积,计算滤波模型d与当前帧各个位置的相似程度。取响应度最高的前j个值(j设定为10),并分别以这j个值对应的位置点为中心,提取大小为rinit×scale的j个图像子块。将这j个图像子块作为元素,生成一个图像子块集合dpatchesk,即检测模块在第k帧的输出。

步骤8对检测模块输出的集合dpatchesk中各图像子块,分别计算其与跟踪模块输出的tpatchk之间的像素重叠率,可以得到j个值,将其中最高的值记为如果小于阈值(设定为0.05),判定为目标被完全遮挡,需要抑制跟踪模块在模型更新时的学习率β,并转步骤9;否则按初始学习率βinit(βinit设定为0.02)进行更新,并转步骤10。β的计算公式如下:

步骤9根据dpatchesk中各图像子块的中心,分别提取大小为rbkg×scale的j个目标搜索区域,按照步骤5中的方法对每一个目标搜索区域提取卷积特征图并计算目标置信图,可以得到j个目标搜索区域上的最大响应值。在这j个响应值中再进行比较,将最大的值记为dpeakk。如果dpeakk大于tpeakk,则再次更新p的坐标,将(x,y)修正为dpeakk所对应的坐标。并重新计算目标尺度特征向量和目标尺度scale(同步骤6中的计算方式)。

步骤10目标在当前帧最优的位置中心确定为p,最优尺度确定为scale。在图像中标示出新的目标区域rnew,即以p为中心,宽和高分别为w×scale、h×scale的矩形框。另外,将已经计算完成、并且能够得到最优目标位置中心p的卷积特征图简记为ztarget;同样,将能够得到最优目标尺度scale的尺度特征向量简记为zscale。

步骤11利用ztarget、zscale,以及上一帧建立的跟踪模块中的目标模型和尺度模型wscale,分别以加权求和的方式进行模型更新,计算方法如下:

其中,β为步骤8计算后的学习率。

步骤12对新的目标区域rnew提取灰度特征后得到当前帧的目标外观表示矩阵ak,将ak加入到历史目标表示矩阵集合ahis。如果集合ahis中元素个数大于c(c设定为20),则从ahis中随机选择c个元素生成一个三维矩阵ck,ck(:,i)对应的是ahis中任意一个元素(即二维矩阵ak);否则用ahis中所有元素生成矩阵ck。然后对ck进行平均化得到二维矩阵,将这个二维矩阵作为检测模块新的滤波模型d,计算方法如下:

步骤13判断是否处理完视频中所有的图像帧,若处理完则算法结束,否则转步骤5继续执行。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1