本文是2019年CVPR的一篇文章,作者团队来自于中国科技大学
论文链接:https://arxiv.org/abs/1903.06150v1
代码链接:https://github.com/researchmm/tasn
Devil是一个很有意思的名字,让我想起了boss提到的他们家的小公主~
contributions
- 提出了一种新颖的三线性注意力采样网络【trilinear attention sampling network】(TASN),以从数百个用于细粒度图像识别的parts提案中学习微妙的特征表示
- 以teacher-student的方式优化TASN,在这种方式中,可以将细粒度的功能高效地提取到单个主网中。
- 在iNaturalist、CUB Birds and Stanford、Cars数据集上取得了最优的效果。
Method
TASN的整个网路架构如上图所示,给定(a)中的输入图像,我们首先将其通过几个卷积层以提取特征图,然后通过(b)中的trilinear attention module将其进一步转换为attention map。要了解specific parts的细粒度特征,我们随机选择一个attention map,并使用选定的attention map对输入图像进行注意力采样。 (e)中的采样图像被称为细节保留图像,因为它可以高分辨率保存特定的细节。此外,为了捕获全局结构并包含所有重要细节,对所有注意力图进行平均,然后再次进行注意力采样,(d)中的这种采样图像称为结构保留图像。我们进一步制定了一个part-Net来学习保留细节的图像的细粒度表示,并制定了一个主网来了解保留结构的图像的特征。最后,part-Net生成soft target,以通过soft target交叉熵将细粒度特征提取到主网中。
Details Localization by Trilinear Attention
整个的trilinear attenation的过程用上图就可以很好的说明,首先将
c
×
h
×
w
c\times h \times w
c×h×w的feature map转换为
c
×
h
w
c\times hw
c×hw维的matrix,表示为
X
∈
R
c
×
h
w
X\in \R^{c\times hw}
X∈Rc×hw,trilinear function 表示为
M
b
:
=
(
X
X
T
)
X
\mathcal{M}_b:=(XX^T)X
Mb:=(XXT)X,其中
X
X
T
XX^T
XXT是一个双线性的特征,表示的是通道之间的空间关系,即
X
X
i
,
j
T
XX^T_{i,j}
XXi,jT表示的通道
i
i
i和通道
j
j
j之间的空间关系。为了使feature map更加鲁邦,将
X
X
T
XX^T
XXT和
X
X
X进行点乘,即将空间关系插入到特征图中,然后再进行归一化操作
M
(
X
)
:
=
N
(
N
(
X
)
X
T
)
X
\mathcal{M}(X):=\mathcal{N}(\mathcal{N}(X)X^T)X
M(X):=N(N(X)XT)X,其中
N
(
.
)
N(.)
N(.)表示的是用softmax归一化矩阵的第二维。两个
N
\mathcal{N}
N的意义是不一样的,第一个
N
(
X
)
\mathcal{N}(X)
N(X)是空间归一化,将特征图的每个通道保持在同一比例内,第二个是对每个关系向量
(
N
(
X
)
X
T
)
i
(\mathcal{N}(X)X^T)_i
(N(X)XT)i进行关系归一化。归一化之后的输出表示为
M
M
M,即
M
=
M
(
X
)
M=\mathcal{M}(X)
M=M(X),然后将其reshape成
c
×
h
×
w
c\times h\times w
c×h×w的,
M
M
M的每一个通道都代表一个attention map
M
i
∈
R
h
×
w
M_i\in \R^{h\times w}
Mi∈Rh×w。
Details Extraction by Attention Sampling
基于注意力的采样器,该采样器将图像以及三线性注意力图作为输入,并生成保留结构的图像和保留细节的图像,保留结构的图像捕获了全局结构,并包含所有重要细节。与原始图像相比,保留的结构删除了没有细粒度细节的区域,因此可以更好地以高分辨率表示可区分的部分。保留细节的图像集中于单个部分,可以保留更多细粒度的细节。
对于输入图像
I
I
I,我们通过在不同attention map上的非均匀采样得到保存结构的
I
s
I_s
Is图像和保留细节的
I
d
I_d
Id图像。
其中
M
M
M是一个attention map,
S
\mathcal{S}
S(.)是nonuniform sampling function ,
A
(
.
)
\mathcal{A}(.)
A(.)是在channel上的平均池化,
R
(
.
)
\mathcal{R}(.)
R(.)表示从输入中随机选择一个通道。
将注意力图视为probability mass function,其中具有较大注意力值的区域更可能被采样。以structure-preserved sampling 为例,首先计算x轴和y轴上structure-preserved attention map
A
(
M
)
\mathcal{A}(M)
A(M)的积分
m
a
x
max
max函数将attention map分解为二维的,然后再使用下式,进一步的获取采样函数,
F
−
1
\mathcal{F}^{-1}
F−1是
F
\mathcal{F}
F的反函数,注意力图用于计算原始图像和采样图像的坐标之间的映射函数。
上图就可以很好的展示整个的操作过程,对attention map去计算在x轴
b
1
b1
b1和y轴
b
2
b2
b2上的最大值,进而将其分解为2维,然后获取
b
1
b1
b1和
b
2
b2
b2的积分,显示在
c
1
c1
c1和
c
2
c2
c2中,然后我们进一步的获取
c
1
c1
c1和
c
2
c2
c2的反函数,即均匀的采样
x
,
y
x,y
x,y轴上的点,也就是如Fig.4
c
1
,
c
2
c1,c2
c1,c2中红色箭头所示,进而得到其对应的蓝色箭头,两者相交的点为sampling points,即d中展示的点,e是最终采样的图片(保留结构的图像)。可以在d中看到,对于注意力值大的区域,我们分配了更多的采样点。
Details Optimization by Knowledge Distilling
对于每一次的迭代,我们都可以获取通过Attention Sampling 得到的structure-preserved image(
I
s
I_s
Is)和details-preserved image(
I
d
I_d
Id),将他们放到backbone CNN(eg. Resnet-50)来得到全连接的输出
z
s
,
z
d
z_s,z_d
zs,zd,然后用softmax classifier将其转换为probability vector
q
s
,
q
d
q_s,q_d
qs,qd,来表示每个类别的预测概率。
q
d
q_d
qd同
q
s
q_s
qs一样,
T
T
T是一个参数,在分类任务中,通常设置为1。
master-net的soft target交叉熵如下所示:
其中
N
N
N代表的是类别数量,最后,我们的master-net的目标函数可以表示为
其中
L
c
l
s
L_{cls}
Lcls是一个分类损失函数,
y
y
y是一个表示标签的向量,
λ
\lambda
λ表示的是两者的损失权重。
soft target交叉熵的目的是提取学习到的特征以获取细粒度的细节,并将此类信息传输到主网络。
Experiments
在Caltech-UCSD Birds(CUB-200-2011) [34], Stanford Cars and iNaturalist-2017上进行评测, iNaturalist-2017是有13个超类的最大的细粒度任务的数据集。
上图是在CUB-200-2011上做的消融实验来探讨不同的归一化的方法对实验结果的影响。
上图是在CUB-200-2011上探讨不同的sampling module对实验结果的影响。
上图是在CUB-200-2011上探讨不同的输入分辨率对distilling module的影响。
上图中的(a)是特征图,(b)是trilinear attention map,随机的选择了9个通道进行对比,可以很明显的看到(b)中更加的专注于特定的部分,很少涉及背景噪音。
文章在三个数据集上的实验非常的丰富,只截取几个了上述的几个进行展示,有兴趣的还需参考原文。