范婉舒,赖际舟,吕 品,郑欣悦,郑国庆,张 萸
(南京航空航天大学自动化学院,南京 211106)
得益于深度学习的迅速发展,近年来计算机视觉技术在无人驾驶中的应用越来越广泛。目标跟踪算法是计算机视觉中的一个重要组成部分,为无人设备提供强大的感知能力。目标跟踪算法能够在检测的基础上获取目标信息,对同类的不同目标加以区分并持续跟踪。
目标跟踪主要有生成式跟踪和判别式跟踪两类。生成式跟踪无需检测信息,通过逐帧搜索比较提取到的特征,迭代得到跟踪结果,如光流法、Meanshift、Camshift等。生成式跟踪算法计算量较小,但在面对光照变换大、存在遮挡和变形的情况时精度明显下降。
判别式跟踪算法在目标检测的基础上进行跟踪,计算量较大,但较为鲁棒且精度更高,是当前的主流算法。判别式跟踪算法可以分为基于相关滤波的算法和基于深度学习的算法。最小输出均方误差(Minimum Output Sum of Squared Error,MOSSE)算法首先将相关滤波引入到目标跟踪领域,在此基础上核化相关滤波(Kernelized Correlation Filters,KCF)算法通过引入循环矩阵和岭回归算法,提升了跟踪的性能。
随着神经网络的提出,基于深度学习的跟踪算法具有更优的跟踪效果。Ma C.等提出了分层卷积特征(Hierarchical Convolutional Features,HCF)视觉跟踪算法,将VGG(Visual Geometry Group)网络提取的特征与相关滤波结合,获得了很好的跟踪性能,但该算法对尺度变换较敏感。A.Bewley等提出了简单在线实时跟踪(Simple Online and Realtime Tracking,SORT)算法,降低了计算量,但身份变换次数较多。此后,A.Bewley等针对该问题,加入外观特征度量与级联匹配,提出了Deep-SORT算法,显著减少了身份变换次数。
DeepSORT算法作为一种在线跟踪方法,能够满足无人系统的实时性要求与精度要求,因此被广泛应用。文献[11]通过调整DeepSORT外观特征网络结构,降低了因遮挡造成的身份变换。文献[12]通过引入长短期记忆网络(Long Short-Term Memory,LSTM)模型,实现了多车辆的实时准确跟踪,但当目标外观特征改变时,这些方法产生的漏匹配较多,多目标跟踪准确率下降。
在实际应用中,基于图像的目标跟踪只能提供图像上的二维信息,而需要的往往是物体的三维信息。对此,传统的方法是通过相机与激光雷达的对齐点云获取图像上的对应深度,从而得到目标的三维坐标。然而,当目标在图像中较小时,这种方法获得的深度精度有限,甚至会出现无法获取深度的情况。
针对以上问题,本文提出了一种基于改进DeepSORT的目标跟踪与定位算法,实现了对目标的连续跟踪定位。首先,在传统DeepSORT算法中加入位置约束,依据漏匹配目标在图像中的位置信息再次匹配,有效减少因外观变换导致的漏匹配,提高多目标跟踪准确率。继而,在跟踪算法的基础上,设计了基于目标运动模型的相对定位算法,以解决目标较小时定位失败的问题,提高定位精度。
本文通过加入位置约束与目标运动模型,提出了一种基于改进DeepSORT算法的目标跟踪与定位算法,算法流程如图1所示。传统架构在获取视觉跟踪信息后,通过对齐点云解算其相对位置。相较于此,本文的改进如下:1)对传统DeepSORT算法的初步匹配结果依据位置约束再次匹配,减少漏匹配;2)对传统相对定位方法得到的三维信息,根据运动模型得到其最优估计,获得最终的定位结果。
目标跟踪可以分为检测与跟踪两部分,本文的检测器为YOLOv3。YOLO(You Only Look Once)算法是一阶段的检测算法,相较于两阶段算法,检测速度更快,更符合无人系统的实时性要求。YOLOv3是该系列算法的第三代,采用Darknet53作为特征提取网络。Darknet53参考了ResNet的结构,在网络结构中加入了残差块,增加了深度的同时,可以控制梯度的传播,避免出现梯度爆炸或者梯度消失的问题。YOLOv3采用多尺度预测,通过上采样融合了3个尺度上的信息,显著提高了对小物体的检测能力。跟踪器采用加入位置约束的DeepSORT算法。
图1 基于改进DeepSORT的目标跟踪与定位算法流程Fig.1 Flow of object tracking and positioning algorithm based on improved DeepSORT
1.1.1 传统DeepSORT目标跟踪算法分析
目标匹配分为两阶段,第一阶段为级联匹配,第二阶段为交并比(Intersection-over-Union,IoU)匹配。在级联匹配阶段,通过平方马氏距离和余弦距离构造代价矩阵。同时,计算门控矩阵,用于判断匹配是否可行,只有当平方马氏距离和余弦距离都在门控矩阵内时,该匹配可行。计算得到代价矩阵和门控矩阵后,利用匈牙利算法,根据优先级进行匹配,越小则优先级越高。若大于最大存活帧数,则认为该目标已不在场景中,删除该目标的跟踪轨迹。
1.1.2 基于位置约束的改进DeepSORT算法设计
在实际应用中,由于目标自身的运动或者部分被遮挡,外观特征变换较大,较易导致漏匹配。但由于目标运动的连续性,其在图像帧中的像素坐标相差较小,可以据此再次进行匹配。改进Deep-SORT算法流程如图2所示。
图2 改进DeepSORT算法流程Fig.2 Flow of improved DeepSORT algorithm
对于未匹配跟踪集中的跟踪轨迹,寻找未匹配目标集中距离其最近的检测目标。若其距离小于阈值,则认为是同一目标,将(,)加入匹配集。其中,阈值为经验值,根据输入图像的大小决定。输入图像的尺寸越大,则阈值设定越高。基于位置约束的算法流程如表1所示。其中,位置距离通过像素坐标(,)间的欧式距离来衡量,即
(1)
因此,改进算法的匹配流程为:对于跟踪集与检测集,首先计算代价矩阵与门控矩阵,并初始化匹配集与未匹配跟踪集。与的设计沿用原始算法,通过平方马氏距离与余弦距离构建。
平方马氏距离用于度量卡尔曼预测状态量与最新的量测量之间的距离,即
(2)
其中,和表示第个跟踪轨迹的状态量的期望与协方差矩阵;表示第个检测框的状态量量测值。
表1 基于位置约束的匹配流程
余弦距离用于度量跟踪轨迹与检测框之间的外观相似度,即
(3)
通过平方马氏距离与余弦距离加权计算,通过两者对应的阈值、判断得到。其中,、、的选取参考文献[10]。
,=(,)+(1-)(,)
(4)
(5)
然后进行级联匹配与IoU匹配,接着初始化未匹配目标集,对于IoU匹配之后的未匹配跟踪集与未匹配目标集,计算其距离矩阵,依据位置约束再次进行匹配,以减少漏匹配。改进后的目标匹配流程如图3所示。
图3 改进目标匹配算法流程Fig.3 Flow of improved target matching algorithm
通过相对定位算法计算目标相对载体的位置。传统的相对定位方法通过相机与激光雷达的标定获取目标的位置信息,通过对齐点云获取像素处对应深度,进而解算出目标相对位置。1.1节所述的改进DeepSORT算法对因外观特征改变造成的漏匹配起到了改善作用,但还存在目标较小时无法获取深度进行定位的问题。因此,本文在目标跟踪的基础上,构建目标运动模型,得到目标运动状态的最优估计,以解决该问题。
卡尔曼滤波是一种优化估计算法,结合当前时刻的预测值与量测值得到当前的最优估计值。针对不同目标,使用卡尔曼滤波估计其状态,需要先对待估计对象建立运动模型。在本文中,定位目标为行人。
行人在行进过程中,加速度较小,可以视为匀速直线运动。因此,该类目标的运动模型为恒定速度模型。设行人在时刻的状态为=[,],其中为全局系(第一帧雷达系)下时刻行人相对载体的三维坐标;为时刻行人的速度。和为已知量,描述时刻雷达系到全局系的变换。则在经过Δ时间后,其状态变换为+Δ=[+Δ·+-+Δ,]。则状态转移方程为
(6)
在测量中,通过对齐点云,得到当前雷达系下目标相对载体的三维坐标。因此,本文中状态方程及量测方程为
(7)
其中,和为噪声,均服从高斯分布。
在实际试验中,由于外参标定精度有限,跟踪目标处对应的深度值存在突变的情况。突变值造成的误差会在状态递推器中累积,从而造成卡尔曼滤波器性能的下降。因此,本文在卡尔曼滤波器中加入残差检测器将突变值剔除。被剔除的突变值将不作为量测值输入,该时刻的最优估计值为一步预测值。
为了评估提出算法的性能,本文首先在交通监测图片序列的基础上对改进跟踪算法效果进行验证,测试其在多目标环境中的跟踪性能。然后在无人车平台上展开目标跟踪与相对定位试验,综合测试改进跟踪算法与改进相对定位算法在实际情况下的性能。
为了验证本文所提算法的有效性,将原始Deep-SORT算法作为对照,通过多目标跟踪准确度(Multi-ple Object Tracking Accuracy,MOTA)衡量算法的性能,MOTA与漏报(False Negative,FN)、误报(False Positive,FP)、身份变换(ID Switch,IDSW)以及真实值(Ground Truth,GT)相关,MOTA的计算公式为
(8)
本文选用两组图片序列对改进跟踪算法的性能进行验证。一组是移动载体在城市道路行驶过程中采集的序列,另一组则是城市道路中的交通监控序列。在车辆转弯过程中,会出现外观特征改变的情况。由表2可知,改进算法的多目标跟踪准确率提升了6.6%。
表2 基于图片序列的原始算法与改进算法多目标跟踪准确率
图4显示了原始算法及改进算法在序列二中的跟踪结果,由图4(a)与图4(b)的对比可知:
相较于传统DeepSORT算法,改进方法可以有效减少漏报,对于图4(a)中62帧ID为20的目标,其在转弯前后的外观特征出现了较大的变换,在第83帧中未能成功关联,且在第84帧中被当成新的目标(ID为28)。而在图4(b)中,改进算法通过位置信息实现对目标转弯前后的持续跟踪。
(a) 原始算法跟踪结果
(b) 改进算法跟踪结果图4 交通监控序列处理结果对比Fig.4 Comparison of traffic monitoring sequence processing results
本文在无人车平台上展开试验,以验证目标跟踪与相对定位算法的性能,试验平台与测试路线如图5所示。其中,无人车搭载了Besos GX01微型主机、Intel RealSense D435i相机与Ouster OS1 64线激光雷达。各传感器性能参数如表3所示。
图5 无人车平台及目标跟踪与定位试验路线Fig.5 Unmanned vehicle platform and object tracking & positioning test route
表3 传感器性能参数
2.2.1 目标跟踪算法试验
本文在无人车平台上采集三组数据以测试跟踪算法的性能,包含光照变换、步态变换等情况。在试验过程中,当目标经过存在树荫路段时,光照产生变换,而在目标转弯时,其步态也会发生变换,这些情况都会造成目标外观特征的改变。试验开始时,两个行人相隔一段距离并排行走,距无人车平台一定距离后,两人朝相反方向转弯,返回试验开始地点。
在外观改变的情况下,原始算法较易出现匹配失败的情况,而改进算法依据位置信息对外观改变的目标进行匹配,减少了漏报。图6所示为原始算法和改进算法的对比结果,在150~151帧中两个目标在转弯前后其外观特征出现了改变,原始算法的151帧中出现了漏报的情况,但目标的位置变换较小,在改进算法中,目标一在151帧中被成功匹配。根据表4,平均多目标跟踪准确率提高了5.6%。对比表2与表4可知,在更为复杂的场景中,产生的漏报较多,原始算法的多目标跟踪率较低,改进算法对多目标跟踪准确率的提升较大。
(a) 原始算法跟踪结果
(b) 改进算法跟踪结果图6 目标跟踪算法对比Fig.6 Comparison of object tracking algorithm
表4 基于无人车平台的原始算法与改进算法多目标跟踪准确率
2.2.2 相对定位算法试验
本文同时在无人车平台上展开相对定位算法试验。试验过程中,目标一手持全站仪棱镜,行进路线与图5相同。本文通过全站仪对无人车与跟踪目标进行定位,计算其相对位置,在相对定位算法试验评估中提供位置基准。
图7所示为原始算法与改进算法的对比,选取全站仪解算轨迹作为基准。解算得到雷达系下的坐标,雷达系为轴向前、轴向左、轴向上的右手坐标系。图7(a)为相对定位结果对比,图7(b)为相对定位误差对比,绿色为全站仪提供的基准位置,红色为改进算法,蓝色为原始算法。其中,相对定位误差通过计算全站仪与相对定位算法解算坐标的欧式距离得到。在实际试验中,全站仪棱镜与跟踪目标中心点在轴上存在不定偏差,因此在算法性能评估中不考虑轴。图8所示为目标较小情况下的定位效果对比图。
(a) 相对定位结果对比
(b) 相对定位误差对比图7 相对定位算法对比Fig.7 Comparison of relative positioning algorithm
(a) 原始算法定位失败情况
(b) 改进算法定位效果图8 目标较小情况下的定位效果对比图Fig.8 Comparison of positioning results of small objects
根据基于无人车平台的相对定位结果及定位误差可以看出:
1)相较于传统方法存在定位失效的情况,本文算法提高了定位的连续性。如图8(a)所示,当目标在图像中较小,原始算法无法获取深度值时,目标一没有三维坐标信息。在试验中,定位失效导致图7(a)中原始算法定位结果锯齿较多,且存在突变值,与全站仪解算轨迹相差较大。改进算法根据之前的位置信息对目标当前的坐标进行预测,成功解决了目标较小时无法定位的问题,获取的解算结果较为密集,图7(a)中改进算法定位结果较为平滑,突变值被残差卡方检测器剔除,与全站仪解算轨迹相差较小。
2)相较于传统方法定位精度较差的情况,本文算法提高了定位精度,如图7(b)所示,改进算法的误差曲线较原始算法波动范围较小。试验结果表明,原始算法的定位误差为1.01m,而改进算法的定位误差为0.38m,定位精度提升了62.4%。
本文通过加入位置约束与目标运动模型,提出了一种基于改进DeepSORT算法的视觉/激光雷达目标跟踪与定位算法。针对原始DeepSORT算法中由于目标外观特征相差较大而出现的漏匹配问题,本文设计了加入位置约束的改进DeepSORT算法,同时针对图像中目标较小时定位失败的问题,设计了基于目标运动模型的改进算法。试验结果表明:
1)基于位置约束的改进DeepSORT算法能够有效地减少漏匹配,提升了多目标跟踪准确率;
2)基于目标运动模型的相对定位算法能够有效地解决目标较小时定位失败的问题,可以对目标进行连续跟踪,提升了定位精度。