一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种融合标签间强相关性的多标签图像分类方法

2022-06-22 15:14:30 来源:中国专利 TAG:


1.本发明涉及多标签图像分类技术领域,更具体地说,涉及一种融合标签间强相关性的多标签图像分类方法。


背景技术:

2.图像分类是机器学习领域的一项重要课题,也是计算机视觉的核心。传统的方法是利用卷积神经网络提取图像特征,例如,利用alexnet,vgg,resnet等神经网络提取特征,并在单标签图像分类领域取得很高的准确率。但在多标签图像识别中,标签相关性很难用这类神经网络表示出来,因此,近年来,研究人员尝试不同的方法将标签之间的相关性融入到卷积神经网络中。
3.先前的研究者处理多标签图像分类问题,常常采用递归神经网络和图卷积神经网络方式构建标签之间相关性。然而,递归神经网络由于通常处理序列化数据,在构建标签之间的相关性问题中,很难表现出其内部复杂的共现关系。而图卷积神经网络在处理非欧几里得结构数据(例如,图数据)有很强建模能力,所以利用图卷积神经网络和提前构建好的标签共现图,可以很好的学习到其中标签之间的共现关系。研究者常常采用词嵌入模型构建标签节点表示矩阵,并利用标签之间在数据集中的共现关系构建标签共现邻接矩阵,将标签节点表示矩阵与标签共现邻接矩阵送入图卷积神经网络学习标签之间的相关性,最后将学习到标签相关性融合到卷积神经网络最后一阶层特征图中。
4.传统的利用图卷积神经网络构建标签相关性,例如ml-gcn方法,并将标签相关性融入卷积神经网络最后一层的方法存在两个缺点:第一,卷积神经网络只在最后一卷积层融入标签之间相关性,而卷积神经网络特别是resnet相关模型卷积层层数通常堆叠非常多,这导致卷积神经网络融入标签相关性不够充分;第二,传统方法构建标签相关性邻接矩阵往往只是在整个数据集中建立标签之间的共现关系,而忽略标签内部之间的强联系。例如,{“人”,“杯子”,“碗”,“餐桌”,“雨伞”,椅子”,“车”}可能有一定相关性,但{“杯子”,“碗”,“餐桌”,“椅子”},{“人”,“雨伞”,“车”}可能有更强的相关性。
5.先前的mgtn模型将标签内部的强联系通过graph transformers方法融入到卷积神经网络,并通过社区检测算法将标签节点划分为不同社区,利用multiple cnns(由多个卷积神经网络组成)区别的将不同社区的标签节点融入到不同特征图中,但利用multiple cnns需要消耗非常大的计算量才能学习到少量的社区数,很难在社区个数上得到扩展。


技术实现要素:

