基于核相关滤波的TLD跟踪算法的研究

2021-01-12 09:07董春燕梁秦嘉
关键词:跟踪器光流检测器

董春燕,刘 怀,梁秦嘉

(南京师范大学电气与自动化工程学院,江苏 南京 210023)

目标跟踪是视觉分析和处理领域的一个重要研究内容,在智能交通管理、视频监控和军事制导等领域有广泛的应用[1]. 目标跟踪的任务是确定目标在视频序列中每一帧的位置和大小,并构建其运动轨迹. 然而,目标在运动过程中可能会发生形变、尺度变化以及相互遮挡等干扰情况,会造成目标丢失或跟踪精确度降低. 因此,需要研究一种在干扰存在的情况下具有先验不确定性的实时目标跟踪方法. 早期的运动目标跟踪借鉴了图像配准的思想[2-3],主要有KLT(kanade-lucas-tomasi)跟踪、Meanshift跟踪、粒子滤波跟踪算法等. 随着机器学习技术在目标跟踪领域的迅速发展和应用,研究人员提出了一种更强大的跟踪框架,该框架具有较强的泛化能力,被称为判别类跟踪[4-5]. 近几年,从世界顶级的视觉期刊和会议上来看,视觉跟踪的研究重点已转向基于相关滤波的目标跟踪算法以及深度学习的目标跟踪算法[6],如Choi等[7]提出的RDT(real-time deep tracking)算法,Gordon等[8]提出的Re3(real-time recurrent regression networks)算法以及Wang等[9]提出的SiamMask算法等. 但目前深度学习的跟踪算法对于硬件性能的要求较高,普遍存在实时性较差的问题,准确性和实时性难以兼得.

在判别类算法中,核相关滤波(kernel correlation filter,KCF)跟踪算法[10]能够兼顾跟踪精度和速度,但在目标被遮挡或发生形变的情况下,易丢失目标. TLD算法将跟踪器与检测器结合起来以解决此问题,然而该算法耗时量大,且跟踪器性能不稳定. 为了提高TLD算法的性能,许多学者对其进行了改进. 在对其中的跟踪器进行改进时,张惊雷等[11]使用尺度自适应均值偏移(scale-adaptive mean-shift for tracking,ASMS)跟踪器代替原始TLD跟踪算法中的中值光流跟踪器. 毛晓波等[12]采用FAST特征点代替中值光流跟踪器中均匀分布的特征点,一定程度上提高了算法的准确性,但基于特征点的中值光流法跟踪算法耗时量大,且光流法假设目标颜色不变,在发生光照变化时会导致目标丢失. 在对其中的检测器进行改进时,王姣尧等[13]使用光流法对检测区域进行粗定位以缩小检测范围,但在目标发生遮挡时,特征点数量减少甚至完全消失,不能准确预测目标位置. 常立博等[14]使用基于ViBe算法的检测器代替原算法的方差分类器,虽然一定程度上提高了算法的跟踪速度,但在背景运动时,不能获得前景目标,会导致目标丢失.

本文借鉴以上算法的设计思路,对TLD算法进行了改进. 考虑到TLD算法中的中值光流跟踪器在亮度发生变化时不够鲁棒且计算量大,而KCF跟踪器对光照变化鲁棒且运算速度快,故而本文使用KCF跟踪器替代原有的中值光流跟踪器. 为了进一步提高跟踪器的精度,本文又对其进行改进,在特征提取阶段增加了目标特征表达,在寻找目标位置时加入了尺度估计,在模型更新阶段对更新策略进行了优化;针对其中的检测器,在检测之前引入了卡尔曼滤波对目标位置进行预测,既确保了算法存在遮挡时的精确性,又利用了目标的运动信息,极大地减少了检测窗口的数目以及相似目标的影响. 同时,对检测器中的级联分类器进行改进,级联分类器的前两级保持不变,第三级则采用上述改进的KCF跟踪器进行分类. 在OTB-50数据集上的实验结果分析表明,本文算法跟踪性能优于其他算法.

1 相关算法基础

1.1 TLD算法

