论文地址:https://arxiv.org/abs/2104.00380

代码地址:https://github.com/songguocode/TADAM

介绍和相关工作

现在的MOT任务针对遮挡这方面的问题,主要有两个思路。一个是检测方面预测出遮挡目标的新位置坐标,另一个是集中生成更具辨别性的embedding来应对遮挡。尽管有些工作想到同时优化这两点,但是却将这两点看作是两个独立的任务。作者开始探索这两个任务,并且想要他们从各自任务中受益。

平常的位置预测方法,几乎不考虑目标之间的交互,从而容易在相邻目标之间的坐标更新时形成漂移。由于错误预测了边界框,提取的关联嵌入会恶化,并且会沿着连续帧进行传播,从而伤害关联时的embedding。同时,提升embedding质量,也只是改善关联步骤,减少关联错误,并不会帮助预防一开始的位置预测。并没有进行如下图1说明的协同工作。

本文中,作者提出了一个统一模型,将位置和embedding关联优化,互相受益,增强追踪表现,增强遮挡鲁棒。

为了带来真实的联合,作者将两个任务互相加入对面的过程中,这两个任务通过目标注意模块分心物注意模块以及辨别性记忆聚合连接起来。ID embedding的优化不仅用于计算紧密度,也用于集中目标生成,抑制漂移。如此操作,位置的预测就等价于ID感知,能够对周围目标也敏感,从而在遮挡的情况下纠正错误,抑制漂移。与此同时,遮挡情况下,目标高质量的检测也会使得高质量的embedding被提取。

如此,目标检测和ReID两者互相联合优化,形成良性反馈,随着训练的深入,影响更加明显,从而增加复杂场景下的追踪效果。

方法

为了达到上述所述的效果,作者引入了时间感知的目标注意和分心物注意,以形成对目标更好的关注,并抑制来自分心物的干扰,以及一个身份感知的记忆聚合方案,以产生更强大的注意,取名为TADAM,其中TA和DA代表目标注意力和分心注意力,M代表记忆聚合,所有模块同时通过一个模型优化,总体框架如下图2。

问题公式化
t t t帧之前的序列中,一个追踪的目标可以描述为 T t − 1 t a T^{ta}_{t-1} Tt1ta,在 t − 1 t-1 t1帧中其边界框表示为 B t − 1 t a B^{ta}_{t-1} Bt1ta。附近干扰可以表述为 T t − 1 d i T^{di}_{t-1} Tt1di,相应的边界框为 B t − 1 d i B^{di}_{t-1} Bt1di F t t a F^{ta}_t Ftta表示目标在新的帧 t t t上通过 B t − 1 t a B^{ta}_{t-1} Bt1ta提取的特征。 E t t a E^{ta}_t Etta E t d i E^{di}_t Etdi相似的代表目标和其分心干扰提取到的embedding E r t a E^{ta}_r Erta E r d i E_r^{di} Erdi

回归位置预测的初步研究

图2(a)和(b)没有关联,通过回归说明了位置预测的跟踪过程。用于关联的embedding E t t a E^{ta}_t Etta通过一个提取过程获得,位置预测主要来自于推断一个给定的不太精确的框获得一个紧密拟合的边界框,通过一个smooth L1损失预测四边的偏移。于此同时,分类头通过一个输入边界框的推理类和GT类的注释的交叉熵损失获得。

这种位置预测方法消除了被主动跟踪目标之间的数据关联,而通过匈牙利算法进行匹配仍然是必要的,通过比较身份嵌入来寻找新检测中丢失目标的潜在再现。

时间感知的目标注意与分散注意(TA和DA)

当一个目标 T t a T^{ta} Tta t − 1 t-1 t1 t t t帧进行位置预测,使用过去边界框 B t − 1 t a B^{ta}_{t-1} Bt1ta t t t帧提取新的预测特征 F t t a F^{ta}_t Ftta,并且可以使用预测特征 F t t a F^{ta}_t Ftta来进行预测其新位置。但是当一个分心干扰 T d i T^{di} Tdi在附近,并且其边界框 B t − 1 d i B^{di}_{t-1} Bt1di B t − 1 t a B^{ta}_{t-1} Bt1ta有一个大的重叠,那么实现一个正确的预测会十分困难。

假设 T t a T^{ta} Tta T d i T^{di} Tdi遮挡, T d i T^{di} Tdi在前,然后预测 T t a T^{ta} Tta的新边界框会接近 T d i T^{di} Tdi,因为 F t t a F^{ta}_t Ftta包含了 F t d i F^{di}_t Ftdi的属于 T d i T^{di} Tdi的部分。连续的如此预测,会导致 B t t a B^{ta}_t Btta B t d i B^{di}_t Btdi的逐渐漂移。

