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

一种基于条带池化的图像语义分割方法与流程

2021-11-24 22:00:00 来源:中国专利 TAG:


1.本发明涉及图像处理技术领域,具体涉及一种基于条带池化的图像语义分割方法。


背景技术:

2.针对语义分割边界不够清晰的问题,研究者们尝试了融合更多的底层特征,以提高单 个像素之间的分类差值。但图像分割数据集中的数据内容多样,研究者们在融合底层特征 时普遍忽略了输入数据中的条带形状特征,因而,在进行图像分割时,条带形物体的像素 分割容易受到周围像素的污染,使分割边界不够清晰。
3.在图像语义分割方面,近期的研究主要关注于运用模板自适应、添加注意力或弱监督 的方法,来增强图像分割效果。如授权专利:cn110390682b。但是这些方法需要大量的数 据标注并且都忽略了实际应用场景中条带状物体的分割边界,导致条带状目标在进行分割 时分割结果容易受周围目标的污染。


技术实现要素:

4.发明目的:针对现有技术中存在的问题,本发明提供一种基于条带池化的图像语义分 割方法,利用条带池化提取底层特征,结合紧缩激励层和非局部层进一步去除图像噪声, 在图像上采样时进一步融合。
5.技术方案:本发明提供了一种基于条带池化的图像语义分割方法,包括如下步骤:
6.步骤1:提取图像分割训练数据集的图像特征;
7.步骤2:将图像特征输入深度空洞卷积模块,并通过紧缩激励模块压缩无用信息得到紧密 特征图和底层特征图;
8.步骤3:将紧密特征图进行金字塔编码得到五个特征图,然后将这五个特征图分别解码, 并与底层特征图进行融合,将融合后的五个特征图拼接为一个融合特征图;
9.步骤4:将底层特征图条带池化编码,提取高级特征后,解码得到一个池化后的特征图;
10.步骤5:将池化后的特征图和融合特征图进行加法融合,再经非局部模块降噪,解码后得 到图像分割输出;
11.步骤6:输入数据集进行训练,将结果保存为sd

net模型,将图片输入到sd

