精度优秀,速度214.7 fps !卡内基梅隆大学开源强大的3D多目标跟踪系统
3D 多目标跟踪在自动驾驶和机器人领域具有重要应用,其意为跟踪检测到的物体包围框位于 3D 空间(点云)而非 2D 平面。
昨日,卡内基梅隆大学开源一个强大的3D多目标跟踪代码,在其论文A Baseline for 3D Multi-Object Tracking中,作者详述了算法思路和实验结果。作者称其为基线baseline,该算法框架简单,使用的各个模块算法也是直接使用或者稍微改进现有算法。
尽管算法简单,但该代码在著名的KITTI 车辆多目标跟踪数据集上,将3D 多目标跟踪精度(MOTA)从72.23提高到76.47,可谓改进效果明显。同时如果将得到的3D跟踪结果投影到2D空间,与2D算法比较结果,其在官方KITTI排行榜上也高达第二名,也是很赞了。
更为难能可贵的是,算法运行速度非常快,高达214.7 FPS,跟当前2D 多目标跟踪的state-of-the-art 相比,速度是其65倍!
该论文作者信息:
两位作者均来自知名的卡内基梅隆大学机器人研究所。
下图是提出的算法与其他2D多目标跟踪算法在KITTI 2D MOT数据集上精度与fps的散点图:
可见,该文算法在速度一骑绝尘的情况下,精度位于所有算法第二名。
算法框架
下图展示了该文提出的3D 多目标跟踪算法的系统组成:
3D 目标检测模块:负责在每一帧的点云数据中进行目标检测。作者使用了两种现有的 state-of-the-art 3D 目标检测方法:
S. Shi, X. Wang, and H. Li. PointRCNN: 3D Object Proposal Generation and Detection from Point Cloud. CVPR, 2019.
X. Weng and K. Kitani. Monocular 3D Object Detection with Pseudo-LiDAR Point Cloud.arXiv:1903.09847, 2019. URL http://arxiv.org/abs/1903.09847.
3D 卡尔曼滤波模块:作者将2D卡尔曼滤波简单扩展到3D ,用于根据跟踪历史数据预测下一帧可能的目标的位置,同时该模块接收从数据关联(Data Association)模块反馈的结果进行状态更新。
数据关联(Data Association)模块:使用匈牙利算法对3D 目标检测的结果和3D卡尔曼滤波预测的轨迹进行匹配。并将匹配的结果输入新生消亡记忆模块(Birth and Death Memory)和3D卡尔曼滤波模块。
新生消亡记忆模块(Birth and Death Memory):用于对新出现的目标和消失的目标进行记忆和遗忘。
实验结果
作者认为现有的评价标准没有体现出多目标跟踪结果的置信度,不能很好的评估3D 目标跟踪的精度。故作者提出了新的AMOTA(平均多目标跟踪精度)和AMOTP(平均多目标跟踪置信度)的评估准则(具体定义请查看论文)。
下表为作者在KITTI 车辆跟踪验证集上与已有算法的比较,可见在主要指标上均取得了明显的效果改进。
下表为将3D 多目标跟踪的结果投影到2D,与2D 多目标跟踪算法的结果比较,该文提出的算法在速度最快(214.7FPS)的同时(CV君仔细看了论文,作者没有公布使用的硬件,但可以看出作者指的是CPU上的速度,而非GPU),大部分情况下精度位于第二高。
针对算法各个部分,作者进行了大量的消融实验:
下图为该文提出的算法与FANTrack跟踪结果的比较:
可见,在FANTrack出错的时候,该文算法没有出现目标跟错和跟丢的情况。
总结一下,卡内基梅隆提出的算法简单、高效,精度还很高,尤其是在3D 多目标跟踪方面,是一个强大的baseline,非常值得借鉴。
论文地址:
https://arxiv.org/abs/1907.03961v1
代码地址:
https://github.com/xinshuoweng/AB3DMOT
有帮助的话,请文末点个好看吧~