1. 引言
多目标行人跟踪是一个重要的计算机视觉问题,也是手势识别、行为分析等更高层次研究的基础,是对序列图像中状态复杂的多个目标进行连续识别的任务。由于跟踪环境复杂多变,制约其跟踪性能的主要因素是目标外观特征的表达效果。由于深度学习在计算机视觉领域的应用快速发展,计算机视觉领域中目标识别与检测、目标分割等任务的准确性得到了显著提高,成为提高图像处理任务准确性的重要方法之一。
基于卷积神经网络的目标检测算法框架主要分为两类。一种是早期的两阶段网络框架,它对网络提取的候选帧进行分类和回归。Ross-Girshick等人提出了R-CNN [1] 目标检测算法,使用选择性搜索算法提取图像区域中的候选框,然后在神经网络的特征提取后使用SVM对特征向量进行分类和回归。何开明等在R-CNN的基础上设计了SPPNet [2] 深度网络模型。将R-CNN网络结构中的多层卷积改为卷积,大大减少了模型的计算量。Ross B. Girshick提出了Fast R-CNN [3] 来改进SPPNet。Fast R-CNN设计的RoI池化层解决了以往R-CNN检测算法中图像区域缩放和裁剪的问题。
另一种基于深度学习的算法是一阶段目标检测算法。代表算法有Yolo [4] [5] [6] [7] 系列算法和SSD [8] 算法。Joseph和Ali提出的Yolov1 [4] 算法直接完成了目标的分类和回归;Liu w提出的SSD算法比R-CNN更快,mAP比Yolov1好;Joseph Redmon和Ali Farhadi出版了Yolov3 [6] 。介绍了Darknet19网络模型,并采用多尺度融合方法进行预测。将原来的单标签分类优化为多标签分类。速度比R-CNN快1000倍。Yolo算法于2020年引入Yolov4 [7] ,在公共数据集COCO上,AP可以达到43.5%,速度高达65 FPS。
在多目标行人跟踪任务中,通常确定目标类别。但是,在连续图像序列中要跟踪的目标数量是未知的。多目标跟踪的目的是在每帧的连续图像序列中定位所有要跟踪的目标,并确保在长期跟踪过程中目标的目标识别尽可能保持不变。
Sam Hare [9] 提出将目标跟踪问题视为一个分类问题。在线学习每帧中的目标,并使用结果更新目标模型。Martin Danelljan提出了DSST [10] 目标跟踪算法,该算法使用平移滤波器来确定下一帧的位置,使用位置估计来获得中心坐标,然后使用比例滤波器估计来确定比例结果。MDNet [11] 算法结合CNN实现视频中的单目标跟踪。该算法结合VGG网络进行特征提取,将不同的特征图映射到连续的空间域,然后使用矩阵获得亚像素精度的目标跟踪位置。这种方法效果很好,但速度很慢。Martin [12] 发表了ECO相关滤波器跟踪算法。它主要解决了C-COT [13] 的过拟合问题,比以前的C-COT算法快约20倍。Xiao等人 [14] 提出了一种将视觉注意机制与语义计算相结合的行人检测方法,将皮肤语义特征和头肩语义特征集成在视觉注意机制上。JianjunH等 [15] 提出了一种借助数据增强技术在噪声和遮挡环境中进行人体检测和跟踪的方法。近年来,基于深度学习和相关滤波的行人目标跟踪模型在跟踪速度和精度方面越来越受到关注。
尽管深度学习在计算机视觉领域的应用发展迅速,但对于多目标跟踪任务,现有的自然场景连续图像序列数据集较少,训练样本稀缺。利用深度学习来提高跟踪精度面临着一定的挑战。为了解决数据集短缺的问题,与直接训练和测试的模型相比,我们使用迁移学习和微调Yolov4-tiny模型来提高检测精度和检测速度。通过迁移学习获得的Yolov4-tiny权重文件小于23 MB,基本可以部署在移动设备、嵌入式设备、边缘计算等设备上,不会损失检测精度。
2. Yolov4-Tiny网络结构
Yolov4-tiny是一个成熟的Yolo轻量级网络。主要分为三个部分,躯干、颈部和头部。主干使用CSDarknet53-tiny特征提取网络。网络的前52层用于输入图像的特征提取,最后一层用于输出。Yolov4-tiny在原有Yolov4骨干网的基础上,使用CSPBlock代替RSPBlock,将模块映射为两部分。一部分继续堆叠Yolov4骨干网络中的剩余块,另一部分绕过许多剩余结构。经过少量的卷积处理环节,这两个通道最终被集成在一起。颈部使用SPP (特征金字塔)网络来增加网络的感受野,并进一步融合不同尺度的特征图。Yolov4方法不使用空间金字塔池和路径聚合网络,提高了目标检测速度。Yolov4头使用Yolov3头作为目标检测网络。Yolov4微型化简化了头部,减少了头部的输出分支,提高了检测速度。Yolov4 tiny的网络训练参数有5,918,006个,共有38个网络层。Yolov4-tiny使用13 × 13和26 × 26两种不同比例的特征图来预测测试结果。其网络结构如图1所示。

