2019年CVPR的一篇关于细粒度识别的文章,我觉得论文的名字就很有吸引力,Destruction and Construction Learning(DCL)。
贡献
- 提出了一种新颖的“Destruction and Construction Learning(DCL)”框架,以进行细粒度的识别。对于Destruction,region confusion mechanism(RCM)迫使分类网络从区分区域(discriminative regions)中学习,而对抗性损失则防止了过度拟合RCM引起的噪声模式。对于construction,区域对准网络通过对区域之间的语义相关性进行建模来恢复原始区域布局。
- 在三个标准基准数据集上都有最先进的性能,在这些数据集中DCL始终优于现有方法。
- 与现有方法相比,DCL不需要额外的parts/object注释,并且在推理时不会引入任何计算开销。
Method
整个网络包括4个部分,如Fig.2所示,(1) Region Confusion Mechanism(RCM)。(2) Classification Network (3)Adversarial Learing Network (4)Region Alignment Network
但是在推理阶段 ,只需要Classification Network。
Destruction Learning
对于细粒度的图像识别,局部的细节要比全局结构更加的重要,在大多数情况下,不同的细粒度类别通常具有相似的全局结构,并且仅在某些局部细节上有所不同。这项工作,提出了通过shuffling the local regions来破坏全局结构,以更好地识别区分区域并学习区分特征。为了防止网络学习受到破坏所引入的嘈杂模式的影响,提出了adversarial counterpart,以拒绝与细粒度分类无关的RCM-induced模式。
Region Confusion Mechanism
如果图像中的局部区域被“shuffled”,则神经网络将被迫从可区分的区域细节中学习以进行分类。
如上图的FIg.3所示,Region Confusion Mechanism(RCM)旨在去破坏local image parts的空间布局,使神经网络将从可区分的区域细节中学习以进行分类。
整个RCM的操作如下,首先,我将整个的输入图像
I
I
I分成
N
×
N
N\times N
N×N个子区域,用
R
i
.
j
R_{i.j}
Ri.j来进行表示,
i
,
j
i,j
i,j分别代表水平和垂直方向。对于
R
R
R的第
j
j
j行,遵循一定的规则产生大小为
N
N
N的随机向量
q
j
q_j
qj,规则如下 :
对于
q
j
q_j
qj的第
i
i
i个元素,
q
j
,
i
=
i
+
r
q_{j,i}=i+r
qj,i=i+r,其中
r
r
r遵循【-k,k】的均匀分布的随机变量,
k
k
k是一个属于 [1,N)内的可调参数。然后,通过对数组
q
j
q_j
qj进行排序,可以得到第
j
j
j行中区域的新排列
σ
j
r
o
w
\sigma_j^{row}
σjrow,验证的条件为:
∀
i
∈
{
1
,
.
.
.
,
N
}
,
∣
σ
j
r
o
w
(
i
)
−
i
∣
<
2
k
\forall i\in\{1,...,N\},|\sigma_j^{row}(i)-i|<2k
∀i∈{1,...,N},∣σjrow(i)−i∣<2k,对于列的验证条件为:
∀
i
∈
{
1
,
.
.
.
,
N
}
,
∣
σ
i
c
o
l
(
j
)
−
j
∣
<
2
k
\forall i\in\{1,...,N\},|\sigma_i^{col}(j)-j|<2k
∀i∈{1,...,N},∣σicol(j)−j∣<2k,
原始区域位置中
(
i
,
j
)
(i,j)
(i,j)处的区域将放置到新坐标:
σ
(
i
,
j
)
=
(
σ
j
r
o
w
(
i
)
,
σ
i
c
o
l
(
j
)
)
\sigma(i,j)=(\sigma_j^{row}(i),\sigma_i^{col}(j))
σ(i,j)=(σjrow(i),σicol(j))
这其实就完成了RCM的操作。原始的图像为
i
i
i,被重新布局之后的图像为
ϕ
(
I
)
\phi(I)
ϕ(I),将其ground truth one-vs-all label
l
l
l和
I
I
I以及
ϕ
(
I
)
\phi(I)
ϕ(I)联结成
<
I
,
ϕ
(
I
)
,
l
>
<I,\phi(I),l>
<I,ϕ(I),l>用于训练。分类网络将输入图像映射到概率分布向量
C
(
I
,
θ
c
l
s
)
C(I,\theta_{cls})
C(I,θcls),其中
θ
c
l
s
\theta_{cls}
θcls代表在分类网络中所有的可学习的参数。分类网络最后的损失函数为:
其中
I
\mathcal{I}
I是训练集的所有图像。
由于全局结构已被破坏,为了识别这些随机混洗的图像,分类网络必须找到区分区域并了解类别之间的细微差异。
Adversarial Learning
为了最终能够有利于细粒度的识别,我们使用了RCM,但是它同时会带来很多的噪音,所以提出了对抗损失
L
A
d
v
\mathcal{L}_{Adv}
LAdv来防止过度拟合的 RCM-induced的噪音模式进入体征空间。将原始图像和已破坏图像视为两个域,对抗性损失和分类损失以对抗性方式工作,1)保持domain-invariant模式,2)拒绝
I
I
I和
ϕ
(
I
)
\phi(I)
ϕ(I)之间的domain-specific模式。
我们标记每一张图片为
d
∈
{
0
,
1
}
2
d\in \{ 0,1\}^2
d∈{0,1}2,表示这个图片是不是被破坏,我们在网络中添加一个鉴别器作为新的分支,来判断
I
I
I是否被破坏。
其中
C
(
I
,
θ
c
l
s
[
1
,
m
]
)
C(I,\theta_{cls}^{[1,m]})
C(I,θcls[1,m])是从主干分类网络第
m
m
m层的输出中提取的特征向量,
θ
c
l
s
[
1
,
m
]
\theta_{cls}^{[1,m]}
θcls[1,m]是分类网络第1层到第m层可以学习的参数,
θ
a
d
v
∈
R
d
×
2
\theta_{adv}\in \R^{d\times 2}
θadv∈Rd×2是一个线性的映射。鉴别器网络的损失
L
a
d
v
\mathcal{L_{adv}}
Ladv如下:
对于输入图像
I
I
I,我们用
F
m
k
(
I
)
F_m^k(I)
Fmk(I)表示第
m
m
m层第
k
k
k个特征映射,从卷积层的输出中提取特征,并在最后一个全连接层旁边平均池化以进行对抗性学习。通过
r
k
(
I
,
c
)
=
F
‾
m
k
(
I
)
×
θ
c
l
s
[
m
+
1
]
[
k
,
c
]
r^k(I,c)=\overline{F}_m^k(I)\times \theta_{cls}^{[m+1]}[k,c]
rk(I,c)=Fmk(I)×θcls[m+1][k,c],其中
θ
c
l
s
[
m
+
1
]
[
k
,
c
]
\theta_{cls}^{[m+1]}[k,c]
θcls[m+1][k,c]是第k层的特征映射和第c层的输出标签之间的权重。
Fig.4 中的散点图展示了,不同过滤器对于original image和destructed image响应的比较,每个具有正响应的过滤器都映射到散点图中的数据点
(
r
(
I
,
c
)
,
r
(
ϕ
(
I
)
,
c
)
)
(r(I,c),r(\phi(I),c))
(r(I,c),r(ϕ(I),c)),如图中展示的那样,通过
L
c
l
s
\mathcal{L}_{cls}
Lcls训练的要比
L
c
l
s
+
L
a
d
v
\mathcal{L}_{cls}+\mathcal{L}_{adv}
Lcls+Ladv更加紧凑。这意味着滤波器对RCM引入的噪声模式有较大的响应,也可能对原始图像有较大的响应(如作为A,B和C中可视化的视觉模式,如许多的过滤器对边缘式视觉图案和RCM引入的无关patterns响应),这些过滤器可能误导在原始图像上的预测。
对
L
c
l
s
+
L
a
d
v
\mathcal{L}_{cls}+\mathcal{L}_{adv}
Lcls+Ladv通过主干网络训练的散点图按照下面计算方法进行着色
其中
θ
a
d
v
[
k
,
1
]
\theta_{adv}[k,1]
θadv[k,1]是连接特征映射
F
m
k
(
.
)
F_m^k(.)
Fmk(.)和代表original image标签的权重,
θ
a
d
v
[
k
,
2
]
\theta_{adv}[k,2]
θadv[k,2]是连接
F
m
k
(
.
)
F_m^k(.)
Fmk(.)和代表destructed image标签的权重。
δ
k
\delta_k
δk用来评估第k个过滤器是否倾向于成为原始图像中的视觉图案。可以观察到,通过使用对抗损失,可以区分滤波器对嘈杂的视觉模式的响应(D VS. F)。
D: 倾向于对噪声模式做出响应的过滤器(RCM-induced的图像特征);
F: 倾向于响应全局上下文描述(原始图像特定的图像特征)的过滤器;
E: 绝大多数的滤波器都与通过
L
c
l
s
\mathcal{L_{cls}}
LclsL增强的详细的局部区域描述有关;
L c l s L_{cls} Lcls和 L a d v L_{adv} Ladv共同为Destruction Learning做出了贡献,其中仅增强了具有区别性的局部细节,并滤除了无关的功能。
Construction Learning
本文提出了一种具有区域构造损失
L
l
o
c
L_{loc}
Lloc的区域对齐网络,该网络可测量图像中不同区域的定位精度,以引导骨干网络通过端到端训练对区域之间的语义相关性进行建模。
原始的图片为
I
I
I,RCM之后的为
ϕ
(
I
)
\phi(I)
ϕ(I),原始图像中的
R
i
,
j
R_{i,j}
Ri,j区域与RCM之后的
R
σ
(
i
,
j
)
R_{\sigma (i,j)}
Rσ(i,j)是一致的。区域对齐网络作用于分类网络的一个卷积层的输出特征
C
(
.
,
θ
c
l
s
[
1
,
n
]
)
C(.,\theta_{cls}^{[1,n]})
C(.,θcls[1,n]),
n
n
n代表的就是第
n
n
n层,通过1×1卷积处理特征,以获得具有两个通道的输出。然后,通过ReLU和平均池处理输出,以得到大小为2×N×N的映射,最后的区域对其网络的输出为
其中
M
(
I
)
M(I)
M(I)的两个通道分别对应于行和列的位置坐标,其中
h
\mathcal{h}
h是我们提出的区域对齐网络,
θ
l
o
c
θ_{loc}
θloc是区域对齐网络中的参数。我们定义在
I
I
I中预测的
R
σ
(
i
,
j
)
R_{\sigma_{(i,j)}}
Rσ(i,j)的位置为
M
σ
(
i
,
j
)
(
ϕ
(
I
)
)
M_{\sigma(i,j)}(\phi(I))
Mσ(i,j)(ϕ(I)),在
I
I
I中预测的
R
i
,
j
R_{i,j}
Ri,j的位置为
M
i
,
j
(
I
,
i
,
j
)
M_{i,j}(I,i,j)
Mi,j(I,i,j)。他们对应的groudtruth 是
(
i
,
j
)
(i,j)
(i,j),区域对齐损失
L
l
o
c
L_{loc}
Lloc定义为预测坐标与原始坐标之间的L1距离,它被表示为:
区域构造损失有助于定位图像中的主要对象,并易于找到子区域之间的相关性。通过端到端训练,区域构造损失可以帮助分类骨干网络建立对对象的深刻理解,并对对象的形状和对象之间的语义相关性等结构信息进行建模。
Destruction and Construction Learning
在整个框架中,以端到端的方式训练分类,对抗和区域对齐损失,其中网络可以利用增强的局部细节和精心建模的对象部分的相关性来进行细粒度识别。具体来说,要最小化以下目标:
Fig.2显示了DCL框架的体系结构。 Destruction learning主要帮助向有区别的区域学习,而construction learning则根据区域之间的语义相关性帮助重新排列学习到的局部细节。因此,DCL基于判别区域结构良好的细节特征,生成了一组复杂而多样的视觉表示。