TLD算法包括跟踪器、检测器、综合模块与学习器. 跟踪器通过中值光流法执行帧到帧的目标跟踪;检测器采用级联分类器,逐帧扫描以检测目标位置;综合模块根据跟踪器和检测器的结果得出最终的预测位置;学习器根据此预测位置,对检测器有选择地进行更新. TLD算法为遮挡跟踪和长时间跟踪提供了可行的方法与框架,但当TLD算法的中值光流跟踪器在当前帧的图像亮度与前一帧不同时,会导致跟踪失败,且该算法计算量大. 检测器需要检测大量无意义的窗口,这些无意义的窗口造成了内存消耗和时间消耗的问题. 学习器中主要是对检测器进行学习,缺乏必要的跟踪器模型的保存与更新,从而使跟踪器不能适应目标的变化. 同时,TLD算法未利用图像的颜色信息,当目标外观变化时易累积模型误差.

1.2 KCF算法

KCF跟踪算法在判别类算法中具有较高的精度,其将跟踪转化为脊回归的问题,并利用循环矩阵的性质,通过在频域中训练出的滤波器模型,来寻找相关响应值最大的图像位置,即为后续帧中的目标位置. 由于是在线训练,为了适应目标的变化,需要使用线性插值对目标样本特征和滤波器模型进行更新,从而实现对目标的学习与检测. 由于相关运算可在频域内有效地计算,因此KCF跟踪算法具有很高的运行速度. 但KCF算法中缺乏遮挡判别机制,当目标被遮挡时,模型中会引入错误的目标信息,导致跟踪漂移甚至目标丢失.

2 基于核相关滤波的TLD跟踪算法

本文基于KCF算法对TLD算法进行改进,改进的算法框图如图1所示. 该算法不仅采用改进的KCF跟踪器替代原有的中值光流跟踪器,而且在检测器前加入卡尔曼(Kalman)滤波对目标位置进行预测,并使用改进的KCF跟踪器代替检测器中耗时的最近邻分类器,有效地提高了算法的速度与跟踪精度.

2.1 多维特征及尺度自适应的改进KCF跟踪算法

传统KCF算法采用单一HOG特征对目标建模,对目标的描述有限. HOG特征描述了目标的形状,对颜色和光照变化具有较强的鲁棒性[15],但当目标快速变形时,无法确定目标位置. Lab特征在Lab颜色空间求每个像素的Lab值和15组特定的Lab值的欧氏距离的平方以此描述目标颜色,对目标形变鲁棒,然而当发生颜色变化时,无法确定目标位置. HOG特征和Lab特征分别描述了目标的形状和颜色,具有一定的互补性. 因此,本文算法在提取HOG特征的基础上进一步提取Lab特征以丰富特征表达.

传统的KCF跟踪算法不能适应目标大小的变化,在目标变大或变小时,可能会出现目标丢失或跟踪精度降低的问题,本文受文献[16]的启发,通过在同一帧图像上提取不同尺度下的候选目标样本特征,来计算目标的最优尺度. 为了不显著降低运行速度,本文只选取长宽分别为前一帧目标搜索区域的0.95倍、1.0倍以及1.05倍的3个尺度作为检测尺度,如图2所示.

2.2 应对遮挡的改进措施

TLD算法为遮挡跟踪和长时间跟踪提供了可行的方法与框架,但TLD算法中的检测器需要检测大量无意义的窗口,这些无意义的窗口造成了内存消耗和时间消耗.

一般来说,前一帧跟踪到的目标位置对当前帧目标位置具有一定的指示性,此外Kalman滤波能够根据之前帧的目标位置来得到当前帧的预测位置. 为了比较选择前一帧跟踪到的目标位置(KCFprevFrame)作为预测位置与选择Kalman滤波得到的当前帧的预测位置的准确性,本文在OTB-50数据集上进行测试,选取中心位置误差这一评价指标对跟踪误差进行分析. 中心位置误差(center location error,CLE)计算公式为:

(1)

式中,(xT,yT)是跟踪到的目标中心位置坐标;(xG,yG)是真实的目标中心位置坐标.

