一种基于条带池化的图像语义分割方法转让专利

申请号 : CN202110796736.4

文献号 : CN113689434B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 胡荣林顾圆圆曹昆王媛媛朱全银董甜甜赵志勇陈青云何旭琴张粤

申请人 : 淮阴工学院

摘要 :

本发明公开了一种基于条带池化的图像语义分割方法,包括:提取图像分割训练数据集的图像特征;将图像特征输入深度空洞卷积模块,通过紧缩激励模块压缩得到紧密特征图和底层特征图;将紧密特征图进行金字塔编码得到五个特征图,并对其分别解码,并与底层特征图进行融合,拼接为融合特征图;将底层特征图条带池化编码,提取高级特征后,解码得到池化后的特征图;将池化后的特征图和融合特征图进行加法融合,再经降噪解码后得到图像分割输出;输入数据集进行训练保存为SD‑NET模型,将图片输入到SD‑NET模型得到分割结果。本发明利用条带池化提取底层特征,结合紧缩激励层和非局部层进一步去除图像噪声,在图像上采样时进一步融合。

权利要求 :

1.一种基于条带池化的图像语义分割方法,其特征在于,包括如下步骤:步骤1:提取图像分割训练数据集的图像特征;

步骤2:将图像特征输入深度空洞卷积模块,并通过紧缩激励模块压缩无用信息得到紧密特征图和底层特征图;

步骤3:将紧密特征图进行金字塔编码得到五个特征图,然后将这五个特征图分别解码,并与底层特征图进行融合,将融合后的五个特征图拼接为一个融合特征图;

步骤4:将底层特征图条带池化编码,提取高级特征后,解码得到一个池化后的特征图;

步骤5:将池化后的特征图和融合特征图进行加法融合,再经非局部模块降噪,解码后得到图像分割输出;

步骤6:输入数据集进行训练,将结果保存为SD‑NET模型,将图片输入到SD‑NET模型得到分割结果。

2.根据权利要求1所述的基于条带池化的图像语义分割方法,其特征在于,所述步骤2中的获取底层特征图具体操作为:对图像特征进行深度卷积,然后使用紧缩激励模块分配各个通道权重,得到输出,并进行进一步最大池化,缩小特征图大小,得到底层特征图,具体公式如下:其中,w(k,l)为卷积核,h(k,l)为输入的向量,y(k,l)为输出的图像张量,se为紧缩激励层,l为输入的参数,m、n、p均为求和时用到的参数。

3.根据权利要求2所述的基于条带池化的图像语义分割方法,其特征在于,所述步骤2中的获取紧密特征图的具体操作为:对底层特征图进行多层膨胀卷积提取出网络特征。

4.根据权利要求3所述的基于条带池化的图像语义分割方法,其特征在于,对底层特征图进行四层膨胀卷积提取出网络特征,所述四层膨胀卷积分别如下设置:将第一层膨胀卷积层的膨胀系数设置为1,膨胀步长设置为1,残差块数设置为3;

将第二层膨胀卷积层的膨胀系数设置为1,膨胀步长设置为2,残差块数设置为4;

将第三层膨胀卷积层的膨胀系数设置为1,膨胀步长设置为2,残差块数设置为23;

将第四层膨胀卷积层的膨胀系数设置为2,膨胀步长设置为1,残差块数设置为3;

每一层具体公式如下:

k(m,l)=m(l‑1)+1

output=layer(input,k(m,l),s)其中,m为膨胀系数,l为卷积核大小,k(m,l)为膨胀后的卷积核大小,input为该层的输入,s为步长,output为输出。

5.根据权利要求1所述的基于条带池化的图像语义分割方法,其特征在于,所述步骤3中获取融合特征图的具体步骤为:步骤3.1)对紧密特征图进行金字塔卷积和全局池化来得到更多样的特征图,将金字塔卷积结果与全局池化结果组合成为卷积特征图集;

步骤3.2)将卷积特征图集的每一个特征图进行上采样并与步骤2中的底层特征图进行相加融合,构成五个上采样特征图集合;

步骤3.3)将五个上采样特征图集合中的元素做拼接融合后进行1×1卷积,调整通道后得到融合特征图。

6.根据权利要求5所述的基于条带池化的图像语义分割方法,其特征在于,所述步骤

3.1)中的对紧密特征图进行金字塔卷积和全局池化来得到更多样的特征图的具体步骤为:

1)将提取出的网络特征输入到4个独立的金字塔卷积层,得到输出卷积特征图map1,map2,map3和map4;

2)将提取出的网络特征输入全局池化层,得到输出map5;

3)map1,map2,map3,map5和map4组合成为卷积特征图集。

说明书 :

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

技术领域

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

背景技术

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

发明内容

