ECCV 2022 paper
Joint Feature Learning and Relation Modeling for Tracking: A One-Stream Framework
之前的跟踪框架都是将特征提取和特征融合分为两步来做的,先分别提取Template和Search的特征,然后在两者之间进行相关,得到的特征用于计算最终的跟踪结果(Two Stream, Two Stage)。这样做存在以下两个缺点:1.特征提取阶段template和search间没有交互,提取到的特征是目标无关的,判别性不足,取决于离线训练的效果(对未见过的类别不鲁棒);2.双流双阶段的框架难以在速度和精度之间达到较好的平衡(performance-speed dilemma)。
作者提出了一种one stream, one stage的跟踪框架,在template和search图像对之间建立了双向的信息流,从而统一了特征提取和特种融合的过程。同时提出了一种基于相似度的early candidate elimination模块,推理过程中逐渐丢弃search中的背景区域,进一步提高了算法的推理速度。
值得注意的是本文中的方法在处理每一个search时,template的图像都会一起输入到model中得到动态的template特征,这里与MixFormer是不同的(MixFormer中为了节省计算量不使用template对search做cross attention,这样每帧就不用重新计算template的特征)。与STARK、TransT等也使用了transformer的tracking方法相比,该框架还有一个好处就是可以使用预训练的transformer权重来初始化网络,从而提高网络的收敛速度。
Template
和Search
会首先被分别分割为多个P*P大小的patch并展成向量
,这些向量会通过一个全连接层 E被映射到D维
之后可学习的位置编码 Pz Px会被添加到这些patch embedding上,得到token embedding, 最后两者会被拼接到一起得到 作为Transformer的输入。
经过Transformer的处理后,直接将其输出特征中与search对应的部分取出来输入到head中即可得到最终的跟踪结果。
值得注意的是本文中的方法在处理每一个search时,template的图像都会一起输入到model中得到动态的template特征,这里与MixFormer是不同的(MixFormer中为了节省计算量不使用template对search做cross attention,这样每帧就不用重新计算template的特征)。
与STARK、TransT等也使用了transformer的tracking方法相比,该框架还有一个好处就是可以使用预训练的transformer权重来初始化网络,从而提高网络的收敛速度。
在Transformer的多层Self-attention操作中,attention map会首先关注于search图像中的前景区域并随着深度的增加逐渐聚焦到目标。基于这一现象,作者提出了early candidate elimination模块鉴别并消除search图像中的背景区域。
具体来说,search图像中的每个patch都可以被看作是一个目标候选区域。在每个候选消除模块中,每个候选区域会被计算一个与template图像的相似度作为其得分,得分最高的k个候选区域会被保留下来,其他的候选区域则会被丢弃。为了避免template中背景区域的影响,在本文中作者并没有使用候选区域与每个template patch计算相似度并取均值,而是直接计算其与template最中心位置的patch之间的相似度作为其得分。可以这样做的原因在于经过self-attention操作之后,中心的template patch已经聚集了足够的目标信息。由于这些背景区域不会对分类和回归操作造成影响,因此在Transformer输出之前,这些中途被丢弃的区域直接做zero-padding即可将特征恢复成原尺寸。
作者也给出了一些候选消除模块的可视化案例,图中灰色区域即为被丢弃的背景区域。
Head部分的结构也比较简单,包括三个分支,分别预测分类得分 、为了补偿下采样量化误差而预测的偏移值 以及归一化的bounding box尺寸
。每个分支由L个卷积层堆叠而成。取预测得分最高的点作为目标位置,在O S 中取出对应位置的值计算最终的目标包围框。
损失函数方面:对于分类分支,采用了与CornerNet中相同的weighted focal loss,与GT中心距离越远的位置权重越低;对于回归分支,则使用了常用的IoU loss以及L1 loss的组合。
作者基于ViT-Base设置了两组不同的输入大小,得到了两组模型,速度都挺快的:
OSTrack-256 --> Template: 128128; Search: 256256; 105.4FPS
OSTrack-384 --> Template: 192192; Search: 384384; 58.1FPS
针对预训练:使用MAE自监督预训练的Module初始化会得到更好的结果,尤其是在测试集中完全为未见类别的GOT-10K上。
Aligned Comparison: 作者还将STARK和Swin-Track的backbone、head、loss都换成了与本文一致的方法,以在Two stream和One stream方法之间进行公平的比较。
我们重新实现的双流跟踪器显示出相当或更强的性能,但仍然落后于OSTrack,这证明了我们的单流结构的有效性。虽然Transformer特征融合模块[29,47]也支持关系建模阶段的特征交互,但特征提取过程中的判别信息损失是不可修复的。我们还观察到,OSTrack在单次基准GOT-10k上显著优于前两个流跟踪器,这进一步证明了我们的单流框架在具有挑战性的场景中的优势。实际上,由于测试集中的对象类与训练集中的对象类完全不同,因此双流框架提取的特征的判别能力是有限的。然而,通过模板特征和搜索区域之间的迭代交互,OSTrack可以通过相互引导来提取更多不相似的特征。与双流SOTA跟踪器不同,OSTrack忽略了超重型关系建模模块,同时保持了关节特征提取和关系建模模块的高度并行性。因此,当采用相同的主干网络时,提出的单流框架比STARK(快40.2 FPS)和SwinTrack(快25.6 FPS)快得多。此外,OSTrack需要更少的训练图像对来收敛。