论文链接:https://arxiv.org/abs/2112.00995
代码链接:https://github.com/LitingLin/SwinTrack
文章侧重点
- 以目标检测领域的Swin Transformer为基础,构建全Transformer结构的目标追踪算法——Swin-Track
- 构建了Motion Token 在追踪中考虑到了目标运动信息,在增加计算复杂度的情况下提升性能。
- 将原有的Transformer中的absolute位置编码替换成untied positional encoding。
- 用varifocal loss替换交叉熵损失函数。
网络结构
- 输入:当前帧图片(裁剪尺度=4)、目标模板(裁剪尺度=2)
- Transformer-based Feature Representation Extraction:
- 该部分是特征提取部分,用到了Siamese-based的网络结构,旨在提取相同特征空间下的目标模板特征和Search Region的特征。便于之后目标融合。
- 论文中的实验用的是Swin Transformer-Tiny( pre-trained with ImageNet-1k)和Swin Transformer-Base(pre-trained with ImageNet-22k)作为特征提取网络。
- Transformer-based Feature Fusion:
特征融合一共有两步:Vision特征融合(Encoder的实现)+运动特征融合(Decoder的实现)。
Vision特征融合:- 将目标模板特征和Search Region的特征拼接为 f m f_m fm作为输入。
- 沿用了Transformer中的Encoder结构:Layer Norm (LN) + Multi-layers Self Attention (MSA) + Feed Forward Network (FFN)。这里直接用Self-Attention完成了特征增强和特征交互。
- 公式表达:
最后一步DeConcat直接将特征分离,就可以得到Search Region的特征。
运动特征融合:
- Motion Token Construction :
- 构建运动信息的Motion Token。将目标的历史轨迹表示为边界框(左上角坐标+右下角坐标,即x1y1x2y2)的集合: o s 1 = ( o s 1 x 1 , o s 1 y 1 , o s 1 x 2 , o s 1 y 2 ) o_{s_1}={(o_{s_1}^{x_1},o_{s_1}^{y_1},o_{s_1}^{x_2},o_{s_1}^{y_2})} os1=(os1x1,os1y1,os1x2,os1y2)
其中 n n n是固定长度的轨迹集合大小, Δ \Delta Δ是采样间隔,当距离一定帧采样可以避免目标框位置过于相近而数据冗余。 - 上面的轨迹中目标坐标是全图中的坐标,由于Search Region经过中心裁剪,其中目标的坐标发生变化,故得到中心裁剪后的目标位置: T ˉ = o ˉ s 1 , . . . , o ˉ s 1 \bar{T}={\bar{o}_{s_1}, ..., \bar{o}_{s_1}} Tˉ=oˉs1,...,oˉs1
- 规范化当前有效的坐标值,将其映射到整数范围 [ 1 , g ] [1,g] [1,g]中,生成带容错的Embedding集合:其中,g表示Embedding的粒度,可以理解为特征图的channel,g+1这个设置是防止当前帧没有追踪目标(目标出视野)时的一个填充向量;w,h是Search Region的宽高。
- 然后,将历史轨迹集合中的所有坐标值连接成 E m o t i o n E_{motion} Emotion,与Vision融合结果 f z , f x f_z,f_x fz,fx一同作为Decoder的输入。
- 带运动信息的Decoder:
该Decoder的造型和Encoder很像,除了把MSA变成了MCA(Multi-layer cross-attention)。
- Prediction Head:3层感知机实现的预测。
实验
无motion token的消融实验
1:baseline(SwinTrack-T-224);2:用ResNet50作为backbone;3:用MCA替换Encoder中的MSA;4:用target query实现Decoder;5:用absolute sine position encoding 替换nited positional encoding;6:用交叉熵损失函数;7:去掉推理阶段的后处理——Hanning惩罚。
SwinTrack的消融实验
1: SwinTrack-T-224; 2: SwinTrack-B-384; 3: 无motion token的SwinTrack-T-224; 4: 无motion token的SwinTrack-B-384; 5: SwinTrack-T-224 用一个可学习的embedding token 替换motion token。