TransCenter: Transformers with Dense Queries for Multiple-Object Tracking
近期几篇利用transformer进行多目标跟踪的论文之一,来自MIT,成为了新的sota。最好阅读一下原文。
论文PDF:https://arxiv.org/abs/2103.15145
代码:即将开源
Introduction
论文在一开始的introduction内,便很好地分析了当前MOT的一些问题,以及点跟踪在MOT中的优势所在。
作者提出,在之前的很多方法中,大多都采用的bounding box的形式来表示目标,而这种形式的缺陷之一便是当目标发生严重遮挡时,这些bbox通常便会互相重叠,使得跟踪效果不佳,因为在训练的过程中,这些bbox不仅用于回归出每个目标的位置、宽高等信息,还参与用于进行跟踪关联的外貌信息的生成,所以当bbox发生重叠时,学习到的外貌信息便会较为相似。另外,bbox这种形式,或多或少都会带入一点背景信息。
MOT领域中到目前为止,已有的方法也不少了,从最初的二阶段方法,到最近较为流行的单阶段方法。有的方法采用RNN网络对运动和外观信息进行建模。有的方法直接将MOTA和MOTP带入到损失函数的计算中。也有方法添加了reid分支,用于提取数据关联时需要用到的外貌embedding,但一般都将reid任务看做次要任务。FairMOT提出,检测任务和reid任务同等重要,需要较好地协调两个任务之间的关系。CenterTrack直接预测两帧之间目标的偏移来进行跟踪。此外,也有一些方法采用了图神经网络进行多目标跟踪。上述提到的算法中,大多都是采用bbox的形式来作为结构中目标的表示。但这并不是最优的选择,因为bbox的形式势必会带入较多的背景信息,而且当目标发生遮挡是,两个bbox的相似度也会较高。
transformer一开始被应用在自然语言处理领域。随着其在nlp领域的成功,人们便开始将其用在视觉任务中,比如图像分类任务中的ViT、行人重识别中的TransReID以及目标检测领域中的DETR。DETR中,编码器将图像进行编码,解码器通过object query从编码后的特征中找到相对应的目标。由于DETR的输入为ResNet输出的特征图,所以其计算量还是很高的,也很难收敛。Deformable DETR采用可变卷积,将DETR的收敛速度降低到原本的十分之一,减小了其计算复杂度,可以采用多尺度特征来捕获更精细的信息,提高检测的性能。随着transformer在目标检测领域的尝试,便自然而然有人将其应用在了MOT领域中。TrackFormer直接在DETR的基础上添加了一个track query,用于实现跟踪。TransTrack是在DETR的基础上又加了一个解码器来处理之前帧的图像,对之前的目标位置进行微调。前天才看的MO3TR是在空间和时间两个维度上各采用一个transformer结构,时间transformer用于提取长程时间信息,也是为了缓解遮挡问题,空间transformer通过注意力来捕获目标与目标之间、目标与当前帧图像之间的信息。但这些方法都还只是停留在检测框架中,只是将其用于跟踪,并且都采用了bbox的形式来表示目标。
受FairMOT和CenterTrack的启发,以及transformer在MOT领域的成功应用,作者设计了TransCenter,首次将transformer用于点跟踪之中。作者在文中说道,TransCenter是用来解决bbox跟踪中固有的遮挡问题,且并不需要分割级别的gt标注。
TransCenter遇到的第一个难点便是密集点表示(比如中心热度图)的生成。作者提出了,在transformer中使用密集(像素级别)多尺度的query。整体结构上与TransTrack类似,TransCenter拥有两个解码器,一个用于检测任务,一个用于跟踪任务。解码器的query均是来源于当前帧,通过不同的学习层得到。不过当前帧的memory(encoder结构的输出)输入到检测解码器中,之前帧的memory输入到跟踪解码器之中。
上图是按顺序依次是TransCenter的热度图、TransTrack生成bbox的中心点图、CenterTrack和FairMOT的热度图。之前的TransTrack采用了稀疏query,会导致漏检(粉色箭头),当遮挡严重的时候,也可能发生误检(绿色箭头)。CenterTrack和FairMOT的问题相同,它们预测中心点的时候是独立的。而TransCenter则采用密集多尺度query来构造中心点的热度图,并采用注意力机制来捕获中心点与中心点之间的相互关系。
TransCenter for Multiple Object Tracking
先前的工作大多采用bbox的形式来目标,作者对此提出质疑,并选择用中心点来表示每个目标。和bbox不同,热度图是一种更密集的表示形式。如果采用TransTrack等结构中稀疏的query,那么很难得到热度图,所以作者首次采用了密集多尺度的query。作者在实验中的解码器大约与14k个query。这样做的一个缺点便是相关的内存损耗大,所以作者使用可变卷积的解码器。
整体上,作者将MOT任务分为两个子任务:检测 t t t时刻的目标以及与 t − 1 t-1 t−1时刻的目标进行关联。和之前的方法不同,TransCenter的两个解码器是并行的,同时完成两个子任务。检测解码器的输出用来估计目标的中心点和尺寸,并且和跟踪解码器的输出一起预测出目标相对于上一帧的位移。
TransCenter in a Nutshell
上图是TransCenter的整体结构。首先, t t t时刻和 t − 1 t-1 t−1时刻的两帧图像输入进CNN骨干网络中,提取出多尺度的特征,这里骨干网络的一些细节和Deformable DETR中一致。输出的特征进入可变卷积的编码器,得到两张图像的多尺度特征, M t \mathbf{M}_{t} Mt和 M t − 1 \mathbf{M}_{t-1} Mt−1。将 M t \mathbf{M}_{t} Mt输入进一个query学习网络(QLN),QLN里均为全连接层,输出用于检测的密集多尺度query, D Q t \mathbf{D Q}_{t} DQt。将这些query放入另一个QLN中,便得到用于跟踪分支的query, T Q t \mathbf{T Q}_{t} TQt。两个可变卷积解码器用来并行地进行解码。检测解码器通过 D Q t \mathbf{D Q}_{t} DQt对memory M t \mathbf{M}_{t} Mt进行解码,输出用于检测的多尺度特征 D F t \mathbf{D F}_{t} DFt,同样,跟踪解码器通过 T Q t \mathbf{T Q}_{t} TQt对 M t − 1 \mathbf{M}_{t-1} Mt−1进行解码,输出同于跟踪的多尺度特征 T F t \mathbf{T F}_{t} TFt。 D F t \mathbf{D F}_{t} DFt用来估计出目标的中心点热度图 C t \mathbf{C}_{t} Ct和bbox的大小 S t \mathbf{S}_{t} St。 D F t \mathbf{D F}_{t} DFt还和 T F t \mathbf{T F}_{t} TFt以及上一帧的中心点热度图 C t − 1 \mathbf{C}_{t-1} Ct−1一起预测出偏移量 T t \mathbf{T}_{t} Tt。
Dense Multi-scale Queries
传统的transformer结构,其decoder部分输出的数量,是与输入到decoder的query的个数相同的,而且输出是对应着实体的,比如DETR中一个输出对应一个目标bbox。当TransCenter需要推理出中心点的热度图时,每个像素点对应一个目标的中心点的概率,便成了模型需要寻找的东西,而这数量是稀疏query远远达不到的,所以作者设计了密集多尺度query。这些密集query是从检测编码器的输出(memory, M t \mathbf{M}_{t} Mt)中得到的,将memory输入到query学习网络(QLN)中,得到用于检测的query, D Q t \mathbf{D Q}_{t} DQt。再将 D Q t \mathbf{D Q}_{t}