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

隧道渗漏水图像的智能检测方法、装置、设备及存储介质

2022-11-16 06:45:53 来源:中国专利 TAG:


1.本发明涉及隧道渗漏水检测技术领域,尤其涉及一种隧道渗漏水图像的智能检测方法、装置、设备及存储介质。


背景技术:

2.随着我国公路隧道、地铁隧道、综合地下管廊等地下工程的发展,隧道渗漏水成为隧道中常见的病害之一,长期的渗漏水会影响隧道的运营安全。
3.目前,大部分的隧道渗漏水检测都是以人工巡检为主,人工巡检法主要为派遣人员定期下到隧道中,进行人工目测或利用相机等进行数据的采集。随着信息技术的不断发展,计算机视觉法逐渐被使用在隧道渗漏水检测中。计算机视觉法包括传统的图像处理法和深度学习法等。传统的图像处理法利用阈值分割、边缘检测、形态学分析等方法检测并识别隧道表面渗漏水病害。深度学习方法通过利用多层神经网络从海量图像数据信息中挖掘图像多层特征并将其不断汇集到网络模型中,再通过训练特定的网络模型,完成对输入图像数据的分类、定位、分割等任务。
4.然而,由于隧道内部环境复杂,干扰因素较多,人工巡检不仅容易受到主观因素的影响,而且巡检效率低,需要耗费大量的人力。目前传统的计算机视觉法则难以克服地铁隧道表面病害对比度低、光照不均、背景噪声污染严重等干扰,无法准确的对复杂环境中的渗漏水图像进行检测。因此,亟需一种即使在复杂环境中也可以对渗漏水图像进行准确检测的方法。


技术实现要素:

5.本发明实施例提供了一种隧道渗漏水图像的智能检测方法、装置、设备及存储介质,以解决目前无法准确的对复杂环境中的渗漏水图像进行检测的问题。
6.第一方面,本发明实施例提供了一种隧道渗漏水图像的智能检测方法,包括:
7.获取预设样本库中的多个渗漏水图像样本;
8.对每个渗漏水图像样本分别进行标记,得到含有标记的渗漏水标签图;
9.基于每个渗漏水图像样本及其渗漏水标签图,对预先构建的渗漏水图像检测模型进行训练,得到训练好的渗漏水图像检测模型;其中,渗漏水图像检测模型至少包括编码器、与编码器跳跃连接的解码器、连接编码器和解码器的中心层,以及分别与解码器和中心层的输出端连接的深度监督网络模块,且在编码器和解码器中均设有注意力模块,注意力模块包括多个并行的且具有不同空洞率的卷积;
10.基于训练好的渗漏水图像检测模型对待检测的渗漏水图像进行检测。
11.在一种可能的实现方式中,注意力模块为将eca模块中大小为k的一维卷积块变换为包括多个并行的且具有不同空洞率的卷积块;且解码器中的注意力模块的输出和中心层的输出作为深度监督网络的输入。
12.在一种可能的实现方式中,编码器和解码器均包括多个层级,编码器的每个层级
均包括顺次连接的卷积块、注意力模块和下采样层;解码器的每个层级均包括顺次连接的最近邻上采样层、卷积块和注意力模块;
13.中心层用于连接编码器的最下层级和解码器的最上层级;
14.在中心层的输出端、以及解码器的每个层级的输出端均设有深度监督网络模块,深度监督网络模块用于预测解码器的每个层级的输出,并将输出的结果用于深度监督学习。
15.在一种可能的实现方式中,基于每个渗漏水图像样本及其渗漏水标签图,对预先构建的渗漏水图像检测模型进行训练,包括:
16.基于第一分割结果与含有标记的渗漏水标签图,对渗漏水图像检测模型的每个层级的混合损失函数进行调整;其中,第一分割结果为渗漏水图像样本经过每个层级的编码器、解码器以及深度监督网络模块处理后得到的预测结果,每个层级的混合损失函数均包括二值交叉熵损失函数和dice损失函数;
17.基于渗漏水图像检测模型的整体损失函数、每个渗漏水图像样本及其渗漏水标签图,对预先构建的渗漏水图像检测模型进行训练;其中,整体损失函数为每层混合损失函数的线性组合。
18.在一种可能的实现方式中,每层混合损失函数l
seg
为:
19.l
seg
=αl
bce
l
dice

