论文:[2203.16761] MeMOT: Multi-Object Tracking with Memory (arxiv.org)https://arxiv.org/abs/2203.16761
一、摘要
本文提出了一种在线跟踪算法,该算法在一个通用框架下进行目标检测和数据关联,能够在长时间跨度后链接对象。这是通过保留一个大的时空存储器来存储跟踪对象的身份特征向量(Embedding),并根据需要自适应地引用和聚合存储器中的有用信息来实现的。本文的模型称为MeMOT,由三个主要模块组成,它们都是基于transformer的:1)假设生成(Hypothesis Generation),生成当前视频帧中的对象建议;2)记忆编码,从存储器中提取每个跟踪对象的核心信息;3)记忆解码,同时解决多目标跟踪的检测目标和数据关联任务。在广泛使用的MOT基准数据集上进行评估时,MeMOT表现出非常有竞争力的性能。
二、Motivation
1、在线MOT范式:关联+检测
存在问题:虽然这种两阶段的方式是可行的,但是对于实时运动的物体建模时会存在过度简化的现象。
2、MOT问题:如何处理跟踪目标的外观、位置和形状的潜在不确定性。
解决办法:非深度学习方法:卡尔曼滤波器、粒子滤波器、贝叶斯推理(体育视频)
存在问题:上述的方法在线性高斯的情况下有很好的效果,但是对于非线性高斯或者更加一般的情况下(如目标被遮挡的情况),上述的方法并不能够通过有限的状态表示来估计最优(匹配)状态,达到理想的跟踪效果。
3、记忆网络的MOT上的广泛应用
在视频分析任务中利用外部存储器来存储和访问长时间序列的时间索引特征,显著提高了网络记忆过去的能力。
存在问题:在将记忆网络应用于MOT时,大多主要集中在单目标跟踪(SOT)上,不需要关注目标间的关联。
三、创新点
(1)使用大的时空记忆来实现多目标记忆的鲁棒跨时间关联,并且可以实现搞笑 的在线实时多目标跟踪。
(2)与大多数现有在相邻帧之间传播跟踪对象状态的方法不同,本文构建了一个 存储所有跟踪对象的远程状态的时空存储器(Memory buffer),以及一个存储器编码-解码架构,通过结果可以有效地检索链接对象的有用信息。
(3)在网络内关联求解器的所有算法中达到了SOTA。
四、算法实现细节
1、网络架构
(1)整体架构
图2 MeMOT网络结构。MeMOT的组成包含三个主要组件:1)假设生成模块:ΘH为当前视频帧生成对象建议;2)内存编码模块:ΘE检索每个跟踪对象的核心信息;3)内存解码模块:ΘD同时解决对象检测和数据关联任务。MeMOT会维护一个Memory Buffer来存储被跟踪对象的长期状态,以及一个有效的编码与解码过程,该过程可以在很长一段时间后检索连接对象的有用信息。每个对象提议都被预测为一个新对象、一个跟踪对象或一个背景区域。
(2)Memory Aggregator结构
图3 记忆聚合器(Memory Aggregator)的示意图,它由三个注意模块组成:1)短期/短期,平滑最近帧中的噪声;2)长期,从长期上下文中提取支持性特征;3)聚合短期和长期分支的融合块。聚合的特征向量(Embedding)将用作轨道特征向量(Embedding)(蓝白查询),并为下一个时间步骤更新DMAT(蓝红查询)。
2、实现细节
(1) MeMOT概念
图1 MeMOT概念。时空记忆存储单元(Memory Buffer)存储所有跟踪对象的长时间状态,并随时间更新。内存缓冲区中的每一行都表示一个目标的活动tracklet。“person crops”表示他们的历史状态保存在记忆中,空白框表示这个人当时没有出现在框架中,被遮挡或未被检测到。跟踪图显示,MeMOT可以保持活动轨迹(黄色和蓝色框),链接遮挡后重新出现的轨迹(红色框),并生成新的对象(绿色框)。
(2) 概述
MeMOT的工作过程可以分为三个步骤:
假设生成:根据输入图像的特征生成一系列的目标提议,并将其作为特征向量(Embedding)向量(类似于RCNN的ROI层)。
记忆编码:编码与每个跟踪对象相对应的时空存储器编码(spatial-temporal memory),并将其作为跟踪特征向量(Embedding)。
具体来说是:通过多头Cross-Att聚合长时记忆和短时的记忆,然后再通过Self-Att产生被跟踪对象在该时间步的轨迹特征向量(Embedding),最后再将将目标提议和轨迹特征向量(Embedding)与原始图像特征一起送入记忆解码模块。
记忆解码:根据输入的目标提议、之前的轨迹信息和目标的特征,完成检测目标与轨迹的匹配,即解决多目标跟踪的检测结果和数据关联任务。
在关联前会先判断输入的每一个目标提议的状态,即是否为新出现的目标或已跟踪的目标或单纯的就是一个背景区域。通过计算对象之间的关系更新编码器的输出,最后在通过提议目标的位置和置信度得分生成跟踪轨迹,并更新Memory Buffer。经过该步骤后网络能够直接输出跟踪结果而不需要进一步的后处理。
(3)Other
- 可在视频数据集上端到端训练
- 损失函数:检测损失+跟踪损失
跟踪损失:Focal Loss(两个)+bounding box回归的L1损失+IoU损失。其两个中Focal Loss分别为对objectness score和uniqueness score置信度的损失和
检测损失:结构如跟踪损失类似。
五、缺点
(1)MeMOT目前是使用视频数据集进行监督训练的,因此它需要带有跟踪标注的视频数据集。但是由于标注视频的成本高,现有的跟踪数据集在规模和多样性上仍然有限。
(2)虽然时空记忆在跟踪目标一致性方面是有效的,但它确实增加了GPU在训练中的内存开销,这限制了存储器的时间长度。