1.本文针对什么问题
transformer成功的关键是自注意力机制能够对长距离依赖进行建模,但是自注意力机制的全局视角会导致主要信息(搜索区域中的目标)关注不足,而次要信息(搜索区域中的背景)过度关注,这会导致前景与背景的边界模糊。
2.已有的工作是什么,有什么问题
-
Siamese系列的跟踪器:
Siamese系列的跟踪器主要采取互相关操作来测度目标模板与搜索区域的相似度,基于原始互相关操作衍生出来的互相关操作有:depth-wise crosscorrelation, pixel-wise cross-correlation, pixel to global matching cross-correlation等等。但是互相关操作是局部线性匹配过程,容易陷入局部最优,并且互相关操作会破坏输入特征的语义信息。大多数的Simese跟踪器都很难处理变形、部分遮挡、尺度变化等问题。
-
Transformer系列跟踪器:
受到DERT的启发,STARK将目标跟踪问题转化为边界框预测问题,并使用transformer中的encoder-decoder结构来解决;
TrDiMP设计了类Siamese的跟踪流程,使用Transformer中的encoder和decoder来增强CNN特征,然后使用互相关操作来测度相似性,这个互相关操作可能限制了TrDiMP的性能;
TransT和DTT使用Transformer来代替互相关操作,使用融合特征来代替响应分数,但是transformer容易受到背景的干扰。
3.为了解决这个问题,做了什么工作
1)提出了一个目标感知网络(包含空间注意力机制)能够聚焦到搜索区域中感兴趣的目标,并且能够高亮最相关信息的特征。
2)设计了双头预测器来进行分类和回归。
4.具体方法是什么
模型总体结构如上,共由三个部分构成:特征提取网络、目标注意网络、双头预测器。特征提取网络没啥好说的,着重介绍后面两个部分。
1)目标注意网络(target focus network)
目标注意网络使用的是transformer的encoder-decoder结构,encoder负责对模板特征进行编码,decoder负责对搜索区域特征进行解码以生成集中于目标的特征(target-focused features)。二者具体结构如下:
Encoder:在目标注意网络中encoder是一个重要但非必需的部分,它是由N个encoder层堆叠而成。它的输入是加入了空间位置编码(直接相加)的特征或者是上一个encoder层的输出。在encoder层中,使用多头自注意力来对模板特征中所有像素对之间的关联进行建模。公式表示如下:
e
n
c
o
d
e
r
(
Z
)
=
{
f
e
n
c
i
(
Z
+
P
e
n
c
)
,
i
=
1
f
e
n
c
i
(
Y
e
n
c
i
−
1
)
,
2
≤
i
≤
N
}
{\rm{encoder}}(Z) = \left\{ {\begin{array}{ll} {f_{enc}^i(Z + {P_{enc}}),}&{i = 1}\\ {f_{enc}^i(Y_{enc}^{i - 1}),}&{2 \le i \le N} \end{array}} \right\}
encoder(Z)={fenci(Z+Penc),fenci(Yenci−1),i=12≤i≤N}
Decoder:在目标注意网络中Decoder是一个关键的部分,它是由M可decoder层堆叠而成。它的输入是加入了空间位置编码的搜索区域特征和最后一个encode层的输出或者是上一个decoder层的输出和最后一个encode层的输出。公式表示为:
d
e
c
o
d
e
r
(
Z
)
=
{
f
d
e
c
i
(
X
+
P
d
e
c
,
Y
e
n
c
N
)
,
i
=
1
f
d
e
c
i
(
Y
d
e
c
i
−
1
,
Y
e
n
c
N
)
,
2
≤
i
≤
M
}
{\rm{decoder}}(Z) = \left\{ {\begin{array}{ll} {f_{dec}^i(X + {P_{dec}},Y_{enc}^N),}&{i = 1}\\ {f_{dec}^i(Y_{dec}^{i - 1},Y_{enc}^N),}&{2 \le i \le M} \end{array}} \right\}
decoder(Z)={fdeci(X+Pdec,YencN),fdeci(Ydeci−1,YencN),i=12≤i≤M}
但与普通transoformer中decoder不同的一点是它在每一个decoder层中先使用多头空间自注意力(SMSA)计算搜索区域特征(X),然后再计算Z与X的交叉注意力。
空间多头自注意力(SMSA):在原始的多头自注意力计算中,注意力特征的像素值是由所有输入特征的像素值计算得出的,这会导致前景的边缘模糊;而在本文的SMSA中,注意力特征中的每个像素值只取决于与其最相似的前K个像素值。**简单来说,就是在Q,K,V的计算过程中,先计算
Q
⋅
V
Q · V
Q⋅V,然后取计算结果中值最大的前K个做完softmax之后与对应的
V
V
V相乘,其他的值直接赋0不参与计算 **(这里我有一个问题,这个K值是如何确定的呢,对于不同的目标能通用吗,有没有一种能够自适应的方法?)。过程如下图所示:
从最右边的图中可以看到原始的计算方法中增大了小的相似度权重,这会导致在对前景背景分类的过程中容易受到背景的干扰。
2)双头预测器(double-head predictor)
如总体结构图所示,双头预测器由两个分支(全连接头和卷积头)组成。其中全连接头由两个全连接层组成,卷积头由L个卷积块组成。同时在训练过程中unfocused tasks被加进来用于额外的监督训练。在推理过程中,对于分类任务,融合全连接头的输出和一个卷积头的输出;对于回归任务,只使用卷积头的输出作为偏移值。
3)训练loss
τ = ω f c ⋅ [ λ f c τ f c c l a s s + ( 1 − λ f c ) τ f c b o x ] + ω c o n v ⋅ [ ( 1 − λ c o n v ) τ c o n v c l a s s + λ c o n v τ c o n v b o x ] \tau = {\omega _{fc}} \cdot [{\lambda _{fc}}\tau _{fc}^{class} + (1 - {\lambda _{fc}})\tau _{fc}^{box}] + {\omega _{conv}} \cdot [(1 - {\lambda _{conv}})\tau _{conv}^{class} + {\lambda _{conv}}\tau _{conv}^{box}] τ=ωfc⋅[λfcτfcclass+(1−λfc)τfcbox]+ωconv⋅[(1−λconv)τconvclass+λconvτconvbox]
这里 ω f c , λ f c , ω c o n v 和 λ c o n v \omega _{fc},\lambda _{fc},\omega _{conv}和\lambda _{conv} ωfc,λfc,ωconv和λconv都是超参数,论文中设置 ω f c = 2.0 , λ f c = 0.7 , ω c o n v = 2.5 , λ c o n v = 0.8 \omega _{fc}=2.0,\lambda _{fc}=0.7,\omega _{conv}=2.5,\lambda _{conv}=0.8 ωfc=2.0,λfc=0.7,ωconv=2.5,λconv=0.8,损失函数 τ f c c l a s s 和 τ c o n v c l a s s \tau _{fc}^{class}和\tau _{conv}^{class} τfcclass和τconvclass都使用focal loss;损失函数 τ f c b o x 和 τ c o n v b o x \tau _{fc}^{box}和\tau _{conv}^{box} τfcbox和τconvbox都使用IoU loss