为了应对如此场景,引入了一个(TA)模块来增强 F t t a F^{ta}_t Ftta中属于 T t a T^{ta} Tta的区域。同时一个 D A DA DA模块来抑制 F t t a F_t^{ta} Ftta中的属于 T d i T^{di} Tdi的部分,减少其影响。

目标注意力通过目标最新的原始ID embedding E t t a E^{ta}_t Etta和历史聚集embedding E r t a E^{ta}_r Erta。同时分心干扰注意力通过 E t d i E^{di}_t Etdi和干扰的推理embedding E r d i E^{di}_r Erdi获得。为了简化,干扰器通过比较最近的最大IoU的追踪目标获得,即万一有多个干扰器,选择最大重叠率的那个。两个注意力运用到 F t t a F^{ta}_t Ftta来获得一个微调的预测特征 F ~ t t a \tilde{F}^{ta}_t F~tta。从而获得一个更好的位置预测 B t t a B^{ta}_t Btta,为了进一步增强注意力模块,区分性内存聚合旨在提供对象随时间的聚合引用,以使保持模块具有区分性和时间感知性。

辨别性聚集Non-local注意力
为了增强或者抑制预测特征 F t t a F^{ta}_t Ftta,作者从推理embedding E r t a E^{ta}_r Erta计算到提出的原始embedding E t t a E^{ta}_t Etta的注意力映射。embedding维度为 R C × H × W R^{C\times H \times W} RC×H×W,C代表维度,H,W代表尺寸。 E t i t a E_{t_i}^{ta} Etita E r j t a E_{r_j}^{ta} Erjta分别代表 E t t a E_t^{ta} Etta E r t a E^{ta}_r Erta上的 R C R^C RC深度的两点,其中 i , j ∈ [ 1 , H W ] i,j\in[1,HW] i,j[1,HW],表示两个任意的空间坐标。

用一个辨别性聚集的目标推理embedding E r j t a E^{ta}_{r_j} Erjta作为输入,聚集过程后面介绍,一个从 E r j t a E_{r_j}^{ta} Erjta E t i t a E_{t_i}^{ta} Etita聚集的Non-local目标注意力可以表示如下: f ( E t i t a , E r j t a ) = θ ( E t i t a ) ϕ ( E r j t a ) ρ ( E r j t a ) (1) f\left(E_{t_{i}}^{t a}, E_{r_{j}}^{t a}\right)=\theta\left(E_{t_{i}}^{t a}\right) \phi\left(E_{r_{j}}^{t a}\right) \rho\left(E_{r_{j}}^{t a}\right) \tag{1} f(Etita,Erjta)=θ(Etita)ϕ(Erjta)ρ(Erjta)(1)

θ θ θ ϕ \phi ϕ为卷积层,用于计算两个点的相关性, ρ ρ ρ为另一个卷积层,用于聚集 E r j t a E_{r_j}^{ta} Erjta的表示作为输出。

通过序列化处理 E r j t a E^{ta}_{r_j} Erjta上所有 j j j E t i t a E_{t_i}^{ta} Etita的所有 i i i坐标,就可以获得从 E r t a E^{ta}_{r} Erta E t t a E_t^{ta} Etta的所有non-local注意力。由于 E r t a E_{r}^{ta} Erta是具有身份感知记忆的聚合,因此这个过程就变成了目标历史推理和当前初始embedding的辨别性聚集non-local注意力。

相似的,辨别性聚合non-local分心注意力从一个分心目标的推理embedding E r j d i E^{di}_{r_j} Erjdi E t i t a E^{ta}_{t_i} Etita的注意力计算: g ( E t i t a , E r j d i ) = θ ( E t i t a ) ϕ ( E r j d i ) ρ ( E r j d i ) (2) g\left(E_{t_{i}}^{t a}, E_{r_{j}}^{d i}\right)=\theta\left(E_{t_{i}}^{t a}\right) \phi\left(E_{r_{j}}^{d i}\right) \rho\left(E_{r_{j}}^{d i}\right) \tag{2} g(Etita,Erjdi)=θ(Etita)ϕ(Erjdi)ρ(Erjdi)(2)

在计算的注意力中,大的值暗示其位置越有可能属于目标,分心注意力中,高响应注意力的部分暗示该区域有更大的可能属于分心目标,然后通过微调的预测特征 F ~ t t a \tilde{F}_{t}^{t a} F~tta来增强预测: F ~ t t a = F t t a ⊕ w [ f ( E t t a , E r t a ) ⊖ g ( E t t a , E r d i ) ] (3) \tilde{F}_{t}^{t a}=F_{t}^{t a} \oplus w\left[f\left(E_{t}^{t a}, E_{r}^{t a}\right) \ominus g\left(E_{t}^{t a}, E_{r}^{d i}\right)\right] \tag{3} F~tta=Fttaw[f(Etta,Erta)g(Etta,Erdi)](3)

