[CVPR’2023] - SeqTrack: Sequence to Sequence Learning for Visual Object Tracking

论文地址::SeqTrack: Sequence to Sequence Learning for Visual Object Tracking

代码地址:https://github.com/microsoft/VideoX

贡献

先前的Siamese trackers和transformer trackers需要head networks(classification and regression heads),这篇文章提出了一个简单的encoder-decoder transformer 结构来直接得到输出结果。

采用了 STARK 和 Pix2Seq 的思想。

1. Introduction

本文认为现存的跟踪方法通常采用被称为divide-and-conquer策略(分治策略),也就是把跟踪任务分解成多个子任务(目标尺寸估计和中心点定位等)。这种分治策略虽然获得了优越的性能,但是存在两点限制:

  1. 每个子任务需要特定的head网络,这导致了复杂的框架结构。
  2. 每个head网络要求不同的loss functions,例如 cross-entropy loss, loss和 GIoU loss。这需要多个超参,训练困难。

image-20230719102203752

本文提出Sequence-to-sequence Tracking (SeqTrack) 。把跟踪作为一个sequence生成任务。将bounding box的四个值转换成一个discrete token(离散token)的sequence,使模型学习逐token(token-by-token)生成这个序列。编码器提取视频帧的视觉特征,解码器生成boundingbox的序列。每一步,新生成的token会被反馈给模型来产生下一个token。解码器的self-attention应用causal mask来限制token只关注先前的token。当输出四个边界框的token值时,生成结束。输出序列直接用作结果。

Visual Tracking.

Sequence Learning. 本篇文章SeqTrack的基本思路其实来源于ICLR2022那篇Hinton的Pix2Seq。区别在于三点:

1)Pix2Seq 是以目标corner坐标和目标类别来设置sequence,SeqTrack是以目标中心点坐标和目标尺寸为sequence。

2)结构不同。Pix2Seq 是resnet作为backbone,后面跟encoder-decoder transformer。SeqTrack 更简洁,只有一个encoder-decoder transformer,其中ViT作为encoder来提取特征,causal transformer blocks作为decoder来生成sequence。

3)任务不同。Pix2Seq 是检测,SeqTrack是跟踪。

3. Method

image-20230719110054089

3.1. Overview

  • 目标的bounding box 被转化成discrete token 序列()。
  • encoder 提取目标特征,decoder以自回归的形式生成bounding box token 序列。
  • causal attention mask 添加到self-attention 模块
  • 除了四个坐标token,额外添加两个特殊token:startendstart token表示开始生成,end表示生成完成。训练阶段,decoder输入为[start,x,y,w,h],目标是 [x,y,w,h,end]
  • 在每一步中,都会生成一个新的bounding box token,并将其附加到输入序列中以生成下一个。

3.2. Image and Sequence Representation

Image Representation。 encoder 输入包括一个template image )和 一个 search image ),与之前不同的是,这采用相同的尺寸。被分割成patch 尺寸均是 (),P是patch size,是patch number。一个linear projection 把图像patch映射到visual embeddings 。也添加了可学习的position embeddings 。

Sequence Representation。把bounding box转换成discrete tokens。每个连续坐标被均匀地离散成之间的一个整数,每个整数作为一个word,对所有坐标使用共享的词汇表。将word映射成可学习的embedding。最终输入为[start,x,y,w,h],目标是 [x,y,w,h,end]。最后把输出的embedding映射会words。


这里其实就是Pix2Seq的sequence construction过程,将图片高和宽分成 等份,根据对应的坐标取值,这样四个坐标值都量化成了整数。的取值决定了目标图像的分辨率,取值越大分的块就越多,相应的识别分辨率就越高,越能够检测到小物体。而本文中去了4000,同时共享词汇表的大小也是4000.


image-20230725154304591

3.3. Model Architecture

image-20230719164611889

Encoder:与标准ViT差不多。区别在于(1)没有class token。(2)linear projection 被添加在最后一层以对齐encoder和decoder的维度。提取完visual features后,只有search feature被送给decoder。

Decoder:每个transformer block 包含a masked multi-head attention, a multi-head attention, and a feed forward network (FFN)。attention mask限制在位置i的输出embedding只关注小于i位置的输入embedding。

3.4. Training and Inference

Training:使用交叉熵损失最大化基于前子序列和输入视频帧的目标token的对数似然。

image-20230719190522484

Q是softmax probability。s是search image,t是template。是target sequence,也就是搜索区域的token序列。j是token位置。L是target sequence的长度。训练是教模型根据前面的单词“读出”描述的单词。

Inference:编码器感知模板图像和后续视频帧中的搜索区域。decoder的初始输入是start token。对于每个token,模型根据最大似然从词汇表V中采样

image-20230719191321096

引入了online template update和window penalty。

3.5. Prior Knowledge Integration

Online Update。除了初始模板,引入了一个动态模板。使用生成的token的可能性likelihood来自动选择可靠的动态模板。如果平均得分大于特定的阈值,并且达到更新间隔,则动态模板将用当前帧中的跟踪结果进行更新,否则保持之前的状态。

Window Penalty. 经验证明,连续两帧之间的像素位移是相对较小的。为了惩罚较大的位移,我们在在线推理过程中引入了一种新的窗口惩罚策略。具体地说,目标对象在前一帧中的位置对应于当前搜索区域的中心点。当前搜索区域中中心点的离散坐标为。我们根据词汇V与的差异来惩罚词汇V中整数(即单词)的可能性。整数和之间的很大差异将会得到很大的惩罚。整数的softmax分数形成了一个大小为的向量。我们只需把这个向量乘以相同大小的汉宁窗口。这样,大的位移就被抑制了。与之前的不同,我们不引入额外的超参数来调整惩罚的大小。

4. Experiments

4.1. Implementation Details

4.2. State-of-the-Art Comparisons

LaSOT,TrackingNet,GOT-10k

image-20230720200240385

VOT2020,with Alpha-Refine to predict masks

image-20230720200426897

TNL2K,NFS,UAV123:

image-20230720200512355