表1为上述两种预测算法在OTB-50数据集中的5个视频序列上运行得到的中心位置误差. 可以看出,前一帧跟踪到的目标位置与当前帧目标真实位置的中心位置误差较大,而采用Kalman滤波得到的预测位置与目标真实位置的中心位置误差较小.

表1 不同算法的平均中心位置误差Table 1 Average center location errors of different algorithms

因此,本文以Kalman滤波预测的目标位置为中心,以长宽分别为前一帧目标区域的两倍范围来确定搜索区域,使用级联分类器实现精确的目标定位. 由于TLD算法中检测器的前两级分类器的运行速度较快,而第三级分类器非常耗时,故本文中检测器的前两级分类器保持不变,为了在第三级分类中高效准确地搜索目标,本文采用与跟踪器相同的KCF算法进行分类,即将通过前两级的样本依次输入KCF跟踪器中,通过输出响应的最大值来进行样本筛选:

fmax=max(F-1(F(kxz)⊙F(α))),

(2)

式中,kxz为目标样本特征x和检测样本特征z的核互相关函数;⊙表示点乘.

设定输出响应最大值的阈值,阈值初始设定为0.6×fmax,后续会进行自动的学习更新. 将满足判定跟踪状态条件且最大值大于阈值的样本作为检测器的输出结果. 若所有的剩余样本均不满足判断条件,则判定当前帧没有检测到目标. 当连续5帧级联分类器无输出时进入全局搜索,这样显著减少了大量无意义的窗口,提高了实时性.

同时引入跟踪状态判别机制,将跟踪器响应图的峰值fmax以及描述响应图波动程度的平均峰值相关能量APCE[17]作为判断跟踪状态的依据,如下所示:

(3)

式中,ft表示第t帧的响应图;fmax,t,fmin,t及fw,h,t分别表示第t帧响应图的峰值、最小值以及坐标为(w,h)位置处的值.

此外,级联检测器中对样本进行分类的依据能够将目标样本和非目标样本区分开,因此也能够对跟踪状态进行判断. 因此本文选取随机蕨分类器中的平均后验概率作为判断跟踪状态的依据:

(4)

综上所述,判定跟踪状态的条件为:

fmax>τmax&&EAPCE>τAPCE&&pmean(y|x)>τmean,

(5)

式中,阈值τmax=0.5×fmean;τAPCE=0.4×EAPCEmean;τmean=0.6×pallmean;fmean,EAPCEmean及pallmean分别为判断跟踪状态正常帧的最大值历史均值、APCE值历史均值及平均后验概率值历史均值.

若满足上述判定条件,则判定当前跟踪状态正常,更新检测器中的正负样本及KCF滤波器模型. 否则,判定跟踪状态异常,不更新检测器中的正负样本及KCF滤波器模型.

3 实验结果及分析

本文实验基于VS2010开发平台,使用Opencv2.4.9的库编程实现,PC机配置为Intel(R)Core(TM)i5-3337U CPU,主频1.80 GHz,6GB内存. 为了评估本文算法的跟踪性能,采用文献[18]中提出的精确度(distance precision,DP)和成功率(success rate,SR)两个评价指标对跟踪性能进行分析. 其中,DP是指中心位置误差小于阈值的帧数占整个视频序列帧数的百分比;SR是指重叠精度(overlap precision,OP)小于阈值的帧数占整个视频序列帧数的百分比. OP的计算公式为:

(6)

式中,rT为跟踪到的目标区域面积;rG为目标真实区域面积.

本文评估跟踪器运行速度的指标是每秒帧率(frame per second,FPS),在计算FPS时,数据集中的每个视频都赋予了权值,以求出不同目标尺寸和不同图像分辨率下的平均FPS.

算法实验分析选取了整个OTB-50数据集的49组视频序列进行了两组实验. 实验1将本文算法和采用单一HOG特征的KCF算法、采用HOG和Lab两种特征的KCF算法、采用两种特征并引入尺度估计的KCF算法进行对比,验证本文特征融合和尺度适应算法的有效性. 实验2将本文算法与ASMS算法[2]、TLD算法[4]、KCF_TLD算法、KCF算法[9]以及ASMS_TLD算法[10]进行对比分析,评估跟踪算法的整体性能,并选取Box、Jogging2、subway以及Lemming 4组视频序列进行分析,评估跟踪算法在遮挡情况下的性能.