6.1.发明要解决的技术问题
7.鉴于上述现有技术的不足,本发明提供了一种融合标签间强相关性的多标签图像分类方法;本发明将传统的标签共现邻接矩阵转化为多个子标签共现邻接矩阵,通过多重图卷积神经网络学习子标签内部强相关性,使子标签共现信息更加充分的融合入卷积神经网络中,提高了卷积神经网络图像分类性能。
8.2.技术方案
9.为达到上述目的,本发明提供的技术方案为:
10.本发明的一种融合标签间强相关性的多标签图像分类方法,包括以下步骤:
11.s1、利用数据集中的标签共现关系,构造标签共现矩阵;利用社区检测算法将标签节点划分为m个社区;设置阈值将标签共现矩阵分割为m个共现子图;
12.s2、获取训练数据的图像文件,送入卷积神经网络中提取图像特征,获得特征图,特征图经过多重类属池化操作,将特征图转化为m个二维类属特征图,并列向拼接在一起;
13.s3、获取标签嵌入矩阵,获取标签共现张量,将m个标签共现张量和标签嵌入矩阵送入到多重图卷积神经网络中,得到m重标签节点表示张量,利用标签级别注意力融合机制,将m重标签节点表示张量融合为一个标签节点表示矩阵;
14.s4、利用注意力机制将多重图卷积层生成的m重标签节点表示张量融合到通用卷积神经网络的中间阶层输出的特征图中;
15.s5、根据社区检测算法将标签节点划分的m个社区,构建社区编码m矩阵,将m矩阵与融合机制融合的标签节点表示矩阵相乘,得到带有社区编码的标签节点表示矩阵,将该矩阵与列向拼接在一起的多重类属特征图相乘,得到的预测标签用于分类;
16.s6、构建损失函数,其中包含多标签分类损失函数和学习多重类属池化层中参数矩阵的目标函数。
17.3.有益效果
18.采用本发明提供的技术方案,与已有的公知技术相比,具有如下显著效果:
19.(1)传统的多标签深度学习算法常常利用图卷积神经网络学习标签之间相关性,但却忽略了子标签内部的强联系,本发明的一种融合标签间强相关性的多标签图像分类方法,将传统的标签共现邻接矩阵转化为多个子标签共现邻接矩阵,通过多重图卷积神经网络学习子标签内部强相关性,更有利于提高多标签图像分类性能。
20.(2)本发明的一种融合标签间强相关性的多标签图像分类方法,标签注意力融合机制能够学习到标签节点之间的相关性,而非graph transformer算法中仅仅学习子图间的相关性。利用注意力机制将子图标签节点表示融入到图卷积神经网络中,从而使子标签共现信息更加充分的融合入卷积神经网络中,提高了卷积神经网络图像分类性能。
附图说明
21.图1为本发明的一种融合标签间强相关性的多标签图像分类方法的流程示意图;
22.图2为本发明的resnet-101提取图像特征示意图;
23.图3为本发明的类属池化示意图;
24.图4为本发明的多重类属池化示意图;
25.图5为本发明的多重卷积层与子图标签表示矩阵融合示意图;
26.图6为本发明的将子图标签相关性融合到卷积神经网络中间层示意图;
27.图7为本发明的m矩阵内部结构图;
28.图8为本发明的标签级别乘法示意图。
具体实施方式
29.为进一步了解本发明的内容,结合附图和实施例对本发明作详细描述。
30.实施例1
31.本实施例的一种融合标签间强相关性的多标签图像分类方法,学习标签关系和标签内部的强联系,更好的进行多标签分类任务,包括以下步骤:
32.s1、利用数据集中的标签共现关系,构造标签共现矩阵;利用社区检测算法将标签节点划分为m个社区;设置阈值将标签共现矩阵分割为m个共现子图,即标签共现张量;具体包括如下步骤:
33.(1-1)获取训练数据的图像文件和训练数据中的标签,对标签建立共现关系邻接矩阵a∈rc×c,其中,a
ij
=1表示标签li出现时,标签lj也有一定概率会出现,否则a
ij
=0。通过z矩阵并利用基本的条件概率公式,可以构造出条件概率矩阵p∈rc×c,表示当标签li出现时,标签lj出现的概率,通过设置阈值τ,将p矩阵二值化,构造标签共现矩阵a∈rc×c,如下:
[0034][0035]
(1-2)得到了标签共现邻接矩阵,本实施例将标签共现邻接矩阵分割为m个社区和m个子图(标签子关系邻接张量),
[0036]
利用社区检测算法将标签节点划分为m个社区,首先,计算邻接矩阵a的模块度,
[0037][0038]
其中,di=∑
kai,k
为第i个节点的度,并且δ(ci,cj)用来检测i节点和j节点是否在同一个社区,如果在同一个社区,则δ(ci,cj)=1,否则,δ(ci,cj)=0,
[0039]
社区检测算法开始时,将每个节点独立当做一个社区,为了使得模块度达到最大化,将其他标签节点纳入自己社区。直到模块度不发生变化时,m个社区被检测到。
[0040]
(1-3)利用设置阈值构建标签子关系邻接张量,如下:在条件概率矩阵p上设置阈值t=[t1,...tm],其中,ti∈[0,1]且构建标签子关系邻接张量如下:
[0041][0042]
其中,由标签共现邻接矩阵k∈{1,...,m}组成,表示第k个子图中,标签li出现时,标签lj也有一定概率会出现,
[0043]
在本实施例中需要社区个数等于子图个数。
[0044]
s2、获取训练数据的图像文件,送入卷积神经网络中提取图像特征,获得特征图,特征图经过多重类属池化操作,将特征图转化为m个二维类属特征图,并列向拼接在一起;具体包括如下步骤:
[0045]
(2-1)获取训练数据的图像文件,将图像裁剪到统一的规格(3
×
448
×
448)输入到
resnet-101神经网络当中。在神经网络中特征图经历一个7
×
7卷积层,一个1
×
1池化层,和四个中间阶层,layer1,layer2,layer3,layer4。四个中间阶层输出的特征图为
[0046]
其中,s为阶层编号,其取值域为{1,2,3,4}。ws、hs和cs分别为第s个阶层输出特征图的宽度,高度和通道数。具体地,四个阶层输出的特征图维度分别为,f1∈r
256
×
112
×
112
,f2∈r
512
×
56
×
56
,f3∈r
1024
×
28
×
28
,f4∈r
2048
×
14
×
14
后接上多重类属池化层,得到多重类属特征图,如图2所示。
[0047]
(2-2)得到最后一个阶层特征图f4∈r
2048
×
14
×
14
,将f4表示为其中,h、w和dc分别为最后一个阶层的高、宽和通道,本实施例取代传统的最大池化或平均池化方式,用一种类属池化方式提取图片特征,获取多重类属特征图,方法具体如下:
[0048]
x
lsp
=w
lsp
×
r(x
conv
)
[0049]
其中,为resnet-101最后一个阶层输出的特征图。维度变换操作r(
·
)可以让x
conv
从三维张量(维度为dc×h×
w)映射到二维矩阵(维度为hw
×
dc),即,并让参数矩阵w
lsp
∈rc×
hw
左乘可以得到特殊池化后的矩阵其中,c为标签类别数,类属池化方法如图3所示。
[0050]
(2-3)最后,使用同样方法做m次类属池化操作,其方法具体如下:
[0051][0052]
其中,i为1到m之间的正整数,m为子图个数或社区个数,并将m个类属特征图按列向拼接,得到多重类属池化层如图4所示。
[0053]
(2-4)最后,利用子图标签邻接矩阵学习参数矩阵如下:
[0054][0055]
具体地,
[0056]
其中,i为1到m之间的正整数,m为子图个数,使用l2范数是为了保持参数矩阵稀疏性,
[0057]
利用标签共现张量学习参数矩阵的目的是加速参数矩阵的学习,并利用类属特征图有区别的融合不同子图学习到的标签语义关系。通过多重类属池化可以得到含有不同特征的类属特征图
[0058]
s3、获取标签嵌入矩阵,获取标签共现张量,将m个标签共现张量和标签嵌入矩阵送入到多重图卷积神经网络中,得到m重标签节点表示张量,利用标签级别注意力融合机制,将m重标签节点表示张量融合为一个标签节点表示矩阵;具体包括如下步骤:
[0059]
(3-1)将子图标签关系邻接矩阵和标签嵌入矩阵e∈rc×d送往多重卷积神经网络中,如下:
[0060][0061]
多重图卷积层第一层输入为标签嵌入矩阵e∈rc×d和归一化后的多重邻接子图和归一化后的多重邻接子图子图被送入到不同的图卷积层中,经过多重图卷积层后,得到标签表示张量其中,l
l
为第l层图卷积输入的标签表示张量的节点维度,l≥2。h(
·
)为非线性激活函数。上式为多重图卷积层在大于两层时的表达式,其中的为图卷积层中的参数矩阵,每层节点表示维度由参数决定。类似于上式,第一层图卷积层表达式为
[0062]
(3-2)此时,需要利用标签级别注意力融合机制将m重标签节点表示张量融合为一张标签节点表示矩阵g∈rc×
l
,如下:
[0063]
可以表示为其中,表示第k个节点表示矩阵,k为1到m之间的整数,
[0064]
首先学习每个子图学习的节点表示矩阵的重要性,如下:
[0065][0066]
其中,w是参数向量w∈r1×c,b为偏移向量b∈r1×c,tanh(
·
)为激活函数,q为参数向量q∈r1×c,目的是让函数tanh(
·
)生成的向量转化为标量,从而使得整个等式两边得到的标量值,为第k个标签表示矩阵中第i个节点的标签节点表示,wk表示标签嵌入矩阵和第k个子图在经过图卷积神经网络学习时的重要性权重,i为1到c之间的整数,
[0067]
计算好节点在每一个子图中的权重wk之后,通过softmax()函数做归一化,如下:
[0068][0069]
从而,计算出节点在每张子图中的重要性分数(β1,...,βm),将重要性分数分别乘上对应的标签节点表示,再求和,再乘上参数矩阵做维度变换,可得到融合后的标签节点表示矩阵g,如下:
[0070][0071]
其中,g∈rc×
l
,其中c为标签节点个数,标签节点表示维度l由参数矩阵决定,多重图卷积层与标签级别注意力融合网络结构如图5所示。
[0072]
s4、利用注意力机制将多重图卷积层生成的m重标签节点表示张量融合到通用卷积神经网络的中间阶层输出的特征图中;包含以下步骤:
[0073]
(4-1)将利用注意力机制融合到resnet-101中间某阶层输出的特征图中,如下:
[0074]
resnet-101前三阶层输出特征图为其中,1≤s≤3,cs、ws和hs分别为第s个中间阶层通道数、宽度和高度,将记为其中,c
l
=cs、w=ws、h=hs,l表示fs与第l层图卷积神经网络输出的标签节点相关性相融合。
[0075]
由于中l
l
的大小由参数矩阵决定,可使l
l
=c
l
=p,即x
l
∈r
p
×w×h,,
[0076]
利用维度变换操作r(
·
),将x
l
和h
l
维度变换为xr∈r
wh
×
p
和将xr∈r
wh
×
p
当做key和value,当做query,送入transformer模型的解码器中,使用transformer decoder其中的multi-head attention机制融合标签相关性,如下:
[0077][0078]
其中,multihead(q,k,v)=concat(head1,head2,...,headh)wo,
[0079]
其中,
[0080]
其中,
[0081]
本实施例使用标准的transformer结构,而与传统的transformer结构的区别在于输入的来源不同。本实施例multihead结构中的key和value来源于卷积神经网络resnet-101中间阶层输出的特征图,query来源于多重图卷积网络输出的标签节点表示张量。通过query和key可以学习到图像特征与子标签之间的相关性,其中的qk
t
可以计算出q矩阵与k矩阵的相关程度,通过softmax()函数归一化得到相关性分数,再将相关性分数乘到value中,由此,可以将标签相关性融入到特征图中。其中的多头注意力机制与传统的transformer保持一致,即而其中h=8,p=hdk,
[0082]
将得到的融入标签相关性的特征xr做维度变换r(
·
)的逆操作,将xr∈r
wh
×
p
转换为xm∈r
p
×w×h,将新得到的xm∈r
p
×w×h与原先的特征图x
l
∈r
p
×w×h送入到transformer decoder中的add&norm层,做归一化与残差链接,再将融入标签相关性的特征图xm∈r
p
×w×h送入到transformer decoder中的fnn层,如下:
[0083]
xf=ffn(xm)
[0084]
其中,ffn(x)=max(0,xw1 b1)w2 b2,里面包含两层线性层线性变换,中间由relu激活层激活。
[0085]
传统的transformer中的ffn层有两个线性层组成,中间由relu函数激活,本实施例与传统的方法不同的是,这里的参数w1和w2为三维张量,即其中的d
ff
是前一个线性层输出的维度。
[0086]
将新得到的xf∈r
p
×w×h与原先的融入标签相关性的特征图xm∈r
p
×w×h送入到transformer decoder中的add&norm层,做归一化与残差链接。得到最终的融入标签相关性的特征图x
l
∈r
p
×w×h送入卷积神经网络下一阶层训练,卷积神经网络注意力融合子图标签
相关性网络结构如图6所示。
[0087]
s5、根据社区检测算法将标签节点划分的m个社区,构建社区编码m矩阵,将m矩阵与融合机制融合的标签节点表示矩阵相乘(哈达玛积),得到带有社区编码的标签节点表示矩阵,将该矩阵与列向拼接在一起的多重类属特征图相乘(标签级别乘法),得到的预测标签用于分类;包括以下步骤:
[0088]
(5-1)利用社区检测方法将数据集中的标签节点分为m个社区,其中,m与子图个数保持一致,根据社区检测算法将标签节点划分m个社区,从而每个标签节点有各自的所属社区,将社区按照{1,...,m}序列顺序编号为p,其中,m为社区个数,并将每个标签节点所属社区编号保存到s∈zc,其中,c为标签类别个数,si=p,i∈{1,...,c},
[0089]
通过多重类属池化层得到多重标签类属特征图其中,x
mullsp
可以表示为类属特征图的组合i为1到m之间正整数,利用区别匹配不同社区,根据社区编码p决定第p个社区与哪个类属标签图相匹配,
[0090]
构造社区编码m矩阵,如下:
[0091][0092]
其中,τ∈[0,1],si=p表示从第i个标签可以找到其所属社区为p,表示属于p社区的节点需要与类属特征图匹配,因此在m矩阵中可以找到与特征图对应上的点,将该点值设置为τ,其他位置点设置为显然,则实现利用不同类属特征区别融合不同标签节点目的,社区编码m矩阵内部结构如图7所示。
[0093]
(5-2)将社区编码m矩阵与标签节点表示矩阵g∈rc×
l
做哈达玛积,并与x
mullsp
做标签级别乘法,使得模型将不同的类属特征与不同社区的标签节点融合,如下:
[0094]
由于g∈rc×
l
中的l由参数矩阵决定,可以使得l与dc·
m相等,将子图编码m相等,将子图编码与标签节点表示相乘(哈达玛积),使得标签节点融入社区编码信息,得到矩阵如下:
[0095]
w=m
·g[0096]
(5-3)如图8所示,将与做标签级别乘法,用于最终的分类,如下:
[0097]
w可以表示为w=[w1,...,wc]
t
,x
mullsp
可以表示为x
mullsp
=[x1,...,xc],其中c为标签类别个数,则预测函数为:
[0098]
[0099]
s6、构建损失函数,其中包含多标签分类损失函数和学习多重类属池化层中参数矩阵的目标函数。包括以下步骤:
[0100]
(6-1)将目标函数定义为:
[0101][0102]
其中,l(
·
)是多标签分类的损失函数,l
lsp
(
·
)用于加速学习参数并且用于区分不同的子图,θ是需要学习的全局参数。
[0103]
(6-2)用二分类损失函数作为多标签分类损失函数,如下:
[0104][0105]
用于指导类属特征的目标函数l
lsp
(θ)为:
[0106][0107]
(6-3)所以,总的损失函数为:
[0108][0109]
其中,参数的内部项是参数θ的一部分。
[0110]
通过上面的步骤,我们将标签的不同强度语义相关性融入到卷积神经网络中,得到预测标签利用损失函数计算真实标签与预测标签之间的最小值,并采用sgd优化,以实现提高多标签图像分类性能的目的。
[0111]
本实施例采用resnet相关网路作为基线网络提取图像特征,并在最后一个阶层后取代传统的平均池化层或最大池化层,采用多重类属池化层用来转换特征图维度。并用标签子关系邻接张量学习其中的参数,得到具有不同特征的类属特征图。这种方法替换了mgtn中的multiple cnns匹配方法不同社区,使得计算量大大降低从而学习到更多的社区数,并用不同的子标签共现邻接矩阵学习其中的参数,用来区分不同子图中的标签特征。
[0112]
此外,本实施例采用多重图卷积神经网络训练子标签共现邻接张量和标签节点表示矩阵,该方法不同于mgtn中的方法,本实施例可以学习到不同子标签共现邻接矩阵下标签节点的语义关系,而使用graph transformers方法只能学习到不同子标签共现邻接矩阵的相互关系,或者说是元路径之间的相互关系,
[0113]
本实施例利用注意力机制transformer decode结构将标签相关性融入卷积神经网络中间层。transformer结构在自然语言处理任务中取得很多先进的成果,本实施例利用
其中的multihead attention机制将标签相关性融入到卷积神经网络中,将卷积神经网络输出的特征图当做key和value,将多重图卷积神经网络输出的标签节点表示张量当做query,从而将子标签相关性融入到卷积神经网络中间层特征图中,进而提高标签相关性与卷积神经网络的融合度。
[0114]
综上所述,本实施例可以学习到标签之间相关性和标签内部相关性,并将标签相关性和标签间强相关性更加充分的融合到卷积神经网络中,并且使用本实施例方法更加容易在社区数和子图个数上得到扩展,从而更有利于提高多标签图像分类性能。
[0115]
值得说明的是,多重图卷积层的层数不一定限定为三层,若多重图卷积神经网络层数为三层,需要与卷积神经网络前三个中间阶层一一对应,将子标签相关性融入到卷积神经网络中间层中;若多重图卷积层的层数小于三,则有选择的将子标签相关性融入到卷积神经网络前三个中间阶层中的某些阶层中;但多重图卷积层的层数不可大于三。
[0116]
若多重图卷积层的层数为三层,则每一个多重图卷积层输出的标签表示张量需要与卷积神经网络输出的特征图前三个中间阶层一一对应,利用transformer decoder将子标签相关性融入到卷积神经网络中间层中。因此,前三中间阶层输出的特征图维度为f1∈r
256
×
112
×
112
,f2∈r
512
×
56
×
56
,f3∈r
1024
×
28
×
28
且多重图卷积层输出的标签表示张量维度为且多重图卷积层输出的标签表示张量维度为若多重图卷积层的层数小于三层,则利用类似的方法将特征图与标签表示张量维度保持一致。
[0117]
上述方法有效的将子标签强相关性融入到卷积神经网络中间层中,并且学习到子标签之间强相关性,相较于利用multiple cnns方法匹配不同社区,可以用更小的计算量扩展子图个数或社区个数,更加易于学习到标签相关性与子标签强相关性,从而提高多标签图像分类性能。
[0118]
以上示意性的对本发明及其实施方式进行了描述,该描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。所以,如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献