Figure 1. Yolov4-tiny network structure
图1. Yolov4-tiny网络结构图
Yolov4-tiny的损失函数包含三个部分:
(1)
其中,loss1是置信损失函数,loss2是分类损失函数,loss3是边界和回归损失函数。
3. 融合MeanShift改进的Deep sort目标跟踪算法
3.1. MeanShift算法原理
MeanShift算法 [16] 的核心是:假设目标区域中有n个样本点
,
,每一个点
在d维空间
中定义的MeanShift向量为:
(2)
其中
是以x为中心点,k表示在这n个样本点
中落入
区域中的个数,
是样本点
相对于点x的偏移向量,Meanshift向量
就是对落入区域
中的k个样本点相对于点x的偏移量求和然后再平均。
表示一个在d维空间中半径为h的高维球区域,满足以下关系的y点的集合:
(3)
由公式(2)可以看出,当平均偏移量
指向样本分布最多的区域。落入
的采样点对均值的贡献是相同的。但在实际跟踪过程中,距离中心点越远的采样点应该重要性越低,因此需要使用密度估计来对采样点的权重进行度量。密度估计的概率密度函数可能存在不平滑的问题,因此,使用核函数对概率密度函数做平滑处理,以达到更好的拟合效果。常见的核函数如图2所示。
给出一个核函数
确定重新估计平均值的附近点的权重。在本文中,我们采用Epannechnikov核函数(公式(4))改进MeanShift向量,得到新的MeanShift表达式(公式(5)):
(4)
(5)
其中
为核函数,
为单位密度。
MeanShift算法(如图3所示)首先计算了目标区域和候选区域内像素的特征值概率,绘制出像素颜色的灰度直方图,然后利用相似性函数度量初始帧目标模型和当前帧的候选模型的相似性,不断进行迭代,直到找到相似性函数最大的候选模型。在迭代过程中,候选区域的移动轨迹就是目标由初始位置向正确位置移动的向量,这个向量称为目标模型的MeanShift向量。由于MeanShift算法具有快速收敛性,算法经过几十次迭代或满足阈值条件后,就将收敛到目标的真实位置,达到跟踪的目的。

