引入特征重检的抗遮挡目标跟踪方法研究
2020-06-09陈听海邱宝鑫
周 维,陈听海,邱宝鑫
湘潭大学 信息工程学院,湖南 湘潭411105
1 引言
目标跟踪是计算机视觉领域的研究热点之一,在军事领域、医学领域、视频监控、虚拟现实以及人机交互等场景均有着广泛的应用。
目标跟踪分为生成式方法和判别式方法。生成式方法对目标外观特征进行描述学习,获得模板或字典,再基于最小化误差的思想搜索候选区域,得到最相近目标的跟踪结果。生成式算法性能取决于对目标刻画是否成功,经典生成式方法有均值漂移、粒子滤波等。判别式方法把目标跟踪看成分类问题,训练能够有效区分目标和背景的分类器,来识别复杂背景下的目标,如基于深度学习、相关滤波等的跟踪方法隶属于判别式方法。尽管深度学习方法的引入使得目标跟踪算法的精度迅速提高[1],目标跟踪领域仍然存在如场景因素(例如光照、天气以及场景切换等)、摄影机因素(视角、运动以及拍摄质量)、姿态变化(尺度、形变、旋转、位移等)、遮挡等诸多挑战[2]。
针对抗遮挡问题的目标跟踪,文献[3]提出基于特征融合和遮挡检测的跟踪方法,在相关滤波框架下,通过加权策略融合HOG 特征和颜色特征,并根据融合器的响应函数提出一种遮挡检测的方法。文献[4]在目标发生遮挡时,采用帧差法检测目标,并使用卡尔曼滤波器平滑跟踪的轨迹,在发生遮挡的位置采用最小二乘法自适应拟合目标运动轨迹,完成对目标的跟踪。文献[5]提出分块多示例学习算法。该算法将目标图像分块,对每块图像片应用多示例学习算法。跟踪过程中结合样本所有图像片的综合分类器分数和每块图像片的分类器分数检测并判断跟踪过程中的光照、位姿变化,及遮挡问题。针对不同的跟踪状态,采用分类器学习率自适应调整策略,以避免“过更新”及更新不及时的问题。文献[6]把遮挡定义为前一帧中部分背景点移动到当前帧中的目标区域,采用背景跟踪器来研究背景块,如果检测到遮挡,目标模板就停止更新。
从文献中看,解决遮挡有两种思路:(1)分块法,即对目标分块,利用遮挡发生过程中未被遮挡的部分跟踪。(2)检测法,即通过检测机制判断目标是否发生遮挡,决定是否更新模板,以保证跟踪的鲁棒性。
文献[7]中提出的TLD算法只需较少先验信息就可对目标长期在线跟踪,通过跟踪器与检测器的协同处理遮挡,该策略简单有效,但遮挡结束,重新标定时,TLD的检测模块对相似物体的辨别能力不够鲁棒,相似物体错判为追踪目标,影响后续跟踪。
国内外研究者对TLD 算法进行了一定的改进研究。文献[8]采用基于粒子滤波的跟踪算法代替内置的TLD 跟踪模块进行短期跟踪,提高算法在遮挡、尺度变化、旋转等情况下的性能。文献[9]使用基于像素特征值的OS-ELM 检测器代替TLD 框架中的集成分类器,它能够学习不同大小顺序的在线数据,具有较好的泛化性能。文献[10]使用CNN补充TLD算法的学习检测能力,提高了算法处理速度与目标跟踪精度。文献[11]在TLD框架下使用HOG特征与SVM方法进行重检测,能够在具有不同光照或遮挡的场景下实现障碍物检测与跟踪。文献[12]采用卡尔曼滤波器对目标区域预估,减少目标检测范围,采用L1跟踪器代替TLD跟踪器,增强相似物体的鉴别能力。文献[13]使用双目标框改进TLD算法,算法在目标变化相对稳定的区域标定另一个矩形框,以指示跟踪的重点区域。在提取跟踪点时,采用分配权重的方法使重点区域产生更多的跟踪点,提高算法对局部变化的适应能力。文献[14]使用KCF 算法替代TLD 框架下跟踪模块所用中值光流法,再使用检测模块对跟踪结果判断,有选择性地更新,提高了算法对遮挡、光照变化和运动模糊等场景的适应能力。文献[15]获取手势HOG 特征并投入到卷积神经网络中加以训练,再利用TLD 算法对正负样本估计检测并实时矫正,同时运用SURF 特征匹配更新跟踪器,相比经典跟踪算法具有更高鲁棒性。
本文基于TLD 算法,提出基于特征重检的抗遮挡目标跟踪方法。通过引入新的特征检测环节并在特征匹配时使用新定义的正反方向进行双向匹配,使得遮挡阶段结束后,能够正确地跟踪原目标,避免发生相似目标的错判,提高跟踪准确率。
2 TLD算法
TLD算法由跟踪模块、检测模块和学习模块三个模块组成,工作流程如图1。
图1 TLD算法的工作流程
追踪模块是观察帧与帧之间的目标的移动量,在中值光流法基础上增加了跟踪失败时的检测。
定义位移残差:
di表示单个特征点的位移,dm表示特征点位移的中值。当发生剧烈移动或遮挡时,残差的值会迅速增加,超过10个像素,认定跟踪器失效。
检测模块是检测定位每帧图像中的目标。对当前帧滑动窗口扫描,生成候选样本通过级联分类器进行筛选得到最佳候选。检测过程如图2所示。
图2 TLD检测模块
第一级是方差分类器,计算候选样本中像素点亮度值方差,小于原目标图像方差一半的图像块标记为负样本。
第二级是随机森林分类器,输入的候选样本经过每棵树的节点对比和计算后,产生一定数目的后验概率,平均概率小于阈值标记为负样本。
第三级是最近邻分类器,待分类样本的类别由距离最近样本决定,该距离指待检测样本与样本库中样本的相似度。定义样本p1p2的相似度为:
式中,μ1μ2σ1σ2分别为p1p2的均值与标准差。根据公式(2)(3)可计算待测样本p 与样本库M 中最相似正样本和负样本的相似度表示如下:
根据公式(4)(5)定义相关相似度如下:
若Sr≥θNN,把待测扫描窗口图像块分类为正样本,反之分类为负样本。
TLD学习模块分为两个部分,一是PN学习机制[16],P约束利用追踪结果预测目标下一帧位置,若该样本被检测器分类为负样本,纠正为正样本,以发现追踪目标外观上的变化。N约束把检测器结果与P约束产生的正样本进行比较,选出置信度最高的位置作为TLD 跟踪结果,并重新初始化跟踪器。另一部分是整合器,整合器利用跟踪模块和检测模块进行互补,得到跟踪结果。
TLD 算法一定程度上解决了“消失目标的重新检测”问题,遮挡发生时,目标丢失,TLD算法不进行标定,遮挡结束后,目标重新出现,该算法能迅速感知并进行重新标定。但TLD 算法的重新标定不够准确,易导致相似目标及背景聚类的错判。为此,本文引入特征重检环节,提出基于特征重检的抗遮挡目标跟踪研究方法(TLD-D)。采用跟踪、检测、学习、再检测的策略。跟踪与检测相结合,对锁定目标学习,获取目标最新特征;且根据跟踪和检测模块对当前帧的计算状态,判断是否有遮挡现象。发生遮挡则启用特征重检环节,提取遮挡中“遮挡开始”和“遮挡结束”两个关键帧;采用SIFT特征,设计双向匹配重新检测,避免相似目标及背景聚类的错判,保证后续帧跟踪。
3 TLD-D算法
3.1 特征重检
为避免遮挡发生时因目标外观相似或背景聚类错判,本文在TLD基础上引入特征重检环节,特征重检环节的设计分为三步:
步骤1 遮挡关键帧提取
特征重检环节应独立于TLD 追踪和检测模块,融合于学习模块。结合TLD 学习模块可知,当遮挡出现目标消失时,跟踪器与检测器同时进入失效状态,此时无标定结果;而当遮挡结束目标重新出现时,跟踪器与检测器不再同时失效,此时需要进行重新标定。故本文在TLD 跟踪器和检测器同时失效时认定遮挡开始,提取当前帧为“遮挡开始”帧,并启用特征重检环节;当TLD 追踪模块和检测模块不同时失效时,表示遮挡结束,提取当前帧为“遮挡结束”帧,并用特征重检结果代替原输出作为“遮挡结束”帧的跟踪结果,之后关闭特征重检环节。特征重检环节的开启与闭合通过设置标志位来实现。
步骤2 特征提取
重检特征应有较强鲁棒性,本文采用SIFT[17]特征对目标重新检测,SIFT 特征描述子的生成过程如图3所示。
图3 SIFT算法流程
第一步尺度空间与极值检测,构建高斯差分金字塔并进行极值点的检测;第二步关键点定位,在候选点位置上通过拟合精细模型,去除低对比度和边缘处不稳定的特征点;第三步关键点方向分配,计算关键点图像梯度的主方向和辅助方向;第四步生成特征描述子得到SIFT 特征向量。本文对初始帧A0,“遮挡开始”帧B1的前两帧A1,A2以及“遮挡结束”帧B2进行SIFT特征描述得到特征点集,通过双向匹配得到匹配点集,取两个方向匹配点集的交集作为目标区域。
步骤3 特征匹配
在进行特征重检时,受到TLD 算法跟踪模块中前向后向跟踪思想启发,采用双向匹配的思路进行SIFT特征匹配。
正向匹配:将A0帧中目标框内提取的SIFT特征点向“遮挡结束”帧B2中的特征点进行匹配,得到SIFT特征匹配点集,再把它们与A1目标框中的SIFT特征点集进行匹配,能够与之匹配且落在目标框内的特征点才会作为正向匹配的结果。
反向匹配:把A2帧中已标定的目标框内生成的SIFT算子向“遮挡结束”帧B2去匹配,得到SIFT匹配点集,再与A0帧的目标框内的特征点进行匹配,筛选后得到反方向的结果。
正反两个方向的特征匹配充分利用初始帧A0和遮挡开始前两帧A1与A2的信息,综合正反方向信息得出特征重检结果,利用该结果取代TLD 算法当前帧的标定结果,更为准确。
本文将加入的特征重检环节分为预处理和FeaDec算法两部分,具体步骤如下:
特征重检预处理:提取当前帧为“开始遮挡”帧B1。同时对B1帧前两帧A1、A2进行生成SIFT 特征描述得到特征描述点集S1、S2。
特征重检算法(FeaDec):
输入:初始帧A0,当前帧Ax。
(1)当前帧Ax定义为“遮挡结束”帧B2。
(2)对A0、B2生成SIFT特征描述点集S0、Sx。
(3)正向匹配:将S0与Sx进行匹配筛选后得到特征匹配点集Ra,Ra与S1再进行匹配筛选后得到特征匹配点集R1。
(4)反向匹配:将S2与Sx进行匹配筛选后,得到特征匹配点集Rb,Rb与S0进行匹配筛选后得到特征匹配点集R2。
(5)取R1与R2的交集为特征点集S,以S 点集的中点为目标中心,以A1帧和A2帧长宽中值为目标框的长宽,得到新的目标框。
(6)用该目标框作为“遮挡结束”帧B2的标定结果。
输出:当前帧B2的标定结果。
3.2 TLD-D算法
本文在TLD算法上,引入特征重检环节提出TLD-D算法,在初始帧指定跟踪目标后,每一帧的正常处理采用跟踪、检测、学习、再检测的策略。跟踪部分采用中值光流法对跟踪目标在当前帧的位置进行跟踪和预测;检测部分通过级联分类器定位每帧图像中的目标;学习部分综合前两部分,更新目标外观特征及获取当前帧的目标位置,且根据跟踪模块和检测模块对当前帧的计算状态,判断是否有遮挡现象,若有遮挡,进行遮挡重检测处理,给出跟踪结果。
学习模块的整合策略如下:若仅跟踪模块或检测模块生效,使用该模块结果作为当前帧输出并更新另一模块;若跟踪模块与检测模块结果并存,通过计算置信度进行加权平均得到当前帧跟踪结果。
若跟踪模块和检测模块同时失效,认定遮挡发生,按时序分为“遮挡开始”帧、“维持遮挡”过程、“遮挡结束”帧,当跟踪模块和检测模块第一次同时失效时,提取当前帧作为“遮挡开始”帧,并进行特征重检预处理。之后正常处理后续帧并检查跟踪模块和检测模块对当前帧的定位结果,若两模块仍同时失效,认为处于“维持遮挡”过程,不进行特征重检,直到某一帧正常跟踪后跟踪模块和检测模块中存在一个模块生效,提取当前帧为“遮挡结束”帧,并进行特征重检,利用SIFT特征进行双向匹配检测目标,确保重新标定的目标为原跟踪目标,使用重检结果作为“遮挡结束”帧的跟踪结果,并用该结果去更新跟踪模块与检测模块,即“再检测”,关闭特征重检环节继续下一帧正常处理过程。
结合本文3.1 节中提出的特征重检预处理过程和FeaDec 算法,给出本文提出的TLD-D 算法工作原理流程如图4。
图4 TLD-D算法流程
4 实验评估
将本文提出的TLD-D 算法与TLD 算法、同类改进算法[14](TLD-A)以及经典跟踪算法进行实验比较,重点分析在发生遮挡的情形下跟踪性能。
4.1 实验环境和数据集:
软硬件环境:处理器Intel 酷睿i7-7500U,CPU主频2.70 GHz,操作系统64位Windows,编程环境Matlab2014a及Opencv2.4.10。
数据集:目标跟踪基准数据集OTB[18](Object Tracking Benchmark),OTB-2013 有50 段不同视频序列组成,每个视频序列都具有一种或多种标记属性,总计11种,分别是遮挡、形变、运动模糊、快速运动、平面内旋转、平面外旋转、移出视野外、背景杂乱、低分辨率、光照变化、尺度变化等。OTB-2015[19]在OTB-2013上进行扩展,视频序列总量达到100个,本文在该数据集上以中心坐标误差与目标框的重叠率为评价基准做了对比实验。
4.2 实验分析
本文在OTB 标准集上进行了实验,在具有遮挡属性的视频序列上TLD-D 算法都明显优于TLD 算法,下面给出两个具有遮挡属性的典型视频实验结果。
图5 遮挡环境下的跟踪算法结果
实验1 OTB 中的walking2 视频序列,描述一名女子离去的画面,侧面走出的行人会遮挡该女子的跟踪。跟踪结果如图5(a),前176 帧不存在遮挡情况,三种算法都能保持对原目标的追踪,第176帧一名男子从侧面进入,在第190帧时TLD算法最先受到遮挡影响发生漂移,而TLD-A 使用KCF 取代TLD 光流跟踪器,TLD-D启用特征重检机制,该两种算法具有一定抗遮挡性能,仍保持对原目标的跟踪。这样直到第199 帧TLD-A 也因遮挡面积过大漂移到相似目标上,到第236帧遮挡基本结束,但TLD-A及TLD算法没有从遮挡中恢复,仍然对相似目标进行追踪。直到380帧男子开始离开场景,相似目标的干扰能力减弱,TLD-A才恢复了对初始跟踪目标的追踪。从上述分析可知,遮挡发生后,TLD 算法错误地对遮挡结束处距离最近的相似目标跟踪,TLD-D与TLD-A 因为引入不同的抵抗遮挡机制,能够从相似目标的错判中恢复并重新跟踪原目标,但TLD-A 对相似目标的鉴别能力较TLD-D 偏弱,在部分帧与TLD 算法同样陷入遮挡错判问题。
实验2 OTB 基准集中的subway 视频序列,该视频描述的是在人行道上人来人往的场景,跟踪如图5(b)。对于该视频序列,前37帧都能正常跟踪该行人,跟踪效果较好。从第38 帧开始,所跟踪的行人与过往的行人有所交叠,发生遮挡。第42 帧起TLD 算法错把过往行人认定为跟踪目标,另两种算法未受到相似目标影响,第76 帧再次与过往行人发生遮挡,TLD-A 与TLD-D 仍能跟踪原目标,但TLD-A算法的位置不够精确,在79帧最明显,84帧遮挡结束,TLD-A恢复对原目标的准确跟踪,TLD陷入相似目标追踪无法恢复,TLD-D位置精度较好且无错判现象。
进一步进行定量分析,TLD、TLD-D、TLD-A三种算法在处理遮挡情况的跟踪精度对比曲线如图6所示,引入抗遮挡机制后,跟踪算法的精度有明显提升。图6(a)中walking2序列下TLD-A由于跟踪模块使用优于光流法的KCF 跟踪器,从TLD的0.762上升至0.853,TLD-D引入的特征重检机制要优于TLD-A 的抗遮挡机制,平均精度在walking2 序列下达到0.928。subway 序列下,TLD-A(0.862)较TLD(0.732)提升0.130。TLD-D算法表现更佳,精度达到0.915。walking2 和subway 两个视频序列存在遮挡过程,TLD-D加入特征重检机制后,对遮挡恢复后的重新标定更为准确,确保后续跟踪的目标为原目标,使跟踪平均精度明显提升,抗遮挡性能更好。
图6 视频序列上的跟踪精度曲线
OTB 基准集中100 个视频全部运行后的平均实验精度曲线如图7(a),考虑到OTB 基准集作为目标跟踪数据集的全面性,以及多种因素的共同作用,100个视频中以遮挡因素为主要属性的视频序列效果提升明显,而以其他因素为主的视频序列性能提升不多。由平均精度可知,TLD-A算法(0.596)在TLD算法(0.573)基础上提升了0.023。本文所提TLD-D(0.635)算法比改进算法TLD-A算法精度提升0.039,较TLD算法提升0.062。
图7 跟踪对比结果
在OTB中具有遮挡属性序列的视频上,本文TLD-D算法与经典跟踪算法相比较,跟踪精度曲线如图7(b)所示,TLD-D算法在这些视频序列上表现良好,跟踪精度从TLD算法的0.696提升至0.886,也优于同类改进TLD的TLD-A(0.753)算法,与经典算法的对比中也展现出良好抗遮挡性能。
实验表明,特征重检环节增强了遮挡情形下算法对场景中相似目标的辨识能力,在存在遮挡的场景下,对目标长时间跟踪表现出强鲁棒性。
5 结束语
本文针对视觉目标跟踪的遮挡问题进行了深入研究,在TLD算法框架基础上,设计了一种基于特征重检的抗遮挡目标跟踪方法TLD-D,首先根据跟踪模块和检测模块对当前帧的计算状态,判别是否有遮挡现象。若出现遮挡,提取出遮挡过程中“遮挡开始”和“遮挡结束”两个关键帧,对“遮挡开始”帧进行特征重检预处理,对“遮挡结束”帧进行特征重检,使用SIFT 作为特征重检所使用的特征,在特征匹配上新定义了正反两个方向进行双向匹配,提高重检的准度。
对于OTB 基准集中具有遮挡因素的视频序列,改进后的TLD-D 算法都明显优于TLD 算法,同时在OTB基准集100 个视频上的平均性能也有所提升。实验可知,遮挡因素仅是跟踪一个侧面,对目标跟踪的其他影响因素也进行改进才能让总的平均性能得到比较高的提升。未来工作会在本文基础上进行改进。