发表在CVPR2018 论文地址在此
摘要
观察到在图像分类任务中学习的语义特征和在相似性匹配任务中学习的外观特征互补,作者构建了两个孪生网络框架,称为SA-Siam,用于实时的目标跟踪。SA-Siam由语义分支和外观分支组成,每一个分支都是一个相似性学习孪生网络。作者分别训练了这两个分支来保持两种类型特征的异质性,也就是让两种特征不一样。此外,作者在语义分支上加入了通道注意力机制,这个东东是干啥的,它可以根据目标位置周围的信息激活来计算通道权重,不同的跟踪目标有不同的通道权重。同时SiamFC的固有结构可以让跟踪器保持实时性,两个孪生网络和注意力机制的设计可以大大的提高跟踪性能。通过在OTB2013/50/100基准上测试,作者提出的的SA-Siam算法性能优于其它的实时跟踪器。
框架
本文的关键是设计一个高性能的跟踪器,即拥有判别特征,又可以鲁棒性强,但一般的设计思路是强有力的深度特征和在线训练,本文舍弃了这个做法,采用两个孪生网络分别训练出不同的特征,一个是语义网络,采用图像分类任务中的深层特征包含很强的语义信息,一个是外观网络,采用相似性学习问题中的外观特征,它俩可以做到互补。
结构如下图:
外观网络
上图蓝色表示外观网络,特征从SiamFC网络中提取,没什么好说的。公式如下:
h
a
(
z
,
X
)
=
c
o
r
r
(
f
a
(
z
)
,
f
a
(
X
)
)
h_a(z,X)=corr(f_a(z),f_a(X))
ha(z,X)=corr(fa(z),fa(X))
z是目标图像,X是搜索区域,
f
a
f_a
fa是特征提取,
c
o
r
r
corr
corr是相关操作
损失函数如下:
a
r
g
min
θ
a
1
N
∑
i
=
1
N
{
L
(
h
a
(
z
i
,
X
i
;
θ
a
)
,
Y
i
)
}
arg\min_{\theta _a}\frac{1}{N}\sum_{i=1}^{N}\left \{ L(h_a(z_i,X_i;\theta _a),Y_i) \right \}
argθaminN1i=1∑N{L(ha(zi,Xi;θa),Yi)}
N是训练样本数, Y i Y_i Yi是ground truth的响应。
语义网络
这篇文章的重点便是此,上图橙色的表示语义网络。
注意几点:
参数用的是在分类任务中预训练好的AlexNet参数,这点很重要!在训练和测试时固定所有参数,它不训练。
提取最后两层conv4和conv5的特征,用1x1卷积核融合这些特征,并改变通道数使通道总数和外观网络的通道数一样。这些特征来产生通道权重。
目标模板变为
z
s
z^s
zs,
z
s
z^s
zs和X一样大,和
z
z
z有一样的中心,但包含了上下文信息,因为支路上加了通道注意力模型,通过目标和周围的信息来决定权重,选择对特定跟踪目标影响更大的通道。
另外,要对最后两层conv4和conv5出来的feature map在做一个简单的裁剪操作,再乘上权重。这样做的目的是为了和
z
z
z大小的输出尺寸一样大,好做最后的响应图融合。
语义分支网络训练时只训练通道注意力模块和融合模块。
- 通道注意力模型
为什么加入这个模型呢?作者这么说:高层语义特征对目标外观的变化具有鲁棒性,因此使得跟踪器判别力不强, 为了提升语义分支的判别力,加入了通道注意力模型。因为不同的通道对不同的跟踪目标的重要性不一样,通过这个模型给来赋予这些影响大的通道更高的权值。另外,既然要寻找更有判别力的通道,目标周围的信息也很重要,所以作者采用 z s z^s zs而不是 z z z,也就是说,通道注意力模型输入 f s ( z s ) f_s(z^s) fs(zs),输出权重$\xi $。
下图以conv5中的第i个通道特征图为例,分成 3 × 3 3\times3 3×3网格,中间网格大小是 6 × 6 6\times6 6×6,对每个网格进行最大池化,然后加入一个多层感知机,含有9个神经元和一个隐层,隐层采用ReLU函数,多层感知机可以参考这篇博客:https://blog.youkuaiyun.com/xholes/article/details/78461164,最后再加一个带偏差的sigmoid函数,输出最终的权值,权值和每个点相乘。
注意,这个模型只是加在目标模板支路上,也就是只是对第一帧进行权值计算。
经过上面的过程,热力图通过下面公式计算得出:
h
a
(
z
s
,
X
)
=
c
o
r
r
(
g
(
ξ
⋅
f
a
(
z
)
)
,
g
(
f
a
(
X
)
)
)
h_a(z^s,X)=corr(g(\xi \cdot f_a(z)),g(f_a(X)))
ha(zs,X)=corr(g(ξ⋅fa(z)),g(fa(X)))
ξ
\xi
ξ是通道权重,g()是对特征进行融合,便于相关操作。损失函数如下:
a
r
g
min
θ
s
1
N
∑
i
=
1
N
{
L
(
h
s
(
z
i
s
,
X
i
;
θ
s
)
,
Y
i
)
}
arg\min_{\theta _s}\frac{1}{N}\sum_{i=1}^{N}\left \{ L(h_s(z^{s}_{i},X_i;\theta _s),Y_i) \right \}
argθsminN1i=1∑N{L(hs(zis,Xi;θs),Yi)}
再次注意:外观网络和语义网络分开训练,语义网络只训练通道注意力模块和融合模块。
跟踪时,两个分支的网络得出的热力图由下面公式计算:
h
(
z
s
,
X
)
=
λ
h
a
(
z
,
X
)
+
(
1
−
λ
)
h
s
(
z
s
,
X
)
h(z^s,X)=\lambda h_a(z,X)+(1-\lambda )h_s(z^s,X)
h(zs,X)=λha(z,X)+(1−λ)hs(zs,X)
λ \lambda λ是超参数,作者通过实验得出 λ = 0.3 \lambda=0.3 λ=0.3最好。
最后,作者讨论了本文的三个重点细节:
1. 他们将两个网络分开训练而不是联合训练,这样保证两个网络的异质性
2. S-Net中AlexNet部分的参数没有微调,直接用的是预训练好的分类任务中的参数
3. A-Net保持和SiamFC一样,这样可以保证网络之前优异的泛化能力
实验
训练数据集是ILSVRC-2015
作者比较了联合训练和分开训练,联合训练会使两个网络的特征同质化,做不到互补,最后的性能比分开训练差。
作者还举出了两个可视化的通道权重例子,如下图:
可以看出不同卷积层、不同跟踪目标的通道参数分布都不相同。
剩下的实验略