基于双通道和自注意力机制的图像语义分割方法及系统

文档序号:28387976发布日期:2022-01-08 00:01阅读:165来源:国知局
基于双通道和自注意力机制的图像语义分割方法及系统

1.本发明属于计算机视觉和图像处理技术领域,尤其涉及基于双通道和自注意力机制的图像语义分割方法及系统。


背景技术:

2.本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。
3.语义分割技术不仅属于计算机科学的研究范畴,研究图像的语义分割对于图像复原有着重要的应用意义,还是涉及医学影像、自动驾驶、卫星遥感等多学科的一个前沿研究领域,语义分割技术具有十分重要的研究意义和应用价值。
4.现在语义分割技术普遍采用传统的卷积神经网络,例如vgg,resnet等,但是它们的结构复杂,计算量很大,这跟语义分割的实时性及应用落地存在落差。
5.传统的网络不断地对输入的图片进行特征提取,经过多层的卷积和下采样操作,特征图的分辨率会大幅度下降,损失了原始的信息,因此之后越来越多的网络设计都在试图减少分辨率的损失,比如deeplab系列的文章使用由空洞卷积组成的aspp模块来提取多尺度感受野的语义信息,其中编码器模块融入了空洞卷积,或者使用步长为2的卷积操作来代替池化,解决了步长以及感受野与特征图信息之间的矛盾,虽然效果有所提升,但是计算量很大,而且空洞卷积不能产生密集的上下文信息,过多使用空洞卷积也会产生网格效应,所以没有从根本上解决语义分割的问题,语义分割是像素级的分割任务,所以要综合考虑卷积、步长、分辨率、感受野以及上下文之间的关系;显然如果只使用aspp模块,就会产生网格效应,丧失上下文的整体信息,对于密集型的分割任务来说不是很好的解决办法。
6.pspnet在提取到的特征后面加入了金字塔池化模块,解决了全局信息缺失的问题,其性能要优于deeplab,但是缺少像素与上下文的关系,并且这两种方法有一个共同的缺点,就是使用了传统的网络,进而导致参数量过大,网络之深进行特征提取的时候不可避免会导致分辨率损失。所以,引入一个保持高分辨率特征提取且计算量小的网络对于语义分割的精度和速度提升成为必要。
7.另外,语义分割是一个像素级的分割任务,传统的网络,要么只考虑像素与像素之间的关系,例如deeplab系列网络,要么只考虑区域之间的信息,像pspnet提出的金字塔池化结构模块。


技术实现要素:

