一、摘要:
3D多目标跟踪(MOT)是自动驾驶与机器人必不可少的实时应用模块。然而,最近3D MOT的工作倾向于更多地关注开发准确性, 较少考虑计算成本和系统复杂性。相比之下,这项工作提出了一个简单而准确的实时基线3D MOT系统。
作者使用现成的3D目标检测算法(PointRCNN)来获得定向的3D边界框。然后将3D卡尔曼滤波器和匈牙利算法用于状态估计和数据关联。虽然提出的方法直观且简单,仅是现有方法的组合,却在Kitti多目标赛道中获得非常好的结果。
为了评估此基线系统,作者提出了一个新的3D MOT扩增评估方法到官方KITTI 2D MOT评估方法中,包含两个新的指标。作者提出的3D MOT算法在KITTI的3D MOT赛道中建立了新的最佳性能,从而改进了3D MOTA的72.23现有技术为76.47。同时,作者将3D跟踪结果投影到2D图像平面并与已发布的2D MOT方法进行比较,此方法在官方KITTI 2D MOT开源方案中达到第二名。此外,我们提出的3D MOT方法运行速率为214.7 FPS,比最先进当前开源方案中第一名的2D MOT系统快65倍。
代码详见 :https://github.com/xinshuoweng/AB3DMOT
二、主要贡献:
(1)提供简单而准确的3D MOT baseline 在线和实时应用系统。
(2)将3D MOT评估方法扩增进KITTI 2D MOT评估中; 并提出两个MOT鲁棒性提出新评价指标(average MOTA and MOTP),这两个指标目的是解决当前单一 trajectory confidence threshold的问题,此评价方法平均了多个threshold,更好的反应了MOTA与MOTP的特性。
三、主要方法:
![33e04179f8416884935c164c3be59bfe.png](https://img-blog.csdnimg.cn/img_convert/33e04179f8416884935c164c3be59bfe.png)
上图为整个方法pipeline,主要分为五阶段:
(1)3D目标检测模块提供LiDAR点云的边界框
(2)3D卡尔曼滤波器将对象状态预测到当前帧
(3)数据关联模块匹配预测轨迹与当前帧检测框
(4)3D卡尔曼滤波器基于测量结果更新对象状态
(5)birth&death 记忆模块控制新出现和消失的轨迹
以下进行五大模块详细解说 ~
(1) 3D目标检测
作者在这模块直接使用了现成的算法,测试了PointRCNN跟Monocular 3D Object Detection,并直接用他们的pretrain model拿来跑,最终这模块输出是连续视频中的每一帧检测出的目标框,用
(2)3D卡尔曼滤波器-状态预测
作者使用的是定速(constant velocity)的卡尔曼滤波器,并将卡尔曼滤波器推广到3D范围,物体轨迹T共用十个维度(x, y, z, θ, l, w, h, vx, vy, vz)进行推算。
具体公式如下:
x = x + vx | y = y + vy | z = z + vz
同一帧多物体就变成
(另外,作者发现加上角速度
(3)数据关连
在有了每一帧的3D目标检测
(4)3D卡尔曼滤波器-状态更新
此阶段,我们将刚匹配好的目标轨迹进行状态更新(
另外作者发现车的方向性预测与卡尔曼预测出的车方向性,会有较大的偏差,因此作者提出了一个简单的矫正方法,当观测值与预测值大于
(3D目标检测常见的坑 : 3D目标检测中,有些算法为了简化方向性预测,会直接的将方向性预测省略,透过周期性的方法将值限制在
作者在这边处理的方式不太洽当,因为目标检测出错概率比轨道推算出来的大,照理说应该是把目标检测值+
(5)birth&death 记忆
物体可能超出检测范围而消失,也可能出现新的检测目标在范围中,需要新增新的轨道,因此我们需要添加记忆模块,去更新目标追踪中轨迹的生存周期。
新增目标轨迹:
系统中,我们默认
这边作者没有说明满足连续存在
移除目标轨迹:
同样的,我们默认
作者在论文第四章节有说明为什么要新增3D MOT评价方法、MOTA、MOTP,有兴趣小夥伴可以去读原文~
四、实验结果:
![b8cbfd642e757d2e84cbd6485b1441f3.png](https://img-blog.csdnimg.cn/img_convert/b8cbfd642e757d2e84cbd6485b1441f3.png)
直上结果~
两个对比,分别为作者提出的评价方法3D MOT和Kitti 2D MOT。
(1) 3D MOT
官方赛道没有3D MOT的结果,因此作者复现了两个经典3D MOT算法,分别为FANTrack(最精准)、Complexer-YOLO(最快),除了MT跟ML指标外,其他评价指标都有不错的结果,尤其是速度。
(2) 2D MOT
作者在Kitti 2D MOT排行上其实当前只排到第14名,但在开源方案中,排到了第二,值得一提的是,即便前面的方法点刷很高,但在速度方面真的是远远不及此方法,因此作者也说提出来的方法创新性也许不足,但真的简单又快,才把论文名称取名成baseline。
Ablation Study也做了一些实验,分别包含
- 换其他目标检测器
- 换成2D 卡尔曼滤波器
- 卡尔曼滤波器中多加角速度
- 一些参数的调优(F, Age)
有兴趣小夥伴请详略原文。
五、结论:
本文提供一个简单且快速的3D MOT,新增了3D MOT评价与两个评价指标,同时在Kitti榜上刷的不错的成绩,虽然创新性并没有这么高,但确实是一个还不错的工作。
心得(挖坑):
- 自动驾驶中到底有没有必要在3D进行多目标追踪 ?
一般在自动驾驶中做目标追踪都是在2D上,其主要原因是因为感知后的预测与决策模块多以BEV角度当做输入,因此3D的感知最终都会回到2D,本文作者相信3D追踪能够更好的发展自动驾驶追踪模块,我们也应该深入探讨,是否有必要使用3D感知后的输出与其他模块进行结合,达成更高的追踪精度。(个人认为假设上下坡度很大时,z轴的预测确实还是满重要的,但是现在目标是发展L4,在限定范围中做自动驾驶,不太会出现极端陡坡情况,未来想要进展到L5时,这块应该是免不掉的)
2. 多传感器融合+多目标追踪
作者在Ablation Study中,将目标检测器从PointRCNN换成Monocular 3D Object Detection,也就是仅用图片进行3D目标检测,来做为每一帧的目标检测器,效果可想而知的会下降,因未单图做3D目标检测,mAP还是不够。但这件事不代表没有价值,先前已经有图片+目标检测的算法出现,如Frustum Pointnet、与其相关工作,我认为未来研究方向可以在2D多目标追踪(并非指BEV,而是正面视角)与3D多目标追踪(可以是BEV或是真3D)上多做结合,两种视角若能融合的好,则能更好的追踪每个物体的轨迹。
各位读者欢迎在下面留言自己的阅读心得~
知识补充:
- 匈牙利算法
- 卡尔曼滤波器
为了促进自动驾驶研究人员更多的交流,本专栏开设一个自动驾驶paper reading学习交流群组,每天推送新的论文,有兴趣请扫码,备注自动驾驶交流群+公司or学校+研究方向,我再拉近群。
![7376927f12f55b93a811c18df8f31cb0.png](https://img-blog.csdnimg.cn/img_convert/7376927f12f55b93a811c18df8f31cb0.png)