Intra-class Part Swapping for Fine-Grained Image Classification
2021 WACV
文章目录
0 摘要
mix类方法的局限性:混合随机图像内容可能会产生包含破坏对象结构的图像。由于类别差异主要存在于小部分区域,与混合像素的数量成比例地混合标签可能会导致标签噪声问题。
为了增加更合理的训练数据,提出了类内部分交换(InPS),通过对来自同一类的输入对执行注意力指导的内容交换来产生新数据,避免了引入噪声标签(因为是同一类)并确保生成图像中对象的整体结构(交换同语义)。
通过结合中级特征学习,达到了最先进的性能。
1 引言
mix这一系列的数据增广方法对于细粒度图像来说存在很大的局限性。
本文提出了InPS,对要混合的图像内容和标签对施加了限制。
从同一类中随机选择输入对,然后构建一个注意力池来指导两个潜在部分区域之间的内容交换。
3 方法
给定图片根据特征定位到目标,将图片分成两个区域,包含关键信息的内部注意力区域和外部保留区域。
给定注意区域,目标是驱动网络在更多样化的上下文中理解细粒度对象,需要解决以下两个问题:
- 仅给定图像级标签,如何定义和获取确定的区域。
- 将图像混合成新样本时如何保留监督信息
3.1 注意力先验
使用CAM得到初始注意力图 M a M_a Ma,规定一个阈值 δ \delta δ,得到二进制掩模 B a B_a Ba(大于阈值的地方为1,反之亦然)。
架构包含一个共享主干网络,这样可以从不同层生成注意力图。以两个attention为例,对应的两个子网络分别用 S a S_a Sa和 S b S_b Sb表示。 S a S_a Sa和 S b S_b Sb的区别在于卷积层数和线性分类器之前的池化方法。两个子网络都从一个卷积块开始,其目标是确定初始注意力。
通过结合初始注意力图,引入了注意力池。通过从指定分布中采样阈值 δ \delta δ,注意力空间被扩展到一个更大的空间。训练阶段,随机采样注意力对来指导交换操作。
3.2 类内部分交换
图像对: ( I 1 , l 1 ) , ( I 2 , l 2 ) (I_1,l_1),(I_2,l_2) (I1,l1),(I2,l2),其中 l 1 = l 2 l_1=l_2 l1=l2。为了在同类中执行交换操作,在源图像的注意力块中应用一个仿射变换 T T T(缩放和平移)。
从
I
2
I_2
I2的一部分交换到
I
1
I_1
I1为例,合成图像计算为:
I
1
~
=
S
(
F
(
G
(
I
2
)
,
T
θ
)
,
B
2
∗
I
2
)
+
(
1
−
B
1
)
∗
I
1
\tilde{I_1}=S(F(G(I_2),T_{\theta}),B_2*I_2)+(1-B_1)*I_1
I1~=S(F(G(I2),Tθ),B2∗I2)+(1−B1)∗I1
其中,
F
F
F由二维坐标系中大小为2 × 3 的增广矩阵
T
θ
T_\theta
Tθ进行参数化,由于仿射变换适用于像素的协调,因此使用采样器
S
S
S将采样变换后的裁剪区域从旧坐标网格化为新坐标。 由于只对空间缩放和平移感兴趣,仿射矩阵可以简化为:
T
θ
=
[
a
x
0
c
x
0
a
y
c
y
]
=
[
1
0
c
x
0
1
c
y
]
⋅
[
a
x
0
0
0
a
y
0
0
0
1
]
T_{\theta}=\begin{bmatrix} a_x & 0 & c_x\\ 0 & a_y & c_y \end{bmatrix}= \begin{bmatrix} 1 & 0 & c_x\\ 0 & 1 & c_y \end{bmatrix} \cdot \begin{bmatrix} a_x & 0 & 0\\ 0 & a_y & 0\\ 0 & 0 & 1 \end{bmatrix}
Tθ=[ax00aycxcy]=[1001cxcy]⋅
ax000ay0001
也就是:
I
1
I_1
I1提供的是外围区域,
I
2
I_2
I2提供的是内部注意力区域。
应用阈值选定注意区域,公式化为一个矩形框,由左上点和右下点确定,即 ( x 1 t l , y 1 t l ) , ( x 1 b r , y 1 b r ) (x^{tl}_1,y^{tl}_1),(x^{br}_1,y^{br}_1) (x1tl,y1tl),(x1br,y1br)。
缩放矩阵
A
θ
A_\theta
Aθ:
a
x
=
x
1
b
r
−
x
1
t
l
x
2
b
r
−
x
2
t
l
,
a
y
=
y
1
b
r
−
y
1
t
l
y
2
b
r
−
y
2
t
l
a_x=\frac{x^{br}_1-x^{tl}_1}{x^{br}_2-x^{tl}_2},a_y=\frac{y^{br}_1-y^{tl}_1}{y^{br}_2-y^{tl}_2}
ax=x2br−x2tlx1br−x1tl,ay=y2br−y2tly1br−y1tl
假设,
(
x
,
y
)
(x,y)
(x,y)是
I
2
I_2
I2的一个坐标,应用缩放矩阵后,
[
a
x
0
0
a
y
]
⋅
[
x
y
]
=
[
a
x
x
a
y
y
]
\begin{bmatrix} a_x & 0\\ 0 & a_y \\ \end{bmatrix} \cdot \begin{bmatrix} x\\ y \end{bmatrix} = \begin{bmatrix} a_xx\\ a_yy \end{bmatrix}
[ax00ay]⋅[xy]=[axxayy]
然后在新的坐标系下应用平移因子
c
x
,
c
y
c_x,c_y
cx,cy。在坐标向量中引入额外的维度1后,坐标表示为
(
a
x
x
,
a
y
y
,
1
)
(a_xx, a_yy, 1)
(axx,ayy,1)。求解以下方程:
[
1
0
c
x
0
1
c
y
]
⋅
[
a
x
x
a
y
y
]
=
[
x
1
y
1
]
\begin{bmatrix} 1 & 0 & c_x\\ 0 & 1 & c_y \\ \end{bmatrix} \cdot \begin{bmatrix} a_xx\\ a_yy \end{bmatrix}= \begin{bmatrix} x_1\\ y_1 \end{bmatrix}
[1001cxcy]⋅[axxayy]=[x1y1]
即:
c
x
=
a
x
x
2
−
x
1
,
c
y
=
a
y
y
2
−
y
1
c_x=a_xx_2-x_1,c_y=a_yy_2-y_1
cx=axx2−x1,cy=ayy2−y1。
为了在图像对之间执行交换变换,采样器必须采用采样点集 F ( G ( ⋅ ) , T θ ) F(G(\cdot),T_{\theta}) F(G(⋅),Tθ)和 I 2 I_2 I2并产生采样输出图像 I 1 ~ \tilde{I_1} I1~。
输出表示为
V
V
V ,然后将采样写为:
V
(
T
θ
⋅
G
(
I
2
)
x
,
y
=
(
B
2
∗
I
2
)
x
,
y
,
∀
x
∈
[
1...
w
]
,
y
∈
[
1...
h
]
V^{(T_\theta\cdot G(I_2)_{x,y}}=(B_2*I_2)^{x,y}, \forall x \in[1 ...w],y\in[1...h]
V(Tθ⋅G(I2)x,y=(B2∗I2)x,y,∀x∈[1...w],y∈[1...h]
仿射矩阵是直接从选定的注意力中计算出来的。通过将仿射矩阵乘以掩码源图像,将源补丁的大小和位置与目标位置对齐,然后与目标图像的外部区域线性组合。
交换操作仅用于训练阶段,在测试期间网络的行为与使用的主干相同。实际上,这种变换是通过将目标图像大小的网格变换并在结果坐标处插入源图像来应用的。
InPS同时利用了类内交换和注意力信号。来自正面示例的内部区域和外部区域的合理组合创建了一个大的上下文空间,使其更不容易过拟合。当在不同的上下文中识别对象时,局部部分的贡献不同,有更多的上下文可供探索,InPS 理解具有更好知识优势的类别。 这有助于网络通过准确使用来自更多对象部分的信息来识别细粒度对象,从而有利于定位能力。
4 实验
类内部注意力分析
弱监督定位
预测边界框和真实值之间的IOU大于 0.5,同时预测标签是正确的。 否则,定位精度认为估计错误。CAM用于通过对其应用阈值来估计边界框。
所提出的方法还表现出对阈值的鲁棒性:方法在高阈值下实现了最佳性能,并且指标下降速度比其他方法慢。
细粒度分类
在网络中包含了中间层特征,在ResNet的第四个块后(增加了1*1卷积、最大池化、线性分类器)学习中级特征。由于第 4 个块的特征在馈送到新子网络之前被分离,因此新分支的梯度不会传播回骨干网络,因此不会影响现有网络的训练。
新分支的性能:(原论文里面的表4不知道是干嘛的)
消融实验
阈值使用beta分布,从中为每个样本随机采样一个阈值。所提出的方法根据两个超参数值而波动 ,在整篇论文中使用 α = 1.0, β = 1.0。
5 结论
本文中提出了用于细粒度识别的类内部件交换(InPS)。避免了类间混合,从而减轻了混合过程中的标签噪声。 此外,使用注意力信号引导重要区域之间的交换创建了合理的组合,消除了新样本的潜在结构。实验表明,InPS 在细粒度分类和弱监督定位方面始终优于最近的增强方法。