徐小超,严 华
(四川大学电子信息学院,成都610065)
(*通信作者电子邮箱1084891228@qq.com)
视觉运动目标跟踪是通过视频序列中当前帧的目标位置预测下一帧目标位置。视觉运动目标追踪技术广泛运用于各个领域如智能视频监控、医学诊断、虚拟现实、机器人视觉导航等领域[1]。由于运动场景的复杂性和多变性,视觉运动目标跟踪是一个极具挑战性的任务,主要的挑战因素有:光照变化、尺度变化、遮挡、运动模糊、快速运动、形变、背景杂斑等[2]。
目标追踪算法主要分为生成式法和判别式法[3]。生成式方法是利用当前帧对目标区域建模,在下一帧找出与模型最相似的区域即判断为预测位置,如卡尔曼滤波算法[4]、粒子滤波算法[5]、Mean-Shift 算法[6]等。判别式法将追踪问题转换为二分类问题,根据目标和背景训练分类器来实现跟踪。基于相关滤波的目标追踪算法属于判别式法,由于其良好的性能受到了广泛的关注。Bolme 等[7]最早将相关滤波器引入到目标追踪,提出了最小输出平方误差和(Minimum Output Sum of Squared Error,MOSSE)算法,该方法利用快速傅里叶变换(Fast Fourier Transform,FFT)计算相关操作,跟踪速度极快;Henriques 等[8]在MOSSE 的基础上提出了基于循环结构的检测追踪(Circulant Structure of tracking-by-detection with Kernel,CSK)算法,该算法提出一种基于循环结构的密度采样方法,通过学习正则化最小二乘分类器来判别目标。在CSK 算 法 的 基 础 上,Henriques 等[9]用 方 向 梯 度 直 方 图(Histogram of Oriented Gradients,HOG)特征[10]代替原来的灰度特征,将单通道特征扩展到多通道特征非线性特征空间,提出了核相关滤波(Kernelized Correlation Filter,KCF)算法。Danelljan 等[11]在CSK 算法的基础上,使用色名属性(Color Name,CN)特征代替CSK 算法中的灰度特征,提出了色名属性跟踪算法。针对追踪过程中的尺度变化问题,Danelljan等[12]在MOSSE 和CSK 算法基础上,提出了基于尺度金字塔的尺度预测模型(Discriminative Scale Space Tracker,DSST)算法。此外,国内学者在KCF 算法基础上也做了大量研究,例如Zhao 等[13]在KCF 算法中引入粒子滤波模型提出了KCF_LSC(Kernelized Correlation Filtering with a Local Sparse Coding model)算法。Wang 等[14]针对KCF 算法中尺度固定和快速移动问题提出了MSSCF-KCF(Multi-Scale Superpixels and Color Feature guided Kernelized Correlation Filters)算法。
针对KCF 算法无法很好地解决目标尺度变化和局部遮挡等问题,提出了一种引入目标分块模型的核相关滤波目标追踪算法。本文算法的主要改进工作包括:1)将HOG 特征和CN 特征融合形成新特征,以此来更好地表征目标;2)构建尺度金字塔对目标进行尺度预测,使其能在追踪过程中准确地预测目标的尺度变化,避免由于尺度差异而引入误差信息;3)利用特征响应图的峰值旁瓣比值(Peak to Sidelobe Ratio,PSR)[7]来检测遮挡,利用高置信度分块模型构建遮挡处理模块,当检测到遮挡发生时,将当前帧输入遮挡处理模块进行目标重定位,使在遮挡环境下也能正确定位目标位置;4)采用模型自适应动态更新策略,利用PSR 值动态更新滤波器模型和目标外观模型,避免由于目标表征信息偏差而造成滤波器模型污染和目标外观模型污染。
KCF算法利用基样本x0在行列方向上进行循环移位操作模拟密集采样,以此构造大量虚拟样本来训练分类器。KCF算法的训练是一个岭回归过程。设训练样本集为(X,Y),其线性回归函数f(xi) =ωTxi,通过最小二乘法求解权重系数ω,ω求解表达式如式(1):
式(1)的闭式解为:
其中符号“^”表示向量的FFT,kxx表示核的输出:
对于单个测试样本z,其样本矩阵为Z,则其样本响应可表示为:
其中F-1表示傅里叶逆变换。最后样本响应f(Z)中最大值所对应的位置即为目标的预测位置。
KCF 算法采用双线性插值的方式对模型进行更新,更新方式如下:
其中:η表示学习率,Xft和Xαt分别表示第t帧的目标外观模型和滤波器模型,xt和αt表示第t帧图像预测位置的目标外观模型系数和滤波器模型系数。
本文分别针对KCF 算法特征单一、尺度固定和无法处理局部遮挡3个方面进行了改进,改进算法框架如图1所示。
图1 改进算法框架Fig. 1 Framework of improved algorithm
在目标追踪中,不同属性的特征对不同场景中目标的描述能力不同。在KCF算法中,仅仅使用了灰度特征或HOG 特征对目标外观进行表述,因此特征比较单一。本文利用HOG特征和CN 特征互补的优势,将HOG 特征和CN 特征在特征提取层进行融合,通过将HOG 特征和CN 特征线性级联形成更高维度的多通道图像特征,以此来更好地表征目标外观。
KCF 算法没有对目标尺度变化进行预测,当跟踪目标变大时会造成目标信息丢失,当跟踪目标变小时会引入过多的背景噪声,这都会影响追踪结果。本文通过构建尺度金字塔来对目标进行尺度预测,其本质是训练一个独立的一维相关滤波器。具体做法是:设尺度滤波器输入模板大小为Mkcf,提取L种不同尺度的图像块fsi,利用双线性插值方法将L种不同尺度的图像块fsi调整到Mkcf大小并输入尺度滤波器,滤波器响应最大值所对应尺度即为当前最佳尺度。
此外,根据序列的帧间连续性可以推断相邻帧之间的目标尺度变化很小,因此本文在进行尺度预测时,每间隔m帧图像进行一次尺度预测,以此来减小运算量,提高算法速度。
本文算法的抗遮挡策略包含以下几个方面:首先,利用特征响应图PSR值进行遮挡检测;其次,利用高置信度分块模型构建遮挡处理模块,当检测到遮挡时,将当前帧输入到高置信度分块模型进行目标重定位;最后,利用特征响应图PSR值动态调整模型更新参数,实现模型自适应动态更新。
2.3.1 PSR遮挡检测
PSR 值可以用来表征追踪结果的置信度,特征响应图的PSR 值越高表示当前跟踪结果越可靠。在追踪过程中,当出现局部遮挡的时候,特征响应图的PSR值会显著下降,因此可以利用特征响应图的PSR 值进行遮挡检测。具体方法是,设定一定的遮挡阈值thre,当特征响应图的PSR 值小于阈值thre时,则认为目标被遮挡。
2.3.2 高置信度分块模型
高置信度分块模型按照一定方式将目标划分为多个子块blocki,各子块利用核相关滤波的思想独立追踪和训练。根据各子块的定位结果和目标整体与子块之间的相对位置关系,每个子块都可以得到一个目标整体的定位结果posi,将各个子块的目标定位结果posi按照一定的方式集成,即可得到目标重定位结果posall。如图2 所示为高置信度分块重定位模型框架。
图2 高置信度分块模型Fig. 2 High confidence block-based model
高置信度分块模型中各子块的遮挡程度和其PSR值有很好的对应关系,目标子块的遮挡程度越高,则其对应的PSR值越低。如图3 为目标局部遮挡图。根据各子块PSR 值和遮挡程度之间的关系,本文首先根据分块的PSR 值剔除置信度较低的子块,然后将剩余的子块按照其PSR 值进行线性加权得到最终的重定位结果。其计算式如式(7)和式(8)式示:
其中:n表示参与计算的分块数目;wi表示第i个分块的加权权重。
图3 局部遮挡图Fig. 3 Schematic diagram of partial occlusion
2.3.3 模型动态更新策略
KCF算法采用连续固定模式的线性插值方式对目标模型进行更新,这种更新方式容易使跟踪过程中产生的目标表观信息偏差不断积累,产生目标漂移,从而易导致后续帧目标跟踪精度下降。本文设计了一种根据目标特征响应图的PSR值来调整权重系数的模型自适应动态更新策略。具体方法是,设定两个PSR 阈值TH1 和TH2,当PSR 值大于等于TH1 时,表示当前追踪结果完全可靠,则可以将插值权重设为1;当PSR值小于等于TH2时,表示当前追踪结果完全不可靠,则可将插值权重设为0,即模型不更新;当PSR 值介于TH1 和TH2 之间时,根据PSR 值的大小来动态调整权重系数,具体更新方式如下:
本文改进算法流程描述了视频序列由第t-1 帧到第t帧的迭代过程,其主要包含3 个过程:位置预测、尺度预测、模型更新。详细算法流程如下。
输入:图像帧It、前一帧位置Pt-1、前一帧尺度St-1;位置滤波器Xft-1、尺度滤波器Sft-1、分块模型滤波器组Bft-1;
输出:当前帧目标位置Pt、当前尺度St;位置滤波器Xft、尺度滤波器Sft、分块模型滤波器组Bft。
位置预测:
1)根据St-1和Pt-1从It提取输入目标样本Patch,并根据Patch提取特征xt。
2)将xt和Xft-1输入式(5)计算特征响应图f(Z),并根据f(Z)计算相关滤波定位结果PC。
3)根据f(Z)计算Psrall,根据Psrall判断是否有遮挡,若有遮挡,继续执行步骤4);若无遮挡,跳至步骤5)。
4)将Patch分为多个子块blocki,提取子块特征xbi,将xbi和Bft-1输入式(5)计算特征响应图fbi(Z),并根据fbi(Z)计算各子块的定位结果Pbi和各子块的Psrbi。将Pbi和Psrbi输入式(7)和式(8)计算重定位结果PB。
5)设置最终定位结果:当有遮挡时,Pt=PB;当无遮挡时,Pt=PC。
尺度预测:
6)若t不是5 的倍数,Sft=Sft-1,跳至步骤7);若t是5 的倍数,则根据Pt和St-1提取L种不同尺度图像块fsi,并归一化至尺度滤波器Sft大小。提取fsi特征xfsi,将xfsi和Sft进行相关滤波得到多个响应值g(fsi),则St= max(g(fsi))。
模型更新:
7)利用Pt和St提取训练样本特征xtrain、分块模型训练样本xbtrain、尺度滤波器训练样本xstrain
8)将xtrain、xbtrain分别输入式(3)、式(9)和式(10)得到xft和Bft。将xstrain输入尺度滤波器更新式即可得到Sft。
为了评估所提算法性能,本文采用标准数据集OTB-50 Sequences[15]和OTB-100 Sequences 中的彩色视频序列作为实验数据集。本文所提算法与MOSSE 算法、CSK 算法、DSST 算法、时空上下文(Spatio Temporal Context,STC)算法[16]、KCF算法、KCF_LSC算法和MSSCF-KCF算法进行了对比实验。
评估标准采用精度和成功率两个指标。精度指中心位置误差(Center Location Error,CLE)小于某一阈值的帧数占总帧数的比值。中心位置误差反映的是算法跟踪得到的目标中心位置和实际目标中心位置的欧氏距离,CLE计算式如下:
其中(xi,yi)表示第i帧跟踪得到的目标位置,()表示实际目标中心位置。
成功率指重叠率(Overlap Rate,OR)大于某阈值的帧数占总帧数的比值。重叠率反映的是追踪得到目标边界框与目标实际边界框的重叠程度,重叠率的计算式如下:
其中:Reci表示第i帧跟踪得到的目标边界框,指实际目标边界框。
实验环境为:Windows 10 系统Matlab 2014a 平台;计算机配置为CPU:Inter Core I7-7700HQ 2.8 GHz,内存:8 GB。实验参数为:HOG 特征中cell 大小为4 pixel×4 pixel,高斯函数中σ=0.5,T=1。正则化系数λ=0.001;学习率为η=0.002。尺度更新频率为每5 帧图像进行一次。分块模型中的分块方式和遮挡检测阈值判断根据不同的视频序列而不同,分块模型中的分块方式根据目标模型来决定,分块模型调用的PSR 阈值为6。模型动态更新中的阈值为TH1=7,TH2=5。
表1 是所有视频序列在MOSSE 算法、CSK 算法、DSST 算法、STC 算法、KCF 算法、KCF_LSC 算法、MSSCF-KCF 算法和本文算法上测试获得的平均性能指标。FPS 为算法每秒处理帧数。
表1 算法平均性能Tab. 1 Average performance of algorithms
图4 是距离精度曲线(Precision Plots),表示每种算法在CLE阈值取不同数值时的距离精度。
图4 不同算法的精度曲线Fig. 4 Precision plots of different algorithms
图5 是成功率曲线(Success Rate Plots),表示每种算法在重叠率阈值取不同数值时的成功率。
图5 不同算法的成功率曲线Fig. 5 Success rate plots of different algorithms
实验结果证明,本文算法在距离精度和成功率上均优于其他追踪算法。在距离精度上,KCF 算法在所有视频序列上CLE 阈值取20 pixel 的精度为0.673,OR 重叠率阈值取0.5 的成功率为0.597。本文算法的CLE 阈值取20 pixel 的精度为0.753,OR 阈值取0.5 的成功率为0.688。在CLE 精度上较KCF 算法提高了11.89%,OR 成功率较KCF 算法提高了15.24%。
本节从测试数据集中选取了4 组(图6)包含多种挑战因素的代表性视频序列进行分析,每一个测试视频序列选取具有代表性的几帧图像进行分析。这些视频序列中包含光照变化(d),尺度变化(b、c、d),遮挡(a、c)等影响因素。表2是6种算法在4 组视频序列中的测试得到的平均CLE。图7 是6 种算法在4组视频中的CLE随帧数变化曲线对比。
表2 测试视频平均CLETab. 2 Average CLE of test videos
1)在视频序列(a)Jogging2 中,本文算法精度为100%,平均CLE为3.3,如图7(a)为Jogging2的CLE的变化曲线。视频序列中存在遮挡、形变等影响因素,在视频序列的第50 帧左右,目标出现了遮挡且遮挡程度逐渐变大,并出现了较短时间的完全遮挡,在完全遮挡消失后,STC、MOSSE、CSK、KCF、DSST 算法全部丢失了目标位置信息,只有本文算法仍然能成功定位目标。原因主要有以下三方面:一是由于完全遮挡时间较短且完全遮挡前后目标位置差异较小,未超出KCF 算法的搜索区域;二是由于完全遮挡前后的部分遮挡时期,目标算法能准确定位目标;三是由于采用模型自适应动态更新策略,使得在遮挡期间目标模型未受到污染。在Jogging2 的CLE 变化曲线中,在50帧以后,STC、MOSSE、CSK、KCF、DSST算法的CLE值逐渐变大,仅本文算法一直保持较低值,验证了本文算法强有力的抗遮挡性能。
图6 测试视频跟踪结果对比Fig. 6 Tracking results comparison on test videos
图7 测试视频CLE帧数变化曲线Fig. 7 CLE curves with frame number of test videos
2)在视频序列(b)Human5中,本文算法精度为98.7%,平均CLE为6.5,如图7(b)为Human5的CLE变化曲线。视频序列中存在尺度变化、视频晃动、形变等影响因素,在视频第174 帧至第200 帧间出现了剧烈晃动,STC 算法和KCF 算法出现一定程度的漂移,CSK 算法直接跟丢目标;在第200 帧到第400 帧之间,目标出现尺度变化,视频中只有本文算法成功检测到了目标的尺度变化;在第520 帧时,除本文算法外,其他算法全部跟丢目标。在Human5 的CLE 变化曲线中,本文算法一直保持较低值,其他算法都在不同的时候逐渐变大,验证了本文算法在尺度变化和形变问题上的优势。
3)在视频序列(c)Girl2 中,本文算法精度为98.5%中,平均CLE为7.7,如图7(c)为Gilr2的CLE变化曲线。
视频序列中存在遮挡、尺度变化、运动模糊等影响因素,在视频第107帧目标被遮挡,STC、MOSSE、CSK、KCF、DSST算法全部丢失了目标位置信息,CLE 值急剧增大,在第300 帧后左右,CSK 算法重新追踪上了目标,在第870 帧目标再次被遮挡,CSK 完全丢失目标信息,最后只有本文算法成功定位目标。在视频序列中也出现了短时间的完全遮挡情况,在完全遮挡消失后,算法仍然能成功定位目标,其原因和Jogging2 中能重新定位目标的原因类似。在Girl2的CLE 变化曲线中,只有本文算法保持较低的CLE 值,验证了本文算法在应对遮挡和尺度变化问题的优势。
4)在视频序列(d)shaking 中,本文算法精度为81.4%,平均CLE 为13.1,如图7(d)为shaking 的CLE 变化曲线。视频序列存在背景斑杂、平面外旋转和光照变化等影响因素,在视频第20 帧至第50 帧期间,目标出现旋转,本文算法出现了一定程度的漂移,但在第50 帧时重新定位到的目标上,MOSSE算法和KCF 算法直接跟丢目标;在第61 帧时,出现了强光干扰,本文算法能成功定位在目标上;在第140帧至第160帧间,目标出现旋转和较为细微的尺度变化,本文算法有一定程度的漂移,但最后也成功定位到目标;在视频序列最后,仅本文算法和STC 算法定位在目标上。在shaking 的CLE 变化曲线中,本文算法和STC算法表现最优,验证了本文算法在应对背景斑杂、光照等问题上的鲁棒性。
经过上述测试视频分析表明,本文算法在应对遮挡、尺度变化和光照变化等影响因素时具有很强的抵抗力,能较好地适应各种复杂的环境,因此本文算法具有一定的优势。
针对KCF 算法在尺度变化、遮挡、光照变化等影响因素下容易出现跟踪失败的情况,本文提出了一种引入目标分块模型的核相关滤波目标追踪算法。首先,融合了HOG 特征和CN特征,以此来更好地表征目标外观;其次,通过构建尺度金字塔对目标进行了尺度预测;最后,利用PSR 值检测遮挡,利用高置信度分块模型构建遮挡处理模块和和模型动态更新来处理遮挡问题。利用OTB-50 和OTB-100 中的彩色视频序列进行实验,结果显示本文方法整体精度为75.3%,成功率为68.8%,相较于KCF 算法,精度提高了11.89%,成功率提高了15.24%。通过视频序列中的具有特定问题的视频序列定性分析表明,本文算法在处理光照变化、尺度变化、遮挡和背景斑杂等问题上具有更强的鲁棒性。