阅读笔记-TrackFormer:Multi-Object Tracking with Transformers

来源:arXiv:2101.02702v1
作者:慕尼黑科技大学和Facebook AI研究所


Title

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的框架图如下图所示:

TrackFormer

a) 单独看t-1帧,就是标准的DETR过程,其中白色的query框表示learnable object query,个数为N_{object}, 一般应该大于video中的轨迹个数。
b) 后续帧可以看到其query不单有N_{object}个learnable object query还有N_{track}个track query来自于上一帧,这里的track query是前一帧中跟踪到的轨迹特征的变换,变换过程如下图所示。为什么需要变换呢?因为前一帧获得的embedding主要用来cls和det,与learned object query并不在一个空间内,因此若同时作为query,embedding需要进行一定的空间变换,文章采用的是self-attention模块实现。
TrackFormer encoder-decoder architecture

需要解释的是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。

数据增强策略:

  1. 时序上的增广,不单单是相邻帧,而是由一定range内随机选择的两帧构成样本;
  2. 在第二帧输入track query时,对track query按一定比率进行omit,这一步应该非常关键,只有合适的drop out才能保证learned object query具有较好的学习结果。如果没这一步扩展,那DETR的训练更多的依赖于第一帧的数据,对于track query和detect query联合训练,包括映射到同一空间,会有很大不足;
  3. 主要是处理轨迹终止的情形,这一部分是从前一帧的background中选择一定的query作为track query,那么对应的第二帧类别就是background,但这其实是有些问题的,并不能真正的模拟轨迹终止问题。

推理过程:

  1. 新轨迹的产生: learned object query的cls score大于一定阈值认为是新轨迹产生;
  2. 轨迹的增长:依据track query进行增长;
  3. 轨迹的终止:track query的cls score小于某阈值,track_nms,主要为了处理embeddings of strongly overlapping cases.猜测过程应该是对track query的box进行nms处理。
  4. 轨迹的找回:无

实验细节:
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中\times表示选择.可以发现使用crowdHuman辅助数据进行预训练性能提升明显。
Table5.验证NMS作用。发现detection的NMS作用不大,因为DETR本身就能取代NMS作用。而NMS tracking作用明显,因为避免了track query的混淆。

SOTA方法对比:


SOTA

可以发现TrackFormer的可改进方向应该是IDs部分,也就是说增强特征的鉴别性。 FP这个指标也很高,说明检测精度还可以进一步提升。

结论:
TrackFormer是官方版本的基于transformer的MOT框架,其最大的创新点在于trackquery的使用以及具体训练的实现。
改进思路包括俩:

  1. 目标的可区分性
  2. 丢失轨迹的找回
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容