采用帧差法和相关滤波改进的TLD跟踪算法
2020-06-12高丽慧
苏 佳,高丽慧
(河北科技大学 信息科学与工程学院,河北 石家庄 050018)
0 引 言
目标跟踪技术是计算机视觉中的一个重要分支。由于光照变化、目标形变、遮挡和长时间跟踪等复杂因素,对任意目标进行跟踪以及跟踪的高鲁棒性和高实时性一直是难以攻克的问题[1-5]。
TLD[6]是Zdenek Kalal等提出的一种单目标长时间跟踪算法,通过检测、跟踪和学习3个模块相结合的方式进行在线跟踪。自从TLD算法提出以来,国内外学者提出了很多改进方案来优化算法性能。针对检测模块计算量大导致检测速度慢的问题,周鑫和孙春梅等[7,8]采用Kalman滤波器预测目标区域;王姣尧等[9]引入光流法来预测目标位置,以上算法均提高了检测速度,但由于跟踪受到光照等因素干扰,精确度有待提高。针对金字塔光流法跟踪模块鲁棒性差的问题;Neng Fan等[10]提出将Meanshift算法与TLD算法融合,改善跟踪器性能;Marina A Zanina等[11]采用粒子滤波器代替TLD算法原有的跟踪器;于蕾和常立博等[12,13]将KCF算法[14]与TLD算法结合,融合了两种算法的优势,改进了跟踪性能。
为了进一步提高跟踪的鲁棒性和实时性,本文提出了改进的FD-CFTLD目标跟踪算法。首先,采用KCF跟踪算法改进TLD算法的跟踪模块。其次,提出跟踪模块的更新策略:用检测结果来修正不准确的跟踪结果,并将修正后的结果用于跟踪模块滤波器模型的更新过程中,提高跟踪精度和速度。然后,在检测模块中加入帧差法前景检测,采用由粗到细的检测策略设计检测模块,提高检测速度。最后,实验结果表明,本文提出的FD-CFTLD算法具有更高的鲁棒性和实时性,满足长时间跟踪需求。
1 TLD跟踪算法
TLD算法把检测技术和跟踪技术结合起来,并加入在线学习过程。若目标移出视野后重现,跟踪失败的情况下,检测器检测到目标后重启跟踪器,就能够继续跟踪目标。
首先,跟踪器对视频第一帧中给出的目标进行跟踪,将跟踪到的目标位置反馈给分类器,若目标消失或无法辨认,则跟踪失败;其次,检测器通过级联分类器检测出目标并反馈到分类器;最后,学习模块是一个在线更新的过程,监督跟踪器和检测器的运行结果,做出正确的反馈,保证长时间跟踪的准确性。
TLD算法的不足之处主要集中在跟踪模块和检测模块中:
(1)跟踪器遇到光照变化和目标形变等不可控状况时鲁棒性低。TLD算法的跟踪模块采用金字塔LK光流法[15]跟踪方法。然而光流法基于的3个假设在实际中根本无法达到,所以当前TLD算法中的跟踪器鲁棒性不强、跟踪精度较低。
(2)检测模块滑动窗口的数量庞大导致实时性差。TLD算法的检测模块采用滑动窗口法确定每一个子窗口是否包含前景目标。对于一帧640×480的图像,会产生50 000到200 000的子窗口,仅有10%到25%的子窗口含有前景目标。对数以万计的子窗口进行扫描计算,浪费资源,减慢检测速度。
本文着重研究两项不足之处,旨在提高算法整体的鲁棒性和实时性。
2 FD-CFTLD改进跟踪算法
针对TLD算法的不足,本文提出FD-CFTLD跟踪算法。首先,采用KCF跟踪器代替经典TLD的光流法跟踪器,在跟踪器更新的过程中加入检测器的修正作用。然后,将帧差法前景检测加入检测器中,先经过前景检测得到粗略的目标位置后送入级联分类器进行精确检测,最终实现高鲁棒性和高实时性的目标跟踪。FD-CFTLD算法的运行步骤如下:
(1)fori=1,2,…,ndo
(2)ifi=1
(3) 用鼠标框选或从文件读入目标位置;
(4) 根据第一帧图像f1和目标框bb初始化:
(5) 初始化集合分类器和最近邻分类器正负样本集;
(6) 计算前景检测输出的目标框fbb;
(7) 初始化KCF跟踪器滤波器模板;
(8)else
(9) 检测模块:
(10)if待检测图像框B∈fbbthen
(11) 依次通过方差分类器、集合分类器和最近邻分类器;
(12) 得到检测结果Dr,计算Dr保守相似度d_Sc;
(13) 跟踪模块:
(14) 根据当前帧图像、上一帧目标框和滤波器模板得到KCF跟踪结果Tr,计算Tr保守相似度t_Sc;
(15) 融合模块:
(16)ifTr≠0
(17)ift_Sc>0.5&&d_Sc>t_Scthen
(18)R=Dr;Tr=Dr;
(19)elseR=Tr;
(20)endif
(21)else
(22)R=Dr;Tr=Dr;
(23)endif
(24)endif
(25)endfor
第(2)到第(7)行对检测器的分类器和跟踪器的滤波器模板进行初始化;当初始化完成,读入下一帧图像,检测器和跟踪器并行工作,分别为第(9)到第(12)行和第(13)到第(14)行;检测器和跟踪器得到的结果通过第(15)到第(25)行的综合模块进行融合,输出结果R。融合的过程也包含了跟踪器更新的过程,在跟踪结果不如检测结果精确度高和跟踪失败的情况下,使用检测结果更新跟踪结果,然后继续读入下一帧,直到视频结束。
2.1 改进的跟踪模块
FD-CFTLD算法的跟踪模块采用KCF算法进行跟踪,并在此基础上增加了跟踪器更新策略,使用检测结果来修正前一帧的跟踪结果,然后使用前一帧修正后的结果以一定的学习率来更新当前帧的滤波器模型,进一步增强跟踪模块的鲁棒性和精确度。跟踪模块流程和更新策略框架如图1所示。
2.1.1 KCF跟踪原理
KCF算法采用岭回归的方法训练检测器。岭回归实际上是对最小二乘回归的一种改良,通过损失无偏性来换取数值稳定性,具有更可靠、符合实际的特点。
假设训练样本集为(xi,yi),i=1,…,n。其中,xi是训练样本,yi是对应的样本标签,yi服从高斯分布。
在线性条件下,回归函数为f(xi)=ωTxi,ω是列向量权重系数,可以由最小二乘法求解
图1 跟踪模块流程
(1)
其中,λ是正则化参数,是岭回归对最小二乘回归补充的体现。训练分类器的过程就是要找到最优的ω,使得回归函数的残差最小。
对式(1)求导,令该导数等于零求解ω后改写成频域形式得到
ω=(XHX+λI)-1XHy
(2)
其中,XH表示X的共轭转置矩阵。
KCF算法中的训练样本xi是由目标样本x循环移位得到。根据循环矩阵和傅里叶变换的性质,得到最终线性回归系数的计算公式
(3)
实际中大多为非线性情况,将非线性问题转换为线性求解方法表示为
(4)
这样求解非线性回归系数ω就变成了求解αi和映射关系φ(xi)。k为高斯核函数,两个样本的核相关性可表示为
(5)
得到核空间的岭回归的解
α=(K+λI)-1y
(6)
(7)
最终得到非线性回归函数
(8)
f(z)的最大值,即响应的最大值便是预测的目标的位置。至此,便完成了一次目标预测过程。
2.1.2 更新策略
当目标被长时间遮挡或移除视野时,KCF跟踪器会产生跟踪漂移现象。为了改善这一缺陷并提高跟踪模块的精确度,跟踪模块采用新的更新策略:
(1)在逐帧进行检测和跟踪的过程中,计算跟踪模块输出的上一帧的跟踪结果与目标模型的相似度t_Sc和检测模块中最近邻分类器的检测结果与目标模型的相似度d_Sc,当两个相似度都大的阈值,且d_Sc>t_Sc时,用检测模块的结果来更新上一帧的跟踪结果;
(2)当目标受到长时间或大范围遮挡无跟踪结果时,直接将检测器的检测结果赋给跟踪器,使其保持工作状态;
(3)使用由检测器修正过的跟踪结果以一定的学习率来更新当前帧的核相关滤波器模型,能够在目标重现时及时跟踪目标,并且能够提高KCF跟踪器的精确度。
通过实验对比改进了跟踪模块的TLD算法(KCF_TLD)和经典TLD算法的性能,如图2所示。结果显示,在视频mhyang和faceocc2中KCF_TLD算法的跟踪精度均高于TLD算法。
图2 改进的跟踪模块结果
2.2 改进的检测模块
FD-CFTLD算法的检测模块采用由粗到精的检测策略,加入前景检测功能。首先采用滑动窗口法遍历整个图像帧,产生的矩形框送入前景检测模块中粗略检测,缩小检测区域后,将通过的目标区域送入级联分类器中进行精确筛选。
帧差法具有运算快的特点,能够加快检测速度,因此使用帧差法前景检测改进的检测器在保证检测精度的前提下,减少了通过级联分类器的待检测窗口的数量,降低了检测模块整体的计算时间。
帧差法通过对视频中相邻两帧图像做差分运算来标记运动物体,假设当前帧和前一帧图像为fi(x,y)和fi-1(x,y),分别如图3(b)和图3(a)所示。差分后的图像如图3(c)所示,对图3(c)进行二值化处理
(9)
其中,thr为帧差法的阈值,本文实验中设置为16。当两帧之差大于thr时,像素值设为255,图像显示为白色,二值化的结果如图3(d)所示。
图3 前景检测处理过程
在图3(d)的所有像素值为255的连通区域中,删除面积小于初始目标框的连通区域,结果如图3(e)所示。接着采用基于轮廓的图像标记方法[16]得出当前帧目标最小边界框,如图3(f)所示。
通过帧差法前景检测的矩形框送入级联分类器中。级联分类器由图像元方差分类器、集合分类器和最邻近分类器3个部分组成。矩形框通过3个分类器最终,从滑动窗口中选出一个或几个与目标相似度最高的矩形框。
在不同的视频下进行测速实验,得出加入前景检测改进的TLD算法(FD_TLD)的检测速度明显高于经典TLD算法,约为经典TLD算法的2倍,结果见表1。
表1 两种算法在不同视频下帧率对比
3 实验结果与分析
验证算法性能的实验平台为Visual Studio 2015、OpenCV3.1.0和Matlab2016a,硬件环境为Intel(R) Core(TM) i5-6500U@3.20 GHz处理器。
为了充分说明算法的有效性,本文选择目标跟踪领域比较权威的测试数据集平台(object tracking benchmark,OTB)[17]中的50组测试视频来完成实验。本实验中的KCF算法和FD-CFTLD算法均采用HOG特征,细胞元cell大小为4,使用高斯核函数,50组视频参数设置与测试环境完全一致。
3.1 定性分析
可在定性分析中,保持属性相同,比对6种跟踪算法(FD-CFTLD、KCF、Struck、SCM、TLD和CT)的性能,选出6组具有代表性的图片对结果进行说明,如图4所示。
(1)光照变化:在发生光照变化时,目标颜色特征发生改变,跟踪器可能会产生漂移。以视频“car4”为例,在车辆通过隧道光线变暗时,TLD算法和CT算法发生跟踪漂移,FD-CFTLD、KCF和SCM算法可以较好地适应光照变化。
图4 算法跟踪结果对比
(2)目标形变:目标发生形变时,当前特征和目标模型中保存的特征差异较大,增加跟踪难度。在视频“fleetface”中,人脸产生形变,FD-CFTLD算法跟踪效果最好,TLD算法在跟踪失败后重新跟踪目标;在视频“bolt”中,只有FD-CFTLD算法能成功跟踪目标。
(3)目标遮挡:当目标被大面积或完全遮挡时,极易跟踪失败。在视频“jogging-2”中,目标被完全遮挡,重现后FD-CFTLD算法和TLD算法能够成功跟踪目标。在视频“suv”中,FD-CFTLD、Struck和TLD算法表现较好。
(4)相似背景:在视频“coke”中,KCF跟踪器错将数个运动员全都标为目标,无法精确分辨出目标,TLD、Struck、CT和SCM算法跟踪失败,而FD-CFTLD算法能准确分辨目标,跟踪性能良好。
综上,在相同属性下,FD_CFTLD算法相对于其它5种算法在应对光照变化、目标形变、目标遮挡和相似背景的情况时表现最好,鲁棒性最高。
3.2 定量分析
实验中采用两个衡量目标跟踪精准度的基本参数是精确度曲线(Precision Plot)和成功率曲线(Success Plot)。由中心偏移距离(Center Offset Error)和重叠度(Overlap)计算得到。
图5是在OTB2013上前10名算法的成功率和精确度曲线,FD-CFTLD算法分别达到0.731和0.782,高于平台上现有的23种算法。并且,FD-CFTLD算法相对于KCF算法的成功率和精确度分别提高了6.8%和6.6%,相对于TLD算法提高了20.4%和17.3%,在所有算法中性能最好。
图5 FD-CFTLD和其它算法在OTB2013上的成功率和精确度曲线
FD-CFTLD、KCF、Struck、SCM、TLD和CT算法在不同属性的场景下的成功率和精确度数据见表2和表3。11种属性是:光照变化(IV)、平面外旋转(OPR)、尺度变化(SV)、遮挡(OCC)、目标形变(DEF)、运动模糊(MB)、快速移动(FM)、平面内旋转(IPR)、超出视野(OV)、背景扰乱(BC)和低分辨率(LR)。
表2 不同属性下算法跟踪成功率
注:最优结果用加粗表示。
表3 不同属性下算法跟踪精度
注:最优结果用加粗表示。
由实验数据可知,在运动模糊和低分辨率时,KCF和Struck算法成功率和精度高于FD-CFTLD算法;其它10种情况下,FD-CFTLD算法成功率均最高。
3.3 实时性分析
在实时性测试方面,计算了6种算法在50组测试视频下的平均帧率,见表4。
表4 6种算法帧率
其中,KCF的平均帧率最高,达到了97.9 fps;FD-CFTLD算法次之,为53.9 fps;SCM算法实时性最差。FD-CFTLD算法在TLD算法的基础上有两倍以上的提升,相比于KCF算法帧率有所降低,仍能满足实际应用实时性的要求。
4 结束语
针对TLD算法中金字塔LK光流法鲁棒性差和检测模块实时性差的问题,本文提出了FD-CFTLD算法,采用KCF算法改进TLD算法的跟踪模块,提出将检测器修正的跟踪结果融入滤波器模型中的更新策略,并在检测模块加入基于帧差法的前景检测器,增强了算法整体的鲁棒性和实时性。在OTB2013平台上进行实验,由定性、定量和实时性分析得出:FD-CFTLD算法改善了TLD算法在光照变化时表现差的缺点,对目标形变、遮挡和相似背景等环境适应性更强;FD-CFTLD算法在50组视频测试中的成功率和精确度为0.731和0.782,高于平台上的其它算法;FD-CFTLD算法帧率为53.9 fps,能够满足实时性需求。综上,FD-CFTLD算法鲁棒性和准确性良好,满足实时性要求。
在下一步的工作中,将着重研究目标的特征描述方法,进一步提高跟踪精度,并考虑将本算法应用到多目标跟踪,增强算法的适用性。