MeMOTR

MeMOTR: Long-Term Memory-Augmented Transformer for Multi-Object Tracking[1]

作者是来自南京大学的Ruopeng Gao和Limin Wang。论文引用[1]:Gao, Ruopeng and Limin Wang. “MeMOTR: Long-Term Memory-Augmented Transformer for Multi-Object Tracking.” 2023 IEEE/CVF International Conference on Computer Vision (ICCV) (2023): 9867-9876.

Time

  • 2024.Feb

Key Words

  • long-term temporal information

总结

  1. MOT是希望能够有效地得到目标的时序信息。不幸地是,现有的方法只显式地利用了相邻帧的目标特征,然而缺乏建模长程信息的能力。在本文中,提出了MeMOTR,一个长程的记忆增强的Transformer,用于多目标跟踪。作者的方法是,通过利用带有customized memory-attention layer的长期的记忆,能够使相同目标的track embedding更加stable和distinguishable。这显著提高了模型的目标关联能力。
  1. 多目标跟踪旨在检测多个目标,并且维持他们的id。MOT能够应用在多个下游任务上,例如动作识别和行为分析。也是一个重要的technique。根据MOT的定义,这个任务可以被分为两个部分:目标检测和关联。很长一段时间,行人的跟踪数据集占据主流。然而,这些数据集在目标关联上挑战性不够,因为它们几乎是线性运动,因此,tracking-by-detection方法实现了MOT的SOTA性能。首先,利用一个robust的目标检测器,来独立地定位每帧中的目标,用ReID特征或者IoU进行关联,然而,在复杂场景中关联这些目标是有挑战的,像group dancers和sports players。这些相似的外观和不稳定的运动可能造成现有的方法失效。最近,基于Transformer的跟踪方法引入了端到端的MOT范式,通过这个交互和Transformer中的progressive decoding of detect and track queries,同时完成检测和跟踪。这个范式有望具有更大的潜力用于目标关联,因为Transformer的灵活性,特别是在上述复杂的场景中。虽然这些基于Transformer的方法实现了很好的性能,它们尝试去解决一些复杂的问题,例如相似的外观。作者假设更好地利用时序信息能够提供tracker更有效和robust的每个tracked的目标的表征,从而缓解了上述问题,提高跟踪性能。不幸地是,之前的方法利用图像或者两个相邻帧的目标特征,缺乏利用长程的时序信息。

  2. 基于上述的分析,本文中,作者提出了一个长程的Memory-augmented Multi-Object Tracking method with Transformer,简写为MeMOTR。作者探索了detect 和tarck embeddings来定位newborn和tracked objects via Transformer Decoder respectively。作者的模型用 exponential recursion update algorithm 来保持长程的记忆。之后,将这个记忆inject到track embedding之中,降低它的abrupt changes,提高模型的关联能力。当很多目标出现在视频中的时候,用一个memory-aatention layer来产生更多的distinguishable 表征。另外,作者提出了一个adaptive aggregation 来融合相邻帧的目标特征,提高跟踪的鲁棒性。

  3. 另外,作者argue, DETR中可学习的detection query没有特定目标的语义信息。然而,基于Transformer的MOT方法中的track query带有tracked object的信息。这个不同能够造成语义信息gap,降低最终跟踪的性能。因此,为了克服这个问题,作者用了一个轻量的decoder来执行preliminary object detection,输出带有特定语义的detect embedding然后,将detect 和track embeddings联合输入到subsequent decoder,使得MeMOTR跟踪结果更加准确

  4. Tracking-by-Detection:这是一个广泛采用地MOT的范式,这些方法通过关联给定的detections来得到轨迹。经典行人tracking场景中的objects总是有不同的外观和常规的运动模式。因此,外观匹配和线性运动估计广泛用来在连续帧中匹配目标。SORT用IoU来匹配kalman filter的predictions和detected boxes,DeepSORT用了额外的网络来提取目标特征,然后利用余弦距离用于匹配。JDE、FairMOT和Unicorn进一步探索了appearance embedding的架构和匹配。ByteTrack基于YOLOX采用了一个robust detector,然后重新利用低置信度的detections来增强关联能力。进一步,OC-SORT通过恢复lost targets,提高了SORT。最近,视觉任务中的一个趋势是,一些研究将Transformers用于匹配detection bboxes。另外,Dendorfer等人尝试利用更复杂的运动估计方法来建模行人轨迹。这些上述方法有很强的detection能力,因为它们robust的detectors。然而,尽管这些方法在行人跟踪数据集上实现了很好的性能,它们在处理更复杂的场景中,有更复杂的运动的时候,表现一般,这些没有预见的运动模式会造成轨迹估计和预测模块失败。

  5. Tracking-by-Query通常不要求额外的后处理来关联detection results。不像tracking-by-detection范式,tracking-by-query的方法将track query用于逐步解码tracked objects的位置。受DETR启发,大多数的方法利用可学习的object query来执行newborn object detection,然而,track query来定位tracked objects的位置。TransTrack构建了一个siamese 网络用于detection和Tracking,然后用一个IoU matching来产生newborn targets。TrackFormer利用通常的Transformer Decoder用于detection和tracking。然后利用一个NMS with a high IoU 阈值来去掉重叠的bboxes。MOTR构建了一个优雅的、端到端的Transformer用于MOT。这个范式在处理非常规运动的时候表现很好,由于基于query的设计。另外,MQT用不同的queries来表征one tracked object,然后更关注class-agnostic tracking。

  6. 然而,当前的基于query的方法一般都是利用相邻帧的信息。尽管track query 能够逐步更新,大多数的方法不能显式地利用更长的时序信息。Cai等人探索了large memory bank,从与时间相关的知识中收益,但却付出了巨大的存储成本。为了利用long-term 信息,作者提出了long-term memory来stabilize tracked object feature over time,和一个memory-attention layer用于more distinguishable representation。实验进一步证明了这个方法能够有效地提高MOT中关联的性能。

  7. 作者提出了MeMOTR,一个long-term的memory-augmented Transformer用于MOT。不同于现有的方法进利用相邻帧的tracked objects的states,作者的核心贡献是构建一个long-term memory,维持long-term temporal feature for each tracked target,和一个temporal interaction module一起将temporal information注入到subsequent tracking processes中。像大多数的DETR的方法,作者用一个resnet50 backbone和Transformer Encoder来产生输入frame \(I^t\)的 image feature。如图1所示,可学习的detect query \(Q_{det}\) 给到Detection decoder \(D_{det}\) 来产生当前帧的embedding \(E^t_{det}\)。之后,通过querying encoderd image feature with \([E^t_{det},E^t_{det}]\),Transformer Joint Decoder \(D_{joint}\) 产生对应的输出 \([\hat{O}_{det}^{t},\hat{O}_{tck}^{t}]\)。为了简单起见,将 \(O^t_{det}\) 中的newborn objects 和tracked objects output \(O^t_{tck}\) 进行结合。之后预测分类的置信度 \(c^t_i\) 和bbox \(b^t_i\) 对应于输出embeddings中的第i个target。最后,将相邻帧 \([O^t_{det}, O^{t-1}_{tck}]\) 的输出和long-term memory \(M^t_{tck}\) 给到Temporal Interaction Module,更新之后的track embedding \(E^{t+1}_{tck}\) 和long-term memory \(M^{t+1}_{tck}\)

  8. Detection Decoder:在之前的基于Transformer的方法中,可学习的detect query和之前的track query一起输入到Transformer Decoder from scratch。这个简单的idea将端到端的Detection Transformer扩展到MOT。然而,作者argue,这个设计可能造成detect和track queries之间的misalignment。在很多工作中讨论的那样,可学习的object query in DETR-family扮演着类似于带有少许语义信息的learnable anchor。另外一方面,track queries有特定的语义知识来解析它们的类别和边界框,因为它们是从前一帧中的输出产生的。如图所示,将原始的Transformer Decoder分为2个部分,第一个decoder layer用于detections,剩余的five layers用于joint detection和tracking。这两个decoders有相同的结构但是不同的输入这个Detection Decoder \(D_{det}\) 将原始可学习的detect query \(Q_det\) 作为输入,产生对应的detection embeddings \(E^t_{det}\),带有足够的语义信息来定位和分类目标。之后,将detect和track embedding进行concat, 作为输入给到Transformer Decoder \(D_{joint}\)

  9. Long-Term Memory:不像之前的方法仅利用相邻帧的信息,作者显式地引入了long-term memory \(M^t_{tck}\) 来维持tracked targets的更长的时序信息。当一个newborn目标检测到了的时候,用当前的输出初始化long-term memory。应该注意到,在一个video stream中,在连续帧中,目标有少许的形变和运动。因此,作者假设,tracked objects的语义特征在短时间内变化不大。相同的方法,作者的long-term memory应该update smoothly。用一个简单但有效的running average with expoentailly decaying weights 来更新long-term memory \(M^t_{tck}\)\[\widetilde{M}_{tck}^{t+1}=(1-\lambda)M_{tck}^{t}+\lambda\cdot O_{tck}^{t},\] \(\widetilde{M}_{tck}^{t+1}\) 是下一帧的新的long-term memory。这个memory更新速率 \(\lambda\) 设置为0.01,following the assumption that memory changes smoothly and consistently in consecutive frames

  10. Temporal Interaction Module:adaptive aggregation for temporal enhancement。模糊或者遮挡等这些问题经常出现在video stream。一个解决这个问题的intuitive idea是用多帧的特征来增强单帧的表征,因此,作者用一个自适应的aggregation算法来融合相邻帧的输出。由于遮挡和模糊,这个当前帧的output embedding \(O^t_{tck}\) 可能不可靠。因此,如图2所示,产生一个channel-wise weight \(W^t_{tck}\) for each tracked instance来避免这个问题: \[W_{tck}^t=\mathrm{Sigmoid}(\mathrm{MLP}(O_{tck}^t)).\] 将这个weight \(W^t_{tck}\) 和当前的输出 \(O^t_{tck}\) 进行相乘,然后将结果和之前帧的 \(O^{t-1}_{tck}\) 进行concate。另外,用一个两层的MLP来产生融合后的outcome \(\hat{O}^t_{tck}\)。这个自适应aggregation,用短期的temporal modeling增强的目标表征。然而,作者没有用上述的channel-wise weight for previous output \(O^{t-1}_{tck}\)\(O^t_{tck}\)\(O^{t-1}_{tck}\) 之间有不同。在推理期间,用一个score阈值 \(\Tau_{tck}\) 来保证 $O^{t-1}_{tck} 是相对可靠的。因此,完整地输入它subsequent fusion step without the adaptive weight。

  11. Generate Track Embedding:作者利用track embedding \(E^t_{tck}\) 来产生每个tracked target的位置和类别。因此,产生更可靠和distinguishable的track embedding是提高跟踪性能的关键。因为同一帧可能有多个相似的目标,作者相信,学习更多的discriminative representations对于一个tracker是重要的。因此,采用Multi-Head Attention结构,称之为 memory-attention layer来实现不同轨迹之间的交互,由于long-term memory的可靠性,we use it as K,aggregation \(\hat{O}^t_{tck}\) 和输出embedding \(O^t_{tck}\) 分别用作 Q和V。之后,将long-term memory \(M^t_{tck}\) 和memory attention layer的结果通过相加进行结合,然后,输入给FFN网络,来预测subsequent track embedding \(\hat{E}^{t+1}_{tck}\)。long-term memory是随时间变化的。因此,通过引入long-term memory的信息,track embedding \(\hat{E}^{t+1}_{tck}\) 避免了可能造成关联错误的突然的变化。这个设计显著地提高了目标关联的表现。

  12. 推理细节:在时刻t,将learnable detect query和 track embedding 一起输入到模型中,产生detection和tracking results。置信度分数超过阈值的detection result将会转化为一个newborn object。目标遮挡是一个常见的问题,如何tracked object丢失了,作者不直接去掉它的track embedding,而是将其记为inactive 轨迹。之后,inactive target在 \(T_{miss}\) 帧之后被去掉。值得注意的是,作者没有在每个时刻为每个object更新track embedding和long-term memory。相反,作者选择更新高置信度的track embedding。这个update threshold \(T_{next}\) 产生下面的formulation for updating: \[[E_i^{t+1},M_i^{t+1}]= \begin{cases} [\widetilde{E}_i^{t+1},\widetilde{M}_i^{t+1}], & c_i^t>\tau_{next} \\ [E_i^t,M_i^t], & c_i^t\leq\tau_{next} \end{cases},\] i是target index,t是frame index, \(c^t_i\) 是时刻t的第i个目标的预测的分类置信度。\(\widetilde{E}_i^{t+1},\widetilde{M}_i^{t+1}\) 分别是track embedding和long-term memory的预测,由Temporal Interaction Module产生。为了简单起见,将 $T_{det} = T_{tck} = T_{next} = 0.5 $。 \(T_{miss}\) 设置为30,15,10 on DanceTrack, MOT17和BDD100K。

Overview of MeMOTR

\(Fig.1^{[1]}\) 像大多数的基于DETR的方法,作者利用ResNet50作为backbone,和一个Transformer Encoder来学习输入图像的2D表征,用不同的颜色来表示不同的tracked targets,可学习的detect query \(Q_{det}\) 是灰色。然后,这个Detection Decoder \(D_{det}\) 处理detect query ,来产生detect embedding \(E^t_{det}\) ,这个将tracking embedding \(E^t_{tck}\) 和之前的frames对齐。long-term memory 表示为 \(M^t_{tck}\)。蓝色虚线箭头所示的初始化过程将会用在newborn objects上。

Temporal Interaction Module

\(Fig.2^{[1]}\) \(\widetilde{E}^{t+1}_{tck}\)\(\widetilde{M}^{t+1}_{tck}\)\(E^t_{tck}\)\(M^t_{tck}\) for the next frame。