8.为克服上述现有技术的不足,本发明提供了基于双通道和自注意力机制的图像语义分割方法及系统,综合考虑复杂度和精度之间的平衡,将hrnetv2网络作为backbone对输入的图片进行特征提取,自注意力机制结合pspnet中的金字塔池化模块对hrnetv2网络提取的特征图进行像素与区域之间的学习,进而提高精度。
9.为实现上述目的,本发明的一个或多个实施例提供了如下技术方案:
10.基于双通道和自注意力机制的图像语义分割方法,包括如下步骤:
11.获取待分割图片;
12.将待分割图片分别进行两个通道的特征图提取;其中,第一个通道提取出多尺度上下文信息特征图;第二个通道出提取出像素级特征图;
13.将多尺度上下文信息特征图和像素级特征图通过矩阵运算和自注意力机制学习得到每一个像素与它对应的上下文区域有关系的特征图;
14.将每一个像素与它对应的上下文区域有关系的特征图输入到训练后的分类器中,输出图片语义分割结果。
15.进一步地,所述第一个通道提取出多尺度上下文信息特征图具体包括:将待分割图片输入至hrnetv2_w18网络得到第一个通道的第一个特征图,将第一个通道的第一个特征图通过卷积得到第一个通道的第二个特征图,将第一个通道的第二个特征图通过金字塔池化模型进行多尺度上下文信息提取得到第一个通道的第三个特征图。
16.进一步地,所述第一个通道的第三个特征图得到后加入随机失活dropout,随机失活神经元,在卷积之后加入交叉熵损失函数对网络辅助训练得到第一通道的第四特征图,即多尺度上下文信息特征图。
17.进一步地,所述第二个通道提取像素级特征图具体包括:将待分割图片输入至hrnetv2_w18网络得到第二个通道的第一个特征图,将第二个通道的第一个特征图经过卷积、加速神经网络以及relu函数后提取出第二个通道的第二个特征图,即像素级特征图。
18.进一步地,所述将多尺度上下文信息特征图和像素级特征图通过矩阵运算具体包括:将多尺度区域上下文信息特征图和像素级特征图的每个位置的像素进行矩阵相乘,包括:
19.将多尺度区域上下文信息特征图经过预处理后输出得到第一矩阵;
20.将图像素级特征图经过归一化处理后输出第二矩阵,第一矩阵和第二矩阵相乘,输出第三矩阵特征图,即融合后的像素级区域上下文特征图。
21.进一步地,所述自注意力机制学习包括学习每个位置的像素与该像素上下文区域之间的关系,根据每个位置的像素与其区域之间的关系生成对应的特征图;
22.具体为:分别将融合后的像素级区域上下文特征图和像素级特征图输入至注意力机制中,得到三个矩阵q矩阵,k矩阵以及v矩阵;
23.其中,所述q矩阵为由像素级特征图产生的要去查询k矩阵的关系所用到的矩阵;k矩阵为融合后的像素级区域上下文特征图产生的等着q矩阵被查所提供的矩阵;v矩阵为融合后的像素级区域上下文特征图所产生的具有实际的信息和特征属性的矩阵。
24.进一步地,所述每一个像素与它对应的上下文区域有关系的特征图,具体包括:
25.所述像素级特征图通过q矩阵查询像素级特征图和融合后的像素级区域上下文特征图之间的关系,所述融合后的像素级区域上下文特征图通过k矩阵查询得到查询结果,根据查询结果转化为像素级特征图和融合后的像素级区域上下文特征图对应关系的概率权重矩阵;根据概率权重矩阵将v矩阵重构,对相同类别的像素区域和不同类别的像素区域赋予概率权重参数。
26.一个或多个实施例提供了基于双通道和自注意力机制的图像语义分割系统,包括:
27.图像获取模块,其被配置为:获取待分割图片;
28.双通道特征图提取模块,其被配置为:将待分割图片分别进行两个通道的特征图提取;其中,第一个通道提取出多尺度上下文信息特征图;第二个通道出提取出像素级特征图;
29.特征融合模块,其被配置为:将多尺度上下文信息特征图和像素级特征图通过矩阵运算和自注意力机制学习得到每一个像素与它对应的上下文区域有关系的特征图;
30.语义分割模块,其被配置为:将每一个像素与它对应的上下文区域有关系的特征图输入到训练后的分类器中,输出图片语义分割结果。
31.一个或多个实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述任意基于双通道和自注意力机制的图像语义分割方法的步骤。
32.一个或多个实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述所述任意基于双通道和自注意力机制的图像语义分割方法的步骤。
33.以上一个或多个技术方案存在以下有益效果:
34.(1)本发明综合考虑网络复杂度和精度之间的平衡,将hrnetv2网络作为backbone对输入的图片进行特征提取,自注意力机制结合pspnet中的金字塔池化模块对hrnetv2网络提取的特征图进行像素与区域之间的学习,进而提高精度。
35.(2)本发明提出的语义分割技术与系统能够在训练过程中优化网络性能,强化了像素与上下文信息之间的关系,使得网络注意力只关注区域与区域,像素与区域之间的关系,而不是将整个特征图所有的区域混在一起进行分割,上述的方案就会使得分割精度提升,不会造成错分。我们使用hrnetv2而不是resnet作为backbone,主要它是一个轻量型的特征提取结构,对算力要求低且性能优越,模型训练速度加快。总体来说,我们的网络系统模型结构简单,计算量小且精度提升很多。
36.(3)本发明为了防止网络过拟合,加入了随机失活dropout,加入crossentropyloss函数进行对网络辅助训练,此时得到的特征图具有上下文语义信息,多尺度的平均池化得到特征图进行相融合,融合后的特征图具有层次性和多样性的上下文全局语义信息。辅助训练的作用是加快系统模型训练收敛的速度,提取更加丰富的上下文语义信息区域。
附图说明
37.构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
38.图1为本发明实施例中本发明实施例中基于双通道和自注意力机制的图像语义分割方法流程图;
39.图2为本发明实施例中基于双通道和自注意力机制的图像语义分割方法结构图;
40.图3为本发明实施例中金字塔场景分析网络整体框架图;
41.图4为本发明实施例中自注意力机制结构图;
42.图5为本发明实施例中截取训练过程中最后24小时的loss值和学习率下降变化
图;
43.图6(a)-图6(c)为本发明实施例中不同场景下的分割图的原始图片;
44.图7(a)-图7(c)为本发明实施例中不同场景下的分割图标签;
45.图8(a)-图8(c)为本发明实施例中不同场景下的分割效果图。
具体实施方式
46.应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
47.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
48.在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
49.实施例一
50.如图1所示,本实施例公开了基于双通道和自注意力机制的图像语义分割方法,包括如下步骤:
51.s101:获取待分割图片;
52.s102:将待分割图片分别进行两个通道的特征图提取;
53.其中,第一个通道提取出多尺度上下文信息特征图;第二个通道出提取出像素级特征图;
54.s103:将多尺度区域上下文信息特征图和像素级特征图通过矩阵运算和自注意力机制学习得到每一个像素与它对应的上下文区域有关系的鲁棒性特征图。
55.s104:将每一个像素与它对应的上下文区域有关系的特征图输入到训练后的分类器中,输出图像语义分割结果。
56.如图2-3所示,作为一个或多个实施例,所述s102中,第一个通道提取出多尺度上下文信息特征图具体包括:
57.将待分割图片输入至hrnetv2_w18网络得到第一个通道的第一个特征图将第一个通道的第一个特征图通过1*1conv卷积得到第一个通道的第二个特征图将第一个通道的第二个特征图通过金字塔池化模型(ppm)进行多尺度上下文信息提取得到第一个通道的第三个特征图
58.其中,特征图用表示,其中x表示第几个通道,y代表对应通道第几个特征图。
59.为了防止网络过拟合,将第一个通道的第三个特征图加入了随机失活dropout,以概率为0.1随机失活神经元,在1
×
1卷积之后加入交叉熵损失函数(crossentropyloss)函数进行对网络辅助训练得到最终的第一通道的第四特征图即多尺度上下文信息特征图;
60.crossentropyloss函数计算公式如下:
[0061][0062]
其中,class表示属于某一类的标签,input表示输入特征图的特征向量,input[j]表示某一类的分数。
[0063]
上述方案的优点在于,通过随机失活dropout加入crossentropyloss函数以便加快系统模型收敛,提取更加丰富的区域。
[0064]
hrnetv2_w18相对于resnet是一个轻量型backbone,它在特征提取的时候一直保持和原图一样的大小,特征提取的过程是一个保持高分辨率的过程。
[0065]
而传统的特征提取是要损失分辨率做特征提取的,网络之深,对算力要求比较高。考虑到算力和精度,本实施例选择了hrnetv2_w18作为backbone。
[0066]
作为一个或多个实施例,所述金字塔池化(ppm)模型输出不同尺寸的池化对特征图做特征提取,池化用adaptiveavgpool2d(i
x
)表示,其中adaptiveavgpool2d是池化函数,i
x
表示池化输出高宽不同大小的特征图,i
x
=[1,1],i
x
=[2,2],i
x
=[3,3],i
x
=[6,6],通道数都是67。
[0067]
因此通过不同尺度的池化,来提取丰富的上下文区域。
[0068]
所述s102中,第二个通道出提取出像素级特征图具体包括:
[0069]
将待分割图片输入至hrnetv2_w18网络得到第二个通道的第一个特征图将第二个通道的第一个特征图经过1*1conv卷积、加速神经网络batchnorm以及relu函数后提取出第二个通道的第二个特征图即像素级特征图。
[0070]
作为一个或多个实施例,所述将多尺度区域上下文信息特征图和像素级特征图通过矩阵运算具体包括:
[0071]
将多尺度区域上下文信息特征图和像素级特征图的每个位置的像素进行矩阵相乘;将多尺度区域上下文信息特征图经过预处理后输出得到第一矩阵;将图像素级特征图经过归一化处理后输出第二矩阵,第一矩阵和第二矩阵相乘,输出第三矩阵特征图,即融合后的像素级区域上下文特征图。
[0072]
具体的实施方式为:
[0073]
将第一通道的第四特征图经过reshape1输出[n,c,h
×
w],然后经过tanspose输出[n,h
×
w,c],命名为u,其中n表示一次性输入的图片数量。c表示特征图的通道数。h表示特征图的高,w表示特征图的宽。
[0074]
将第二通道的第二特征图经过reshape1,softmax归一化处理后输出[n,k,h
×
w],命名为i。
[0075]
将i和u两个矩阵相乘,相乘后的结果经过transpose,unsqueeze函数最终输出[n,c,k1],此特征图命名为它是通过多区域特征提取之后的特征图,将和特征图的每个位置的像素相乘,通过的像素来加强区域特征之间的关系而得到的特征图,此时的特征图的区域与区域之间区分性更加明显,具有突出的上下文信息。
[0076]
这样会使得区域间的类别信息更加的精细,同样也会对特征图中每块区域之间的像素起到强化和聚合的作用,得到更加丰富的特征图。
[0077]
作为一个或多个实施例,如图4所示,所述自注意力机制学习的过程包括:将多尺度上下文信息特征图和像素级特征图通过矩阵运算后的结果输入至自注意机制中,学习得到每个位置的像素与其区域之间的关系;
[0078]
自注意机制去学习每个位置的像素与该像素上下文区域之间的关系,根据每个位置的像素与其区域之间的关系生成对应的特征图,具体为:
[0079]
将到输入至自注意力机制中,使用1
×
1conv,卷积核个数为256,得到的特征图,然后在特征图的宽和高的维度上进行展平,得到key矩阵;
[0080]
同样的,输入图像素级特征图到注意力机制,使用1
×
1conv,卷积核个数为256,得到的特征图,在高和宽的维度上展平,得到query矩阵,于此同时,经过256个1
×
1conv,在宽和高的维度上进行展平,得到value矩阵。这里我们把query,key,value矩阵,简称为q,k,v。其中,所述q矩阵为由像素级特征图产生的要去查询k矩阵的关系所用到的矩阵;k矩阵为融合后的像素级区域上下文特征图产生的等着q矩阵被查所提供的矩阵;v矩阵为融合后的像素级区域上下文特征图所产生的具有实际的信息和特征属性的矩阵。
[0081]
本实施例是找到中每一个像素与所对应区域之间的关系矩阵,包括如下步骤:
[0082]
所述像素级特征图通过q矩阵查询像素级特征图和融合后的像素级区域上下文特征图之间的关系,所述融合后的像素级区域上下文特征图通过k矩阵查询得到查询结果,根据查询结果转化为像素级特征图和融合后的像素级区域上下文特征图对应关系的概率权重矩阵;根据概率权重矩阵将v矩阵重构,对相同类别的像素区域和不同类别的像素区域赋予概率权重参数。
[0083]
举个例子:
[0084]
步骤1:要拿自己的查询矩阵q去查询之间的关系,此时要提供自己的k矩阵,查询结果利用qk
t
实现,对于属于同一类标签的像素,夹角的余弦角度接近0,所以他们做内积的值很大,对于属于不同类的标签的像素做内积他们的值则非常的小。
[0085]
步骤2:将qk
t
利用归一化指数函数softmax,转化与成对应的关系概率权重矩阵
[0086]
步骤3:这步是将v矩阵重构,对相同类别的像素区域赋予更高的概率权重参数,不同类别的像素区域赋予低的概率权重参数,由公式:v实现,重构后的特征图命名为self-attention feature map。
[0087]
此时重构后的特征图不光有自己的特征和信息,也携带着中每一个像素与所对应上下文区域之间关系的特征和信息。
[0088]
具体的公式实现如下:
[0089][0090]
[0091][0092][0093][0094]
其中,s
x
是属于不同的特征图的单一通道特征图像素点集合,d
x
表示特征图传输过程中产生不同的通道,c表示1
×
1卷积,reshape1代表转换函数,作用是将三维特征图转换成由向量构成的矩阵。
[0095]
作为具体的实施例:
[0096]
比如:本实施例数据集对应19个类别,所以对应向量数是19。例如,对于变量q,输入经过1
×
1conv输出[n,19,w1,h1],然后经过reshape1输出[n,19,w1
×
h1],最后经过tran输出[n,w1
×
h1,19]。
[0097]
变量k,例如,输入经过1
×
1conv输出[n,19,h2,w2],然后经过reshape1输出[n,19,h2
×
w2]。
[0098]
对于v,同q操作,输入最后输出[n,w2
×
h2,19]。bmm表示两个矩阵相乘,softmax表示归一化指数函数。
[0099]
对于公式(6)reshape2是将输入的tran(bmm(v,sim))的dim=0这个维度即h1×
w1通道的像素集合,转化为单通道二维平面的特征图,维度和标签维度相同,以便和标签做损失。
[0100]
通过这五组公式,可以得出,每一个像素与其上下文之间的关系,也可以计算出每一个区域与所对应的像素关系。
[0101]
其中,是具有像素与上下文之间关系的鲁棒性特征图。
[0102]
上述方案的优点在于,本实施例中最终得到的具有像素与上下文之间关系的鲁棒性特征图,不仅考虑了区域之间的关系,像素与像素周围的关系,也考虑到了像素与区域之间的关系,使得相似类的像素得以聚合。
[0103]
最后将cont与做concat,输入到1
×
1卷积,然后输出与输入图片的一样尺寸大小的特征图用与真实的标签做损失,损失函数同公式(1)。
[0104]
作为优选地,本实施例通过主损失函数和辅助损失函数来优化系统模型,主损失函数和辅助损失函数占比分别是1,0.4。
[0105]
为了体现实验的公平,我们复现了pspnet模型与我们的系统模型在cityscape数据集上做对比实验,我们选用的设备是gpu tesla v100 32gb。训练方法为,输入bachsize为10张图片,一次性迭代步数为100,以保证loss值稳定变化如图5(a)-图5(b)所示。
[0106]
设定总的迭代步数160000。选用优化器为sgd,学习率为0.0025,动量为0.9,两个crossentropyloss,损失函数同公式(1)。两个损失函数相互辅助系统模型训练,这里pspnet选用resnet50作为backbone,而我们选择hrnetv2_w18作为backbone。本实施例的网络系统与原模型相比的miou指标比pspnet高出1.7%,对目标的分割准确性显著提升,且miou越大,系统优势越明显,目标分割边界框定位更精准。本实施例的mpa比pspnet的mpa高
出0.5%。
[0107]
本实施例使用cityscape基准数据集进行实验,pspnet算法的比较后,所得出的miou和iou值如下表所示,从表1和表2中可以看出,我们的网络性能表现较佳。
[0108]
表1
[0109][0110]
表2
[0111][0112]
图5(a)-图5(b)为本发明实施例中截取训练过程中最后24小时的loss值和学习率下降变化图;如图5(a)-图5(b)所示,展示了本实施例的在精度上的视觉展现,并随机选取验证集中场景样本进行测试验证,对系统实用性进行直观展示。
[0113]
如图6(a)-图6(c)为本发明实施例中不同场景下的分割图的原始图片;如图7(a)-图7(c)为本发明实施例中不同场景下的分割图标签;如图8(a)-图8(c)为本发明实施例中不同场景下的分割效果图。本实施例的方法可以对不同的类别正确分割出来,比如行人,车辆,骑自行车的人,交通灯,而且也可以对不同的类别划分为不同的颜色。本实施例的方法使用了hrnetv2_w18作为backbone,参数量少,实用性更强。它不仅可以有效分割不同复杂的情景,而且不受周围环境的干扰,抗干扰能力更强。在数据复杂多变的环境中表现良好。
[0114]
本领域技术人员可以理解,巡检过程中针对不同类别的设备检测内容不同,可以根据设备类型预先设定检测内容。待获取待检测设备图像后,根据该设备的类型执行检测。具体地,采用深度学习目标检测算法,实现设备状态的自动识别。本实施例中,将深度学习模型部署在嵌入式ai分析模块中,实现了前端化部署,提高了巡检视频的分析的实时性。
[0115]
实施例二
[0116]
本实施例提供了基于双通道和自注意力机制的图像语义分割系统,包括:
[0117]
图像获取模块,其被配置为:获取待分割图片;
[0118]
双通道特征图提取模块,其被配置为:将待分割图片分别进行两个通道的特征图提取;其中,第一个通道提取出多尺度上下文信息特征图;第二个通道出提取出像素级特征图;
[0119]
特征融合模块,其被配置为:将多尺度上下文信息特征图和像素级特征图通过矩阵运算和自注意力机制学习得到每一个像素与它对应的上下文区域有关系的特征图;
[0120]
语义分割模块,其被配置为:将每一个像素与它对应的上下文区域有关系的特征图输入到训练后的分类器中,输出图片语义分割结果。
[0121]
实施例三
[0122]
本说明书实施方式提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现实施例一中的基于双通道和自注意力机制的图像语义分割方法的步骤。
[0123]
实施例四
[0124]
本说明书实施方式提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现实施例一中的基于双通道和自注意力机制的图像语义分割方法的步骤。
[0125]
本领域技术人员应该明白,上述本发明的各模块或各步骤可以用通用的计算机装置来实现,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。本发明不限制于任何特定的硬件和软件的结合。
[0126]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
[0127]
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1