多标签图像识别的语义图表示学习
摘要
识别图像的多个标签是一项实用且具有挑战性的任务,通过搜索语义敏感区域和建立标签依赖关系已经取得了重要进展,然而,由于缺乏部分级监督和语义指导,现有的方法无法准确定位语义区域.此外,它们不能充分探索语义区域之间的相互作用,也没有明确地对标签共现进行建模.为了解决这些问题,我们提出了一个特定于语义的图表示学习(SSGRL)框架,该框架由两个关键模块组成:1)语义解耦模块,包含类别语义来指导特定语义表示的学习.2)语义交互模块,将这些表示与基于统计标签共现的图相关联,并通过图传播机制探索它们之间的交互.在公共基准测试上的大量实验表明,我们的SSGRL框架比当前最先进的方法有相当大的优势,例如,在PASCAL VOC 2007和2012、Microsoft-COCO和Visual基因组基准测试上,mAP分别提高了2.5%、2.6%、6.7%和3.1%
1.介绍
多标签图像分类是计算机视觉中的一个基本而又实用的任务,因为现实世界中的图像通常包含多个不同的语义对象,目前,它正受到越来越多的关注,因为它支撑了基于内容的图像检索和推荐系统中的大量关键应用。要预测多标签的存在,除了要处理视点、尺度、光照和遮挡等复杂变化的挑战外,还需要挖掘语义对象区域,建模这些区域之间的关联和相互作用,这使得多标签图像分类成为一个尚未解决且具有挑战性的任务。
目前的多标签图像分类方法通常采用目标定位技术或借助视觉注意网络定位语义目标区域。但是,对象定位技术必须搜索大量与类别无关的和冗余的建议,很难集成到深度神经网络中进行端到端训练,而视觉注意网络由于缺乏监督和指导,只能粗略定位目标区域。其他一些著作引入了RNN/LSTM 来进一步建模语义区域之间的上下文相关性,并捕获标签相关性。然而,RNN/LSTM顺序地对区域/标签依赖性进行建模,这一特性不能完全被利用,因为每个区域或标签对之间存在直接关联。此外,它们没有明确地对统计标签共现进行建模,这也是帮助多标签图像分类的关键。
为了解决这些问题,我们提出了一种新的语义特定图表示学习框架(Semantic-Specific Graph Representation Learning (SSGRL)),该框架结合了类别语义来指导语义特定特征的学习,并探索它们之间的相互作用,以促进多标签图像分类.更具体地说,我们首先设计一个语义解耦模块,该模块利用类别的语义特征来指导学习与类别相关的图像特征,这些图像特征更加关注相应的语义区域(参见图1)。然后,我们构建一个基于统计标签共现的图来关联这些特征,并通过图传播机制来探索它们之间的相互作用。图1展示了提议的SSGRL框架的基本工作。
图1.特定于语义的图表示学习框架。它结合了类别语义,通过语义解耦模块指导学习语义特定的表示,并通过语义交互模块探索它们的交互
我们的贡献可以总结为三个方面:1)我们提出了一个新的语义特定图表示学习框架,它可以更好地学习语义特定的特征,并探索它们之间的相互作用,以帮助多标签图像识别。2)我们引入了一个新的语义解耦模块,它结合了类别语义来指导学习语义特定的特征。3)我们在包括PASCAL VOC 2007 & 2012、微软-COCO和具有更大规模类别的视觉基因组在内的各种基准上进行实验,并证明我们的框架表现出明显的性能改进。
2.相关工作
多标签图像分类的最新进展依赖于对象定位和深度学习技术的结合.一般来说,他们引入了对象建议,这些建议被假定为包含图像中所有可能的前景对象和从所有这些建议中提取的合并本地信息的聚集特征.尽管这些方法取得了显著的性能改进,但候选区域定位步骤通常会产生冗余计算成本,并阻碍模型与深度神经网络的端到端训练.张等人进一步利用基于学习的区域提议网络,并将其与深度神经网络集成。虽然这种方法可以被联合优化,但是它需要边界框的附加注释来训练提议生成组件,为了解决这个问题,其他一些方法[34,26,34]借助注意机制来定位信息区域,并且这些方法可以以端到端的方式用图像级注释来训练。例如,王等人[26]引入空间变换器自适应地搜索语义感知区域,然后从这些区域聚集特征以识别多个标签。然而,由于缺乏监督和指导,这些方法只能粗略地确定地区。
为标签依赖关系建模可以帮助捕获标签共现,这也是帮助多标签识别的关键。为此,一系列工作引入了图形模型,例如条件随机场[8],依赖网络[ 10]或同现矩阵[29]来捕获成对标签相关性。最近,王等人[24]提出了一个CNN-RNN框架,该框架隐含地利用语义冗余和共现依赖性来促进有效的多标签分类。一些工作[33,2]进一步利用建议生成/视觉注意机制来搜索局部区分区域,LSTM [13]则明确地对标签依赖性建模。例如,陈等人[2]提出了一个循环注意强化学习框架,以迭代地发现一系列注意和信息区域,并对这些注意区域之间的长期依赖性进行建模,以帮助捕捉语义标签共现。然而,RNN/LSTM [13]以顺序的方式模拟了标签依赖性,并且他们不能完全利用该特性,因为每个标签对之间可能存在相互依赖性。
与所有这些方法不同,我们的框架结合了类别语义来指导学习语义感知特征向量。此外,我们以结构化图的形式直接关联所有标签对,并引入图传播机制,以在统计的标签共现的明确指导下探索它们之间的相互作用。因此,我们的框架可以更好地学习与类别相关的特性,并探索它们之间的相互作用,从而显著提高性能。
3.SSGRL 框架
3.1概观
在这一节中,我们首先对所提出的由两个关键模块(即语义解耦和语义交互)组成的SSGRL框架进行总体描述。给定一幅图像,我们首先将其输入到一个全卷积的网络中,以生成其特征图. 然后对于每个类别,语义解耦模块结合类别语义来指导学习特定于语义的表示,该表示关注于该类别的语义区域.最后,语义交互模块使用基于统计标签共现构建的图来关联这些表示,并且它使用图传播网络来探索语义交互,以进一步学习上下文化的特征,然后使用这些特征来预测最终的标签分布.图2展示了SSGRL框架的详细工作.
图2表示我们的语义特定图表示学习框架。给定一个输入图像,我们首先将它输入CNN以提取图像表示,然后,语义解耦(SD)模块引入类别语义来指导语义特定表示的学习,语义交互模块使用图将这些表示关联起来,并采用图神经网络(GNN)来探索它们之间的交互
3.2 语义解耦
语义解耦模块以类别语义为指导,学习语义特定的特征表示。这里,我们采用语义引导的注意机制来实现这个模块。
给定输入图像
I
I
I,框架首先提取其特征图
f
T
∈
R
W
×
H
×
N
f^T∈R^{W×H×N}
fT∈RW×H×N,其中
W
、
H
W、H
W、H和
N
N
N是特征图的宽度、高度和通道数,公式如下:
其中
f
c
n
n
(
⋅
)
f_{cnn}(·)
fcnn(⋅)是一个特征提取器,它由一个全卷积网络实现.对于每个类别
c
c
c,框架使用预先训练的GloVe [21]模型提取
d
d
d维语义嵌入向量:
其中
w
c
w_c
wc是类
c
c
c的语义词.然后,我们引入了一种语义引导的注意机制,该机制结合了语义向量
x
c
x_c
xc来引导更多地关注语义感知区域,从而学习与该类别相对应的特征向量.更具体地说,对于每个位置
(
w
,
h
)
(w,h)
(w,h),我们首先使用低秩双线性池方法融合相应的图像特征
f
w
h
I
f^{I}_{wh}
fwhI和
x
c
x_c
xc[14]:
其中
t
a
n
h
(
⋅
)
tanh(·)
tanh(⋅)是双曲正切函数,
U
∈
R
N
×
d
1
,
V
∈
R
d
s
×
d
1
,
P
∈
R
d
1
×
d
2
,
b
∈
R
d
2
U∈R^{N×d_1},V∈R^{d_s×d_1},P∈R^{d_1×d_2},b∈R^{d_2}
U∈RN×d1,V∈Rds×d1,P∈Rd1×d2,b∈Rd2 是可学习的参数,⊙是逐元素乘法运算,
d
1
d_1
d1和
d
2
d_2
d2是联合嵌入和输出特征的尺寸,然后,在
x
c
x_c
xc的指导下计算注意系数:
这个系数表示位置
(
w
,
h
)
(w,h)
(w,h)的重要性。
f
a
(
⋅
)
f_a(·)
fa(⋅)是一个注意函数,由一个全连接的网络实现。对所有位置重复该过程,为了使不同样本的系数易于比较,我们使用softmax函数对所有位置的系数进行归一化:
最后,我们对所有位置执行加权平均池化以获得编码与类别
c
c
c相关信息的特征向量:
我们对所有类别重复该过程,并获得所有与类别相关的特征向量 { f 0 , f 1 , . . . , f C − 1 } \{f_0,f_1,...,f_{C-1} \} {f0,f1,...,fC−1}
3.3.3 语义交互
一旦获得了对应于所有类别的特征向量,我们就将这些向量以基于统计标签共生关系构建的图的形式进行关联,并引入图神经网络来通过图传播消息以探索它们的相互作用
图构造:我们首先引入图
G
=
{
V
,
A
}
G=\{V,A\}
G={V,A},其中节点指的是类别,边指的是对应类别之间的共现.具体来说,假设数据集包含C个类别,V可以表示为
{
v
0
,
v
2
,
…
,
v
C
−
1
}
\{v_0, v_2,…, v_{C-1}\}
{v0,v2,…,vC−1},元素
v
c
v_c
vc表示类别
c
c
c,A可以表示为
{
a
00
,
a
01
,
…
,
a
0
(
C
−
1
)
,
…
,
a
(
C
−
1
)
(
C
−
1
)
}
\{a_{00}, a_{01},…, a_{0(C−1)},…, a_{(C−1)(C−1)}\}
{a00,a01,…,a0(C−1),…,a(C−1)(C−1)},元素
a
c
c
′
a_{cc'}
acc′表示在
c
c
c类物体存在的情况下
c
l
c_l
cl类物体存在的概率。我们使用训练集样本的标签注释来计算所有类别对之间的概率,因此我们不引入任何附加注释。
受当前图传播工作[18,1,27,3]的启发,我们采用门控循环更新机制通过图传播消息,并学习上下文的节点级特征。具体来说,对于每个节点
v
c
∈
V
v_c∈ V
vc∈V,它都在时间步长
t
t
t有一个隐藏状态
h
c
t
h^t_c
hct,在这项工作中,由于每个节点对应于一个特定的类别,我们的模型旨在探索语义特定特征之间的相互作用,我们用与相应类别相关的特征向量初始化
t
=
0
t = 0
t=0时的隐藏状态,公式如下:
在时间步长
t
t
t,框架聚合来自其邻居节点的消息,表示为:
这样,如果节点
c
′
c'
c′与节点
c
c
c具有高相关性,则该框架鼓励消息传播,否则它抑制传播,因此,它可以在统计标签共现先验知识的指导下,通过图传播信息,探索节点间的交互.然后,该框架基于聚集的特征向量
a
c
t
a^t_c
act更新隐藏状态,并且它通过一个类似于门控循环单元的门控机制在前一个时间步长
h
c
t
−
1
h^{t-1}_c
hct−1隐藏状态,公式为:
其中
σ
(
⋅
)
σ(·)
σ(⋅)是sigmoid函数,
t
a
n
h
(
)
tanh()
tanh()是双曲正切函数,而⊙是逐元素乘法运算,通过这种方式,每个节点可以聚集来自其他节点的消息,并同时通过图传递其信息,从而能够在对应于所有类别的所有特征向量之间进行交互,该过程重复
T
T
T次,生成最终的隐藏状态
{
h
0
T
,
h
1
T
,
.
.
.
h
C
−
1
T
}
\{h^T_0,h^T_1,...h^T_{C-1}\}
{h0T,h1T,...hC−1T},这里,每个节点
h
c
T
h^T_c
hcT的隐藏状态不仅编码类别
c
c
c的特征,还携带来自其他类别的上下文信息。最后,我们连接
h
c
T
h^T_c
hcT和输入特征向量
h
c
0
h^0_c
hc0,以预测类别
c
c
c存在的置信度得分,公式如下:
其中 f o ( ⋅ ) f_o(·) fo(⋅)是一个输出函数,它将 h c T h^T_c hcT和 h c 0 h^0_c hc0的连接映射到输出向量 o c o_c oc,我们采用非共享参数 { f 0 , f 1 , … , f C − 1 } \{f_0, f_1,…, f_{C-1}\} {f0,f1,…,fC−1},其中 f c ( ⋅ ) f_c(·) fc(⋅)采用 o c o_c oc作为输入来预测分数以指示类别 c c c出现的概率。我们对所有类别执行这个过程,并得到一个分数向量 s = { s 0 , s 1 , … , s C − 1 } s=\{s_0, s_1,…, s_{C−1}\} s={s0,s1,…,sC−1}。
3.3.4 网络架构
根据现有的多标签图像分类工作[34],我们实现了基于广泛使用的ResNet-101的特征提取器
f
c
n
n
(
⋅
)
f_{cnn}(·)
fcnn(⋅)。具体来说,我们将最后一个平均池层替换为另一个平均池层,其大小为2×2,步长为2,其他层在实施时保持不变,对于低秩双线性池化操作,
N
,
d
s
,
d
1
,
d
2
N,d_s,d_1,d_2
N,ds,d1,d2分别设为2048、300、1024、1024。因此,
f
a
(
⋅
)
f_a(·)
fa(⋅)由一个1024到1的全连接层构成,该层将1024个特征向量映射到一个单一的注意力系数。
对于图神经网络,我们设置隐藏状态的维数为2048,迭代次数为3,输出向量
o
c
o_c
oc的维数也设置为2048,因此,输出网络
o
(
⋅
)
o(·)
o(⋅)可以由4096到2048全连接层实现,后跟双曲正切函数,并且每个分类网络
f
c
(
⋅
)
f_c(·)
fc(⋅)可以由2048到1全连接层实现。
3.5 优化
给定一个包含M个训练样本
{
I
i
,
y
i
}
∑
i
=
0
M
−
1
\{I_i,y_i\}\sum_{i=0}^{M-1}
{Ii,yi}∑i=0M−1的数据集,其中
I
i
I_i
Ii表示第
i
i
i张图像,
y
i
=
{
y
i
0
,
y
i
1
,
.
.
.
,
y
i
(
C
−
1
)
}
y_i=\{y_{i0}, y_{i1},...,y_{i(C-1)}\}
yi={yi0,yi1,...,yi(C−1)}为对应的注释,如果样本被标注为c类,则
y
i
c
y_{ic}
yic被指定为1,否则为0.给定一幅图像,我们可以得到一个预测的得分向量
s
i
=
{
s
i
0
,
s
i
1
,
.
.
.
,
s
i
(
C
−
1
)
}
s_i=\{s_{i0}, s_{i1},...,s_{i(C-1)}\}
si={si0,si1,...,si(C−1)},并且通过一个sigmoid函数计算对应的概率向量
p
i
=
{
p
i
0
,
p
i
1
,
.
.
.
,
p
i
(
C
−
1
)
}
p_i=\{p_{i0}, p_{i1},...,p_{i(C-1)}\}
pi={pi0,pi1,...,pi(C−1)}:
我们采用交叉熵作为目标损失函数:
所提出的框架以端到端的方式用损失 L L L进行训练.具体来说,我们首先利用在ImageNet数据集[5]上预先训练的ResNet-101参数来初始化 f c n n f_{cnn} fcnn中相应层的参数,并随机初始化其他层的参数,由于在ImageNet数据集上预先训练好的底层参数在不同的数据集上具有很好的泛化能力,我们在 f c n n ( ⋅ ) f_{cnn}(·) fcnn(⋅)中固定了之前92个卷积层的参数,并联合优化了所有其他层,该框架用ADAM算法[15]训练,批量为4,动量为0.999和0.9,学习速率被初始化为 1 0 − 5 10^{-5} 10−5,当误差达到平稳状态时,学习速率除以10,在训练过程中,将输入图像的大小调整为640×640,并从{640,576,512,384,320}中随机选择一个数字作为宽度和高度,并对其进行随机裁剪,最后将裁剪后的小块进一步调整为576×576。在测试过程中,我们简单地将输入图像的大小重新调整为640×640,并执行576×576大小的中央裁剪来进行评估.
4.实验
为了与现有的方法进行公平的比较,我们遵循他们的方法,在每个类别上采用平均精度(AP),在所有类别上采用平均平均精度(mAP)进行计算[28,30]。我们也遵循了前人的研究[34,17],提出了精度、召回率和F1-measure以作进一步的比较。在这里,我们为每张图像分配了得分最高的3个标签,并将它们与ground truth标签进行比较。具体来说,我们采用总体精度recall, F1-measure (OP, OR, OF1)和每类精度recall, F1-measure (CP, CR, CF1),定义如下所示:
其中 C C C是标签的数量, N i c N^c_i Nic是第i个标签正确预测的数量, N i p N^p_i Nip是第i个标签的预测图像的数量, N i g N^g_i Nig是第i个标签的ground truth图像的数量。上述指标需要固定数量的标签,但不同图像的标签数通常是不同的。因此,我们进一步给出了OP, OR, OF1和CP, CR, CF1指标,当一个标签的估计概率大于0.5[34]时,它被预测为正。在这些指标中,mAP、OF1和CF1是最重要的指标,可以提供更全面的评估.
4.2 与先进的方法对比
4.2.1 Microsoft COCO上的对比
![](https://img-blog.csdnimg.cn/20201223213602840.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzQzNjk1OA==,size_16,color_FFFFFF,t_70#pic_center)
4.3 消融实验
所提出的框架建立在ResNet-101上[11],因此我们与该基线进行比较以分析语义特定的图表示学习(SSGRL)的贡献。具体地说,我们简单地将ResNet-101的最后一个全连接层替换为一个2,048-to-C全关联层,并使用C sigmoid函数来预测每个类别的概率。我们在Microsoft-COCO数据集上进行实验,结果如表5所示,正如可以看到的,mAP从83.8%下降到了80.3%.为了深入分析它们的性能比较,我们在图3中进一步展示了每个类别的AP,例如,对于像长颈鹿和斑马这样的类别,基线获得了非常高的AP,我们的框架只是实现了轻微的改进,相比之下,对于更困难的类别,如烤面包机和吹风机,我们的框架将应用程序提高了相当大的幅度,烤面包机和吹风机分别提高了24.7%和32.5%。
表5.Microsoft -COCO数据集上我们的框架(Ours),没有SD模块的框架(Ours w /o SD 和 Ours w/o SD-concat)和我们没有SI模块的框架(Ours w/o SI)的mAP(%)的比较
上述比较验证了所提整体的贡献。实际上,SSGRL包含两个协同工作的关键模块,即语义解耦(SD)和语义交互(SI)。在此基础上,我们进一步进行烧蚀实验,分析各模块的实际贡献。
4.3.1 语义解耦的贡献
我们通过比较使用和不使用该模块的性能来评估SD模块的贡献。为此,我们在
f
I
f^I
fI上执行平均池化,获取图像特征向量
f
f
f,并使用以下两个设置初始化图节点:1)直接使用f(即我们的无SD);2)将f与对应的语义向量(即类别c对应节点的xc)串联,映射到一个2048个特征向量进行初始化(即我们的w/o SD-concat),如表5所示,我们的w/o SD的性能略优于基线方法,因为它不会产生任何额外的信息,但增加了模型的复杂性。我们的w/o SD-concat性能略低于基准和我们的w/o SD。这表明直接连接语义向量不会提供额外的甚至是干扰的信息.
如前所述,我们的框架可以通过语义解耦学习聚焦于相应语义区域的特定语义特征图。在这里,我们进一步说明图4中的一些例子,第二个例子有滑雪板、滑雪板和人,语义解耦模块突出显示了两个滑雪板(滑雪板和人腿)对应的区域。在其他例子中也观察到了类似的现象.
图4:输入图像(左)、与前3名信任度最高的类别相对应的语义特征图(中)和预测标签分布(右)的几个示例。ground truth标签用红色突出显示。
4.3.2 语义交互的贡献
为了验证SI模块的贡献,我们去掉了图传播网络,从而分类器 f c ( ⋅ ) f_c(·) fc(⋅)直接以相应解耦的特征向量 f c f_c fc作为输入预测类别c(即我们的w/o SI)的概率。如表5所示,我们发现它的mAP为82.2%,减少了1.6
5. 结论
在这项工作中,我们提出了一个新颖的语义专用图表示学习框架,其中设计了一种语义指导的注意力机制来学习与语义相关的特征向量,并引入了一种图传播网络基于标签共现来同时探索这些特征向量之间的相互作用.