本文创新:
提出了一个以编解码Transformer为关键元素的新的追踪架构。编码器建模目标和追踪区域之间的全局时空特征依赖,解码器学习一个查询嵌入(query embedding)来预测目标对象的空间位置。
将目标追踪看作一个直接的边界框预测问题,不需要任何proposal或者predefined anchors。
本文贡献:利用编解码Transformer,目标预测过程仅用了一个简单的全卷积网络,直接估计目标的角点。整个模型是端到端的,不需要任何后处理步骤如cosine window, 边界框平滑等,从而简化跟踪pipeline。
实验结果:在5个short-term和long-term benchmarks上测试,比Siam R-CNN快了6倍。
发现问题:由于卷积核不论在空间还是时间上只处理一个局部邻域,导致其不善于建模图像内容及其特性的长期依赖。当前的跟踪算法几乎都依赖于卷积操作,仅对图像内容建立了局部关系,受限于捕获长时全局信息。这样的缺陷会降低模型处理全局上下文信息的能力,影响定位性能,尤其是目标发生大的形变及频繁进入视野时。
引出Transformer:Transformer已经解决了在序列建模中长距离交互的问题,并在自然语言处理,语音识别等任务中取得了巨大的成功。最近,Transformer也被应用于判别式计算机视觉任务。受到DERT的启发,本文提出了一个端到端的追踪模型——编解码Transformer——以提升卷积模型的性能。
历史方法回顾:空域和时域信息对目标跟踪都十分重要。前者包含目标外观信息;后者包括帧间目标的状态变化。基于孪生网络的追踪器仅仅探索了空域信息,一些在线的方法使用了历史预测用于模型更新。但是这些方法并未显式建模空域和时域的关系。本文考虑了建模全局依赖的重要性,使用transformer来整合空域和时域信息进行跟踪,为目标定位生成判别式时空特征。
本文方法: 比Siam R-CNN快6倍,在Tesla V100上的速度为30fps.
本文贡献:
Transformer由Vaswani首次提出用于机器翻译任务。 Transformer以一个序列为输入,浏览序列中的每个元素并学习他们的依赖。 Transformer本身就很善于捕获序列数据间的全局信息。最近, Transformer在图像分类,目标检测,语义分割,多目标追踪中已经展示了巨大的潜力。本文的工作是受到DERT的启发,但和DERT有本质的区别。
差异 | DERT | 本文 |
---|---|---|
研究任务不同 | 用于目标检测 | 用于目标跟踪 |
网络输入不同 | 以整个图像为输入 | 一个搜索区域和两个模板 |
query设计和训练策略不同 | 使用 100 个query,并在训练期间使用匈牙利(Hungarian)算法将预测与gt 匹配 | 只用一个query,不用匈牙利算法 |
边界框head不同 | 3层感知机预测边界框 | a corner-based box head预测边界框 |
Transformer追踪方法回顾:TransTrack和TrackFormer是2个Transformer追踪的代表算法。 (这块没太看懂。。。后面看了相关论文再改吧)
TransTrack:1) 编码器以当前帧和之前帧的图像特征为输入;2) 有2个解码器,分别以学到的目标queries和上一帧的queris为输入。通过不同的queries,编码器的输出序列分别转换为检测框和跟踪框;3) 两组框用匈牙利算法基于IOU进行匹配
Trackformer:1) 只用当前帧的特征作为编码器输入;2) 只有一个解码器,学到的queries和上一帧的跟踪queries相互交互;3)它仅通过注意力操作随时间关联轨迹,而不依赖于任何其他匹配,例如运动或外观建模。
本文与其区别:1)网络输入不同。2)用过更新动态模板捕获目标的外观编码,而不是更新目标queries。
现存的跟踪算法可分为2类:只有依赖空间信息的+依赖时空特征的。大部分离线孪生网络类算法都是只有依赖空间信息的,将目标跟踪问题看做是初始模板和当前搜索区域间的匹配问题。为了在空间维度提取模板和搜索区域间的关系,许多算法采取了相关操作的各种变体,如原始的相关操作,深度相关,point-wise相关。
这些方法仅仅捕获了局部相似性,忽略了全局信息。而Transformer中的自注意力机制能捕获长时关系,更适合用于成对匹配任务。
相比于只依赖空间信息的追踪算法,依赖时空特征的算法额外探索了时域信息提升算法鲁棒性。这些算法进一步被分类:基于梯度的+梯度无关的。
基于梯度的方法在推理阶段需要梯度计算,如MD-Net,用梯度下降更新特定领域的层。为了提升优化效率,之后的工作采用包括高斯牛顿/元学习的梯度更新策略。但许多设备不支持反向传播,极大限制了基于梯度方法的应用。
无梯度的方法在实际中有更大的潜力。一类无梯度方法用额外的网络去更新基于孪生网络追踪器的模板。另一个代表性算法LTMU学习一个元更新器去预测当前状态是否足够可靠用于长时跟踪的更新。
但这些依赖时空特征的算法使得时域信息和空域信息分离。本文将空间和时间信息整合为一个整体,同时用transformer学习。
以往的跟踪pipeline比较精细。先生成大量带有置信度分数的建议框,再用各种后处理(cosine window,尺度/比例惩罚,边界框平滑,基于轨迹的动态规划)选择得分最高的框。这些后处理对参数敏感。本文尝试不用这些后处理方式,对每一帧直接预测一个边界框。
首先作者建立了一个基于Transformer的baseline,其只考虑空间信息。它的整体框架详见下图,包含2大部分:骨干网络+编解码器+预测head:
这里补一张,推理过程中张量的具体变化形式:
在baseline的基础上,做了3点改进。具体的改进措施如下图所示:
设备:Tesla V100
Model: 三个STARK变体
1)骨干网络在ImageNet上预训练,训练阶段BN层被冻结。2)Transformer架构(即编解码器部分)和DERT的类似,有6层编码层+6个解码层,包含多头注意力层MHA(8heads,width=256)和前馈网络FFN(2048个隐藏单元)。Dropout ratio=0.1。3)head部分是一个轻量级的FCN,5个卷积层,分类Head是一个三层感知机,每层中有256个隐藏单元。
Training: 训练数据来自LaSOT, GOT-10k, COCO2017,TrackingNet。由于VOT2019竞赛要求,从GOT-10k中移除了1k个被禁止的序列。使用了水平反准,亮度抖动等数据增强策略。STARK-ST的训练阶段分为2部分:前500个epochs用于定位,后50个epochs用于分类。每个epoch用了60000个三元组来训练。优化器AdamW, weight decay=10^-4,损失函数中的权重分别取5和2,batch size=128个三元组。骨干网络和其余部分的学习率分别是10的-5和-4次方。在第一阶段的 400 个 epoch 和第二阶段的 40 个 epoch 之后,学习率下降了 10 倍。 STARK-S 的训练设置与 STARK-ST 几乎相同,除了(1)STARK-S 的最小训练数据单元是图像对(二元组); (2) 训练过程只有第一阶段。
Inference: 动态模板更新区间T_u是200帧,置信度阈值时0.5
3.VOT2020:提出了基于anchor的评估准则,用二进制分割掩码作为GT。最终评价指标是EAO:Expected Average Overlap
5.VOT2020-LT:50个长视频。目标频繁消失并重新出现。算法还需要报道置信度分数,用一系列置信度阈值计算Precision(Pr)和Recall(Re),F=(2PrRe)/(Pr+Re)对不同算法排序。
Speed, FLOPs and Params
搜索区域的mask不一定全是False。原因:裁减待检测帧时,若裁减后区域超过整张区域的边缘,直接将超出部分舍弃。