实验1图3是本文算法和采用HOG特征的KCF算法、采用HOG和Lab两种特征的改进KCF算法、采用两种特征并引入尺度估计的改进KCF算法(图中标记为KCF+)跟踪得到的精确度与成功率曲线图,其中本文算法在曲线图中标记为Proposed. 从图3可以看出,使用多个特征的KCF跟踪算法比使用单一特征跟踪的效果更好,引入尺度估计的改进KCF算法比未引入的效果更好,且本文算法基于改进KCF算法对TLD算法进行改进,使跟踪结果优于其他算法.

实验2图4为本文算法与ASMS算法[2]、TLD算法[4]、KCF_TLD算法、KCF算法[9]以及ASMS_TLD算法[10]在整个OTB-50数据集的精确度与成功率曲线图. 其中本文算法在曲线图中的标记为Proposed. 从图4可以看出,本文算法比其他5种算法具有更高的精确度和成功率.

图5为本文算法与ASMS算法[2]、TLD算法[4]、KCF_TLD算法、KCF算法[9]以及ASMS_TLD算法[10]在Box、Jogging2、subway以及Lemming 4组目标发生遮挡的视频序列上的精确度与成功率曲线图,其中本文算法在曲线图中标记为Proposed. 从图5可以看出,在遮挡情况下本文算法比其他5种算法具有更高的精确度和成功率.

在速度方面,由于本文算法采用KCF跟踪器替代TLD算法中较耗时的中值光流跟踪器,并采用Kalman滤波算法,在不影响跟踪性能的前提下,缩小了检测区域,提高了算法的实时性,使得跟踪速度略高于经典TLD算法. 但由于TLD算法中的检测器比较耗时,故本文算法的速度与高速的KCF算法和ASMS算法相比仍存在较大差距,因此提高算法的速度是今后工作的重点. 本文算法与其他5种跟踪算法在OTB-50数据集的49组视频序列中运行的平均速度(mean FPS)如表2所示.

表2 6种跟踪算法的平均速度比较Table 2 Comparison of mean FPS of six tracking algorithms

4 结论

本文在TLD算法框架下,提出了一种基于核相关滤波的TLD跟踪算法. 该算法对TLD算法的跟踪器和检测器两部分进行了改进,提高了算法在发生尺度变化或遮挡情况下的跟踪性能.

本文使用KCF跟踪器替代了TLD中的光流跟踪器,并对KCF跟踪器进行了改进:在特征提取时增加了目标的Lab颜色特征,在寻找目标位置时引入尺度估计,在模型更新阶段引入跟踪状态判别机制,不仅使用检测器判定跟踪器的跟踪结果的可靠性,且设定跟踪器中输出响应最大值及APCE值的阈值,根据判定结果来选择是否更新滤波器模型. 对于其中的检测器,为了减少大量无意义的窗口,并提升算法在存在遮挡时的精确性,使用Kalman滤波预估出目标位置,然后在预估位置周围使用级联分类器更精准地定位目标. 本文改进的级联分类器的前两级保持不变,第三级采用上述改进的KCF跟踪器进行分类.

为了验证本文算法的有效性,在OTB-50数据集上进行了对比实验. 结果表明,本文算法在发生遮挡、形变和亮度变化的情况下跟踪性能优于其他算法.

猜你喜欢
跟踪器光流检测器
利用掩膜和单应矩阵提高LK光流追踪效果
基于改进Cycle-GAN的光流无监督估计方法
光伏跟踪器阵列跟踪精度的测算方法研究
一种多尺度光流预测与融合的实时视频插帧方法
参数可调的联合子空间目标检测方法 *
基于交通诱导的高速公路交通检测器布设方案研究
基于自适应纹理复杂度的仿生视觉导航方法研究
佛山南海:为油气回收装上“跟踪器”
超长待机的自行车位置跟踪器
基于均匀性判定规则的统计MIMO雷达多通道融合检测技术