[0004] 发明目的:针对现有技术中存在的问题,本发明提供一种基于条带池化的图像语义分割方法,利用条带池化提取底层特征,结合紧缩激励层和非局部层进一步去除图像噪声,在图像上采样时进一步融合。
[0005] 技术方案:本发明提供了一种基于条带池化的图像语义分割方法,包括如下步骤:
[0006] 步骤1:提取图像分割训练数据集的图像特征;
[0007] 步骤2:将图像特征输入深度空洞卷积模块,并通过紧缩激励模块压缩无用信息得到紧密特征图和底层特征图;
[0008] 步骤3:将紧密特征图进行金字塔编码得到五个特征图,然后将这五个特征图分别解码,并与底层特征图进行融合,将融合后的五个特征图拼接为一个融合特征图;
[0009] 步骤4:将底层特征图条带池化编码,提取高级特征后,解码得到一个池化后的特征图;
[0010] 步骤5:将池化后的特征图和融合特征图进行加法融合,再经非局部模块降噪,解码后得到图像分割输出;
[0011] 步骤6:输入数据集进行训练,将结果保存为SD‑NET模型,将图片输入到SD‑NET模型得到分割结果。
[0012] 进一步地,所述步骤2中的获取底层特征图具体操作为:对图像特征进行深度卷积,然后使用紧缩激励模块分配各个通道权重,得到输出,并进行进一步最大池化,缩小特征图大小,得到底层特征图,具体公式如下:
[0013]
[0014] 其中,w(k,l)为卷积核,h(k,l)为输入的向量,y(k,l)为输出的图像张量,se为紧缩激励层,l为输入的参数,m、n、p均为求和时用到的参数。
[0015] 进一步地,所述步骤2中的获取紧密特征图的具体操作为:对底层特征图进行多层膨胀卷积提取出网络特征。
[0016] 进一步地,对底层特征图进行四层膨胀卷积提取出网络特征,所述四层膨胀卷积分别如下设置:
[0017] 将第一层膨胀卷积层的膨胀系数设置为1,膨胀步长设置为1,残差块数设置为3;
[0018] 将第二层膨胀卷积层的膨胀系数设置为1,膨胀步长设置为2,残差块数设置为4;
[0019] 将第三层膨胀卷积层的膨胀系数设置为1,膨胀步长设置为2,残差块数设置为23;
[0020] 将第四层膨胀卷积层的膨胀系数设置为2,膨胀步长设置为1,残差块数设置为3;
[0021] 每一层具体公式如下:
[0022] k(m,l)=m(l‑1)+1
[0023] output=layer(input,k(m,l),s)
[0024] 其中,m为膨胀系数,l为卷积核大小,k(m,l)为膨胀后的卷积核大小,input为该层的输入,s为步长,output为输出。
[0025] 进一步地,所述步骤3中获取融合特征图的具体步骤为:
[0026] 步骤3.1)对紧密特征图进行金字塔卷积和全局池化来得到更多样的特征图,将金字塔卷积结果与全局池化结果组合成为卷积特征图集;
[0027] 步骤3.2)将卷积特征图集的每一个特征图进行上采样并与步骤2中的底层特征图进行相加融合,构成五个上采样特征图集合;
[0028] 步骤3.3)将五个上采样特征图集合中的元素做拼接融合后进行1×1卷积,调整通道后得到融合特征图。
[0029] 进一步地,所述步骤3.1)中的对紧密特征图进行金字塔卷积和全局池化来得到更多样的特征图的具体步骤为:
[0030] 1)将提取出的网络特征输入到4个独立的金字塔卷积层,得到输出卷积特征图map1, map2,map3和map4;
[0031] 2)将提取出的网络特征输入全局池化层,得到输出map5;
[0032] 3)map1,map2,map3,map5和map4组合成为卷积特征图集。
[0033] 有益效果:
[0034] 1、本发明基于条带池化,利用条带池化提取底层特征,结合紧缩激励层和非局部层进一步去除图像噪声,在图像上采样时进一步融合。
[0035] 2、本发明使用深度空洞卷积提取图像特征,然后使用紧缩激励层进一步压缩无用信息,强化关键信息,对提取的特征进行金字塔卷积得到五个多尺度特征图。对每个尺度的特征图分别解码,并与底层特征图进行融合,将融合后的五个特征图拼接为一个融合特征图。此外,另一分支将底层特征图进行条带池化编码,提取高层特征后,解码得到池化后的特征图。将池化后的特征图和融合特征图进行加法融合,输入非局部模块进一步去除噪声得到模型输出。上述技术方案融合了大量的底层特征,提高了对单个像素的分类能力,同时使用多个降噪模块,降低了融合底层特征带来的计算量,更重要的是使用了条带池化捕捉不同形状的特征,使图像的分割边界更加清晰。

附图说明

