论文 STMTrack: Template-free Visual Tracking with Space-time Memory Networks
代码 Github/STMTrack
参考文章 STMTrack
1.Motivation
离线训练的Siam跟踪器已经充分挖掘了第一帧模板信息,但是不能很好地适应目标外观变化。
现有的模板更新机制大多依赖耗时的数值优化或复杂的手工设计策略,但是不能实时跟踪和实际应用。
本文方法速度达到37FPS。
2.Contribution
本文提出了一种基于时空记忆网络的跟踪框架,该框架能够充分利用与目标相关的历史信息,从而更好地适应跟踪过程中的目标外观变化。这样避免了模板更新,所以叫template-free。
主要创新点包括:
- 引入记忆机制存储目标的历史信息,引导跟踪器聚焦在当前帧中信息最丰富的区域;
- memory network的像素级相似度计算能够生成更精确的目标框。
3.Network
3.1 STMTrack Architecture
STMTrack主要由三部分组成:特征提取网络、时空记忆网络和头部预测。特征提取网络包括浅绿色的记忆分支和浅蓝色的查询分支。 “concat.”表示沿时间维度的串联操作。记忆分支输入多个历史帧以及对应的前景背景标签,查询分支输入当前帧。特征提取后,时空记忆网络从所有记忆帧中检索与目标相关的信息,生成综合特征图进行最后的分类回归。
3.2 Feature Extraction Network
Memory Feature Extraction
Memory分支输入:T个记忆帧m( m i {m_i} mi表示第i帧记忆帧)、T个前景背景标签特征图C( c i c_i ci表示第i帧记忆帧的标签map,根据ground truth获得,在gt内的像素点记为1,在gt外的像素点记为0)。
然后,采用
φ
m
{\varphi ^m}
φm的第一个卷积层
φ
0
m
\varphi^m_0
φ0m和额外的卷积层g分别将记忆帧m和标签c映射到相同的大小。将
φ
0
m
(
m
i
)
\varphi^m_0\left(m_i\right)
φ0m(mi)和
g
(
c
i
)
g\left(c_i\right)
g(ci)逐元素相加,再通过其他卷积层
φ
γ
m
\varphi^m_\gamma
φγm得到记忆帧的特征图
f
m
f^m
fm。然后,
f
m
f^m
fm的特征维度通过非线性卷积层
h
m
h^m
hm减少到512:
f
i
m
=
h
m
(
φ
γ
m
(
φ
0
m
(
m
i
)
⊕
g
(
c
i
)
)
)
(
1
)
f_i^m = {h^m}\left( {\varphi _\gamma ^m\left( {\varphi _0^m\left( {{m_i}} \right) \oplus g\left( {{c_i}} \right)} \right)} \right){(1)}
fim=hm(φγm(φ0m(mi)⊕g(ci)))(1)其中,
f
i
m
∈
R
C
×
H
×
W
f_i^m \in {R^{C \times H \times W}}
fim∈RC×H×W,
φ
γ
m
\varphi^m_\gamma
φγm表示除第一层之外
φ
m
\varphi^m
φm的所有层,
⊕
\oplus
⊕表示逐元素相加。
Query Feature Extraction
查询分支输入查询帧Q,并产生特征图 φ q ( q ) \varphi^q(q) φq(q)。与记忆分支类似, φ q ( q ) \varphi^q(q) φq(q)也通过非线性卷积 h q h^q hq降维,减少到512:
查询分支特征提取:
f
q
=
h
q
(
φ
q
(
q
)
)
(
2
)
{f^q} = {h^q}\left( {{\varphi ^q}(q)} \right){(2)}
fq=hq(φq(q))(2)其中,
f
q
∈
R
C
×
H
×
W
f^q \in R^{C\times H\times W}
fq∈RC×H×W。
3.3 Space-time Memory Network
这里 f m ∈ R T × H × W × C f^m \in R^{T \times H \times W \times C} fm∈RT×H×W×C和 f q ∈ R C × H × W f^q \in R^{C\times H\times W} fq∈RC×H×W,其中T是记忆帧的数量,C、H和W分别代表特征维度、高度和宽度。为了便于矩阵乘法的计算,将 f m f^m fm从 T × H × W × C T\times H\times W\times C T×H×W×C重塑为 T H W × C THW\times C THW×C,并将 f q f^q fq从 C × H × W C\times H\times W C×H×W重塑为 C × H W C\times HW C×HW,因此此处 T H W = T × H × W THW = T \times H \times W THW=T×H×W和 H W = H × W HW=H\times W HW=H×W。操作符“ ⊗ \otimes ⊗”表示矩阵乘法,“concat”表示沿通道方向的级联操作。
如图3所示,首先计算
f
m
f^m
fm的每个像素与
f
q
f^q
fq的每个像素之间的相似性,以获得相似性矩阵
w
∈
R
T
H
W
×
H
W
w \in {R^{THW \times HW}}
w∈RTHW×HW。用高斯数函计算相似性,用SoftMax标准化相似性矩阵w。
计算Memory的
f
m
f^m
fm和Query的
f
q
f^q
fq每个像素之间的相似性
w
i
j
=
exp
[
(
f
i
.
m
⊙
f
⋅
j
q
)
/
s
]
∑
∀
k
exp
[
(
f
k
m
⊙
f
⋅
j
q
)
/
s
]
(
3
)
{w_{ij}} = \frac{{\exp \left[ {\left( {f_{i.}^m \odot f_{ \cdot j}^q} \right)/s} \right]}}{{\sum\limits_{\forall k} {\exp } \left[ {\left( {f_k^m \odot f_{ \cdot j}^q} \right)/s} \right]}}{(3)}
wij=∀k∑exp[(fkm⊙f⋅jq)/s]exp[(fi.m⊙f⋅jq)/s](3)其中,i是
f
m
∈
R
T
H
W
×
C
f^m \in R^{THW \times C}
fm∈RTHW×C上每个像素点的索引,j是
f
q
∈
R
C
×
H
W
f^q \in R^{C \times HW}
fq∈RC×HW上每个像素的索引,二进制操作符
⊙
\odot
⊙表示vector dot-product(点积),设s为
C
\sqrt C
C,C是
f
m
f^m
fm的维度。
注:矩阵内积退化成向量形式就是点积,也可以称作向量内积 适用范围:维度相同的两个向量 定义:对于两向量 a = [ a 1 , … , a n ] {\bf{a}} = \left[ {{a_1}, \ldots ,{a_n}} \right] a=[a1,…,an]和 b = [ b 1 , … , b n ] {\bf{b}} = \left[ {{b_1}, \ldots ,{b_n}} \right] b=[b1,…,bn],则 a ⋅ b = ∑ i = 1 n a i b i = a 1 b 1 + ⋯ + a n b n {\bf{a}} \cdot {\bf{b}} = \sum\limits_{i = 1}^n {{a_i}} {b_i} = {a_1}{b_1} + \cdots + {a_n}{b_n} a⋅b=i=1∑naibi=a1b1+⋯+anbn
然后,将相似性矩阵作为权重, f m f^m fm乘以w,得到加权后的记忆信息,与 f q f^q fq尺寸相同。因为 f m f^m fm存储与目标相关的所有历史记忆信息,根据查询框架本身的需要,所以能够自适应地检索存储在 f m f^m fm中的目标信息。
再将加权后的记忆信息与
f
q
f^q
fq拼接起来:
y
i
=
c
o
n
c
a
t
(
f
i
q
,
(
f
m
)
i
T
⊗
w
)
(
4
)
{y_i} = {\rm{ concat }}\left( {f_i^q,\left( {{f^m}} \right)_i^T \otimes w} \right){(4)}
yi=concat(fiq,(fm)iT⊗w)(4)其中,
(
f
m
)
T
∈
R
C
×
T
H
W
{\left( {{f^m}} \right)^T} \in {R^{C \times THW}}
(fm)T∈RC×THW是
f
m
∈
R
T
H
W
×
C
{f^m} \in {R^{THW \times C}}
fm∈RTHW×C的转置,
c
o
n
c
a
t
(
⋅
,
⋅
)
{\rm{concat }}( \cdot , \cdot )
concat(⋅,⋅)表示拼接。
这个操作类似non-local self-attention,相当于用query去检索记忆帧中与目标相关的信息作为权重来加权 f m f^m fm。与non-local self-attention的区别在于本文采用相似性矩阵w作为权值从多个记忆帧中检索目标信息,而不是计算特征图中每个像素对的非局部自注意力。
3.4 Head Network
Anchor-Free预测网络。
3.5 Inference Phase
记忆网络十分灵活,本文推理时使用的记忆帧数量与训练时无关。4.3节展示了不同数量的记忆帧对跟踪器性能的影响。
根据经验,第一帧和前一帧对当前帧的影响比较大。第一帧的跟踪目标提供最可靠的信息,前一帧的跟踪目标具有与当前帧中的目标最相似的外观。
对于当前帧 F t F_t Ft,从历史帧中选择N帧作为记忆帧,第一帧和前一帧必选。其他 N − 2 N-2 N−2帧按照如下方法采样:
将所有历史帧分成 N − 2 N-2 N−2段,并从每个段中选择一个代表帧,以获得target domain adaptation, underfitting, the time cost之间的最佳平衡。
采样公式如下:
T
i
=
⌊
⌊
t
−
1
N
−
2
⌋
×
(
i
+
Δ
i
)
⌋
(
5
)
{T_i} = \left\lfloor {\left\lfloor {\frac{{t - 1}}{{N - 2}}} \right\rfloor \times \left( {i + {\Delta _i}} \right)} \right\rfloor{(5)}
Ti=⌊⌊N−2t−1⌋×(i+Δi)⌋(5)其中,
i
∈
{
1
,
2
,
⋯
,
N
−
2
}
i \in \{ 1,2, \cdots ,N - 2\}
i∈{1,2,⋯,N−2},
Δ
i
∈
[
0
,
1
)
{\Delta _i} \in [0,1)
Δi∈[0,1)是第i段中代表帧的偏移(the offset of the representative frame in the i-th segment)。第一个N帧中,设所有历史帧
(
F
1
,
F
2
,
…
,
F
N
−
1
)
\left( {{F_1},{F_2}, \ldots ,{F_{N - 1}}} \right)
(F1,F2,…,FN−1)为记忆帧。实验中,N设为6,且
{
Δ
i
=
1
2
∣
1
≤
i
≤
N
−
2
}
\left\{ {{\Delta _i} = \frac{1}{2}\mid 1 \le i \le N - 2} \right\}
{Δi=21∣1≤i≤N−2}。
4.Experiments
消融实验
主要分析了是否共享backbone参数,前背景标签的作用,记忆帧数量的影响。
- Backbone and Label
加了 fb_label 之后,不共享backbone参数效果更好。可能是因为此时两个分支的特征空间已经不一样了,期望学到的东西也是不一样的。fb_label指前景背景标签。
- 记忆帧数量
随着记忆帧数量的增加,性能都是先增后减。
训练时帧数越多,可以训练的目标模式越多,但与当前帧相似的帧也会越多。在这种情况下,网络倾向于比较最相似的图像对,而不是学习当前帧与有杂波背景或部分遮挡的帧之间的相似性。