f f f g g g代表向量化操作, ⊕ , ⊖ \oplus,\ominus ,分别代表像素级别的相加和相减。 w w w代表规范化注意力输出权重。 E t t a E_t^{ta} Etta E t d i E_t^{di} Etdi分别表示从各自记忆中提取的目标推理和分心推理embedding。

TA和DA注意力操作如上图2(b), F ~ t t a \tilde{F}_{t}^{t a} F~tta用于上节所述的位置预测,目标的新位置 B t t a B^{ta}_t Btta的预测可以被认为更加聚焦其自身,更加少的注意分心目标的结果,如此更多的正确的预测在遮挡条件下做出,从而减少噪声id embedding在数据关联和记忆存储时带来的影响。

目标和分心注意力自适应权重
如此设计的TA和DA模块对于容易样本的作用不大,如此,公式3前设计一个固定权重 w w w是次优化的。目标经历大程度的遮挡时候,应该期待更强的增强和抑制,然而重叠小的时候期待不作处理,为了处理这个问题,一个自适应的权重被设计如下: w = max ⁡ ( i o u ( B t t a , B t d i ) − o min ⁡ , 0 ) 1 − o min ⁡ (4) w=\frac{\max \left(i o u\left(B_{t}^{t a}, B_{t}^{d i}\right)-o_{\min }, 0\right)}{1-o_{\min }}\tag{4} w=1ominmax(iou(Btta,Btdi)omin,0)(4)
i o u ( , ) iou(, ) iou(,)代表两个输入box的iou, B t t a B_{t}^{t a} Btta代表目标box, B t d i B_{t}^{di} Btdi代表其分心目标的box。 o m i n o_{min} omin表示最小的重叠级别, m a x ( , ) max(, ) max(,)表示较大的输出,这个权重,在每对目标-分心目标之间计算。

当iou超过 i o u m i n iou_{min} ioumin时候,非0权重属于0-1,否则为0。输出的DA和TA通过这个权重进行微调。

身份感知内存聚合

目标和分心目标的推理embedding也会加入到注意力的计算,直接存储过去帧的目标embedding作为推理embedding在复杂环境下是噪音严重的。为了增强注意力计算的鲁棒性,提出了一个身份感知内存聚合来计算更全面的推理作为TA和DA的注意力模块,从而位置预测和embedding都可以进一步提高。

每一帧,目标注意力和分心注意力通过原始目标embedding E t t a E^{ta}_t Etta获得,然后用于生成微调预测特征 F ~ t t a \tilde{F}_{t}^{t a} F~tta。相似的, E t t a E^{ta}_t Etta本身也会被注意力处理形成微调embedding E ~ t t a \tilde{E}_{t}^{t a} E~tta用于数据关联和聚合,如同公式3生成的 F ~ t t a \tilde{F}_{t}^{t a} F~tta E ~ t t a \tilde{E}_{t}^{t a} E~tta的维度为 R C × H × W R^{C\times H \times W} RC×H×W,推理特征聚合后的处理需要空间维度用于计算注意力,因此需要在聚合前后要保持空间信息。

并且,作者期望聚合可以自动决定是否输入值得被聚合,而非储存所有的embedding信息。作者设计了一个具有卷积选通递归单元(GRU)的鉴别存储模块,用卷积代替GRU中的矩阵乘法。这为跨帧的时间关系建立了一个内存,同时也保持了空间维度。更新聚合embedding描述如下: E r t = u p d a t e ( E ~ t , E r t − 1 ) (5) E_{r_{t}}=u p d a t e\left(\tilde{E}_{t}, E_{r_{t-1}}\right) \tag{5} Ert=update(E~t,Ert1)(5)

u p d a t e ( ) update() update()是一个记忆更新函数, E r t − 1 E{r_{t−1}} Ert1代表过去的记忆状态, E r t E{r_{t}} Ert代表用 E ~ t \tilde{E}_{t} E~t E r t − 1 E{r_{t−1}} Ert1更新的记忆特征。目标和分心目标都如此更新。

Experiments

MOT Challenge public赛道指标:

消融实验

遮挡追踪成功百分比(对比Tracker++V2)

总结

本篇论文不同于以往的大家的思路,想通过解耦等方法将检测和ReID任务分离开来,争取两个子任务互相之间的影响降到最低,本篇寻求的通过将检测和ReID扭在一起,用相互的信息来互相提升,协同优化,通过注意力模型强化目标预测,提取更加可靠的embedding信息,并且embedding信息也可以反过来增强注意力模型,抑制追踪漂移。