[0036] 图1为本发明基于条带池化的图像语义分割方法的整体流程图;
[0037] 图2为本发明基于条带池化的网络模型结构图;
[0038] 图3为本发明待语义分割的图像原图;
[0039] 图4为本发明基于条带池化的网络模型进行语义分割后的分割效果图;
[0040] 图5为利用FCN训练损失下降图;
[0041] 图6为本发明利用基于条带池化的网络模型训练损失下降图。

具体实施方式

[0042] 下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
[0043] 本发明对含有21类图片的图像分割数据集进行分割,进行进一步阐述本发明,如图1所示,本发明公开的一种基于条带池化的图像语义分割方法,包含以下步骤:
[0044] 步骤1:提取图像分割训练数据集的图像特征;
[0045] 步骤1.1:读取原始训练图片集Images和分割标注图片集Cats,读取测试训练集图片集 Timages和分割标注图片集Tcats;
[0046] 步骤1.2:读取类别标注文档,生成标注集合Lines;
[0047] 步骤1.3:定义traset为Images图片集,Cats图片集和训练函数集的封装类,定义tset 为Timages图片集、Tcats标注图片和测试函数集的封装类,定义tloader,vloader为数据加载变量,定义tqdm为数据装载函数,tbar为数据装载变量;
[0048] 步骤1.4:定义num为训练数据集中的类的数量,定义batsize为一次训练所选取的样本数;
[0049] 步骤1.5:将traset和对应的num,batsize参数输入数据加载函数得到训练加载变量 tloader,将tset和对应的num,batsize参数输入数据加载函数得到训练加载变量vloader;
[0050] 步骤1.6:将tloader输入到数据装载函数tqdm,得到输出数据装载变量tbar,具体公式如下:
[0051] tbar=tqdm(tloader(traset,num,batsize))
[0052] 其中,num为训练数据集中的类的数量,traset为Images图片集、Cats图片集和训练函数集的封装类。
[0053] 步骤2:将图像特征输入深度空洞卷积模块,并通过紧缩激励模块压缩无用信息得到紧密特征图和底层特征图。
[0054] 步骤2.1:定义P1为输入网络的图像张量,输入图像张量P1;
[0055] 步骤2.2:加载预训练主干网络Resnet101,定义se为SE‑NET紧缩激励层,对各个通道权重分配,对P1进行深度卷积操作后,输入到se中得到输出P2,具体公式如下:
[0056]
[0057] 其中,w(k,l)为卷积核,h(k,l)为输入的向量,y(k,l)为输出的图像张量,se为紧缩激励层。
[0058] 步骤2.3:定义maxpooling为最大池化层,将P2输入到maxpooling得到输出P3;
[0059] 步骤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];
[0060] 步骤2.5:如果i0<4,跳转到步骤2.6,否则结束遍历操作跳转到步骤2.8;
[0061] 步骤2.6:定义layeri0为膨胀卷积层,定义dilations[i0‑1]为layeri0层的膨胀系数, strides[i0‑1]为步长,将P3输入到layeri0随着i0迭代更新,具体公式如下:
[0062] k(m,l)=m(l‑1)+1
[0063] output=layer(input,k(m,l),s)
[0064] 其中,m为膨胀系数dilations[i0‑1],l为卷积核大小为kersize,k(m,l)为膨胀后的卷积核大小,input为layeri0层的输入,s为步长strides[i0‑1],output为输出;
[0065] 步骤2.7:令i0=i0+1,跳转到步骤2.6;
[0066] 步骤2.8:结束循环得到输出P4,并将P3保存为底层特征lowfeature,P3为底层特征图, P4为紧密特征图;
[0067] 步骤3:将紧密特征图进行金字塔编码得到五个特征图,然后将这五个特征图分别解码,并与底层特征图进行融合,将融合后的五个特征图拼接为一个融合特征图。
[0068] 步骤3.1:定义集合Map为卷积特征图集,满足Map={map1,map2,...,mapm},其中mapm表示第m个卷积特征图,定义Upsample为上采样特征图集合,满足Upsample={upsample1, upsample2,...,upsamplem},其中upsamplem表示第m个上采样特征图,m∈[1,5],跳转到步骤 3.2和步骤3.3;
[0069] 步骤3.2:定义aspp层为金字塔卷积层,将P4输入到aspp层,得到输出卷积特征图map1, map2,map3和map4,跳转到步骤3.4;
[0070] 步骤3.3:定义glbpooling为池化层,用于缩小特征图尺寸,将步骤2.8中的P4输入 glbpooling层,得到输出map5跳转到步骤3.4;
[0071] 步骤3.4:得到输出的卷积特征图集Map,并对其元素分别进行上采样;
[0072] 步骤3.5:将上采样后的输出分别与lowfeature相加融合得到上采样特征图集合Upsample, Upsample={upsample1,upsample2,...,upsample5};
[0073] 步骤3.6:对集合Upsample中元素{upsample1,upsample2,...,upsample5}做拼接融合得到输出P5,具体融合公式如下:
[0074] output=concat(upsample1, upsample2 ,upsample3,upsample4,upsample5)[0075] 其中concat为拼接融合函数,output为输出结果;
[0076] 步骤3.7:对P5进行1×1卷积,调整通道后得到输出P6;
[0077] 步骤4:将底层特征图条带池化编码,提取高级特征后,解码得到一个池化后的特征图;
[0078] 步骤4.1:定义spooling层为条带池化层;
[0079] 步骤4.2:将P3输入条带池化层spooling,通过多个条形池化框池化得到输出P7;
[0080] 步骤4.3:将P7进行1×1的卷积调整通道得到输出P8;
[0081] 步骤4.4:对P8上采样得到输出P9。
[0082] 步骤5:将池化后的特征图和融合特征图进行加法融合,再经非局部模块降噪,解码后得到图像分割输出。
[0083] 步骤5.1:定义nonlocal为非局部层,将P9与P6拼接融合得到输出P10;
[0084] 步骤5.2:将P10输入3×3卷积进行通道调整,得到输出P11;
[0085] 步骤5.3:将P11输入nonlocal层进行降噪,得到输出P12;
[0086] 步骤5.4:将P12进一步上采样,得到与原图大小一致的分割结果图P13。
[0087] 步骤6:输入数据集进行训练,将结果保存为SD‑NET模型,将图片输入到SD‑NET模型得到分割结果;
[0088] 步骤6.1:定义一个epoch为将所有样本训练一次的过程,定义loss为训练一个epoch的损失,定义i1为循环变量用于遍历所有epoch,定义len(epoch)为epoch数量,i1∈[1,len(epoch)];
[0089] 步骤6.2:遍历epoch,如果i1≤len(epoch),跳转到步骤6.3,否则结束遍历epoch,跳转到步骤6.11;
[0090] 步骤6.3:tbar为步骤1.6的数据装载变量,len(tbar)为数据装载变量长度,定义i2为循环变量用于遍历数据装载变量tbar,i2∈[1,len(tbar)];
[0091] 步骤6.4:遍历数据装载变量tbar中traset的Images图片集、Cats图片集,如果i2≤ len(tbar),跳转到步骤6.5,否则结束遍历tbar,跳转到步骤6.9;
[0092] 步骤6.5:定义imagei2为Images图片集的一个图片张量,定义targeti2为Cats图片集的一个图片标记张量,定义optimizer为梯度优化函数,用于调整合适的学习率;
[0093] 步骤6.6:将输入imagei2到步骤2,3,4,5中得到输出P14;
[0094] 步骤6.7:根据P14和targeti2计算损失loss,根据损失loss反向更新参数;
[0095] 步骤6.8:令i2=i2+1,跳转到步骤6.4;
[0096] 步骤6.9:保存本次训练后的模型,将测试集图片数据和标签输入本次epoch保存的模型,计算像素分类准确率piexlAcc,和图片类分类准确率classAcc以及测试损失tloss;
[0097] 步骤6.10:令i1=i1+1,跳转到步骤6.2;
[0098] 步骤6.11:定义训练好的模型为SD‑NET,训练完所有epoch,保存最后的模型SD‑NET;
[0099] 步骤6.12:定义imgseg为待分割单张图像,调整imgseg图像大小后,将RGB三通道调整为BGR三通道,得到输出P15;
[0100] 步骤6.13:将P15输入SD‑NET模型得到分割输出结果imgout。
[0101] 为了更好的说明方法的有效性,通过对21个类别、28480张图像数据,使用深度空洞卷积和紧缩激励模块提取底层特征图和紧密特征图,再使用金字塔卷积提取不同尺度的图像特征,上采样后与底层特征结合,得到包含更多底层特征的融合特征图,然后使用条带池化的方法提取紧密特征图中的条形特征,并与融合特征图结合,最后将结合后的特征图上采样并通过非局部层去噪,得到最后的分割结果。参见下表1,分别利用FCN、Segnet、 SE‑NET+non‑local这三种方法进行语义分割,本发明基于条带池化的图像语义分割方法在像素级别的分类准确率相较于现有的单分支提取特征的方法提升了3.02%,对21个类别、28480 张图像数据的分类准确率达到了76.33%
[0102] 表1实验结果对比表
[0103]
[0104] 参见附图3,附图3为原图像,其经过本发明算法进行语义分割后可以得到附图4的分割效果图。
[0105] 参见附图5与附图6,在本模型训练中损失下降曲线比别的模型更加平滑,更容易训练得到较好的分割模型。
[0106] 上述实施方式只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。