-
论文名称:3D Multi-Object Tracking: A Baseline and New Evaluation Metrics
-
论文作者:Xinshuo Weng, Jianren Wang, David Held and Kris Kitani (CMU)
-
收录情况:IROS 2020
简介
3D多目标跟踪系统,更多时候关注系统的准确性,对系统复杂度和计算开销考虑较少,而这些方面对于3D跟踪系统的可用性非常重要。本文与其他工作形成鲜明对比,仅用简单的方法,使跟踪系统达到实时的运行效率。
AB3DMOT利用PointRCNN,从3D点云获得物体检测结果,然后组合 3D Kalman Filter 和 Hungarian algorithm进行状态估计和数据关联,没有像主流方法那样用深度神经网络做,所以系统非常高效(不计3D检测,207.4 FPS)。
另外一个重要的创新点:已有的KITTI数据集,其实是在2D 图像平面评价3D MOT系统,有些错位的感觉,目前仍然缺乏3D MOT evaluation metrics,本文提出了3D MOT evaluation tools,评价3D MOT系统在3D空间的表现。基于新的评价指标,AB3DMOT达到了最好的效果(:。
相关工作
- 2D MOT & 3D MOT
- 关键模块是数据匹配,建立匹配损失函数
- 离线方法:考虑全局最优,构建网络流图,成本最小的流优化算法
- 在线方法:考虑前后两帧,deep association network
-
匹配使用的特征:人工设计,神经网络学习物体外观和运动信息
-
追踪物体在三维空间运动
- Kalman Filter、Hungarian algorithm,无论在2D还是3D都会用到,基础知识需要掌握
- 关键模块是数据匹配,建立匹配损失函数
主要方法
AB3DMOT 由以下几个步骤组成
- 3D Object Detection
- 3D Kalman Filter: State Prediction
- Data Association
- 3D Kalman Filter: State Update
- Birth and Death Memory
- 3D Object Detection
- 使用PointRCNN
- $t$时刻的检测结果 $D_t = {D_t^1, D_t^1, \cdots, D_t^{n_t}}$
- 对于 $D_t^j, j\in{1,2,\cdots,n_t}$,表示为以下元组
- $(x,y,z,\theta,l,w,h,s)$
- 物体中心位置$(x,y,z)$
- 物体尺寸$(l,w,h)$
- 朝向角$\theta$
- 置信度分数$s$
- 3D object检测器的好坏,必然对3D MOT的表现有影响
- 3D Kalman Filter: State Prediction
- 这一步要根据前一帧信息,预测物体下一帧物体轨迹的状态
- 本文假设运动模型中速度是恒定不变的,独立于相机自身运动,即仅用运动模型估计相机自身和其他物体的运动
- 物体轨迹的状态用向量$T$描述
- $(x,y,z,\theta,l,w,h,s,v_x,v_y,v_z)$
- 物体在3D空间的速度:$v_x,v_y,v_z$
- $T$中不包含角速$v_{theta}$,是为了简化问题,作者说加上$v_{theta}$对跟踪表现提升不明显
- 前一帧物体轨迹的状态 $T_{t-1} = { T_{t-1}^1, T_{t-1}^2, \cdots, T_{t-1}^{m_{t-1}} }$
- $m_{t-1}$ 是第$t-1$帧中物体轨迹数
- 经过3D Kalman Filter预测,得到第$t$帧的轨迹$T_{est}$
- 运动模型
- $x_{est} = x + v_x, y_{est} = y + v_y, z_{est} = z + v_z$
- 因此,对于 $T_{t-1}^i \in T_{t-1}, i\in{1,2,\cdots,m_{t-1}}$,它在第t帧预测的状态是$T_{est} = (x_{est},y_{est},z_{est},\theta,l,w,h,s,v_x,v_y,v_z)$
- Data Association
- 目标跟踪,数据匹配是关键的一步
- 匹配:预测的物体轨迹$T_{est}$和当前的检测$D_t$
- 构建一个关联矩阵$A$,矩阵尺寸为 $m_{t-1} \times n_t$,$A_{ij}$等于$T_{est}^i$与$D_t^j$的
- 3D Box IoU
- 物体中心距离的相反数(距离越远,值越小)
- 小于阈值时,拒绝匹配
- 这时数据关联问题,就成了经典的二部图匹配问题
- Hugarian algorithm在多项式时间内给出最佳匹配
- 匹配的输出结果形如,$w_t$是最终匹配的对数
- $T_{match} = { T_{match}^1, T_{match}^2, \cdots, T_{match}^{w_t}}$
- $D_{match} = { D_{match}^1, D_{match}^2, \cdots, D_{match}^{w_t}}$
- $T_{unmatch} = { T_{unmatch}^1, T_{unmatch}^2, \cdots, T_{unmatch}^{m_{t-1}-w_t}}$
- $D_{unmatch} = { D_{unmatch}^1, D_{unmatch}^2, \cdots, D_{unmatch}^{n_t-w_t}}$
- 构建一个关联矩阵$A$,矩阵尺寸为 $m_{t-1} \times n_t$,$A_{ij}$等于$T_{est}^i$与$D_t^j$的
- 3D Kalman Filter: State Update
- 承接第3步数据关联:
- 第2步状态预测具有不确定性,这一步基于第$t$帧已匹配的检测$D_{match}$,对$T_{match}$中轨迹状态进行更新
- 更新后的轨迹状态记为 $T_{match} = { T_{match}^1, T_{match}^2, \cdots, T_{match}^{w_t}}$
- 根据贝叶斯法则,一个更新后的轨迹状态 $T_t^k = (x^{`},y^{`},z^{`},\theta^{`},l^{`},w^{`},h^{`},s^{`},v_x^{`},v_y^{`},v_z^{`})$
- 权重取决于 匹配的轨迹状态$T_{match}$、已匹配检测的状态$D_{match}$的不确定性
-
$k \in {1,2,\cdots,w_t}$
- 对于物体朝向$\theta$,直接应用贝叶斯法则更新会产生问题,预测的朝向很可能与实际朝向完全相反,对同一个物体这就是矛盾的
- 一般的做法是取$T_{match}^k$和$D_{match}^k$的均值,但是这样会使得关联的轨迹和真实估计的3D IoU变小
- 本文的做法是当$T_{match}^k$和$D_{match}^k$的差异大于$\frac{\pi}{2}$时,给这个差异再加$\pi$,这样物体朝向的差异总会小于等于$\frac{\pi}{2}$
- 承接第3步数据关联:
- Birth and Death Memory
- 不断地有物体退出视野、进入视野,有必要单独设置一个模块,管理每个物体的生命周期,这就是本模块的作用
- 管理方法
- $D_{unmatch}$ 包含可能新出现的物体
- 为避免出现伪正例,直到$D_{unmatch}^p$在连续Bir$_{min}$帧得到匹配,才创建新物体的轨迹状态$T_{new}^p$
- 一旦$T_{new}^p$创建,它的状态初始化为距离最近的检测到的物体$D_{unmatch}^p$的状态,速度$(v_x,v_y,v_z)$为0
- $p \in {n_t - w_t}$
- $T_{unmatch}$ 没有匹配到的预测轨迹,可能离开了当前场景
- 为了避免删掉真实存在的物体轨迹,只有当连续Age$_{max}$帧未能成功匹配,才把$T_{unmatch}^q$删掉
- $q \in {m_{t-1} - w_t}$
- $D_{unmatch}$ 包含可能新出现的物体
3D MOT 新的评价指标
- 如上文所述,很多评价3D MOT方法的公开数据,虽然提供了物体的3D位置,但是评价指标用图像平面的跟踪就能计算得到,或者把3D位置投影到图像平面进行计算,这显然是有问题的
-
2D IoU分数高,不代表3D IoU也高
- 新的指标直接计算3D IoU,不在图像平面计算
- 这种想法看似人人都能想到,但之前就没每人尝试去做
- 之前的指标,如 CLEAR metrics 没有考虑检测物体置信度对3D MOT的影响
-
- Integral Metrics: AMOTA and AMOTP
- compute $\color{red}{AMOTA}$ and $\color{red}{AMOTP}$ by integrating MOTA and MOTP over all recalls
- 平均划分40个recall,每段2.5%
- AMOTA: average MOTA
- \[MOTA = 1 - \frac{FP+FN+IDs}{num_{gt}}\]
- \[AMOTA = \frac{1}{L} \sum_{r \in \{\frac{1}{L},\frac{2}{L},\cdots\,1\}} (1 - \frac{FP_r+FN_r+IDs_r}{num_{gt}})\]
- AMOTP: average MOTP
- sAMOTA: scaled Accuracy Metric
- 缩放到区间[0,1],为什么要做缩放呢?那必然是目前的区间不是[0,1],原因如下
- \[MOTA_r = 1 - \frac{FP_r+FN_r+IDs_r}{num_{gt}} \le 1 - \frac{FN_r}{num_{gt}}\]
- \[\le 1 - \frac{num_{gt}\times(1-r)}{num_{gt}} = r\]
- 因此 $MOTA_r \le r$,在此基础上得到的 AMOTA 不能达到区间[0,1]右端点,所以要缩放
- 缩放方法
- 提出 \(sMOTA_r = max(0, 1-\frac{FP_r+FN_r+IDs_r-nums_{gt}\times(1-r)}{r \times num_{gt}})\)
- 取 $max(0, \cdot)$ 是为了保证下界为0,后一项可能为负
- \[sAMOTA = \frac{1}{L} \sum_{r \in \{\frac{1}{L},\frac{2}{L},\cdots\,1\}} sMOTA_r\]
- 提出 \(sMOTA_r = max(0, 1-\frac{FP_r+FN_r+IDs_r-nums_{gt}\times(1-r)}{r \times num_{gt}})\)
实验
- 数据集和评价指标
用KITTI、nuScenes数据集做实验
- 3D MOT: AMOTA, AMOTP, sMOTA
- 2D MOT: MOTA, MOTP, IDs, Frag(number of trajectory fragmentation)
- 对比方法
- FANTrack, IV 2020
- mmMOT, ICCV 2019
- 感觉只对比两种方法太少
-
KITTI验证集,汽车三维跟踪效果
-
KITTI验证集,行人三维跟踪效果
- nuScenes验证集,所有类别跟踪效果
- 不明白所有类别怎么做成一个表的?
- 不明白所有类别怎么做成一个表的?
-
AB3DMOT各组件消融分析
- 在作者提出的新评价指标:AMOTA, AMOTP, sMOTA上,相比于其他方法的提升还是比较明显的
总结
直观感觉本篇论文简单有效,这正是做系统需要的,视觉研究做个系统事半功倍。与我们之前的想法不谋而合,就是用算出来的3D位置辅助数据关联模块,也想到了目前评价3D MOT还是用一些二维计算方法,但是动手太慢,别人早已经做完了,我们还停留在想法阶段。
剩下可能改进的点:一是目前3D MOT运行效率的评价仅考虑数据关联部分,像本文200多的FPS已经很高了,但是不包括3D检测的时间,而这才是大头,所以要把这个问题提出来,给出一套整体的方案,对比不同方法整体的计算时间;二是目前数据关联方法仅用3D IoU或物体中心距离有些粗糙,可以寻求改进。