Figure 3. MeanShift tracking schematic
图3. MeanShift跟踪原理图
3.2. Deep sort跟踪算法的改进
MeanShift是一种无参密度估计方法,它并不需要确定概率密度函数的具体形式,而是通过相邻的样本点对概率密度值进行估算。因此,对先验知识要求很少,准确性主要依赖于其迭代训练的过程。总体而言,MeanShift算法复杂度低,具有良好的实时跟踪性。但是当视频图像中跟踪目标被其他颜色相近的目标遮挡,或者与其他运动目标距离过近时,MeanShift跟踪算法会发生目标跟丢的情况。而卡尔曼滤波器可以利用速度参数对运动目标在发生遮挡时,能一定程度上解决这个问题。为解决目标捡漏和ID频繁跳变问题,本文运用MeanShift无监督学习融合卡尔曼滤波算法,设计一个基于目标颜色概率模型和当前运动行人状态进行预测的行人预测算法。
在跟踪过程中,当目标发生遮挡时,首先判断跟踪目标是否发生遮挡状态。设MeanShift算法得到的目标预测中心点为
,卡尔曼滤波器得到的目标预测中心点为
,这样就存在一个阈值
,如公式(6):
(6)
当跟踪目标没有发生遮挡情况,阈值
的值较小。一旦发生跟踪目标被遮挡,MeanShift的观测坐标与卡尔曼滤波预测的坐标会发生较大的变化,通过
值表达出来。一般情况下,当
小于10,表示没有发生遮挡,当
大于10,表示遮挡发生。
融合MeanShift算法后的Deep sort跟踪算法主要通过,当前帧对下一帧目标位置的预测、匹配和更新卡尔曼滤波参数来对目标行人的跟踪,具体算法流程如下。
Step1:输入待跟踪的视频样本。利用行人检测算法获取视频图像中目标的检测框,对检测框进行NMS筛选,进行特征提取,得到中心坐标和搜索区域半径;
Step2:将第一步得到的检测框作为MeanShift算法的搜索窗口;同时将检测的目标中心位置坐标赋予卡尔曼滤波器;
Step3:将MeanShift算法得到的观测目标位置和通过卡尔曼滤波器得到的预测框的坐标位置进行阈值计算,判断是否发生遮挡,若存在遮挡,则使用卡尔曼滤波器预测的下一帧视频图像位置的信息;若没有发生遮挡,则用MeanShift算法预测的目标位置信息;
Step4:将下一帧检测的特征提取框和Step3滤波更新的跟踪框使用表观特征的马氏距离(公式(7))和余弦度量(公式(9))进行级联匹配,两个距离计算的代价公式如(公式(10));
首先,采用马氏距离度量检测框和预测框之间的运动关联程度:
(7)
其中,
表示第j个检测框的
,
表示第i个跟踪器对目标的预测
,
表示检测位置与平均跟踪位置之间的协方差矩阵。马氏距离度量了数据的协方差距离,通过对目标检测位置和平均跟踪位置之间的标准差进行计算,来对卡尔曼滤波器的预测值进行筛选。如果计算得到的马氏距离大于某个阈值,则认为匹配失败。本文为了和原算法相对比,设置与原论文相同的阈值,即
,匹配度为:
(8)
当追踪目标发生遮挡等干扰时,比如相机运动,马氏距离匹配此时就容易发生ID switch的现象,这种情况一般使用外观特征的度量。外观特征通过对一个检测目标框引入一个通过深度网络计算的128维特征表示向量,并对每一个跟踪目标i,存储最近成功关联的100帧的特征向量,记为。外观特征使用最小余弦距离计算与当前帧目标检测结果的特征向量之间的接近程度,公式如下:
(9)
当马氏距离和最小余弦距离这两个指标都满足各自阈值条件的时,将它们的结果进行线性加权作为最终的度量标准:
(10)
对于匹配成功的预测框,则返回确认跟踪状态轨迹,ID编号不改变。将得到的成功匹配结果反馈给Kalman滤波器修正参数,同时也反馈给MeanShift滤波器做为下一次预测起始区域的中心位置,再返回Step2;对于匹配不成功的预测框和检测框,则进入下一阶段IOU匹配,判断跟踪行人是否已离开跟踪区域,或是否出现新的待跟踪目标。
4. 实验结果与分析
4.1. 数据集介绍
本实验采用多目标跟踪数据集MOT16数据集 [17] 进行实验。MOT16数据集是2016年提供的用来衡量多目标跟踪方法标准的数据集,共包含14个视频序列。分别是train和test文件夹,每个文件夹包含7段视频,每个视频子目录下都是一段视频的抽帧图片及标注。如图4和图5所示,分别是MOT16数据集的训练集和测试集所包括的7个不同场景视频。其中包含室内和室外,白天和黑夜,远距离行人和近距离行人,不同拍摄视角和相机运动,也包含了不同天气状况的视频。

Figure 4. Training sets in the MOT16 dataset
图4. MOT16数据集中的训练集

