点击下方
卡片
,关注“
自动驾驶之心
”公众号
今天自动驾驶之心为大家分享迈驰&旷视等团队最新的工作—MCTrack!问鼎三大榜单。如果您有相关工作需要分享,请在文末联系我们!
自动驾驶课程学习与技术交流群事宜,也欢迎添加小助理微信AIDriver004做进一步咨询
>>
点击进入→
自动驾驶之心
『
目标跟踪
』
技术交流群
论文作者
| Xiyang Wang等
编辑 | 自动驾驶之心
向大家推荐一下我们最新的工作---MCTrack
KITTI/nuScenes/Waymo三榜单SOTA(招实习生呐....需求在文章最后~)
paper:MCTrack: A Unified 3D Multi-Object Tracking Framework for Autonomous Driving
code:https://github.com/megvii-research/MCTrack
机构:迈驰智行、旷视、国防科大、川大、中科大
1. 写在前面&出发点
自2016年SORT[1]算法提出以来,多目标跟踪任务已经经历了多年的发展,从最初的TBD(Tracking-By-Detection)范式发展到TBA(Tracking-By-Attention), JDT(Joint-Detection-Tracking)等范式,从单模态到多模态跟踪,从2D跟踪发展到3D跟踪,可谓百花齐放,百家争鸣。在3D跟踪领域,KITTI、nuScenes和Waymo是常用的数据集,它们各有特点,数据格式差异显著,采集场景和帧率也尽不相同。迄今为止,几乎没有一种方法能够在这三个数据集上都达到SOTA性能。
而对于评价指标而言,目前主流的包含MOTA, AMOTA, HOTA等,这些指标均是在评价一条轨迹是否能够正确、稳定匹配上,但是对于匹配之后,跟踪这个任务所需要对下游预测规划输出的关键信息(如速度、加速度、角速度)是否合理、是否能满足需求依然打个问号?这也就意味着我们缺乏对运动信息的评测指标。
基于上述问题:
-
我们的目标是首先提供一种统一的感知结果格式,以便在不同数据集上刷榜时,无需担心数据格式的差异。
-
其次,我们希望提供一个统一的跟踪框架,能够在KITTI、nuScenes和Waymo这三个常用数据集上都达到SOTA性能。
-
最后,我们希望建立一套“运动指标”,用以评估跟踪任务输出给下游任务的运动信息(如速度、加速度等)的正确性,这其实在实际工程应用中至关重要。
2. 领域背景
3D多目标跟踪在自动驾驶领域作为感知与预测规划任务之间的桥梁,扮演着至关重要的角色。学术界已经提出了多种跟踪范式,包括基于检测的跟踪(TBD)、基于注意力的跟踪(TBA)和联合检测跟踪(JDT)等。通常情况下,TBD范式在各方面的性能都优于其他范式,并且由于其不需要GPU资源,这极大地推动了该范式在工程中的应用。总体来看,TBD范式的方法主要分为两个步骤:首先是目标检测,然后是数据关联,具体流程如图1所示。
图1
-
-
数据关联:利用感知结果与历史轨迹进行多对多的匹配,通常会涉及到代价函数的计算、匹配函数的选择、卡尔曼滤波预测等等。
很显然,这种范式下,跟踪结果很大程度上依赖于感知模块的性能。通常来说,感知性能越出色,跟踪效果也越好。这种范式在某种程度上既有优势也有劣势。其优势在于结构简单明了,不需要复杂的处理步骤,工程落地非常容易。劣势一在于由于跟踪过程基于检测结果而非原始数据(如外观特征等),一旦检测性能下降,跟踪性能也会随之受到影响。劣势二在于这种方式很难处理密集场景,一旦场景中目标数量过多,仅通过空间位置关系来计算相似度会非常困难,但对于自驾场景而言,无论是高速还是城区,障碍物并不会过多,即通过空间位置关系通常是可以hold住的(当然,引入特征是更好的)。尽管目前在各大3D MOT榜单上基于TBD范式的性能已经比较好了,但我们认为依旧没有达到这类范式的上限,可靠稳定的代价函数依然待发掘。
另一方面,在学术研究中,大家对跟踪任务的关注点通常集中在轨迹连接的准确性,而连接后的进一步处理往往被忽视。然而,在工业界,跟踪任务作为感知的最下游,负责汇总和优化各类信息,并将结果传递给预测和规划模块。这其中包括了诸如速度、加速度等重要的运动信息,而这些信息在学术界的跟踪任务中几乎没有涉及。这在一定程度上反映了学术界与工业界的某种脱节。
在以上背景下,诞生了MCTrack(MC--迈驰智行),提供了一套统一的pipeline,一套评估速度的运动指标。
3. MCTrack
3.1 统一数据格式
我们对KITTI、nuScenes和Waymo三大数据集的感知结果格式进行了统一整合,这意味着只要采用TBD范式的方法,便可以直接使用这一统一格式,通过一套pipeline运行三个数据集,无需编写多个预处理脚本来适配不同数据集。我们将按照场景、帧、障碍物、全局信息等维度进行存储,整体格式包含以下内容:
image2024-10-18_19-38-6.png
3.2 整体框架
整体框架遵循简单直接的TBD范式,先进行检测,再进行匹配,并通过不同维度的信息接入卡尔曼滤波器,以确保输出给下游模块的信息稳定性。值得注意的是,在匹配阶段,我们采用了多视角相似度计算方法,首先在BEV平面上进行第一次匹配,然后在RV平面(图像2D平面)上进行第二次匹配。相似度计算过程中,我们提出了更为鲁棒的Ro_GDIoU。
http://img2.jintiankansha.me/get2?src=http://picx.zhimg.com/80/v2-436883a9be383d7fb17ad978b7f6ffd9_1440w.png
3.3 Ro_GDIoU
在3D多目标跟踪中,常用的代价矩阵包括IoU、GIoU、DIoU和欧式距离等。在3D空间中,交并比和距离是两种不同的度量方式:交并比及其变体侧重于从体积上衡量两个3D框的相似度,而距离则用于描述两个框之间的相对接近程度。在跟踪任务中,仅使用其中一种度量方式进行匹配,无法确保在各类场景中都取得理想效果。DIoU在某种程度上结合了交并比和欧氏距离,但当两个框之间没有交集时,DIoU退化为纯距离度量,无法同时兼顾体积相似度和中心点接近度。一个显而易见的改进是将GIoU和DIoU融合在一起。
基于此,我们提出了Ro_GDIoU,这是一种融合了旋转角、交并比与中心距离的更强相似度计算方法。旋转角的引入如图所示:当将3D框投影到BEV平面时,这些框通常会呈现不同的角度。如果像在2D检测任务中那样将其“掰正”,将无法准确衡量两个框的真实相似度。因此,需要按照它们的实际朝向来计算交并比,以更准确地反映它们的相似性。
Ro_GDIoU具体计算方式如下面的伪代码所示:
3.4 不同维度的匹配方式
二次匹配其实并非是一个新颖的操作,诸多SOTA方法都有涉及。我们在实验中发现,之所以需要二次匹配,是因为所使用的代价函数无法自调节以适应感知框的抖动,导致无法采用统一相似度阈值来度量,所以自然而然就诞生了二次匹配。通常而言,这些方法都会选择在第二次匹配时使用更加宽松的匹配阈值,但问题在于感知的抖动能通过放大匹配阈值来消除掉吗?
在工程中我们发现一个非常有意思的现象,基于图像的3D感知在深度上时常会出现抖动,尤其是对于远距离的小目标而言,有时抖动会达到10m以上。这种情况下,仅通过调整匹配阈值无法完全解决问题,依然会出现frag和idsw。
我们尝试将3D框投影到前视平面上(即压缩深度),虽然在一定程度上缓解了问题,但也导致后视目标与前视目标出现错误匹配,这显然是不可接受的。于是,我们进一步尝试在不同相机视角下进行投影,以确保不同视角的目标不会相互匹配,从而形成了本文中的二次匹配模块。整体的匹配流程如下图的伪代码所示:
4. 运动指标
为了解决当前多目标跟踪(MOT)评估指标未能充分考虑运动属性的问题,我们提出了一系列新的运动指标,包括速度角度误差(VAE)、速度范数误差(VNE)、速度角度倒数误差(VAIE)、速度反转比(VIR)、速度平滑度误差(VSE)和速度延迟误差(VDE)。这些运动指标旨在全面评估跟踪系统处理运动特征的性能,涵盖速度、角度及速度平滑度等运动信息的准确性和稳定性。