宁晨敬,张选德
(陕西科技大学电子信息与人工智能学院,西安710021)
目标跟踪是计算机视觉研究的热点问题之一[1],目前已被广泛应用于军事识别、航空航天、视频监控、人机交互等领域[2]。目标跟踪研究的目标是在初始帧给定目标位置和大小的情况下,在后续帧中能够继续预测目标的运动轨迹[3]。
现有的目标跟踪方法主要分为生成式方法和判别式方法[4]。生成式方法先学习一个能够表示目标的外观模型,再基于最小化误差的思想搜索候选区域,找到与目标最相似的图像区域。生成式算法的性能取决于对目标的描述是否成功,经典生成式方法有均值漂移[5]等。判别式方法把跟踪问题看作是二分类问题,训练一个能够将目标从背景中分离出的分类器,来完成目标跟踪[6]。基于深度学习和相关滤波的方法都属于判别式方法。尽管深度学习方法的引入,能够有效地提升跟踪算法的精度,目标跟踪问题中仍然存在难以解决的挑战,如场景因素(光照变化)、摄像机因素(视角变化)、遮挡等[7]。针对遮挡问题的目标跟踪,文献[8]根据不同的权重融合梯度直方图(Histogram of Oriented Gradient,HOG)特征和颜色命名(Color Name,CN)特征来表示目标,提高对目标的表征能力,并根据响应函数提出一种遮挡检测的方法。文献[9]将遮挡定义为部分背景点出现在目标区域的前方,若发生遮挡,采用背景跟踪器来分析背景点的运动轨迹,从而得到目标的相对位置。文献[10]提出帧差法检测目标,在遮挡位置采用最小二乘法拟合目标的运动轨迹,实现对目标的跟踪。文献[11]提出分块处理的思想,同时提出新的更新方案,以避免“更新过量”的问题。
从文献[8-11]中可以看出,目前解决遮挡问题的方案主要有两种:①引入检测机制进行遮挡判别,并针对遮挡和正常跟踪两种状态决定是否进行模板的更新。②采用分块处理的思想,利用发生遮挡时未被遮挡的部分进行跟踪,来确定目标的相对运动轨迹。
本文基于KCF[12]算法,通过分析输出滤波响应图,提出响应图的最大峰值波动和响应值波动两种计算模型来判断目标是否被遮挡,同时引入结构相似性指标(Structural Similarity,SSIM)[13]将遮挡进一步细分为轻微遮挡和严重遮挡,并针对两种不同的遮挡状态,提出滤波器的更新方案。最后,针对严重遮挡状态,利用SURF(Speeded Up Robust Feature)[14]特征重新检测目标位置,提高跟踪准确率。
由于相关滤波方法具有精度高、速度快等优势[15],所以本文采用核相关滤波算法作为基本框架。相关滤波方法是根据每帧样本图像来训练滤波器,在跟踪中,利用训练好的滤波器对后续帧图像作滤波响应,响应图最大值处即为目标位置。
在核相关滤波(KCF)中,作者将跟踪问题转化为一个分类问题(目标和背景)。在问题的具体求解中,应用了岭回归方法。求解分类器的过程包含矩阵的求逆运算,导致运算量较大,循环矩阵的引入解决了这一问题。由于循环矩阵具有对角化的性质,使得分类器的计算能够巧妙地避免求逆运算,提高运行速度。KCF算法主要分为:模型建立、在线跟踪、模型更新三部分。
给定线性分类器:
其中,w为滤波模板,z为输入样本,优化目标是最小化样本数据xi与真实目标标签yi之间的平方误差,使f(xi)尽可能地接近yi,算法的目标函数为:
其中,αi为系数,φ(xi)为样本xi在高维空间中的映射。这时,分类器可表示为:
其中,K为核矩阵。同样的,公式(7)也可使用对角化来避免求逆运算:
定义Kz为测试样本和训练样本在核空间的核矩阵,则有:
通过滤波器作用在所有训练样本上,可得各个测试样本的响应:
通过对角化技术,将公式(10)转化到频域为:
其中,kxz表示样本x与z之间的相关。
KCF框架中采用双线性插值进行目标模型的更新,滤波器系数α与样本外观模型x的更新方案为:
针对遮挡问题,本文在KCF的基础上,对得到的滤波响应图进行评估,提出最大值波动和平均响应值波动两种计算模型判断目标是否处于遮挡状态;当目标处于遮挡状态时,再进一步判断此时目标是轻微遮挡还是严重遮挡从而确定是否需要进行更新方案的调整。整体算法实现过程如图1所示。为了清晰描述算法流程,本文将其分为未发生遮挡和发生遮挡两个阶段。
(1)未发生遮挡。跟踪过程按照原始KCF的框架进行训练与跟踪,在每次定位目标后,学习一组目标的SURF特征,同时更新目标模型。
(2)发生遮挡。本文通过对滤波响应图进行评估,来判断目标是否发生遮挡。本文利用图像间的相似性度量(SSIM)将遮挡细化为轻微遮挡和严重遮挡。若目标处于轻微遮挡,则调低学习率,防止滤波器过多地学习到干扰信息。若目标处于严重遮挡,则停止更新滤波器系数和样本外观模型,同时使用SURF特征对目标进行检测,以实现目标位置的重新定位。
图1 本文算法整体框架示意图
KCF跟踪器在跟踪中对每一帧样本图像都更新外观模型,并没有对输出响应结果图进行判别。当样本图像中出现干扰信息,如目标发生遮挡时,会产生跟踪漂移。本文通过分析相关滤波响应结果图,使用未发生遮挡与发生遮挡两种条件下,响应图中最大峰值与响应值波动的情况以及与历史值的对比,进行遮挡判别,从而实现长时间的稳定跟踪。
三种状态下的滤波响应结果如图2所示。图2(a)为正常跟踪状态下的响应结果图。响应图为单峰,最大响应值处对应目标位置,其余位置响应值低,为背景区域,这时可有效跟踪目标。图2(b)为轻微遮挡下的响应结果图。响应图有多个峰值,最大响应值处仍对应目标位置,但值大小低于正常跟踪状态下最大响应值大小,说明样本图像中存在前景信息干扰目标,这时可较为有效地跟踪目标,但此时更新外观模型会使滤波器学习到干扰目标的前景信息。图2(c)为严重遮挡下的响应结果图。响应图为多峰,最大响应值远低于正常跟踪状态下最大响应值,若此时更新外观模型,会产生跟踪漂移现象。本文设计两种模型评估输出响应图,进行遮挡判别以及更深层次的轻微遮挡与严重遮挡的判别,分别为响应值波动和相似性度量。
图2 三种状态下响应结果对比图
对滤波响应图分析可知,当目标发生遮挡时,多峰之间的波动程度较小,最大响应值小于正常跟踪的最大响应值。本文采用最大响应值与响应值波动的变化情况对遮挡进行判别,即:
式(13)~(18)中,t代表帧数的索引,rˉ代表响应的平均值。Δrt_max为当前帧与前一帧最大响应值的变化情况,当其发生突变(大于Δrmean)时,证明此时目标可能发生遮挡,最大响应值位置为非目标位置。Δrmean描述最大响应值的历史波动情况。ΔRFt为当前帧与前一帧响应值波动的变化情况,当其发生突变(大于ΔRFmean)时,证明此时目标已经掺杂了大量的干扰信息,说明目标被障碍物遮挡。
当rt_max大于历史值时,且ΔRFt为发生突变,判定此刻目标未发生遮挡,应正常进行跟踪。当Δrt_max和ΔRFt均发生突变时,判定此刻目标已经发生遮挡,这时应进一步使用结构相似性判断目标的遮挡情况。
式(13)~(18)中,t代表帧数的索引,代表响应的平均值。为当前帧与前一帧最大响应值的变化情况,当其发生突变(大于)时,证明此时目标可能发生遮挡,最大响应值位置为非目标位置。描述最大响应值的历史波动情况。为当前帧与前一帧响应值波动的变化情况,当其发生突变(大于)时,证明此时目标已经掺杂了大量的干扰信息,说明目标被障碍物遮挡。
当大于历史值时,且为发生突变,判定此刻目标未发生遮挡,应正常进行跟踪。当和均发生突变时,判定此刻目标已经发生遮挡,这时应进一步使用结构相似性判断目标的遮挡情况。
结构相似性(Structural Similarity,SSIM)是衡量两图像间相似性的指标,其值反映图像之间的相似程度,值越大,图像越相似。若目标被判定为遮挡,则利用SSIM值衡量遮挡与未遮挡的图像区域之间的相似程度。
设定阈值T,若,证明两候选区域高度相似,判定此时目标处于轻微遮挡状态,这时需要调低滤波器的学习率,防止学习到过多的干扰信息。若,证明两候选区域之间相似程度低,判定此时目标处于严重遮挡状态,这时停止更新滤波器,同时使用SURF特征对目标进行检测,当目标再次出现时,能够实现重新定位。
本文采用SURF特征来描述严重遮挡之后的目标,在目标发生严重遮挡时,使用提取的SURF特征进行目标的检测;当目标再次出现,通过SURF特征的匹配重新确定目标位置。SURF特征是对SIFT(Scale-in⁃variant Feature Transform)[16]算法的改进,提升了算法的执行效率。设检测区域匹配成功的特征点集合为为 对 应 点 的位置坐标,则目标重新定位后的位置坐标为:
为验证本文算法的跟踪效果以及处理遮挡问题的能力,将本文算法与TLD[17]算法以及抗遮挡的改进算法(TLD-A[18]算法、文献[8]~[10]算法)在具有遮挡属性的视频序列上进行实验,同时在目标跟踪标准数据集(Object Tracking Benchmark,OTB)[19-20]上与benchmark_tracker中基于相关滤波的算法进行对比。
本文所有实验均在MATLAB R2016a环境中完成,计算机配置为Intel Bronze处理器,32G内存,Win10 64位操作系统。在实验设置中,保持原有KCF的部分参数不变,选用HOG特征描述目标,HOG中cell_size为4,梯度方向个数(orientation)为9。结构相似性中阈值T设置为0.6,对于所有实验,参数始终保持固定。
实验数据集采用目标跟踪标准数据集OTB-2015,由文献[20]可知,OTB-2015由100段不同视频序列组成,每个视频序列都具有一种或多种标记的属性,共11种。为进一步分析所提算法的优劣,文中采用文献[19]提出的一次通过评价(One-Pass Evaluation,OPE)标准分析所提算法的性能,OPE中精确度使用中心位置误差(CLE)进行评估,其计算过程为:其中,( )xbox,ybox为算法跟踪目标框的中心,为真实标记的目标框中心。
(1)基础算法对比实验
本文算法是基于KCF算法提出的针对遮挡问题的改进算法,图3给出两种算法在三个具有遮挡属性的典型视频实验结果。其中,实线框,虚线框分别代表本文算法和KCF算法的结果。
实验1:Girl2视频序列中,目标受遮挡影响严重。在第104帧目标发生轻微遮挡,此时两种算法还能较为有效地跟踪目标。但在109帧,目标被遮挡物严重遮挡,此时KCF算法已经由于跟踪漂移丢失目标位置,而更改更新方案的本文算法还能较为有效地跟踪目标。
实验2:Human4视频序列中,目标在317~360帧中间发生遮挡,由图3(b)可以看出,KCF算法随着遮挡物的影响,跟踪误差明显增加,直接丢失跟踪目标,而本文算法能够快速检测出目标,跟踪效果良好。
实验3:Jogging视频序列中,第46帧目标处于正常状态,两种算法都能很好地跟踪目标。但在82帧目标发生严重遮挡之后,KCF算法出现明显的跟踪偏差,导致跟踪失败。整体看来,本文算法能够较为有效地处理遮挡情况,在目标发生严重遮挡之后,依然能够继续跟踪目标。
图3 遮挡属性中的跟踪算法结果
(2)抗遮挡算法对比实验
将本文算法与TLD算法、针对遮挡问题改进的TLD-A算法以及文献[8-10]的抗遮挡改进算法在OTB-2015中具有遮挡属性的49个视频序列上进行实验,选择其中一部分视频序列,其精确度对比如表1所示。
表1 本文算法与抗遮挡改进算法的精确度对比
由表1可知,本文算法的精确度要高于TLD算法和针对遮挡问题改进的其余4种算法。如Girl2序列,本文算法的精确度为0.798,相比于TLD算法、TLD-A算法以及文献[8]~[10]算法分别提升了72.7%、17.5%、8.9%、12.5%和26.1%;Jogging-1序列,本文算法的精确度为0.974,相比于TLD算法、TLD-A算法以及文献[8-10]算法分别提升了73.9%、43.7%、4.7%、7.6%和9.8%。
(3)算法整体分析
将本文算法与KCF算法以及benchmark_tracker库中基于相关滤波的优秀算法进行对比,对比数据为OTB-2015中全部100个视频序列,对比结果如图4所示,图中Our代表本文算法。由图4可知,图4(a)为精确度对比曲线,本文算法的精确度为0.733,相比于KCF、CSK和MOSSE分别提高3.7%、21.5%和13.5%。图4(b)为成功率对比曲线,本文算法的成功率为0.577,相比于KCF、CSK、MOSSE分别提高2.6%、16.6%和7.9%。
图4 OTB-2015中算法整体对比图
(4)跟踪效率分析
表2 为4种算法在跟踪速度方面的对比。由表2可知,本文算法在增加了遮挡判别、特征匹配等功能后,还能保持104的平均帧数,略低于KCF算法,但也能够满足跟踪实时性的要求。
表2 4种算法的平均运行速度
(5)结构相似性中阈值选取分析
针对跟踪过程中目标出现遮挡的情况,文中使用结构相似性(SSIM)指标判断目标被遮挡的程度,将遮挡进一步细化为轻微遮挡与严重遮挡。SSIM中阈值的选取成为衡量遮挡程度的唯一评判标准。图5为阈值的选取对跟踪精确度的影响,横坐标为阈值的取值,纵坐标为算法精确度。由图5可知,随着阈值的增大,跟踪精确度先增后减,在处达到最大。当阈值取0.6时,SSIM指标能够较好地区分轻微遮挡与严重遮挡,从而提升算法的性能。
图5 不同阈值的选取
针对跟踪过程中由于目标遮挡引起的跟踪丢失现象,本文提出一种遮挡判别下基于特征匹配的相关滤波跟踪算法。该算法深入分析了相关滤波的输出响应图,提出响应图最大峰值波动和响应值波动两种计算模型,通过这两种计算模型来判断目标是否发生遮挡;然后通过使用结构相似性指标(SSIM)将遮挡进一步分为轻微遮挡和严重遮挡,并针对两种不同的遮挡情况,重新设计滤波器的更新方案;最后,针对严重遮挡情况,利用SURF特征重新确定目标的位置。
本文算法在OTB-2015和49段具有遮挡属性的视频序列上均取得了良好的跟踪效果,表明算法能够较好地处理跟踪过程中由于遮挡引起的目标丢失现象,同时在速度方面,能够达到实时性,平均104帧/秒。