Siamese目标跟踪:PG-Net(ECCV2020)
作者:互联网
论文 PG-Net: Pixel to Global Matching Network for Visual Tracking
参考文章 [Note24] PG-Net 超越互相关的Pixel to Global Matching
1.Motivation
跟踪任务中给定的模板通常较大,无法提取稳健的目标特征。直观看上去将这个模板特征区域映射回原图刚好对应目标大小(图3(a)中绿色方框),但是如果考虑感受野,实际映射在原图的区域更大(图3(a)红色方框),网络越深对应区域越大。这样就会在匹配区域中引入大量背景信息。
如图3(b),当搜索目标时会产生一系列匹配区域(即模板在搜索区域滑动时与模板大小相同的那一块搜索区域)。匹配区域太大,包含目标的匹配区域可能就不止一个,红色框应该是最佳匹配位置,但是因为匹配区域过大,周围的两个黄色框同样包含了目标,从而产生多个响应点,不管对分类还是回归都不友好。
2.Contribution
为了解决上述问题,关键是减小匹配区域。因此,只要减小模板大小,匹配区域就会变小。最简单的方法是直接对模板进行采样,但是这样会丢失很多特征导致性能大幅下降。
作者提出PG-Net,将模板特征分解为大小为1*1的空间核和通道来减少匹配区域,同时实现了抑制背景干扰和准确采集目标区域上的响应点,即图2。
3.Method
3.1 Pixel to Global matching Module
(a)表示模板特征分别在空间维度和通道维度上进行分解。(b)解释分解核的匹配过程。
首先将模板特征按空间维度分成大小 1 ∗ 1 ∗ c 1*1*c 1∗1∗c的kernels,共 n z n_z nz个, n z = w z ∗ h z n_z=w_z*h_z nz=wz∗hz(1), w z w_z wz、 h z h_z hz表示模板特征的宽和高。这组kernels用 Z f S = { z f S 1 , z f S 2 , … , z f S n z } {Z_{{f_S}}} = \left\{ {z_{{f_S}}^1,z_{{f_S}}^2, \ldots ,z_{{f_S}}^{{n_z}}} \right\} ZfS={zfS1,zfS2,…,zfSnz}, Z f s ∈ Z n z ∗ 1 ∗ 1 ∗ c {Z_{fs}} \in {\Bbb Z^{{n_z}*1*1*c}} Zfs∈Znz∗1∗1∗c表示,对应图2(a)中蓝色部分。另外将模板特征按通道分成 1 ∗ 1 ∗ n z 1*1*n_z 1∗1∗nz的kernels,共c个,用 Z f C = { z f C 1 , z f C 2 , … , z f C c } {Z_{{f_C}}} = \left\{ {z_{{f_C}}^1,z_{{f_C}}^2, \ldots ,z_{{f_C}}^c} \right\} ZfC={zfC1,zfC2,…,zfCc}, Z f c ∈ Z c ∗ 1 ∗ 1 ∗ n z {Z_{fc}} \in {{\Bbb Z}^{c*1*1*{n_z}}} Zfc∈Zc∗1∗1∗nz表示,对应图2(a)中绿色部分。
图2 (b)中 w x {w_x} wx、 h z {h_z} hz表示搜索特征 X f X_f Xf的宽和高, X f ( i , j ) {X_f}\left( {i,j} \right) Xf(i,j)表示第j行i列的位置。首先计算其与空间核 Z f s Z_{fs} Zfs的相似度,得到相似度图 S 1 S_1 S1,即计算搜索特征每个像素点与空间维度模板特征的相似度。
响应值 S 1 ( i , j ) S_1^{(i,j)} S1(i,j)中的第m个值表示 X f ( i , j ) {X_f}\left( {i,j} \right) Xf(i,j)与 Z f Z_f Zf的空间维度中的第m个位置之间的相似度: S 1 ( i , j ) [ m ] = x f ( i , j ) ⋅ z f S m m = 1 , 2 , … , n z , ( 2 ) S_1^{(i,j)}[m] = x_f^{(i,j)} \cdot z_{{f_S}}^m\quad m = 1,2, \ldots ,{n_z}{,(2)} S1(i,j)[m]=xf(i,j)⋅zfSmm=1,2,…,nz,(2)然后计算与通道核 Z f c Z_{fc} Zfc之间的相似度,相似度图 S 2 S_2 S2由下式表示: S 2 ( i , j ) [ n ] = S 1 ( i , j ) ⋅ z f C n n = 1 , 2 , … , c , ( 3 ) S_2^{(i,j)}[n] = S_1^{(i,j)} \cdot z_{{f_C}}^n\quad n = 1,2, \ldots ,c{,(3)} S2(i,j)[n]=S1(i,j)⋅zfCnn=1,2,…,c,(3)为方便计算,将PG-Corr运算 S 2 = P G ( X f , Z f ) {S_2} = PG\left( {{X_f},{Z_f}} \right) S2=PG(Xf,Zf)定义为: S 2 [ i , j , n ] = ∑ p , q , k X f [ i , j , k ] Z f [ p , q , k ] Z f [ p , q , n ] , ( 4 ) {S_2}[i,j,n] = \sum\limits_{p,q,k} {{X_f}} [i,j,k]{Z_f}[p,q,k]{Z_f}[p,q,n]{,(4)} S2[i,j,n]=p,q,k∑Xf[i,j,k]Zf[p,q,k]Zf[p,q,n],(4)其中, S 2 S_2 S2是PG-Corr的输出特征,大小与 X f X_f Xf相同。
a、b展示出了在复杂背景下PG-corr可以只关注目标本身而不受背景干扰,c、d展示了其对相似物的鲁棒性。
3.2 Architecture of proposed network
作者使用PG模块在SiamRPN++的基础上构建了一个跟踪器
3.3 Shared correlation architecture
(a)显示了现有跟踪网络中使用的连接方法,回归和分类分支具有单独的互相关。(b)是PGM中使用的共享连接方法。回归分支和分类分支共享相同的PG-Corr,分类和回归分别从相似度图中得出。首先通过 1 ∗ 1 1*1 1∗1卷积降维,然后将搜索特征 X f X_f Xf和模板特征 Z f Z_f Zf输入PG-Corr,之后使用相似度特征图预测目标框。
有博主实验[Note24] PG-Net 超越互相关的Pixel to Global Matching,这样做能大幅提高速度并且精度几乎没有损失,有些模型甚至能更高。
我的理解 :
SiamCAR操作和本文类似,模板图像和搜索图像经过主干网络提取特征,提取的特征先进行DW-Corr,再进入分类回归子网。我认为分类分支、回归分支不分别进行互相关(如上图b),是因为互相关这一步骤只是利用模板特征和搜索特征,没有引入额外的参数,前面的adj层主要作用是降维,同时也不影响后续分类回归子网的参数,所以只进行一次互相关对精度影响不大。SiamRPN++互相关操作就是上图a的情况。
3.4 Multiple losses mechanism
现有的大多数方法只用相应的损失函数来约束最终特征。然而,通过融合多层特征,只有一种优化的特征很难得到完美的表现。本文提出了多重损失机制来提高跟踪性能。
如图2所示,作者将损失函数应用于骨干网络的不同阶段。每个损失函数使相应特征更加稳健,并输出更准确的回归边界框和分类分数。每个stage i的损失函数定义为:
L
stag
e
i
=
L
c
l
s
(
P
i
,
P
∗
)
+
λ
L
r
e
g
(
B
i
,
B
∗
)
,
(
5
)
{{\mathcal L}_{{\text{stag}}{{\text{e}}_i}}} = {{\mathcal L}_{cls}}\left( {{P_i},{P^*}} \right) + \lambda {{\mathcal L}_{reg}}\left( {{B_i},{B^*}} \right){,(5)}
Lstagei=Lcls(Pi,P∗)+λLreg(Bi,B∗),(5)其中,
P
i
P_i
Pi、
B
i
B_i
Bi分别表示对应stage i的分类可能性和预测框。
P
∗
P^*
P∗and
B
∗
B^*
B∗ are the ground truth of classification and bounding box.
将初步跟踪结果作为最终输出并进行优化:
L
f
u
s
i
o
n
=
L
cls
(
P
f
u
s
i
o
n
,
P
∗
)
+
λ
L
reg
(
B
f
u
s
i
o
n
,
B
∗
)
,
(
6
)
{\mathcal{L}_{fusion}} = {\mathcal{L}_{{\text{cls }}}}\left( {{P_{fusion}},{P^*}} \right) + \lambda {\mathcal{L}_{{\text{reg }}}}\left( {{B_{fusion}},{B^*}} \right){,(6)}
Lfusion=Lcls (Pfusion,P∗)+λLreg (Bfusion,B∗),(6)
P
f
u
s
i
o
n
=
∑
i
δ
i
P
i
,
(
7
)
{P_{fusion}} = \sum\limits_i {{\delta _i}{P_i}}{,(7)}
Pfusion=i∑δiPi,(7)
B
f
u
s
i
o
n
=
∑
i
γ
i
B
i
,
(
8
)
{B_{fusion}} = \sum\limits_i {{\gamma _i}{B_i}}{,(8)}
Bfusion=i∑γiBi,(8)其中,
δ
i
{\delta _i}
δi、
γ
i
\gamma_i
γi是训练阶段自动优化的超参数。
最终损失函数如下:
l
o
s
s
=
L
f
u
s
i
o
n
+
∑
i
L
stag
e
i
,
(
9
)
loss = {\mathcal{L}_{fusion}} + \sum\limits_i {{\mathcal{L}_{{\text{stag}}{{\text{e}}_i}}}},(9)
loss=Lfusion+i∑Lstagei,(9)
4.Experiments
消融实验
实验结果表明,PG-Net更有效。多损失训练表明,在对每一阶段stage进行约束后,每一阶段的跟踪结果都有明显的提高,进一步提高了最终跟踪结果的准确性。Output指使用融合特征进行目标跟踪。
对比实验
5.Conclusion
PG-corr之所以有效就是因为把模板特征变成了 1 ∗ 1 1*1 1∗1的核,这样匹配区域也就只有一个 1 ∗ 1 1*1 1∗1大小,包含的背景信息大大减少。空间核关注模板每个区域的信息,而通道核更关注模板整体的信息。
标签:right,匹配,Siamese,ECCV2020,特征,PG,模板,left 来源: https://blog.csdn.net/cheetah_buyu/article/details/117078815