Figure 5. Testing sets in the MOT16 dataset
图5. MOT16数据集中的测试集
4.2. 实验环境
实验环境在因特尔i5-9400fCPU,主存空间16 GRAM,NVIDIA显卡GTX 1060GPU。软件支持Python语言,PyTorch库。
4.3. 评价指标
Precision在本文中代表被正确识别和分类的目标数量/每帧中被成功跟踪的目标个数,True positives所占的比率:
(11)
Recall是被正确识别和分类的目标数/每帧中被跟踪的目标数与测试集中所有被试的目标个数/被跟踪的目标数的比值:
(12)
其中TP表示预测正确的正例,FP表示预测正确的反例,FN表示预测错误的正例。
MOTA (Multiple Object Tracking Accuracy)
(13)
MOTA是跟踪准确度的重要指标,不考虑跟踪目标的精度,其中IDSW跟踪目标ID标识转换次数,分母GT表示正确匹配上跟踪目标的个数。
MOTP (Multiple Object Tracking Precision):表示跟踪器的定位精度,如公式(14):
(14)
D表示第t帧中目标i和与之进行匹配的成功预测跟踪的目标之间平均度量距离;c表示在第t帧中成功预测匹配成功的目标数目。
IDF1:综合考虑IDP和IDR (综合ID准确率和ID召回率),前缀ID表示跟踪的目标编号。
(15)
IDSW:成功预测跟踪的目标分配的ID发生变化的次数。
FPS:评估目标检测的速度,目标网络每秒可以检测多少帧,FPS简单来理解就是图像的刷新频率,也就是每秒多少帧,时间越短,速度越快。
(16)
MAPE和RMSE是对目标检测跟踪模型的预测效果进行误差对比评价,数值越小越好。
MAPE平均百分比误差
(17)
RMSE单次独立仿真均方根误差
(18)
其中,
表示在T时刻检测的真实目标坐标位置,
表示在T时刻由系统预测的该跟踪目标的坐标位置,N是独立蒙特卡洛运行的总次数。
4.4. 迁移学习
为了实现Yolov4-tiny在数据集MOT16上的行人检测实验,先要对经过COCO [18] 数据集训练的Yolov4-tiny模型进行网络微调。以提高模型对行人的检测性能,加快网络学习的进度。第一步,将默认的类别参数由80改为1,即class = 1。因为本文只需要对行人进行检测,而默认值80是COCO数据集的类别数。第二步,对于新定义的检测类,由公式(19)将前3个卷积层filters = 255,改为filters = 18,其中5是Yolo检测算法得到的5个坐标值,3是各种边界缩放框K。
(19)
然后,对网络需要的其他输入参数进行设置,主要包括网络输入大小、批量大小、学习率,以及前一层中的卷积核数和迭代次数等。微调模型训练的批次大小为32,迭代次数为40,000。训练过程中的学习率和权重衰减设置为0.001和0.0005进行优化调整。此外,为了在训练阶段提供性能的初始结果,权重序列化每1000次迭代自动执行一次。根据检测器性能,将网络输入大小设置为416像素 × 416像素,Yolov4-tiny的参数如表1所示。

Table 1. Hyperparameter settings of Yolov4-tiny optimization model
表1. Yolov4-tiny优化模型的超参数设置
4.5. 实验结果和分析
4.5.1. 模型对比实验
使用MOT16数据集进行训练和测试,将本文提出的Yolov4-tiny + Deep sort行人检测与跟踪方法在服务器上进行离线训练,并与Yolov3-tiny + Deep_sort,Yolov4 + Deep sort,Yolov5 + Deep sort等方法进行对比实验。所得评价指标结果如表2所示。

Table 2. Test results for various algorithms on the MOT16 Dataset
表2. 基于MOT16数据集的各算法测试结果对比表

Figure 6. Comparison of various algorithms
图6. 各个算法对比
从表2可以看出,Yolov4-tiny + Deep sort的跟踪算法速率能达到27.8,检测精度达到90.4%,MOTA和同类算法相比达到32.8%,定位精度MOTP达到80.8%。结果表明,Yolov4-tiny检测器对跟踪性能有很大的提升,提高了模型的跟踪速率。图6(a)~(f)给出了实验算法在MOT16测试集7个视频上各性能指标的结果对比。
4.5.2. 算法对比实验
为了能在移动端或低配置电脑端应用目标行人追踪网络,与原始Deep sort算法在目标跟踪上的效果进行对比,采用预测回归评价指标RMSE、MAPE对模型预测性能进行评估。
本文将原始Deep sort跟踪器和MDeep sort跟踪器进行蒙特卡洛仿真50次实验对比。设置MeanShift最大迭代次数为20。得到两种跟踪模型的预测值与真实值进行系统状态估计比较,评估结果如图7所示。将预测值与真实值直接计算MAPE误差结果,如图7(a)~(b)所示。最后,分别对上述两种评价指标的结果计算平均值,系统模型的总体跟踪指标结果如表3。

