Siamese目标跟踪:STMTrack: Template-free Visual Tracking with Space-time Memory Networks(CVPR2021)

论文 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

图2 STMTrack

图2 STMTrack

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}} fimRC×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} fqRC×H×W

3.3 Space-time Memory Network

图3 时空记忆网络

图3 时空记忆网络

这里 f m ∈ R T × H × W × C f^m \in R^{T \times H \times W \times C} fmRT×H×W×C f q ∈ R C × H × W f^q \in R^{C\times H\times W} fqRC×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}} wRTHW×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=kexp[(fkmfjq)/s]exp[(fi.mfjq)/s](3)其中,i是 f m ∈ R T H W × C f^m \in R^{THW \times C} fmRTHW×C上每个像素点的索引,j是 f q ∈ R C × H W f^q \in R^{C \times HW} fqRC×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} ab=i=1naibi=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)iTw)(4)其中, ( f m ) T ∈ R C × T H W {\left( {{f^m}} \right)^T} \in {R^{C \times THW}} (fm)TRC×THW f m ∈ R T H W × C {f^m} \in {R^{THW \times C}} fmRTHW×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 N2帧按照如下方法采样:

将所有历史帧分成 N − 2 N-2 N2段,并从每个段中选择一个代表帧,以获得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=N2t1×(i+Δi)(5)其中, i ∈ { 1 , 2 , ⋯   , N − 2 } i \in \{ 1,2, \cdots ,N - 2\} i{1,2,,N2} Δ 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,,FN1)为记忆帧。实验中,N设为6,且 { Δ i = 1 2 ∣ 1 ≤ i ≤ N − 2 } \left\{ {{\Delta _i} = \frac{1}{2}\mid 1 \le i \le N - 2} \right\} {Δi=211iN2}

4.Experiments

消融实验

主要分析了是否共享backbone参数,前背景标签的作用,记忆帧数量的影响。

  1. Backbone and Label
    加了 fb_label 之后,不共享backbone参数效果更好。可能是因为此时两个分支的特征空间已经不一样了,期望学到的东西也是不一样的。fb_label指前景背景标签。
表1 消融实验 GOT-10k

表1 消融实验 GOT-10k

表2 消融实验OTB-2015,TrackingNet, and LaSOT (AUC)

表2 消融实验OTB-2015,TrackingNet, and LaSOT (AUC)

  1. 记忆帧数量
    随着记忆帧数量的增加,性能都是先增后减。

训练时帧数越多,可以训练的目标模式越多,但与当前帧相似的帧也会越多。在这种情况下,网络倾向于比较最相似的图像对,而不是学习当前帧与有杂波背景或部分遮挡的帧之间的相似性。

表3 GOT-10K训练时不同数量记忆帧的AO

表3 GOT-10K训练时不同数量记忆帧的AO

表4 TrackingNet 推理阶段不同数量记忆帧的AUC

表4 TrackingNet 推理阶段不同数量记忆帧的AUC

对比实验

图4LaSOT

图4 LaSOT

表5 OTB-2015

表5 OTB-2015

表6 TrackingNet

表6 TrackingNet

表7 GOT-10K

表7 GOT-10K

表8 UAV123

表8 UAV123

表9 VOT2018

表9 VOT2018

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值