摘要
在MOTR的基础上加入了额外的目标检测器,把锚点query作为detect query的先验。
Introduction
首段指出,在Dancetrack等数据集上,传统方法表现欠佳,这意味着现有MOT方法对复杂运动的研究有待改进。第二段说明了MOTR性能的不足,作者认为原因在于JDT方法和数据关联过程有冲突。在此基础上,有一种改进方式是直接将track query的预测和额外detector的结果做匹配,然而这种方式不仅违反了作者端到端设计的初衷,同时也并未取得较好效果。
第三段介绍了MOTRv2对原版的改进。作者类比对DETR的改进(基于anchor来初始化object query),提出用基于锚点的sin-cosPE代替原有detect query中可学习的PE,从而把decoder任务转化为预测锚点的偏移。
Method
研究的动机:MOTR网络同时学习detection和association,这两个任务难以平衡(有冲突),能否把detection交给sota检测器去做,MOTR网络专心学association?
总体结构
三部分:YOLOX,Proposal Query Generation,交互模块
Proposal Query Generation介绍
初始的proposal query生成:
shared query(广播后)+由置信度生成的sin-cosPE
问题:两次PE的结果是怎么样的?
按我的理解,最终embedding的结果是由置信度(或P向量)与PE拼接得到
proposal传递
先看DAB-DETR结构
MOTRv2的proposal传递结构
从第0帧看起,qs可以理解为MOTR中的detect query,第一次self attention的目的是把上一帧传递过来的embedding(qtr)做特征提取,结果作为Deformable attention的K。Deformable attention的Q由YOLOX proposal经refine后得到,也就形成了一个anchor-based结构,Q相当于anchor,K相当于新的proposal,V是原图像的特征,这次attention的输出是基于anchor搜索后得到的img feature,再通过MLP得到anchor的补偿量,与YOLOX给出的anchor进行运算即可得到预测。
同时,输出也会作为当前帧的track query集合输入到下一帧,图中的这个过程省略了QIM模块,QIM模块会分别处理track query得到的预测和shared query得到的预测,其中qs用于预测新出现物体,根据置信度阈值选择高分物体加入track query,qtr用于确认已跟踪物体,置信度低的会放到query memory bank中等待后续处理(重新检测到并返回track query,或者寿命达到上限被删除),置信度高的作为一个query输入TAN去与之前bank中的query做attention,得到最终track的结果,与新出现的query合并后作为下一帧的track query集合输入。
当然,这部分只考虑了bbox的预测,ID匹配是通过MOTR的两个机制实现的:
1 一个query只用于预测一个物体,即该query的预测结果是带有ID标识的
2 loss设计要考虑到ID错误的惩罚 (没有看出MOTR的loss设计有该部分)