20.整体损失函数l为:
[0021][0022]
其中,l
bce
为二值交叉熵损失函数,l
dice
为dice损失函数,m为深度监督网络模块的总层数,m为正整数,α为比例系数,0<α<1。
[0023]
在一种可能的实现方式中,编码器和解码器的每个层级的注意力模块的空洞率相同,且编码器和解码器中第一层级的注意力模块的空洞率与其他层级的注意力模块的空洞率不同。
[0024]
在一种可能的实现方式中,编码器和解码器均包括4个层级,编码器的每个层级均包括顺次连接的两个卷积块,一个注意力层和一个下采样层,解码器的每个层级均包括顺次连接的一个最近邻上采样层、两个卷积块和一个注意力模块,中心层包括两个卷积块,其中,卷积块包括一个3
×
3的卷积层,一个批量归一化层和一个校正线性单元;注意力模块包括4个并行的一维空洞卷积,且编码器和解码器第一层级的注意力模型的空洞率为(1,2,4,8),其他层级的注意力模型的空洞率为(1,4,8,16);
[0025]
深度监督网络模块为side network,用于预测解码器的每个层级的输出,并将解码器的每个层级的输出用于深度监督学习;其中,side network包括一个1
×
1的卷积层、一个最近邻上采样层和sigmoid函数层;
[0026]
中心层的输出与解码器每个层级的最近邻上采样层生成的特性图作为side network的输入,解码器最后一个层级的输出经过side network处理后得到的结果为渗漏水图像检测模型的输出结果。
[0027]
第二方面,本发明实施例提供了一种隧道渗漏水图像的智能检测装置,包括:
[0028]
获取样本模块,用于获取预设样本库中的多个渗漏水图像样本;
[0029]
标记样本模块,用于对每个渗漏水图像样本分别进行标记,得到含有标记的渗漏
水标签图;
[0030]
训练模型模块,用于基于每个渗漏水图像样本及其渗漏水标签图,对预先构建的渗漏水图像检测模型进行训练,得到训练好的渗漏水图像检测模型;其中,渗漏水图像检测模型至少包括编码器、与编码器跳跃连接的解码器、连接编码器和解码器的中心层,以及分别与解码器和中心层的输出端连接的深度监督网络模块,且在编码器和解码器中均设有注意力模块,注意力模块包括多个并行的且具有不同空洞率的卷积;
[0031]
检测模块,用于基于训练好的渗漏水图像检测模型对待检测的渗漏水图像进行检测。
[0032]
第三方面,本发明实施例提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上第一方面或第一方面的任一种可能的实现方式所述方法的步骤。
[0033]
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上第一方面或第一方面的任一种可能的实现方式所述方法的步骤。
[0034]
本发明实施例提供一种隧道渗漏水图像的智能检测方法、装置、设备及存储介质,首先,获取预设样本库中的多个渗漏水图像样本,然后,对每个渗漏水图像样本分别进行标记,得到含有标记的渗漏水标签图。接着,基于每个渗漏水图像样本及其渗漏水标签图,对预先构建的渗漏水图像检测模型进行训练,得到训练好的渗漏水图像检测模型。最后,基于训练好的渗漏水图像检测模型对待检测的渗漏水图像进行检测。本发明构建的渗漏水图像检测模型中除包括现有的编码器和解码器外,还增加了注意力模块和深度监督网络模块,注意力模块可以帮助渗漏水图像检测模型有效地学习语义特征,深度监督网络模块可以有效地提升渗漏水图像检测模型的鲁棒性,从而可以实现对复杂环境下的渗漏水图像的精准检测。
附图说明
[0035]
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0036]
图1是本发明实施例提供的隧道渗漏水图像的智能检测方法的实现流程图;
[0037]
图2是本发明实施例提供的渗漏水图像样本及其对应的标签图;
[0038]
图3是本发明实施例提供的注意力模块的结构示意图;
[0039]
图4是本发明实施例提供的一种渗漏水图像检测模型的结构示意图;
[0040]
图5是本发明实施例提供的在unet网络中加入不同模块后的检测结果对比图;
[0041]
图6是本发明实施例提供的acpa-net与现有方法的检测结果对比图;
[0042]
图7是本发明实施例提供的acpa-net与现有深度学习网络的检测结果对比图;
[0043]
图8是本发明实施例提供的隧道渗漏水图像的智能检测装置的结构示意图;
[0044]
图9是本发明实施例提供的电子设备的示意图。
具体实施方式
[0045]
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
[0046]
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图通过具体实施例来进行说明。
[0047]
隧道渗漏水检测可作为一种像素级别的二分类任务,其将渗漏水区域的像素位置分配标签1,而背景区域的像素位置分配标签0。当将一张渗漏水图片输入到渗漏水图像检测模型后,最终将输出一个与输入图片等分辨率且只有一个通道的图片。此图片中每一个像素位置的值都代表该像素位置属于渗漏水区域的概率,因此期望在最后一层输出的结果中真正属于渗漏水区域的像素位置有着较大的概率,而属于背景区域的像素位置有着比较小的概率。然而,当对复杂环境中的渗漏水图像进行检测时,由于关照不均、背景噪声污染严重等干扰,无法准确的对复杂环境中的渗漏水图像进行检测。
[0048]
为了解决现有技术问题,本发明实施例提供了一种隧道渗漏水图像的智能检测方法、装置、设备及存储介质。下面首先对本发明实施例所提供的隧道渗漏水图像的智能检测方法进行介绍。
[0049]
隧道渗漏水图像的智能检测方法的执行主体,可以是隧道渗漏水图像的智能检测装置,该隧道渗漏水图像的智能检测装置可以是具有处理器和存储器的电子设备,例如移动电子设备或者非移动电子设备。本发明实施例不作具体限定。
[0050]
参见图1,其示出了本发明实施例提供的隧道渗漏水图像的智能检测方法的实现流程图,详述如下:
[0051]
步骤s110、获取预设样本库中的多个渗漏水图像样本。
[0052]
由于用于隧道渗漏水检测公开的数据集较少,故本发明中使用自制的样本库进行实验。用于制作样本库的图片均使用数码相机采集自于多个不同环境的铁路隧道中的渗漏水图像。
[0053]
步骤s120、对每个渗漏水图像样本分别进行标记,得到含有标记的渗漏水标签图。
[0054]
可以采用labelme对每个渗漏水图像样本分别进行标记,具有渗漏水的目标区域被标记为1,无渗漏水的背景区域标记为0。在本发明中,最终通过裁剪缩放等操作得到了1370对图片。由于受到gpu内存的限制,在本发明中所有图像都被缩放为256
×
256的大小,其中1100对图片用于训练,270对图片用于测试。
[0055]
如图2所示的2组渗漏水图像及与其对应的标签图,其中,第1、3列为渗漏水图像,第2、4列为对应的标签图,从图中可以看出,隧道内环境复杂,有的渗漏水区域被管道、电缆或阴影等覆盖。一些人工痕迹、苔藓、阴影等颜色与渗漏水区域相似的干扰物会使得分割更加困难。此外,渗漏水图像样本中存在一些模糊图像和低灰度图像,这也会给渗漏水检测带来挑战。
[0056]
步骤s130、基于每个渗漏水图像样本及其渗漏水标签图,对预先构建的渗漏水图像检测模型进行训练,得到训练好的渗漏水图像检测模型。
[0057]
其中,渗漏水图像检测模型至少包括编码器、与编码器跳跃连接的解码器、连接编
码器和解码器的中心层,以及分别与解码器和中心层的输出端连接的深度监督网络模块,且在编码器和解码器中均设有注意力模块,注意力模块包括多个并行的且具有不同空洞率的卷积。
[0058]
为了获得准确的分割结果,渗漏水图像检测模型需要获得高质量的语义特征以及充足的空间细节信息。为获得高质量的语义特征,在提取图片特征的过程中,渗漏水图像检测模型一般情况下会对特征图进行下采样操作,该操作不仅可以缩小特征图分辨率、减少计算量,而且还有利于增大网络的感受野。但是在对特征图做下采样的过程中会造成空间细节信息的损失。而unet将编码器中与解码器分辨率相似的特征图通过跳跃连接集成到解码器中。通过融合编码器中同一个层次的特征,解码器可在逐渐提高空间分辨率时填补一些缺失的细节信息。本发明在unet的基础上,融入了注意力模块和深度监督网络模块。
[0059]
在一些实施方式中,注意力模块为将eca模块中大小为k的一维卷积块变换为包括多个并行的且具有不同空洞率的卷积块;且解码器中的注意力模块的输出和中心层的输出作为深度监督网络的输入。
[0060]
在此实施方式中,注意力模块可以让渗漏水图像检测模型关注到它们更应关注的区域或目标,是一种可以有效提升检测准确度的方法。eca(efficient channel attention)模块,该模块是将se模块中的两层全连接改为了卷积核尺寸为k的一维卷积,这样做可以让通道和它对应的参数之间有一个直接的对应关系,并且也使得参数量进一步减少。发明人发现eca模块使用的是尺寸为k的一维卷积,只能做到邻近k个通道之间进行通道交互,无法做到考虑更远距离的通道之间的交互,从而导致检测准确度较低。为了便于后续的介绍,将本发明中采用的注意力模块命名为acpa(atrouschannel pyramidattention)模块,该模块是在eca模块的基础上将其尺寸为k的一维卷积换成了多个并行的不同空洞率的一维卷积,用于从多个尺度进行更远距离的通道之间的交互。
[0061]
以下详细介绍acpa模块的结构,图3为所述acpa模块的结构示意图:
[0062]
将一个高、宽和通道数分别为h、w、c的特征图f作为该注意力模块的输入,即f∈rh×w×c,可将其表示为f=[f1,f2,f3,

fc],其中,fi∈rh×w表示f中第i个通道特征图。首先使用全局平均池化(gap)聚合特征图f的空间特征信息,此时可以得到特征向量f
gap
∈r1×1×c,可将该特征向量的第k个元素表示如下:
[0063][0064]
其中fk(i,j)表示在fk中的坐标(i,j)位置上的值。为了便于进行一维卷积操作,将f
gap
移除一个维度并得到了f
gap
∈r4×c,此时f
gap
表示如下:
[0065]fgap
=[f
gap(1)
,f
gap(2)
,f
gap(3)
,...,f
gap(c)
];
[0066]
接下来,为了可以进行多个尺度距离上的特征图通道之间的交互,f
gap
被输入到了4个并行的一维空洞卷积当中,这四个空洞卷积的空洞率可表示为:rates=(r1,r2,r3,r4)(例如,可设置rates=(1,4,8,12))。一维卷积可使所有通道共享学习到的参数,它可以有效地使相邻k个特征通道进行跨通道交互。使用四个并行的一维空洞卷积可以将k个相邻通道的跨通道交互扩展为具有多个尺度距离的k个通道的跨通道交互。之后再将得到的这四个并行的一维卷积得到的结果逐元素相加可得到y∈r1×c。因此将f
gap
输入到并行空洞卷积
后得到y[i]的整个过程可用公式表示如下:
[0067][0068]
在上述公式中,w[k]表示长度为k的卷积核的第k个元素。rates[j]表示rates中的第j个空洞率,并且在卷积之前rates[j]-1个0被分别插入到f
gap
的两边以保证整个过程不会改变原特征图的分辨率。最后再通过一个sigmoid函数将y进行归一化后得到最终通道注意力图。至此,上述的所有操作可简单表示如下:
[0069][0070]
在上述公式中,f表示整个acpa模块的输入。表示空洞率为rates[i],卷积核长度为k的一维空洞卷积。gap与σ分别表示全局平均池化层与sigmoid层。最终得到的通道注意力权重图w可通过为f中的各通道分配不同的权重从而加强与目标区域相关的特征通道并削弱与目标区域无关的特征通道,该操作如下所示:
[0071][0072]
在上述公式中,表示将通道注意力权重图w与输入的特征图f逐元素相乘,但在这个操作之前需要把w中的每一个元素都拓展成与f的空间维度一样的特征图。表示整个acpa模块的输出,它的各通道信息已经被acpa模块选择性地加强或抑制。至此已是acpa模块的所有操作。
[0073]
acpa模块是一个轻量级的模块,可随意插用。在acpa-net当中,acpa模块被插入到了每一个step中两个卷积块的末尾。给定一个输入x,一个step的输出y可表示为:
[0074]
y=acpa(convb(convb(x)));
[0075]
convb表示一个卷积块,其是由一个3
×
3的卷积层、一个批归一化层与一个relu激活函数组合而成。
[0076]
在一些实施方式中,为了进一步提高检测的准确度,在渗漏水图像检测模型中通过使用深度监督网络模块来使渗漏水图像检测模型更具判别力。深度监督网络模块是对渗漏水图像检测模型除最后一层外的前面的其它一些层增加一些额外的约束,在一定情况下可以提高收敛速度,提高网络的准确率。
[0077]
为了在模型中使用深度监督网络模块,本发明在模型的解码器中加入了side网络(side network)。side网络的作用是预测每个解码器中每一个层级的输出,然后将这些输出用于深度监督学习。side网络由1
×
1卷积层、最近邻上采样层和sigmoid层组成。central层的输出和解码器中每个上采样步骤生成的特征图都作为side网络的输入。首先,1
×
1卷积用于预测结果并得到输出。然后,除了最后一层的输出外,其余的都将通过上采样层恢复到与输入图像相同的分辨率。最后,通过sigmoid层就获得了side network的输出,这些输出都将由标签图进行监督。
[0078]
在一些实施方式中,编码器和解码器均包括多个层级,编码器的每个层级均包括顺次连接的卷积块、注意力模块和下采样层。解码器的每个层级均包括顺次连接的最近邻上采样层、卷积块和注意力模块。中心层用于连接编码器的最下层级和解码器的最上层级。
在中心层的输出端、以及解码器的每个层级的输出端均设有深度监督网络模块,深度监督网络模块用于预测解码器的每个层级的输出,并将输出的结果用于深度监督学习。
[0079]
在此实施方式中,可将编码器和解码器的每个层级的注意力模块的空洞率相同,且编码器和解码器中第一层级的注意力模块的空洞率与其他层级的注意力模块的空洞率不同。
[0080]
渗漏水图像检测模型至少可以包括编码器、与编码器跳跃连接的解码器、连接编码器和解码器的中心层,以及分别与解码器和中心层的输出端连接的深度监督网络模块,且在编码器和解码器中均设有注意力模块。为了便于后续的描述,将本发明中构建的渗漏水图像检测模型简称为acpa-net网络。
[0081]
具体的,如图4所示的acpa-net网络结构,acpa-net网络中的编码器和解码器均包括4个层级,编码器的每个层级均包括顺次连接的两个卷积块,一个注意力层和一个下采样层。解码器的每个层级均包括顺次连接的一个最近邻上采样层、两个卷积块和一个注意力模块。中心层为central layer,包括两个卷积块。卷积块包括一个3
×
3的卷积层,一个批量归一化层和一个校正线性单元。注意力模块acpa模块包括多个并行的一维空洞卷积。深度监督网络模块为side network,用于预测解码器的每个层级的输出,并将解码器的每个层级的输出用于深度监督学习;其中,side network包括一个1
×
1的卷积层、一个最近邻上采样层和sigmoid函数层。中心层的输出与解码器每个层级的最近邻上采样层生成的特性图作为side network的输入,解码器最后一个层级的输出经过side network处理后得到的结果为渗漏水图像检测模型的输出结果。需要说明的是图4中的step代表层级。
[0082]
其中,注意力模块acpa模块可以为4个并行的一维空洞卷积,且编码器和解码器第一层级的注意力模型的空洞率为(1,2,4,8),其他层级的注意力模型的空洞率为(1,4,8,16)。
[0083]
在一些实施方式中,本发明中构建的acpa-net是基于深度学习框架pytorch 1.4.0实现的,软件平台使用的pycharm。受到显卡内存的限制,最终将整个训练过程中的batch size设置为4,优化器选用了rmsprop,其中初始学习率设为1
×
10-4
,momentum为0.9,weight decay为1
×
10-8
,本实施例中将reducelronplateau作为学习率调整策略,当经过3轮训练后验证损失都没有再下降时,那么就将现有的学习率乘以0.1。当学习率达到1
×
10-8
,此后学习率将不再下降。同时,本实施例中采用了提前停止机制,总共的训练轮数设为200轮,但当验证集的f1-score在10个轮次内均没有提高时,整个训练过程将提前终止。
[0084]
后续本发明中介绍的所有实验都是基于相同的训练集和测试集上进行,本实施例中的网络在实验中没有使用预训练,而是直接使用kaiming normal进行参数的初始化。
[0085]
在一些实施方式中,在对网络的整个监督过程,需要引入损失函数,用于计算预测的输出与标签图之间的差距。binary cross-entropy loss(bce loss)和dice-coefficient loss(dice loss)是在图像检测中常用的两种损失函数。这两种损失函数分别是属于像素级的损失函数与区域级的损失函数。dice系数是衡量分割结果质量的重要指标。
[0086]
使用dice损失函数作为损失函数可以将模型直接朝着dice系数最优的方向优化。dice损失函数作为区域相关的损失函数,对于正负样本严重不平衡的场景有很好的表现,但训练样本中的小目标会使得在训练过程中损失不稳定。而与dice损失函数相比,bce损失
函数有着更为稳定的表现。为了提高监督的效果,本发明实施例中同时利用dice损失函数和bce损失函数的优点,构建了混合损失函数。
[0087]
基于第一分割结果与含有标记的渗漏水标签图,对渗漏水图像检测模型的每个层级的混合损失函数进行调整。其中,第一分割结果为渗漏水图像样本经过每个层级的编码器、解码器以及深度监督网络模块处理后得到的预测结果,每个层级的混合损失函数均包括二值交叉熵损失函数和dice损失函数。
[0088]
具体的,每层混合损失函数l
seg
为:
[0089]
l
seg
=αl
bce
l
dice

