摘要
该论文利用回归的方式将Tracking-by-detection的分离过程统一起来,再利用运动建模和建立重识别特征提升跟踪效果。
基本框架
Tracktor的基本流程如下:
Tracktor并不需要重新训练检测器,它复用了检测的中间结果来进行各个目标的生命周期管理,主要是目标的创建与删除。从上图可以很清晰的看出,Tracktor分为两个部分。绿色的是回归部分,它将t-1帧时的目标位置在t帧时预测出来,若此时对应的分类结果低于阈值,则删除掉该边界框。红色部分表示边界框无法与任何一个轨迹(同一个目标对应的边界框的集合)进行匹配,因此创建新的轨迹,并将当前的边界框作为初始结果。结合Faster-RCNN的网络结构进行理解可能会比较清晰。
那么到底是怎样进行回归的呢?原论文中仅有一句话。
In the case of Faster R-CNN, this corresponds to applying the RoI pooling with the previous bounding box coordinates on the features of the current frame.
也就是说,将t-1帧的目标坐标在t帧时进行ROI Pooling然后获得对应的回归结果和分类结果。简单的来说,就是将RPN网络的结果直接用坐标进行代替,输入到Fast-RCNN网络中进行预测。Faster-RCNN网络结构如下,由RPN网络和Fast-RCNN网络构成。
再看Tracktor流程的红线部分,将整个图片重新检测一次,得到当前t帧的检测结果。只有当检测结果与任意的轨迹预测结果(回归结果)的重叠率都低于阈值时才认为是新轨迹。当预测轨迹的分类结果低于阈值时删除轨迹(目标离开或被non-object遮挡),当目标之间互相遮挡时暂时停止轨迹更新,并利用NMS进行边界框处理。
效果提升
可以看到,在进行目标删除时,使用的是分类的结果,而实际上,这里要判断的并不是该物体是否是当前种类的物体,而是是否是之前的物体。简单的来讲,这里应该判断类内关系,而不是类间关系,而检测模型判断的是类间关系。也就是作者所说的:
One might argue that our Tracktor does not really aim at re-detecting the same person in the next frame, but rather re-detecting any close-by person
因此作者使用了两种方法来增强类内的判别能力。
- re-id方法
构造一个Siamese网络用来比较新检测目标和暂不更新的目标,用以失活的目标恢复。 - 运动建模
主要针对相机运动与低帧率情景做特殊处理,使用简单的camera motion compensation (CMC)处理相机运动(利用ECC进行图像对齐),使用constant velocity assumption (CVA)处理低帧率场景。
实验结果
这里截取的是MOT官网的竞赛结果,可以看出该算法效果拔群。
一些思考
1.多目标跟踪的核心在于增大类内目标的判别能力,这里还是使用行人重识别特征对类内目标进行处理,这样的话多目标跟踪就很难做成一个统一的端到端的框架。
2.该框架需要用到two-stage检测中的回归方法,而在实际的工程使用上,one-stage算法使用的相对较多,如何迁移到one-stage算法上呢?
3.虽然加入了目标的生命周期管理和类间关系增强方法,但为了追求效率,这些方法过于简单,在稍微复杂的情景下并不能取得太好的效果,因此需要选择更为高效的方式去增强类间关系。