缪佳妮,杨金龙,程小雪,葛洪伟
江南大学 人工智能与计算机学院,江苏 无锡 214122
视频多目标跟踪是计算机视觉领域中一个重要的研究领域,具有智能监视、人机交互、行为识别、机器人导航和自动驾驶等多种应用。多目标跟踪可以为每个视频帧中被跟踪目标分配一致的标签,以产生每个目标的轨迹。目前,多目标跟踪主要分为在线跟踪以及批处理跟踪两类方法。在线跟踪指仅利用视频过去及现在的信息进行实时跟踪,这更加符合人们的场景需要,适合在智能监视、自动驾驶等实时性较强的应用。而批处理跟踪利用视频过去、现在以及未来的信息对目标进行跟踪,这样能使得跟踪的结果更加准确,可以运用在实时性要求不强的场景中。
由于目标的外观变化、遮挡和漂移,且存在未知的目标新生和消失等问题,使得多目标跟踪一直是目标跟踪领域具有挑战性的问题。近年来,随机有限集被广泛用于视频多目标跟踪[1-8],但是由于新生目标的随机性且未知,给该方法的使用带来一定的困难,频繁的目标交叉运动和遮挡使跟踪效果难尽人意。随着深度学习技术在计算机视觉方面的发展,目标检测任务取得了明显的成效,越来越多的检测器精度因为有了深度网络的加入有了明显的提高[9-10],例如基于区域建议网络的实时目标检测方法(faster regions with CNN features,Faster RCNN)[11],尺度依赖池的目标检测方法(scale dependent pooling,SDP)[12],仅看一次的检测方法(you look only once,YOLO)[13]等。由于检测器的高准确度,越来越多的多目标跟踪任务采用检测与跟踪相结合的方法,利用目标检测结果辅助跟踪,如具有多个提示和切换器感知分类的多对象跟踪[14]、仅用检测器的跟踪(tracking without bells and whistles,Tracktor17)[15]、没有用图像信息的快速跟踪(high-speed tracking-bydetection without using image information,IOU17)[16-17]等,采用检测框信息进行跟踪[18],文献[3-4]中提出融合不同检测器的结果进行跟踪,虽然取得了一定的效果,但大都完全依赖于检测器的精确性。后期提出的多目标跟踪与分割方法[19]、基于决策的在线多目标跟踪[20]方法进一步提升了对目标的检测精度,但由于检测仍然具有虚假检测、漏检等问题,无法进行有效的数据关联,使得虚假轨迹和漏跟目标增多。
针对上述问题,本文将目标的检测框信息和核相关滤波(kernelized correlation filters,KCF)[21]算法相结合,检测信息可以弥补目标跟踪算法中跟踪框无法自适应调节的不足。KCF 不需要大量数据进行训练,具有适应强,鲁棒性好,速度快等优点,本文的主要工作为:(1)将KCF 运用到多目标跟踪中,但由于KCF 无法自适应地根据目标尺寸变化而调整目标框的大小,且在遇到目标遮挡的情况下会发生目标模板受到污染从而产生偏移,本文将融入置信图的平滑约束机制来评估目标被遮挡程度,从而实现目标模板的自适应更新,用于处理目标遮挡的模板污染问题。(2)引入速度信息,从而能够处理目标在被遮挡时的跟踪问题,在目标完全被遮挡的情况下以实现正确持续跟踪,减少碎片的轨迹;对虚假检测框等问题,本文采用IOU17 算法[16]中的方法,去除一些不符合条件的轨迹,以减少虚假错误的跟踪框。
在视频序列的两帧之内,目标的移动不是特别剧烈。KCF 通过提取图像块的方向梯度直方图(histograms of oriented gradients,HOG)[22]、颜色特征以及灰度特征进行判别式学习,并循环位移产生一系列正负样本X。
随后将循环矩阵X映射到核空间内,放入分类器中进行训练,即在损失函数最小的情况下获得岭回归的最优解。非线性岭回归目标函数表示为:
式中,xi为目标样本向量,yi为回归模型,将输入特征的所有循环视为具有高斯加权标签的训练样本,φ(·)为高斯核函数,将样本映射到非线性空间,便于样本分类,λ为正则化参数。
在求解非线性回归中的w时,如果将样本数据xi映射到高维空间,那么就需要一个核函数φ(·),这里采用的核函数为高斯核函数,这时由岭回归的最小二乘优化方法可以得到w最终表示为:
此问题转化成求最优解α的问题,式(1)的解将化简为式(3),其中表示离散傅里叶变换。
由循环矩阵的性质可知kxx也为循环矩阵,这里取核矩阵K=C(kxx)的第一行,C(·)表示循环矩阵。
训练出了α之后,在k+1 帧的目标位置上,扩大范围,寻找与k帧中目标i相似度最高的位置。由于在视频序列的两帧之内,目标的移动不是特别剧烈,扩大搜索范围的倍数可根据视频中运动目标的剧烈程度决定。根据上一帧的目标位置在这一帧的图像中选取图像块,采用相同的方法提取图像块特征,得到样本集合z,放入已经训练好的滤波器中进行计算,获得响应热图[21],具体操作如下:
由响应热图输出最大值的位置作为目标在这一帧的位置,分配相同的目标标签,目标模板更新以及分类参数更新部分将采用自适应的方式来更新,KCF的整个过程如图1 所示。
Fig.1 KCF architecture diagram图1 KCF 架构图
文献[23-25]对KCF 都进行了一些改进,但大部分只是将目标的宽高进行等比例的缩放,适合对刚体目标尺寸的变化,但对非刚体,如行人等,会随着姿态的改变,导致宽和高的尺寸变化不成比例。针对该问题,借助每帧检测信息自适应更新目标框的宽和高。
Fig.2 Δ calculation description图2 Δ 计算说明
Fig.3 SCCM score of 10 frames adjacent of some targets in MOT17-09 sequence图3 MOT17-09 序列部分目标相邻10 帧的SCCM 分数
其中,η表示模板更新参数。
图3 为实验中部分的SCCM 分数,第一行为105~114 帧SCCM 分数随目标遮挡的变化情况,第二行为100~109 帧SCCM 分数随目标遮挡的变化情况。由图3 可知当目标在相邻两帧内没有发生大量的形变或者遮挡时,响应热图的变化不大,都是在目标位置的高度响应,SCCM 的值在0 到1 之间,如图3 前5 帧;而当目标发生大范围的遮挡或者形变时,响应热图的最大值将会减少,SCCM 的结果也会变大(>1),如图3后5 帧。在MOT17 训练集上的跟踪效果随阈值σt的变化情况如图4 所示,这里考虑了3 种不同检测器的跟踪效果,可以看出当σt=1 时3 种检测器的跟踪效果最佳。
Fig.4 Change of tracking effect of MOT17 training set with σt value图4 MOT17 训练集跟踪效果随σt 取值的变化情况
当两帧之间存在大位移目标运动时,仅靠KCF将难以准确跟上目标,而速度信息能辅助预测目标的位置信息,从而提高对目标的跟踪性能。通过选取目标框中心点计算目标速度,根据目标的位置和运动信息,构建运动模型。目标i在k帧的状态为rk=(xk,yk,wk,hk,l),xk、yk、wk、hk分别表示为目标i在k帧的横坐标位置、纵坐标位置、目标框的宽、目标框的高,l表示目标的标签,θ为学习权重,表示目标i在第k+1 帧时横坐标方向上的速度,表示目标i在第k+1 帧时纵坐标方向上的速度,速度更新公式表示为:
去除虚假检测框的时候,引入IOU17 的算法,去除检测框置信度分数较低和轨迹较短的目标,其中IOU 的计算公式表示为:
式中,Area(a) 表示目标a的目标框区域,Area(a)⋂Area(b)表示目标a与目标b相交部分的区域面积,Area(a)⋃Area(b)表示目标a与目标b的并区域面积。
提出算法框架如图5 所示,先根据k帧的跟踪结果,结合速度信息对k+1 帧的跟踪结果进行位置预测,再采用KCF 进行进一步跟踪,对KCF 结果分数较高的目标位置与当前帧k+1 帧的检测信息进行IOU操作,从而能跟上漏检的目标。对KCF 分数较低的进行遮挡判断,判断的具体方法如2.1 节速度模型中的平滑滤波所示,最终得到了k+1 帧的跟踪结果,并更新速度信息。
Fig.5 CF multi-target tracking algorithm framework based on improved motion information图5 运动信息优化CF 的多目标跟踪算法框架
提出算法流程如下:
2.将Tk+1中的剩余结果作为新生目标,放入Rk+1中,作为新生目标;
3.更新速度信息;
通过算法流程可知,IOU 部分和SCCM 改进的KCF 为本算法中最主要的两部分,与原本用于单目标跟踪的KCF 不同,这里将KCF 算法用在了多目标跟踪中,并做了模板自适应更新的改进,因此计算量是KCF 单目标跟踪的n倍。而新生目标的判断计算需要和已有目标进行IOU 计算,因此时间消耗将为O(n2),其中IOU 以及KCF 计算量较少。
通过实验,在MOT2017 的训练集上验证所提出算法的效率,并且与用于多目标跟踪的深度亲和网络方法SST(structure sparse tracking)[27],具有深度关联度量的简单在线实时跟踪方法Deep Sort[28],简单的在线和实时跟踪方法Sort[29]和IOU17 算法进行比较。
实验是在处理器为Intel Core i7-8700、3.2 GHz,12 核,内存为16 GB,显卡为NVIDIA Geforce GTX 1080 Ti 的机器上进行,采用Matlab R2019b 的软件编写。为了在不同方法之间进行公平的比较,本文采用不同的检测器,DPM(discriminatively trained partbased models)[30]、Faster RCNN、SDP 的结果来进行比较,其中DPM 的召回率较好,但产生许多虚假检测框,而SDP 是在Faster RCNN 的基础上提出的改进,检测的准确度较高。表1 所示的是MOT17 训练集上视频序列所具有的问题。其中05、10、11 和13 序列是在移动的摄像头下拍摄的视频,02 为视线较为昏暗的情况,MOT17 都为日常生活中密集人群的视频序列,对目标遮挡、交叉运动的处理至关重要。其中,02 的检测效果最差,04 序列为检测效果最好。本文通过对比目前较为成熟的跟踪方法SST、Deep Sort、Sort 和IOU17 来分析本文方法的效果。这几种方法都采用先检测后跟踪的思想,其中,SST 用深度网络实现对目标的端到端表观特征提取和数据关联,但是处理模糊目标和虚假目标的跟踪有所欠缺。Sort采用了卡尔曼滤波和交并比的方法,对目标轨迹进行关联,但该方法较为依赖检测的精确度,而Deep Sort 在Sort 的基础上对虚假检测框判断和采用重识别网络,将碎片化的轨迹关联起来。IOU17 是所有跟踪算法中跟踪速度最快的方法,并且可以处理虚假轨迹,但是和SST 一样,对于检测器的精确度依赖较大。
Table 1 Test video sequences表1 测试视频序列
算法中的具体参数设置如下:K=30,tIOU=0.6,tKCF=0.5,σt=1,η=0.5。本算法中响应热图的最大值及最小值之间的差为1 之内,而同一目标相邻的两幅响应热图相差的值并不会太大,若σt的值太小,将不能保证目标模板的实时性更新,若σt的值太大,将无法处理目标模板受到污染的问题,因此将SCCM的阈值设为1,既能保证目标模板实时更新,又能避免模板受到大面积污染的问题。
本文采用MOTChallenge Benchmark 提供的评价算法[31],评价标准包含多目标跟踪精度(multiple object tracking precision,MOTP)、多目标跟踪正确度(multiple object tracking accuracy,MOTA)、总误跟数(false positives,FP)、总漏跟数(false negatives,FN)、标签跳变数(identity switches,IDS)等指标,其定义如下:
(1)多目标跟踪正确度(MOTA)
MOTA 为视频多目标跟踪中最广泛使用的评价标准,平衡了真实值(ground truth,GT)、误跟数(FP)、漏跟数(FN)和标签跳变数(IDS)这4 个指标。
由于误跟数、漏跟数和标签跳变数的和能比真实框多,MOTA 能取到负值,当跟踪算法能完全跟上目标且不产生误跟框时,MOTA 取得最大值1,因此MOTA 的取值范围将为(-∞,1]。
(2)多目标跟踪精度(MOTP)
其中,dk,i表示的是k帧上第i个目标与目标真实框的重叠率,ck表示的是第k帧中目标匹配的数目。取值范围在0.5 到1.0 之间。重要的是,MOTP 提供的是定位精度的衡量,几乎没有提供跟踪器实际性能的信息。
(3)总误跟数(FP)
由于跟踪器跟错目标,产生了无法与真实目标进行匹配的跟踪框,将这些错误跟踪框的总数称为总误跟数。
(4)总漏跟数(FN)
由跟踪器漏跟导致的,没有跟踪框能与真实目标进行匹配的总数目即为总漏跟数。
(5)标签跳变数(IDS)
跟踪器在跟踪过程中对原本是同一目标的轨迹产生了碎片化的分割,从而将原本一条轨迹划分了多条轨迹,从而产生了标签跳变。标签跳变数即为跟踪过程中目标标签发生的变化次数。
(1)目标紧邻运动、遮挡
在09 视频序列中描述的是一个在商店门口的复杂多人行走交互的场景,在IOU17、Deep Sort 等跟踪算法中,当椭圆区域的两个行人发生交汇时,会出现遮挡问题。在IOU17 中,由于遮挡导致的检测框无法检测到,被遮挡人的跟踪框会消失。而提出的方法根据前几帧目标的速度,预测下一帧的跟踪框位置,并利用平滑滤波保证预测的准确性,因此能准确保留被跟踪者的跟踪框。具体的跟踪效果如图6 所示,椭圆表示被遮挡的目标,速度信息已在图6(d)Proposed 的跟踪框中心处标出,相邻6 帧的位置信息已在跟踪框的下面用实心圆点标出。
Fig.6 Tracking results of occlusion in sequence 09(ellipse means blocked object)图6 09 序列中存在遮挡情况时的跟踪结果(椭圆表示被遮挡的目标)
(2)目标模糊
在10 序列中,相机是可移动设备,由于相机的剧烈抖动导致目标模糊,这也是日常生活中移动设备经常遇到的问题。即使是效果相当优秀的检测器在面对目标模糊的时候也难以准确检测出来,这就需要跟踪器能发挥其作用,根据清晰时刻的检测框进行跟踪。IOU17、Deep Sort和SST 算法无法跟踪模糊目标,而提出算法能对模糊目标进行稳定持续的跟踪,具体跟踪效果对比如图7 所示,椭圆表示没有跟踪上的目标。
Fig.7 Tracking results of fuzzy targets in sequence 10(ellipse means fuzzy missed target)图7 10 序列中存在目标模糊的跟踪结果(椭圆表示模糊的被漏跟目标)
(3)去除虚假轨迹
在检测器对图像进行行人检测时,会出现一些虚假检测框,如果跟踪器不加判断,直接进行跟踪将会产生一系列的错误跟踪框。SDP 检测器和SST 结果中,车子附近存在由于虚假检测框而产生的错误跟踪,而提出算法能较好地剔除这些虚假轨迹。具体的跟踪效果如图8 所示,椭圆表示虚假轨迹。
Fig.8 Tracking results of false frame in sequence 13(ellipse means false track)图8 13 序列中存在虚假框的跟踪结果(椭圆表示虚假轨迹)
(4)漏检
IOU17、Deep Sort、SST 等算法都不能很好地检测漏检的目标,遇到漏检即跟丢,这是由于太过依赖于检测结果,而提出算法融合了KCF 的跟踪优势,能准确地处理漏检问题。具体的跟踪对比效果如图9所示,椭圆表示漏检的目标。
Fig.9 Tracking results of missed detection in sequence 11(ellipse means missed detected targets)图9 11 序列中存在漏检时的跟踪结果(椭圆表示漏检的目标)
(5)跟踪框漂移
在SDP 的检测结果中,被遮挡目标在410 帧时就因为发生大面积遮挡而没有被检测到,如图10(a)所示。在采用了KCF 跟踪后,由于目标模板一直在更新,会存在目标模板被污染的问题,从而导致跟踪框漂移,如图10(b)所示,从410 帧开始被遮挡目标的跟踪框就发生了偏移。而在加入了SCCM 机制后,跟踪器能够更加准确地跟上目标,提升多目标跟踪的准确度,具体的跟踪结果如图10(c)所示。
Fig.10 MOT17-09 tracking and comparison results图10 MOT17-09 跟踪对比结果显示
(6)新生目标
本文新生目标的信息由检测器的检测结果来获取,检测器的检测结果和跟踪算法的效果同时决定了获得新生目标的能力。检测器的检测结果越精确,算法获取的新生目标越准确,从而能实现实时跟踪,而算法对于检测框是否是新生目标的判断影响着新生目标的获取能力。本文通过交并比和检测框置信度分数来判断新生目标,相较于Deep Sort 方法中被遗漏的两个新生目标,本文方法能很好地提取出新生目标信息,并持续跟踪,具体的跟踪效果如图11 所示。
Fig.11 Tracking results of new born targets in sequence 09(ellipse means miss targets)图11 09 序列中新生目标的跟踪结果(椭圆表示跟丢的目标)
本文选取MOTA、FP、FN、IDS 和MOTP 这5 个指标对IOU17、Sort、Deep Sort、SST 和本文算法进行对比。表2 表示这5 种算法分别在这5 个指标上的表现情况,其中结合了DPM、FasterRCNN 和SDP 3 种检测器的跟踪结果(↑表示值越大越好,↓表示值越小越好)。从表2 中可以看出,提出的算法在MOT17 的训练集上,增加了大量的跟踪框,从而减少了漏跟数(FN)以及标签跳变数(IDS),在MOTA、FN、IDS 这3个指标上的表现都优于其他4 种跟踪算法。
表3~表5 这3 张表格分别列出了MOT17 数据集中,09、04、02 序列SDP 检测器上的不同方法的跟踪效果比较,其中04 序列的检测器准确度较高,02 的检测器准确度最差,09 的检测器准确度一般(↑表示值越大越好,↓表示值越小越好)。从表3~表5 中可以发现,本文算法在不同复杂场景下的多目标跟踪效果在MOTA 上都要优于其他4 种方法。
为了进一步体现本文算法的优势,还做了3 组对比实验,Proposed 表示融合了SCCM 机制,去除虚假检测框以及速度信息的跟踪算法,Proposed_2 表示为没有运用速度信息和平滑滤波的算法,Proposed_3 表示为没有运用去除虚假检测框的算法,Proposed_4 为没有运用SCCM 机制的跟踪算法。表3~表5 分别是检测结果一般、较好、较差的3 种视频序列。最终发现,融合了速度信息可以对目标的运动轨迹进行预测,从而减少漏跟数量(FN),但是在遇到较差的检测结果后,预测的运动轨迹也会产生大量的误跟结果;添加了去除虚假检测框操作,虽然会造成少量的漏跟数(FN),但是会大量减少误跟数(FP),从而提高跟踪精度;融入了SCCM 机制可以避免跟踪框因为遮挡而产生漂移,从而漏跟目标的情况。最终,通过实验证明,结合了速度信息、去除虚假检测框操作和SCCM 机制的跟踪算法在面对检测器效果不同的3种情况时也能有不错的跟踪表现。
Table 2 Comparison of MOT17 tracking methods表2 MOT17 跟踪方法比较
Table 3 Comparison of various algorithms of SDP detector in MOT17-09表3 MOT17-09 序列SDP 检测器各种方法比较
Table 4 Comparison of various algorithms of SDP detector in MOT17-04表4 MOT17-04 序列SDP 检测器各种方法比较
Table 5 Comparison of various algorithms of SDP detector in MOT17-02表5 MOT17-02 序列SDP 检测器各种方法比较
Table 6 Results of proposed method in MOT17 training set表6 本文方法在MOT17 训练集结果
实验结果表明,比较其他4 种方法,提出的算法在MOTA 这个指标上有更好的表现,因为漏跟目标(FN)的数量减少了,而MOTA 与FN 息息相关。即使在场景十分复杂,摄像头抖动的情况下,本文算法也能较好地实现多目标的跟踪任务。表6 表示本文算法在MOT17 不同的视频序列以及不同的检测器下的跟踪结果,其中FRCNN 即为Faster RCNN 检测器(↑表示值越大越好,↓表示值越小越好)。从表中可以看出,在DPM 检测器下的跟踪效果较差,在SDP 检测器下的跟踪效果较好。
本文提出了一种运动信息优化相关滤波的多目标跟踪算法,在检测跟踪的基础上,融入KCF 算法,采用检测器得到的检测结果弥补KCF 无法及时获得新生目标信息,以及跟踪框大小无法自适应目标变化的缺陷,KCF 能够有效地处理检测器漏检,并运用SCCM 机制处理KCF 的模板污染问题,融合IOU17算法去除虚假检测框。此外,结合目标的运动信息,采用平滑滤波的方法,处理目标跟踪中受遮挡目标的跟踪,从而将大量碎片化的轨迹整合成一条连续运动轨迹。最后通过实验证明,提出算法能够较好地实现多目标的跟踪任务。