ori:https://zhuanlan.zhihu.com/p/125395219(从CenterTrack出发谈谈联合检测和跟踪的MOT框架)
只是便于快速知悉跟踪工作路数,具体细节强烈建议看所有的原论文。
1.Detect to Track and Track to Detect---ICCV2017
主流MOT算法:基于检测框架,即Detection based Tracking(DBT),故检测质量对跟踪效果影响很大。
该paper初步将检测与跟踪结合:
基于两阶段目标检测特点。
改进版的R-FPN,将第一阶段得到的多尺度特征图进行交互。
借鉴经典单目标跟踪Siamese网络框架,不同之处在于,原版Siamese使用1:1滤波,本文使用n:n滤波。
为何使用R-FCN网络?因其独特的position-sensitive ROI pooling模块:
传统两阶段目标检测网络:使用全连接网络预测分类和回归情况;
R-FCN:使用全卷积方式,将分类得分转化到特征图通道上,使特征图保持了一定的平移不变性(https://zhuanlan.zhihu.com/p/113443895)。这有利于跟踪任务的相关滤波。
本文巧妙之处:在传统目标检测的分类和回归任务上,增加跟踪分支,巧妙地将跟踪任务转化成了预测相邻两帧各目标位置相对偏移量的回归任务。
当然,跟踪分支只考虑与gt的IOU>0.5的预测框,并且目标要同时出现在这两帧。多任务损失函数如下:
最重要的一点:如何做ROI Tracking,即在不丢失相对位置关系的前提下,执行过个区域的相关滤波。
看单目标跟踪中的CF类传统方法,比如KCF(https://zhuanlan.zhihu.com/p/56405827):通过循环移位的方式,利用相关滤波估计目标在图像中的位置变化。但这种方式并不适合多目标的相关滤波。
作者借鉴FlowNet的Corr操作,因为光流任务也是估计相邻像素的偏移量,所以用在这里很合适。
Corr公式:
可以看到:此处的滤波不是针对卷积核的,而是将两幅特征图的多个k*k区域分别进行相关滤波,保持了相对位置。
最后对于多目标跟踪的部分,作者对于两个目标的连接代价设置如下:
其中p表示的相邻两帧的检测置信度,最后一项指的是相邻两帧的目标框与预测到的位置的IOU>0.5时为1,否则为0。至此我们就可以得到跟踪预测位置和代价矩阵了,后面就是常规的多目标跟踪算法操作了。
2. Real-time multiple people tracking with deeply learned candidate selection and person re-identification(MOTDT)--ICME2018
与第一篇不同的是:只利用R-FCN对观测框进行进一步的前景/背景分类,即进行目标框的分类过滤;而且将检测与跟踪框架分离。
本文框架也是along with现在的多目标跟踪算法框架:检测+外观模型+运动模型
算法流程:
(1)卡尔曼滤波(kalman filter):目标运动估计
(2)合并检测框和跟踪框,then do NMS,修正每个目标框的置信度。
这里面L表示检测框的长度,通过上面两个公式,作者将检测置信度和跟踪轨迹置信度结合在一起了。
(3)提取ReID特征,先基于ReID相似度进行匹配,再对剩余的利用IOU进行关联。
MOTDT这个算法框架很经典,对于后续的一些多目标跟踪算法也起到了启发作用。
3. Tracking without bells and whistles(Tracktor++)---ICCV2019
Tracktor++算法是去年出现的一类全新的联合检测和跟踪的框架,这类框架与MOTDT框架最大的不同在于,检测部分不仅仅用于前景和背景的进一步分类,还利用回归对目标进行了进一步修正.
只要熟悉两阶段目标检测算法的应该都能理解这个算法,其核心在于利用跟踪框和观测框代替原有的RPN模块,从而得到真正的观测框,最后利用数据关联实现跟踪框和观测框的匹配。算法流程如下:
有了检测模块的加持,自然对于检测质量进行了增强,所以效果也得到了大幅提升。
……
……
7. Tracking Objects as Points(CenterTrack)
CenterTrack是CenterNet作者根据Tracktor++这类跟踪机制,通过将Faster RCNN换成CenterNet实现的一种的多目标跟踪框架,因此跟踪框也就变成了中心点。
除了对相邻两帧利用CenterNet进行检测之外,还利用了上文中提到的D&T框架的策略,预测的同时存在于两帧中目标的相对位移,由此进行跟踪预测。对于提供的观测框,作者通过将这些观测框的中心点映射到一张单通道的heatmap上,然后利用高斯模糊的方式将点附近的区域也考虑进去。
因此CenterTrack相对于CenterNet的不同之处在于:输入维度增加了(两幅图像和一张观测位置的heatmap),输出变成了两张图像的目标中心位置、大小和相对偏移。
对于测试环节的数据关联部分,作者直接通过中心点的距离来判断是否匹配,是一种贪婪的方式,并非匈牙利算法那种全局的数据关联优化。在训练过程中,作者并非只用相邻帧进行训练,允许跨3帧。