net模型得 到分割结果。
12.进一步地,所述步骤2中的获取底层特征图具体操作为:对图像特征进行深度卷积, 然后使用紧缩激励模块分配各个通道权重,得到输出,并进行进一步最大池化,缩小特征 图大小,得到底层特征图,具体公式如下:
13.14.其中,w(k,l)为卷积核,h(k,l)为输入的向量,y(k,l)为输出的图像张量,se为紧缩激励 层,l为输入的参数,m、n、p均为求和时用到的参数。
15.进一步地,所述步骤2中的获取紧密特征图的具体操作为:对底层特征图进行多层膨胀 卷积提取出网络特征。
16.进一步地,对底层特征图进行四层膨胀卷积提取出网络特征,所述四层膨胀卷积分别如 下设置:
17.将第一层膨胀卷积层的膨胀系数设置为1,膨胀步长设置为1,残差块数设置为3;
18.将第二层膨胀卷积层的膨胀系数设置为1,膨胀步长设置为2,残差块数设置为4;
19.将第三层膨胀卷积层的膨胀系数设置为1,膨胀步长设置为2,残差块数设置为23;
20.将第四层膨胀卷积层的膨胀系数设置为2,膨胀步长设置为1,残差块数设置为3;
21.每一层具体公式如下:
22.k(m,l)=m(l

1) 1
23.output=layer(input,k(m,l),s)
24.其中,m为膨胀系数,l为卷积核大小,k(m,l)为膨胀后的卷积核大小,input为该层的 输入,s为步长,output为输出。
25.进一步地,所述步骤3中获取融合特征图的具体步骤为:
26.步骤3.1)对紧密特征图进行金字塔卷积和全局池化来得到更多样的特征图,将金字塔 卷积结果与全局池化结果组合成为卷积特征图集;
27.步骤3.2)将卷积特征图集的每一个特征图进行上采样并与步骤2中的底层特征图进行 相加融合,构成五个上采样特征图集合;
28.步骤3.3)将五个上采样特征图集合中的元素做拼接融合后进行1
×
1卷积,调整通道 后得到融合特征图。
29.进一步地,所述步骤3.1)中的对紧密特征图进行金字塔卷积和全局池化来得到更多样 的特征图的具体步骤为:
30.1)将提取出的网络特征输入到4个独立的金字塔卷积层,得到输出卷积特征图map1, map2,map3和map4;
31.2)将提取出的网络特征输入全局池化层,得到输出map5;
32.3)map1,map2,map3,map5和map4组合成为卷积特征图集。
33.有益效果:
34.1、本发明基于条带池化,利用条带池化提取底层特征,结合紧缩激励层和非局部层进 一步去除图像噪声,在图像上采样时进一步融合。
35.2、本发明使用深度空洞卷积提取图像特征,然后使用紧缩激励层进一步压缩无用信息, 强化关键信息,对提取的特征进行金字塔卷积得到五个多尺度特征图。对每个尺度的特征 图分别解码,并与底层特征图进行融合,将融合后的五个特征图拼接为一个融合特征图。 此外,另一分支将底层特征图进行条带池化编码,提取高层特征后,解码得到池化后的特 征图。将池化后的特征图和融合特征图进行加法融合,输入非局部模块进一步去除噪声得 到模型输出。上述技术方案融合了大量的底层特征,提高了对单个像素的分类能力,同时 使用多个降噪模块,降低了融合底层特征带来的计算量,更重要的是使用了条带池化捕捉 不同形状的特征,使图像的分割边界更加清晰。
附图说明
36.图1为本发明基于条带池化的图像语义分割方法的整体流程图;
37.图2为本发明基于条带池化的网络模型结构图;
38.图3为本发明待语义分割的图像原图;
39.图4为本发明基于条带池化的网络模型进行语义分割后的分割效果图;
40.图5为利用fcn训练损失下降图;图6为本发明利用基于条带池化的网络模型训练损失下降图。
具体实施方式
41.下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术 方案,而不能以此来限制本发明的保护范围。
42.本发明对含有21类图片的图像分割数据集进行分割,进行进一步阐述本发明,如图1所 示,本发明公开的一种基于条带池化的图像语义分割方法,包含以下步骤:
43.步骤1:提取图像分割训练数据集的图像特征;
44.步骤1.1:读取原始训练图片集images和分割标注图片集cats,读取测试训练集图片集 timages和分割标注图片集tcats;
45.步骤1.2:读取类别标注文档,生成标注集合lines;
46.步骤1.3:定义traset为images图片集,cats图片集和训练函数集的封装类,定义tset 为timages图片集、tcats标注图片和测试函数集的封装类,定义tloader,vloader为数据加 载变量,定义tqdm为数据装载函数,tbar为数据装载变量;
47.步骤1.4:定义num为训练数据集中的类的数量,定义batsize为一次训练所选取的样本 数;
48.步骤1.5:将traset和对应的num,batsize参数输入数据加载函数得到训练加载变量 tloader,将tset和对应的num,batsize参数输入数据加载函数得到训练加载变量vloader;
49.步骤1.6:将tloader输入到数据装载函数tqdm,得到输出数据装载变量tbar,具体公式 如下:
50.tbar=tqdm(tloader(traset,num,batsize))
51.其中,num为训练数据集中的类的数量,traset为images图片集、cats图片集和训练函 数集的封装类。
52.步骤2:将图像特征输入深度空洞卷积模块,并通过紧缩激励模块压缩无用信息得到紧 密特征图和底层特征图。
53.步骤2.1:定义p1为输入网络的图像张量,输入图像张量p1;
54.步骤2.2:加载预训练主干网络resnet101,定义se为se