[0090]
l
bce
为二值交叉熵损失函数,l
dice
为dice损失函数,α为比例系数,0<α<1,可通过调节bce损失函数在混合损失函数中所占的比例。在本发明后续的实验中,α设为0.5,本发明中使用bce损失函数来平滑梯度,然后使用dice损失函数让网络更加关注前景部分。
[0091]
渗漏水图像检测模型的整体损失函数l为:
[0092][0093]
m为深度监督网络模块的总层数,m为正整数,为由深度监督网络模块side网络的第m个输出算出来的损失。
[0094]
为了证明混合损失函数的有效性,并分析参数α在混合损失函数中的敏感性。测试了不同的损失函数在acpa-net上的性能。损失函数包括bce损失函数、dice损失函数和混合损失函数。bce损失函数、dice损失函数和混合损失函数被分别记为“bce”、“dl”和“αbce dl”。其中“αbce dl”中的α依次选择为0.25、0.5、1、1.5、2。使用dice损失函数时,训练过程波动很大。选择bce损失函数有一个更稳定的训练过程。与dice损失相比,混合损失函数使得训练过程更加稳定。更重要的是,与dice损失和bce损失相比,混合损失函数使网络表现更好。值得注意的是,α越接近1,网络性能越好。这意味着当bce损失在混合损失中的比例更接近dice损失函数的比例时,网络可以获得更好的结果。
[0095]
在一些实施方式中,为了评估模型的性能,需要在实验中使用一些评价指标对模型进行评估。
[0096]
在本发明中使用的评价指标有:precision、recall、intersection-over-union(iou)、f1-score和accuracy。precision在发明中表示预测的结果中有多少渗漏水区域被正确预测。具体来说,precision表示被正确预测为渗漏水区域的像素占所有预测为渗漏水区域的像素中的比例。recall即召回率,其表示标签图中有多少渗漏水区域被正确预测。具体来说,它是指被正确预测为渗漏水区域的像素占标签图中所有真实的渗漏水区域的像素的比例。单一的precision或recall较高并不意味着模型具有良好的表现。因此,precision和recall经常一起用于衡量网络的有效性。f1-score在数学式上的表达与dice系数相同,其综合考虑了precision和recall。
[0097]
一个好的模型需要在precision和recall之间找到一个平衡点,所以f1-score是一个可靠的评估网络性能的评价指标。iou也是一个重要的指标,它表示分割结果中的渗漏水区域与标签图中的渗漏水区域的交集比。accuracy定义为在所有像素中正确预测的像素百分比,包括渗漏水区域与背景区域和背景。
[0098]
步骤s140、基于训练好的渗漏水图像检测模型对待检测的渗漏水图像进行检测。
[0099]
在渗漏水图像检测模型,即步骤s130中构建的acpa-net网络训练好后,即可用于对待检测的渗漏水图像进行检测。
[0100]
本发明提供的智能检测方法,首先,获取预设样本库中的多个渗漏水图像样本,然后,对每个渗漏水图像样本分别进行标记,得到含有标记的渗漏水标签图。接着,基于每个渗漏水图像样本及其渗漏水标签图,对预先构建的渗漏水图像检测模型进行训练,得到训练好的渗漏水图像检测模型。最后,基于训练好的渗漏水图像检测模型对待检测的渗漏水图像进行检测。本发明构建的渗漏水图像检测模型中除包括现有的编码器和解码器外,还增加了注意力模块和深度监督网络模块,注意力模块可以帮助渗漏水图像检测模型有效地学习语义特征,深度监督网络模块可以有效地提升渗漏水图像检测模型的鲁棒性,从而可以实现对复杂环境下的渗漏水图像的精准的检测。
[0101]
以下是为了验证本发明提供的acpa-net网络的检测效果,而做的一系列对比实验。
[0102]
首先,为了验证本发明中的注意力模块acpa和深度监督网络模块side network对渗漏水图像检测的有效性,本发明以unet网络作为基准网络(baseline),并将其结果与其集成了acpa模块和深度监督网络模块的输出的结果进行了比较。为保证公平性,本发明的实验中batch size和learning rate都采用同样的值。实验是在本发明提供的的铁路隧道渗漏水图片上进行的。其中f1-score、iou和accuracy被作为评估指标。编码器和解码器中第一层级中的acpa模块的空洞率被设置为(1,2,4,8),其它层级中的acpa的空洞率被设置成(1,4,8,16)。一维卷积的卷积核长度被设置为3。
[0103]
实验结果如表1所示,其中“ acpa”与“ acpa ds”分别表示将acpa模块融入unet以及在此基础上进一步地加入深度监督网络模块。与unet相比,acpa模块的引入使f1-score、iou和accuracy分别提高了1.55%、2.1%和0.37%。特别是当进一步在模型中加入深度监督网络模块学习后,指标f1-score、iou和accuracy均取得了最优值,分别为90.75%、83.62%和96.68%。与基准网络相比,f1-score提升了3.9%,iou、accuracy也有很大提升。
[0104]
表1acpa模块和深度监督网络模块对模型的有效性
[0105]
methodf1-score(%)iou(%)accuracy(%)unet86.8577.8695.43 acpa88.4(1.55

)79.96(2.1

)95.80(0.37

) acpa ds90.75(3.9

)83.62(5.76

)96.68(1.25

)
[0106]
图5为采用上述3种方法进行检测的检测结果,其中gt(ground truth)为标签图。unet得到的结果较差而且容易受到噪声的影响,其容易将管道或阴影等灰度值较低的干扰物识别为渗漏水区域。从图5可以看出,acpa模块在很大程度上降低了误识别率。这表明acpa模块可以帮助网络有效地学习较好的语义特征表示。然而,如图5的第四行所示,网络仍然受到一些噪声的影响,这导致分割结果在内部是不连续的。而在网络中进一步加入深度监督策略后,结果得到了进一步的提升。
[0107]
本发明提供的模型的预测结果在渗漏水区域内得到了更一致的表示。整个实验表明了acpa模块有助于网络提取有效的渗漏水区域的特征,而在网络前面的层加入适当的监督可以使网络更加健壮,并在目标区域内部获得更一致的表示。
[0108]
其次,为了验证acpa模块用于隧道内部渗漏水图像检测的有效性,本发明使用铁
路隧道渗漏水图片评估了本发明所提出的acpa模块与其他注意模块的性能。根据acpa模块的轻量级特性,本发明将其与其他四种类似的轻量级模块进行了比较,主要包括se模块、cbam模块、spatial and channel se(scse)模块和eca模块。把融入深度监督学习的unet作为基准网络(baseline),将其记为“unet_ds”。然后“ se”、“ cbam”、“ scse”、“ eca”和“ acpa”分别表示在基准网络中分别加入se、cbam、scse、eca和acpa注意力模块。实验结果如表2所示,其中“δparam”表示在基准网络额外加入注意力模块后增加的参数量,可以看出,基准网络加入注意力模块后均取得了比基准网络更好效果,这说明了进行通道之间的交互是有必要的。
[0109]
表2 acpa模块与其他注意力模块对比结果
[0110]
methodsf1-score(%)iou(%)accuracy(%)δparamunet_ds87.8179.295.77— se89.68(1.87

)81.76(2.56

)96.17(0.40

)13.95k cbam89.50(1.69

)81.69(2.49

)96.36(0.59

)30.28k scse88.14(0.33

)79.77(0.57

)95.64(0.13

)110.30k eca89.92(2.11

)82.39(3.19

)96.49(0.72

)24 acpa90.75(2.94

)83.62(4.42

)96.68(0.91

)96
[0111]
cbam、scse和se模块中均在全连接层中压缩了特征通道以减少通道注意力模块中的参数量与计算量。这种策略导致通道和权重之间存在间接而非直接的映射。值得注意的是,“ eca”只是在基准网络的基础上增加了极少的参数,却达到了与“ se”、“ cbam”、“ scse”相当甚至更好的性能。该结果证明,eca模块中避免压缩特征通道的策略可更有效地进行跨通道交互。从表2中可以看到,“ acpa”有着最好的表现,在指标f1-score、iou和accuracy中分别比“ eca”高0.83%、1.23%、0.19%,但却只在前者的基础上添加了72个参数。该结果表明,acpa模块中使用的并行的空洞卷积可以有效地进行更长距离的通道交互。
[0112]
接着,还将本发明提供的acpa-net与现有的三种图像检测方法进行了比较。第一种传统的图像分割方法是一种具有代表性的基于阈值分割的otsu算法(oa)。第二种是具有代表性的基于区域分割方法的区域增长算法(rga)。第三种是基于图论的grabcut算法。表3中列出了不同方法在测试集上的结果。
[0113]
表3 acpa-net与现有方法的对比结果
[0114]
methodsf1-score(%)recall(%)precision(%)iou(%)accuracy(%)oa48.6997.6734.3233.8463.30rga63.0973.7663.6448.4082.11grabcut89.2990.6888.7581.3496.25acpa-net90.7590.4791.5683.6296.68
[0115]
可以看到,除了recall外,oa和rga预测出的所有评价指标都远低于本发明提出的方法获得的评价指标。虽然oa预测的结果得到了最高的recall,达到97.67%,但出现这样结果的原因是oa很难自动找到合适的阈值来将渗漏水区域与背景区域分割开来。它倾向于将背景区域与渗漏水区域归为一类,这也导致在获得oa获得了很高recall的同时但precision却非常小。因此,其f1-score、iou、accuracy的值都比较低。从总体的指标上看,oa的结果是最差,rga得到的结果优于oa得到的结果,grabcut是三种传统的图像分割方法
中表现最好的,远优于与其他两种传统图像分割方法。而本发明提出的方法优于这三种传统的图像分割方法。
[0116]
图6中为acpa-net与现有方法的检测结果对比图,从图中可以很明显的看出,acpa-net的检测结果更好,而现有方法的图像分割结果容易受到各种因素的影响。从图6的第三行可以看到,由于受到反光的影响,现有图像分割方法得到的结果中渗漏水区域存在很多孔洞,并且rga只能分割出渗漏水区域很小的一部分。对于低光照条件下的图像,如图6中最后一行,rga和oa算法很难区分前景和背景。相比于前两种方法,grabcut更具有出色的性能,但该方法在分割过程中需要进行人工交互,即需要人工框选出渗漏水区域并对错误预测的区域进行适当的标记。grabcut需以人工交互为代价换取较好的分割结果,所以grabcut并不是一种高效的方法,并且该方法仍逊色于本发明提出的方法。相比之下,作为一种数据驱动的深度学习方法,本发明所提出的方法具有比传统的图像分割方法更高的效率和更好的鲁棒性。
[0117]
最后,还将本发明提供的acpa-net与现有的基于深度学习网络的检测方法进行了比较,这些方法包括:pspnet、deeplabv3、deeplabv3 、linknet和sfnet。由于数据集规模较小,所以在实验中,这些网络均采用resnet-18作为特征提取网络,并且上述所有网络都使用了imagenet数据集进行预训练,其在一定程度上可减少过拟合并提升模型的性能并提高模型精度。表4给出了本发明的方法与上述五种深度学习方法在评价指标上的比较结果。
[0118]
表4 acpa-net与现有深度学习网络的检测对比结果
[0119]
methodparamf1-score(%)recall(%)precision(%)iou(%)accuracy(%)pspnet11.51m87.4288.1787.5778.2495.63deeplabv315.90m88.8488.6689.8580.5395.73deeplabv3 12.33m88.3789.8987.9879.8295.83linknet11.66m89.3288.6591.1181.596.25sfnet13.75m90.0290.0590.7782.4696.51ours4.32m90.7590.4791.5683.6296.68
[0120]
从表4可以看出,pspnet得到的结果是最差的,相比之下,linknet有着与pspnet相近的参数量,但得到的结果远优于比pspnet的结果。sfnet得到的结果略低于本发明的方法。而本发明的模型有着最少的参数量,并且在其他指标上也都有着最优的表现。
[0121]
图7为acpa-net与现有深度学习网络的检测结果对比图,pspnet预测的图像中渗漏水区域的边缘比较粗糙,pspnet无法有效区分管道和渗漏水区域。结果表明,pspnet中提出的用于多尺度上下文建模的金字塔池化模块(pyramid pooling module,ppm)不适用于复杂环境下的渗漏水分割。deeplabv3和deeplabv3 通过使用空洞卷积来保持增大网络的感受野并保持编码器中的图像分辨率,然后使用aspp模块捕获多尺度上下文信息。从图7可以看出,deeplabv3和deeplabv3 得到的结果相较于pspnet有轻微的提升,但是他们的预测结果中的渗漏水区域仍然有很差的边缘。如图7的第一行所示,deeplabv3和deeplabv3 在光照较暗的环境中很难做出精准的预测。linknet、sfnet和本发明提出的acpa-net通过融合来自编码器的特征图来补充一些细节信息,并且,sfnet通过使用流对齐模块(flow alignment module,fam)预测流场来对齐两个相邻级别的特征图,因此linknet、sfnet和acpa-net预测到的目标区域的边界比前文提到的pspnet、deeplabv3和deeplabv3 更清晰、
更准确。相比其他的方法,本发明所提出的acpa-net获得的结果依旧更好一些。从图7前两行可以看到,其他的5种基于深度学习的预测结果中存在严重的错误分类区域。而借助acpa模块和深度监督策略,本发明的方法成功地获得了最为准确的分割结果。acpa模块帮助网络加强有用的特征通道并抑制无用的特征通道。这可以帮助网络学习更强的渗漏水区域的特征表示。编码器和解码器之间的跳跃连接可以通过恢复局部空间信息来增强图片的一些细节。深度监督可以有效的提升网络的鲁棒性并且还能使得在目标区域的内部获得更为一致的表示。本发明所提出的方法在图7中的后几行中依旧获得了比其他方法更好的检测效果。
[0122]
本发明提供的渗漏水图像检测模型acpa-net,通过增加注意力模块acpa可以有效进行多尺度长距离的跨通道交互,帮助抑制无用特征,加强有用特征,帮助网络学习更强的渗漏水区域的特征表示,并且参数较少。增加了深度监督网络模块可以有效的提升网络的鲁棒性并且还能使得在目标区域的内部获得更为一致的表示。且通过上述一系列实验结果可以看出,本发明提供的渗漏水图像检测模型acpa-net在复杂环境中具有更准确的检测效果。
[0123]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0124]
基于上述实施例提供的隧道渗漏水图像的智能检测方法,相应地,本发明还提供了应用于该隧道渗漏水图像智能检测方法的检测装置的具体实现方式。请参见以下实施例。
[0125]
如图8所示,提供了一种隧道渗漏水图像的智能检测装置800,包括:
[0126]
获取样本模块810,用于获取预设样本库中的多个渗漏水图像样本;
[0127]
标记样本模块820,用于对每个渗漏水图像样本分别进行标记,得到含有标记的渗漏水标签图;
[0128]
训练模型模块830,用于基于每个渗漏水图像样本及其渗漏水标签图,对预先构建的渗漏水图像检测模型进行训练,得到训练好的渗漏水图像检测模型;其中,渗漏水图像检测模型至少包括编码器、与编码器跳跃连接的解码器、连接编码器和解码器的中心层,以及分别与解码器和中心层的输出端连接的深度监督网络模块,且在编码器和解码器中均设有注意力模块,注意力模块包括多个并行的且具有不同空洞率的卷积;
[0129]
检测模块840,用于基于训练好的渗漏水图像检测模型对待检测的渗漏水图像进行检测。
[0130]
在一种可能的实现方式中,注意力模块为将eca模块中大小为k的一维卷积块变换为包括多个并行的且具有不同空洞率的卷积块;且解码器中的注意力模块的输出和中心层的输出作为深度监督网络的输入。
[0131]
在一种可能的实现方式中,编码器和解码器均包括多个层级,编码器的每个层级均包括顺次连接的卷积块、注意力模块和下采样层;解码器的每个层级均包括顺次连接的最近邻上采样层、卷积块和注意力模块;
[0132]
中心层用于连接编码器的最下层级和解码器的最上层级;
[0133]
在中心层的输出端、以及解码器的每个层级的输出端均设有深度监督网络模块,
深度监督网络模块用于预测解码器的每个层级的输出,并将输出的结果用于深度监督学习。
[0134]
在一种可能的实现方式中,训练模型模块830,用于基于第一分割结果与含有标记的渗漏水标签图,对渗漏水图像检测模型的每个层级的混合损失函数进行调整;其中,第一分割结果为渗漏水图像样本经过每个层级的编码器、解码器以及深度监督网络模块处理后得到的预测结果,每个层级的混合损失函数均包括二值交叉熵损失函数和dice损失函数;
[0135]
基于渗漏水图像检测模型的整体损失函数、每个渗漏水图像样本及其渗漏水标签图,对预先构建的渗漏水图像检测模型进行训练;其中,整体损失函数为每层混合损失函数的线性组合。
[0136]
在一种可能的实现方式中,每层混合损失函数l
seg
为:
[0137]
l
seg
=αl
bce
l
dice