Table 3. Hyperparameter settings of Yolov4-tiny optimization model
表3. Deep sort跟踪算法改进前后预测误差性能对比

Figure 8. Comparison of algorithm testing results on the MOT16 dataset
图8. 对比算法在MOT16数据集上的测试结果
本文改进后的MDeep sort跟踪算法和原始的Deep sort算法相比,系统的状态估计性能更好,更接近真实值。从50次仿真结果可以分析,两种跟踪算法模型的预测值和真实值之间的RMSE误差都能保持在10以内。其中原始Deep sort跟踪器平均误差为6.43。而本文改进后系统模型平均误差为3.10,结果较好。从图7可以看出本文的两种跟踪模型的百分比误差相差较大,其中误差越小越好,原始Deep sort的MAPE误差平均值为2.77,而本文MDeep sort算法的MAPE达到了0.47,误差率很小。由此得出本文提出的算法MDeep sort模型在预测目标行人坐标中心点时相对比较准确。图8是原始Deepsort算法与改进MDeepsort算法在MOT数据集上的检测结果图,可得到MDeepsort算法可以有效的解决以往只利用卡尔曼滤波器预测跟踪时的算法不足。使算法对遮挡物具有良好的抗干扰性,较好地实现近处多个目标行人的跟踪,提高了算法的稳定性和鲁棒性。
为了进一步衡量本文Yolov4-tiny + MDeep sort检测跟踪算法的性能,与其他主流的在多目标行人跟踪算法在MOT16行人跟踪数据集上的进行评估,实验比较了SMOT [19] 、TBD [20] 、STRN [21] 和Yolov4-tiny + Deep sort算法的目标跟踪性能,结果如表4所示。

Table 4. Comparison of prediction error performance of the Deep sort tracking algorithm
表4. Deep sort跟踪算法改进前后预测误差性能对比
从表4可以看出,本文改进后的跟踪模型MDeep sort和目前主流的多目标跟踪算法相比,各方面的跟踪性能都有所提升。和原始Deep sort相比,IDSW从588减少到347,大约减少了41.0%。同时,由于加入了MeanShift的基于颜色特征的核密度估计的行人跟踪预测,对小范围的行人遮挡不受影响,有效处理了行人遮挡和遗漏问题,保持了目标行人的ID标识,使轨迹跟踪精度略有提高。当出现大面积遮挡时,利用卡尔曼滤波的预测机制,根据当前帧中行人的行驶速度大小和方向对下一帧位置进行预测,减少了漏检率和误判率。本文提出的算法模型不仅提高了跟踪准确率MOTA分数,大约提高了35.8%,而且对跟踪行人估计的位置精度MOTP也有所提升,大约提高了27.9%。这两个参数是直接反应跟踪器的预测跟踪性能,跟踪器的运行速度FPS由每秒15帧提高到每秒22帧,改进的模型有效的提高了跟踪速率,使跟踪器更符合在实际环境下的应用需求。
5. 结语
本文提出的基于轻量级Yolov4-tiny检测算法,与融合MeanShift算法的Deep sort目标跟踪算法构成的Yolov4-tiny + MDeep sort跟踪模型,解决了以往基于深度学习与滤波算法结合的方法中模型参数过多,尺寸过大,检测速度慢,准确性低,目标遮挡等问题。在MOT16数据集上测试结果表明,本文的跟踪模型性能MOTA提高了35.8%,定位精度MOTP提高了27.9%。在比较密集的多目标行人场景下,本文跟踪算法能较好地抵抗行人跟踪中常见的问题,具有良好的实时性和鲁棒性。该模型能够充分利用单帧的全局信息,既关注了行人的RGB颜色信息,又保留了行人的速度等参数,提升了跟踪算法的检测速度,避免了行人的特征形变对目标跟踪过程的影响。
参考文献
NOTES
*第一作者。
#通讯作者。