net紧缩激励层,对各个通道 权重分配,对p1进行深度卷积操作后,输入到se中得到输出p2,具体公式如下:
[0055][0056]
其中,w(k,l)为卷积核,h(k,l)为输入的向量,y(k,l)为输出的图像张量,se为紧
缩激励层。
[0057]
步骤2.3:定义maxpooling为最大池化层,将p2输入到maxpooling得到输出p3;
[0058]
步骤2.4:定义dilations为膨胀系数数组,dilations=[1,1,1,2],定义strides为步长数组, strides=[1,2,2,1],定义blocks为残差块数组,blocks=[3,4,23,3]定义函数len(x)表示集合x 的长度,满足len(dilations):len(strides):len(blocks)=4:4:4,定义卷积核大小为kersize,定义i0 为循环变量,i0遍历blocks、dilations和strides,其中i0∈[0,4];
[0059]
步骤2.5:如果i0<4,跳转到步骤2.6,否则结束遍历操作跳转到步骤2.8;
[0060]
步骤2.6:定义layer
i0
为膨胀卷积层,定义dilations[i0

1]为layer
i0
层的膨胀系数, strides[i0

1]为步长,将p3输入到layer
i0
随着i0迭代更新,具体公式如下:
[0061]
k(m,l)=m(l

1) 1
[0062]
output=layer(input,k(m,l),s)
[0063]
其中,m为膨胀系数dilations[i0

1],l为卷积核大小为kersize,k(m,l)为膨胀后的卷积核 大小,input为layer
i0
层的输入,s为步长strides[i0

1],output为输出;
[0064]
步骤2.7:令i0=i0 1,跳转到步骤2.6;
[0065]
步骤2.8:结束循环得到输出p4,并将p3保存为底层特征lowfeature,p3为底层特征图, p4为紧密特征图;
[0066]
步骤3:将紧密特征图进行金字塔编码得到五个特征图,然后将这五个特征图分别解码, 并与底层特征图进行融合,将融合后的五个特征图拼接为一个融合特征图。
[0067]
步骤3.1:定义集合map为卷积特征图集,满足map={map1,map2,...,map
m
},其中map
m
表示第m个卷积特征图,定义upsample为上采样特征图集合,满足upsample={upsample1, upsample2,...,upsample
m
},其中upsample
m
表示第m个上采样特征图,m∈[1,5],跳转到步骤 3.2和步骤3.3;
[0068]
步骤3.2:定义aspp层为金字塔卷积层,将p4输入到aspp层,得到输出卷积特征图map1, map2,map3和map4,跳转到步骤3.4;
[0069]
步骤3.3:定义glbpooling为池化层,用于缩小特征图尺寸,将步骤2.8中的p4输入 glbpooling层,得到输出map5跳转到步骤3.4;
[0070]
步骤3.4:得到输出的卷积特征图集map,并对其元素分别进行上采样;
[0071]
步骤3.5:将上采样后的输出分别与lowfeature相加融合得到上采样特征图集合upsample, upsample={upsample1,upsample2,...,upsample5};
[0072]
步骤3.6:对集合upsample中元素{upsample1,upsample2,...,upsample5}做拼接融合得到 输出p5,具体融合公式如下:
[0073]
output=concat(upsample1,upsample2,upsample3,upsample4,upsample5)
[0074]
其中concat为拼接融合函数,output为输出结果;
[0075]
步骤3.7:对p5进行1
×
1卷积,调整通道后得到输出p6;
[0076]
步骤4:将底层特征图条带池化编码,提取高级特征后,解码得到一个池化后的特征图;
[0077]
步骤4.1:定义spooling层为条带池化层;
[0078]
步骤4.2:将p3输入条带池化层spooling,通过多个条形池化框池化得到输出p7;
[0079]
步骤4.3:将p7进行1
×
1的卷积调整通道得到输出p8;
[0080]
步骤4.4:对p8上采样得到输出p9。
[0081]
步骤5:将池化后的特征图和融合特征图进行加法融合,再经非局部模块降噪,解码后 得到图像分割输出。
[0082]
步骤5.1:定义nonlocal为非局部层,将p9与p6拼接融合得到输出p10;
[0083]
步骤5.2:将p10输入3
×
3卷积进行通道调整,得到输出p11;
[0084]
步骤5.3:将p11输入nonlocal层进行降噪,得到输出p12;
[0085]
步骤5.4:将p12进一步上采样,得到与原图大小一致的分割结果图p13。
[0086]
步骤6:输入数据集进行训练,将结果保存为sd

