文献来源
一、什么是SimpleTrack?
一种检测-跟踪的MOT算法baseline,由预处理模块、运动预测模块、数据关联模块和轨迹管理模块组成,其中每个模块所用的方法都是在现有多目标跟踪算法常用方法的基础上分析改进得来的。
二、为什么提出SimpleTrack?
现有的多目标跟踪算法的框架大致可分为预处理模块、运动预测模块、数据关联模块和轨迹管理模块,SimTrack对四个模块中常用的一些方法进行分析和改进,形成一个简单但效果不错的baseline。
三、怎么实现SimpleTrack?
上图是3D MOT算法的大致流程,在第k帧,检测器检测出若干目标,对这些检测结果进行一些预处理,一些比较常规的操作是选择置信度分数高于某个阈值的bounding boxs作为后续跟踪的输入(上图显示的预处理是把冗余的bounding box修整了一下)。同时,根据前k-1帧的轨迹,要对这些轨迹目标做一个运动预测(大多数3D MOT算法常用的是卡尔曼滤波还有恒速预测模型),然后把第k帧的检测结果和预测结果关联在一起,再进行后续的运动预测模型更新和轨迹管理。
1、检测结果预处理:
一般来说,目标检测模块会输出一大堆置信度分数不一的bounding boxs,要选择哪些bounding box作为后续跟踪的输入,在一定程度上会影响算法的性能。
如上图所示,如果只是非常简单地设立一个阈值(上图中这个阈值为0.24),高于这个阈值的bounding box留下,低于这个阈值的剔除掉,那么会导致图上第二列的结果:当一个目标被检测出来的bounding box只有一个,虽然它的置信度分数很低,但如果把这个bounding box剔除掉了,那在后续跟踪模块里,相当于压根没检测出这个目标,会影响最终算法的准确率。所以在预处理模块中,SimTrack选择采用非极大值抑制(NMS),可以从上图看出,NMS可以有效消除重叠的低质量的bounding box,同时保留只有一个的低质量的bounding box。
上图通过在两个数据集上实验证明了采用NMS对算法性能的提升。
2、运动预测:
一般运动预测模块常用的方法是卡尔曼滤波(KF)和恒速预测模型(CV),如下图所示,这是分别在NuScenes和Waymo数据集上使用这两种运动预测方法的算法性能。
可以看到,KF在Waymo数据集上表现更好而CV在NuScenes数据集上表现更好,这是因为NuScenes数据集的帧率比较低,只有2Hz,KF比较适用于帧率比较高的因为这样一来信息比较多,KF的预测效果更好。后续作者把NuScenes的帧率调整到10Hz(和Waymo数据集一样),可以发现这个时候KF在NuScenes上效果略胜一筹。
SimTrack选择使用卡尔曼滤波作为运动预测的方法。
3、数据关联:
关联矩阵:3D GIoU
现有的3D MOT方法常常用IoU或者距离来衡量检测结果和预测结果的相似度,相似度越高,就越倾向于这两者属于同一个目标。
可以从上图看到,如果使用IoU来衡量相似度,如果检测结果和预测结果之间重叠的部分为0,就不会认为这二者是同一个目标,但这种情况是存在的,比如新目标出现或者是目标突然动作(比如静止的东西突然运动起来,运动的突然停下来等)。而用距离来衡量相似度,一般用马氏距离或者欧式距离,这样虽然可以解决IoU的问题,但是难以应付那些置信度比较低的检测结果,就像上图右侧展示那样,红色框是正确结果,蓝色框是预测结果,绿色框是错误结果,但是蓝色框和绿色框的中心点距离比较接近,它就会错误地和绿色框进行匹配,而这种情形下,IoU方法却可以正确匹配。
因此SimTrack采用GIoU方法,来结合IoU方法和距离方法的优点&#