文献来源
一、什么是MOTSFusion?
利用目标轨迹进行三维重建,再利用重建来改进跟踪效果的多目标跟踪算法。
本文贡献:
1.提出了一个能进行长期跟踪的算法,利用动态3D物体重建来完成对长期遮挡的目标的跟踪。
2.提出的算法能从3D重建中获得目标的3D运动信息,从中恢复漏检的目标。
3.通过实验验证了算法的有效性
二、为什么提出MOTSFusion?
多目标跟踪算法,既要能在目标连续存在的帧中跟踪目标,也要在物体因遮挡而不可见的长时期内跟踪目标。但目前很多算法大多专注于前者,当目标长时间地消失或者被遮挡的时候,这些算法的跟踪效果就大打折扣了。所以本文提出了利用三维重建来帮助跟踪目标,以应对遮挡和恢复丢失的目标,改善长期跟踪结果。
三、怎么实现MOTSFusion?
算法流程图:
算法结构:
1)输入
本算法使用视频、每帧摄像机的自主运动(ego-motion)和深度估计作为输入。在本算法的实验中,深度估计使用的是DispNet3估计的空间深度信息,自主运动估计来自一个SLAM算法,目标检测算法使用RRC和Track R-CNN网络,光流算法使用此算法。这些算法也可以换别的算法,灵活性比较大。
2)bounding box到分割掩码
估计每个检测出来的bounding box的分割掩码。利用BB2SegNet,使用一个卷积神经网络来裁剪调整bounding box框住的图像的大小,使其全部都变到一个固定的尺寸,然后为每一个bounding box输出一个分割掩码。
3)产生2D轨迹
利用当前帧t到下一帧t+1的光流信息,对于当前帧的每一个分割掩码进行warp操作,计算出warp过的掩码和下一帧中的分割掩码之间的IoU(如果IoU大,说明这两个掩码是同一个目标的可能性大)。利用匈牙利算法把t+1帧的掩码和先前已经存在的轨迹关联到一起。如果没有关联上,那么就认为是生成了新的轨迹。
4)4D场景重构
为了得到3D物体运动信息,需要在一个世界坐标系下获得每一个时间点的每一个物体的3D位置信息。
利用深度信息dt、摄像机内参K、相机运动矩阵Tt(车载相机位置随时间积累的齐次变换矩阵)来创建场景的4D(三维坐标+时间)点云,公式如下:
在这里,(u,v)是指当前帧t的像素坐标。(x,y,z)C指的是在摄像机坐标下,像素(u,v)所对应的3D点坐标,(x,y,z)W指的是它在世界坐标系下的坐标。
这种4D场景重建用于估计独立于车载相机运动的物体的运动,并用于可视化的3D跟踪,如下图所示:
这张图的上面一部分展示了在世界坐标系中利用每个物体轨迹的3D bounding box进行全局场景重建的结果,下面一部分展示了对上面部分中的三个物体轨迹进行动态重构的结果。
5)动态3D目标融合
我们计算了一组刚体变换,将每个时间段里的物体轨迹的3D点集合warp成一个一致的3D物体重建。我们从时间t的像素掩码内的点到时间t+1的同一轨迹的像素掩码内的点中拟合出一个齐次变换来。这个变换在所有的时间段里累积,因此一个目标轨迹里的所有点都被warp成一个一致的3D重建。
为了减少不正确的深度估计、物体掩码的影响,我们要过滤用于拟合齐次变换的三维点集,把那些异常点剔除。具体实现上,利用每个点p与其k个最近的邻居Nk的局部可达密度lrdk来计算局部异常因子LOFk,局部可达密度lrdk使用可达距离rdk,它由两点p和q之间的闵可夫斯基距离dmin和q的k距离dk定义,后者是q的k个近邻的闵可夫斯基距离的最大值,如下所示:
通过上式,可以求出每个点的局部可达距离,然后通过下式可以算出局部异常因子LOFk:
随后,过滤掉那些LOFk高于所有点的中位数的点。对于时间t和t+1的剩余3D点,使用光流矢量来关联两个时间段之间的点。接着进一步过滤这些点,过滤到只有那些在两个时间段之间存在对应关系的点存在。然后,我们在掩码上最多抽取200个对应点。在这些点上,通过最小化两个点云中每一对对应点之间的L2距离来进行非线性最小二乘优化,以确定使两个3D点云之间最佳的齐次变换。进一步,我们把这种齐次变换限制成3-DoF变换(只有x、z轴的平移和绕着地面的法线旋转),然后用ξ来参数化这个变换,精确地描述了一个物体在世界坐标系下的时间段之间的变化。对于每一个小轨迹,通过对所有相邻的帧进行计算这个变换,并积累变换,将每个时间点的点云合并为一个以物体为中心的参考框架的3D重建。
6)3D轨迹合并
通过分析轨迹的3D运动信息一致性,来进行轨迹合并。
利用非线性拟合的残差来衡量这种刚体变换的准确度,我们定义了一个“信赖运动区域”(Trusted Motion Region, TMR),指最接近轨迹末端的连续运动变换的集合,这些变换都低于一个残差阈值(要求至少要2个连续变换)。
我们把在TMR中的每个变换 ξ = (ξx, ξz, ξθ) 转换到以物体为中心的坐标系ξ中,公式如下:
我们使用过滤后的三维点集的中位数作为我们的物体中心p。我们还对来自立体估计的物体位置的不确定性进行建模。我们使用多变量正态分布来模拟物体在每个时间段的位置。协方差可由下式求得:
FL(p), FR(p)分别是左边相机和右边相机的投影矩阵。Σpix=(σu 0;0 σv)表示像素测量中的不确定性,这里的σu 和 σv都设置为0.5。
两个小轨迹之间的3D运动一致性是通过使用TMR的平均相对变换推断两个轨迹之间的3D运动,包括早期TMR的最后一帧和晚期的第一帧。从这些3D位置估计和它们的不确定性来看,两个轨迹的3D运动一致性由这些3D位置估计(根据协方差进行加权)的平均马氏距离给出。如果由于缺乏TMR,一个小轨迹的推断运动不能被稳健地估计,我们只通过向另一个小轨迹推断来确定三维运动的一致性,并计算我们没有运动估计的小轨迹最后一帧的时间步长的一致性。如果两个轨迹都没有鲁棒的运动估计,那么假设两者都是静止的。
如果两个轨迹之间的三维运动一致性超过一个阈值,我们就将它们合并。
7)漏检恢复
首先我们对每一帧估计一个3D bounding box,使用p作为bounding box中心,并假设行人和汽车的固定尺寸,由KITTI三维检测训练集中的3D bounding box的平均宽度/高度/长度给出。如果物体发生了明显的移动,我们将bounding box的方向θ设置为运动的方向,否则,我们将θ设定为当前时间段内物体中所有3D点的鸟瞰图中具有最大特征值的特征向量的方向(即差异最大的方向)。
我们将这个3D bounding box投影到图像空间,得到一个2D bounding box,并将其与前一帧的bounding box的四角通过bounding box内所有点的中位光流矢量进行平均。再用一个BB2SegNet得到这个bounding box的分割掩码。通过获取新掩码内各点的深度值并使用公式1和公式2将其投射回3D世界坐标系来检查这个分割掩码的有效性。如果新掩码的3D点和3D bounding box 中心比较接近,就认为这个掩码通过了一致性检测。 这个检测决定了物体是否被遮挡,因为如果被遮挡,属于新掩码的点将明显在估计的3D bounding box前面。这被用来填补缺失的检测。除了在合并的轨迹之间运行缺失检测恢复,我们还在整个轨迹的开始和结束时运行,我们对每一帧都应用这一检测,直到我们到达一致性检测失败的一帧,这时物体移出摄像机的视线范围,或者我们到达视频序列的结束。
8)MOTSFusion的在线版本
为了实现长期跟踪,MOTSFusion可以在时间上向前和向后推断物体的轨迹。但这种双向推断的方法一般都是离线的。所以为了能在线使用MOTSFusion,我们只在时间上向前推断物体轨迹。
实验结果
本文利用KITTI数据集以及Mots:Multi-Object tracking and segmentation中的验证集作为数据集。
下图为实验结果,实验是在KITTI MOTS验证集上进行的。MOTSFusion分别使用了不同的目标检测和分割算法的组合,可以看到,使用更好的检测和分割算法能够提高跟踪的性能。
消融实验
从上表中可以看出,只基于重建的轨迹合并Ours(no fill)比最初的跟踪Ours(2D)性能提高了,ID switch有所降低。
当采取漏检恢复的时候(Ours),可以看到FN的数量有所下降。
上表是改变不同的深度输入做的消融实验,本文使用的是立体深度,可以看到用激光雷达会更加精确,但它存在相机-雷达校准问题,而单目深度往往不够精确。MOTSFusion在使用激光雷达时的表现与使用立体深度时相似,这表明本文算法对立体深度中存在的不精确性具有鲁棒性,而且它可以成功地处理稀疏的输入。当使用精度更低的单目深度估计时,MOTSFusion的表现没有那么准确,但仍然比不使用任何深度估计的2D版本有所改进。
这表明本文算法对噪声深度输入具有鲁棒性。
和其他算法对比
从上表中还可以看出,在使用同样的目标检测和分割算法时,本文算法的性能都比同时期的state-of-the-art算法有所提高。
此外,还进行了MOTSFusion的在线版本和其他算法的对比,就IDS而言,在线版本的效果几乎和离线版本一样好。
上图是在KITTI MOT验证集和Mots:Multi-Object tracking and segmentation中的验证集上进行bounding box跟踪实验的结果,可以看到本文算法表现较好。
本文算法的速度在0.44秒/帧,如果用激光雷达的话速度会更快一些。
总结
本文提出了MOTSFusion算法,把3D目标重建和跟踪结合在一起,互相改进,以实现长期跟踪的目的。从实验结果来看,本算法的性能不错。