[0138]
整体损失函数l为:
[0139][0140]
其中,l
bce
为二值交叉熵损失函数,l
dice
为dice损失函数,m为深度监督网络模块的总层数,m为正整数,α为比例系数,0<α<1。
[0141]
在一种可能的实现方式中,编码器和解码器的每个层级的注意力模块的空洞率相同,且编码器和解码器中第一层级的注意力模块的空洞率与其他层级的注意力模块的空洞率不同。
[0142]
在一种可能的实现方式中,编码器和解码器均包括4个层级,编码器的每个层级均包括顺次连接的两个卷积块,一个注意力层和一个下采样层,解码器的每个层级均包括顺次连接的一个最近邻上采样层、两个卷积块和一个注意力模块,中心层包括两个卷积块,其中,卷积块包括一个3
×
3的卷积层,一个批量归一化层和一个校正线性单元;注意力模块包括4个并行的一维空洞卷积,且编码器和解码器第一层级的注意力模型的空洞率为(1,2,4,8),其他层级的注意力模型的空洞率为(1,4,8,16);
[0143]
深度监督网络模块为side network,用于预测解码器的每个层级的输出,并将解码器的每个层级的输出用于深度监督学习;其中,side network包括一个1
×
1的卷积层、一个最近邻上采样层和sigmoid函数层;
[0144]
中心层的输出与解码器每个层级的最近邻上采样层生成的特性图作为side network的输入,解码器最后一个层级的输出经过side network处理后得到的结果为渗漏水图像检测模型的输出结果。
[0145]
图9是本发明实施例提供的电子设备的示意图。如图9所示,该实施例的电子设备9包括:处理器90、存储器91以及存储在所述存储器91中并可在所述处理器90上运行的计算机程序92。所述处理器90执行所述计算机程序92时实现上述各个隧道渗漏水图像的智能检测方法实施例中的步骤,例如图1所示的步骤110至步骤140。或者,所述处理器30执行所述计算机程序32时实现上述各装置实施例中各模块的功能,例如图8所示模块810至840的功能。
[0146]
示例性的,所述计算机程序92可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器91中,并由所述处理器90执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程
序92在所述电子设备9中的执行过程。例如,所述计算机程序92可以被分割成图8所示的模块810至840。
[0147]
所述电子设备9可包括,但不仅限于,处理器90、存储器91。本领域技术人员可以理解,图9仅仅是电子设备9的示例,并不构成对电子设备9的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备还可以包括输入输出设备、网络接入设备、总线等。
[0148]
所称处理器90可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0149]
所述存储器91可以是所述电子设备9的内部存储单元,例如电子设备9的硬盘或内存。所述存储器91也可以是所述电子设备9的外部存储设备,例如所述电子设备9上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器91还可以既包括所述电子设备9的内部存储单元也包括外部存储设备。所述存储器91用于存储所述计算机程序以及所述电子设备所需的其他程序和数据。所述存储器91还可以用于暂时地存储已经输出或者将要输出的数据。
[0150]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0151]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0152]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0153]
在本发明所提供的实施例中,应该理解到,所揭露的装置/电子设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/电子设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0154]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0155]
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献