来源:arXiv:2101.02702v1
作者:慕尼黑科技大学和Facebook AI研究所
Facebook官方版本的基于transformer的MOT模型,蛮逗的,和我们上一篇介绍的TransTrack: Multi-Object Tracking with Transformer,题目很相似,提出时间也很相似,TransTrack和TrackFormer把Track异或掉就是Transformer。。。
这个方法和TransTrack思路上差别还是挺明显的,显然这个方法比TransTrack更加优雅。
TrackFormer的重点是提出了一种track query的东西,也就是我们上次在TransTrack中提到的,把learned object query和track feature结合在一起的方法。
TrackFormer的框架图如下图所示:
a) 单独看t-1帧,就是标准的DETR过程,其中白色的query框表示learnable object query,个数为, 一般应该大于video中的轨迹个数。
b) 后续帧可以看到其query不单有个learnable object query还有个track query来自于上一帧,这里的track query是前一帧中跟踪到的轨迹特征的变换,变换过程如下图所示。为什么需要变换呢?因为前一帧获得的embedding主要用来cls和det,与learned object query并不在一个空间内,因此若同时作为query,embedding需要进行一定的空间变换,文章采用的是self-attention模块实现。
需要解释的是track query这个词,是指在video中保持gt的id号的query,即只需要在第一次出现时利用二分匹配获得标签,其后均使用第一次的id。
训练损失:DETR的检测损失,主要不同点在于gt的分配。(训练过程采用两帧作为一个样本)
对于第一帧完全按照DETR中二值匹配的方式进行gt的分配。第二帧在分为两部分处理,即track query和detect query。track query部分在前一帧已经分配了对应gt的id,在当前帧看gt中这些id是否依然存在,若存在,则继续将该id的gt分配给该track query,否则将背景类分配给该track query,表示该轨迹在当前帧没有出现。剩下的未分配给track query的id,则和DETR一样分配给object query。
数据增强策略:
- 时序上的增广,不单单是相邻帧,而是由一定range内随机选择的两帧构成样本;
- 在第二帧输入track query时,对track query按一定比率进行omit,这一步应该非常关键,只有合适的drop out才能保证learned object query具有较好的学习结果。如果没这一步扩展,那DETR的训练更多的依赖于第一帧的数据,对于track query和detect query联合训练,包括映射到同一空间,会有很大不足;
- 主要是处理轨迹终止的情形,这一部分是从前一帧的background中选择一定的query作为track query,那么对应的第二帧类别就是background,但这其实是有些问题的,并不能真正的模拟轨迹终止问题。
推理过程:
- 新轨迹的产生: learned object query的cls score大于一定阈值认为是新轨迹产生;
- 轨迹的增长:依据track query进行增长;
- 轨迹的终止:track query的cls score小于某阈值,track_nms,主要为了处理embeddings of strongly overlapping cases.猜测过程应该是对track query的box进行nms处理。
- 轨迹的找回:无
实验细节:
Backbone采用ResNet101,不使用DC5操作,其他的和DETR一致。
queries的数目一般远大于gt的个数,因此会导致分类损失中前景和背景类别不均衡,因此对background类别的损失权重额外添加了权重0.1。
训练周期: DETR在COCO上按原始模型方式训练500个epoch,之后再crowdHuman数据集上训练200个epoch,再在MOT17上以降低后的学习率训练200个epoch。除了COCO预训练过程,后续训练在8张V100上训练了3天左右。。。对于散修好像很狠很狠有挑战。
训练数据单独利用video序列规模较小,因此对single图像进行了扩展,即利用resize和crop进行连续帧图像的模拟。
Mask 的处理。这里不提了。
public detection。 为了更公平的与其他基于公共检测结果的方法对比,该方法对track进行了初始化的筛选,具体来说,如果一个track的初始化位置距离某个detection满足条件则认为是该detection初始化的track,其他的track不考虑。
消融实验:
Table3中Track query attention即track embedding到detect query的映射学习模块,Track augmentations包括前面提到的3点。最后一行是仅检测,然后利用输出的embedding进行匹配。让我想起来TransTrack里我们提到的他没使用embedding,而只使用query的index匹配的缺陷。
Table4中表示选择.可以发现使用crowdHuman辅助数据进行预训练性能提升明显。
Table5.验证NMS作用。发现detection的NMS作用不大,因为DETR本身就能取代NMS作用。而NMS tracking作用明显,因为避免了track query的混淆。
SOTA方法对比:
可以发现TrackFormer的可改进方向应该是IDs部分,也就是说增强特征的鉴别性。 FP这个指标也很高,说明检测精度还可以进一步提升。
结论:
TrackFormer是官方版本的基于transformer的MOT框架,其最大的创新点在于trackquery的使用以及具体训练的实现。
改进思路包括俩:
- 目标的可区分性
- 丢失轨迹的找回