net模型,将图片输入到sd

net模 型得到分割结果;
[0087]
步骤6.1:定义一个epoch为将所有样本训练一次的过程,定义loss为训练一个epoch的 损失,定义i1为循环变量用于遍历所有epoch,定义len(epoch)为epoch数量,i1∈[1,len(epoch)];
[0088]
步骤6.2:遍历epoch,如果i1≤len(epoch),跳转到步骤6.3,否则结束遍历epoch,跳转 到步骤6.11;
[0089]
步骤6.3:tbar为步骤1.6的数据装载变量,len(tbar)为数据装载变量长度,定义i2为循 环变量用于遍历数据装载变量tbar,i2∈[1,len(tbar)];
[0090]
步骤6.4:遍历数据装载变量tbar中traset的images图片集、cats图片集,如果i2≤ len(tbar),跳转到步骤6.5,否则结束遍历tbar,跳转到步骤6.9;
[0091]
步骤6.5:定义image
i2
为images图片集的一个图片张量,定义target
i2
为cats图片集的 一个图片标记张量,定义optimizer为梯度优化函数,用于调整合适的学习率;
[0092]
步骤6.6:将输入image
i2
到步骤2,3,4,5中得到输出p14;
[0093]
步骤6.7:根据p14和target
i2
计算损失loss,根据损失loss反向更新参数;
[0094]
步骤6.8:令i2=i2 1,跳转到步骤6.4;
[0095]
步骤6.9:保存本次训练后的模型,将测试集图片数据和标签输入本次epoch保存的模型, 计算像素分类准确率piexlacc,和图片类分类准确率classacc以及测试损失tloss;
[0096]
步骤6.10:令i1=i1 1,跳转到步骤6.2;
[0097]
步骤6.11:定义训练好的模型为sd

net,训练完所有epoch,保存最后的模型sd

net;
[0098]
步骤6.12:定义imgseg为待分割单张图像,调整imgseg图像大小后,将rgb三通道调 整为bgr三通道,得到输出p15;
[0099]
步骤6.13:将p15输入sd

net模型得到分割输出结果imgout。
[0100]
为了更好的说明方法的有效性,通过对21个类别、28480张图像数据,使用深度空洞卷 积和紧缩激励模块提取底层特征图和紧密特征图,再使用金字塔卷积提取不同尺度的图像特 征,上采样后与底层特征结合,得到包含更多底层特征的融合特征图,然后使用条带池化的 方法提取紧密特征图中的条形特征,并与融合特征图结合,最后将结合后的特征图上采样并 通过非局部层去噪,得到最后的分割结果。参见下表1,分别利用fcn、segnet、 se

net non

local这三种方法进行语义分割,本发明基于条带池化的图像语义分
割方法在像 素级别的分类准确率相较于现有的单分支提取特征的方法提升了3.02%,对21个类别、28480 张图像数据的分类准确率达到了76.33%
[0101]
表1实验结果对比表
[0102][0103]
参见附图3,附图3为原图像,其经过本发明算法进行语义分割后可以得到附图4的 分割效果图。
[0104]
参见附图5与附图6,在本模型训练中损失下降曲线比别的模型更加平滑,更容易训 练得到较好的分割模型。
[0105]
上述实施方式只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人能 够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神 实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。
再多了解一些

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

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

相关文献