基于轻量化MU-Net网络的混凝土缺陷分割

2023-10-29 01:31陈智丽张士缘李宇鹏
计算机仿真 2023年9期
关键词:卷积裂缝深度

陈智丽,张士缘,王 冰,李宇鹏

(沈阳建筑大学,辽宁 沈阳 110168)

1 引言

钢筋混凝土结构是许多重要基础设施的主要结构形式,在服役过程中,受自然灾害、外部环境和人为等因素的影响,会出现裂缝、破损、甚至露筋等缺陷,如不能及时发现和修复,将严重威胁基础设施安全,随时可以带来不可估量的重大损失。传统的混凝土缺陷检测主要通过检测员肉眼判断缺陷,检测精度和效率低下。随着计算机技术的发展,基于图像处理的检测方法已成为目前主流的缺陷检测手段。

裂缝是最常见的一类混凝土缺陷,现有研究主要集中于裂缝检测。传统的裂缝检测方法主要包括阈值法[1]、边缘检测法[2,3]和形态学方法[4]等。传统检测算法需要手工提取特征,带有一定的主观性,虽然通过裁剪、自适应等方法可以提高特征明显的裂缝分割的准确率,但是对具有大量噪声干扰的图像、背景复杂以及细小裂缝无法取得良好的效果,鲁棒性较低。

随着计算机硬件的发展以及深度学习[5]的提出,深度学习在图像分割领域得到了广泛的应用,许多科研工作者将深度学习应用于混凝土裂缝检测中。Chen等人[6]利用NB-CNN网络进行裂缝检测,这一算法虽然可以检测到微小裂缝,但是只能实现对裂缝位置的定位,并不能对裂缝形状精确提取。王森等人[7]将全卷积神经网络应用到裂缝检测研究中,构建了一种适用于缺陷场景的Crack FCN模型,通过增大分辨率减少信息的丢失,但是检测精度仍有待提高。李鹏等人[8]使用改进的脉冲耦合神经网络分割裂缝,对裂缝做了外接矩形并统计内部连通域,保证了裂缝的完整性,但是仍存在一定的噪点。Zhang等人[9]设计了重叠块融合的上下文感知深度神经网络,提出MSMP池化法,在空间上聚合每个图像块上的预测结果,算法复杂度明显降低,但是预测精度不高。Choi等人[10]提出了一种实时的混凝土裂缝分割网络SDDNet,使用密集连接可分离卷积显著加快网络的运行速度,但是无法有效识别细小裂缝。兰天翔等人[11]基于MobileNetv2[12]网络设计了一个轻量级全卷积语义分割网络LU-Net,利用MobileNetv2中的Bottleneck大大缩短了分割所需的时间,但是模型精度有所下降。Xia等人[13]提出了SSIM-Net进行缺陷检测,利用MobileNetv3[14]对检测区域进行分类,检测速度明显提升。MobileNetv3是MobileNetv2的改进,采用MnasNet[15]作为整体架构,拥有更高的精度和实时性。

综上,深度学习技术已在裂缝检测中发挥了出色的作用,但在复杂背景下裂缝分割、细小裂缝分割、准确率提升、网络轻量化等方面尚有改进的空间。

本文首先对U-Net模型进行了改进,结合MobileNetv3模型,在轻量化网络的同时提升缺陷分割精度;其次,构建了一个多类混凝土缺陷数据集,相比网上的公开数据集,采集的缺陷图像背景更复杂,更具有实际工程意义。

2 MU-Net

本文提出一种轻量化MU-Net网络,其编码部分加入一系列Bneck模块作为特征提取网络,解码部分加入带有通道注意力机制的深度可分离卷积(DSC-SE)模块进行特征位置信息的还原。MU-Net的网络结构如图1所示。

图1 MU-Net结构

编码部分,将图像缩放至1664×1664,之后进行一次3×3的标准卷积,通过步长为2的下采样将图像大小变成832×832,接着通过11个Bneck模块,利用深度可分离卷积、反残差模块以及SE模块提取深层特征,得到大小分别为208×208,104×104和52×52的特征图。

解码部分,为了进一步压缩网络的参数量以及恢复缺陷位置信息,将标准卷积模块均换成了DSC-SE模块,利用双线性插值法进行上采样。解码部分共进行了五次上采样与四次拼接,得到1664×1664×64的特征图,最后使用1×1的标准卷积进行分类,输出1664×1664×2的分割结果图,其中0代表背景,1代表缺陷。

2.1 带深度可分离卷积的反残差模块(IR-DSC)

提出的MU-Net能够被轻量化的一个重要原因,在于整个网络大量地使用深度可分离卷积(DSC)代替标准卷积进行特征提取。深度可分离卷积将标准卷积拆分成了深度卷积和逐点卷积。假设输入特征图大小为Dw×Dh×M,卷积核大小为Dk×Dk,卷积后的特征图大小为Dw×Dh×N,逐点卷积核大小默认为1×1,则深度可分离卷积与标准卷积的参数量之比P为

(1)

由式(1)可以看出,使用深度可分离卷积之后,网络的参数量和计算量都有显著的下降。

为充分提取特征,MU-Net编码部分使用IR-DSC模块,其结构如图2所示。首先使用1×1的逐点卷积,由于深度卷积本身的计算特性决定了其没有改变通道数的能力,而上一层的通道数过少会造成深度卷积只能在低维空间进行特征提取。因此在深度卷积之前加入一个1×1的逐点卷积,用来提升维度。本文中升维系数为6,如此经过第一个逐点卷积之后,深度卷积可以在相对的高维空间进行特征提取。此外,网络使用了两种不同的非线性激活函数ReLU6和h-swish,其中ReLU6是ReLU的变体,将最大输出限定在6,在低精度情况下具有更强的鲁棒性;h-swish可以减少内存访问次数,大幅降低延迟损失。二者表达式如式(2)和(3)所示。

图2 IR-DSC结构

(2)

(3)

编码网络的第2-3层使用ReLU6激活函数,4-5层使用h-swish激活函数。最后再使用1×1的逐点卷积进行降维,使得输出维度与输入维度一致。若深度卷积步长为1,则降维之后的特征图与输入特征图大小一致,相加形成反残差结构,若步长为2,则无法形成反残差结构。

2.2 SE模块

本文在Bneck模块和DSC-SE模块中均加入SE模块,其结构如图3所示。特征图M(w×h×t)经过深度可分离卷积进行特征提取之后得到特征图N(w×h×t),通道数为t,随后进行全局平均池化,输入特征在通道维度上进行融合,得到1×1×t的全局平均池化结果。接着加入两层全连接层,第一层全连接层中神经元个数设置为t/x,x是一个可变参数,控制注意力强度以及参数量,这里选取x=4,得到大小为1×1×t/4的张量,激活函数采用ReLU6。第二层全连接层中的神经元个数设置为t,得到大小为1×1×t的张量,与输入特征图通道数一致,然后使用h-swish函数进行激活,这样就得到了输入的各通道的权值,最后把获得的各通道权值与输入特征图N相乘,就输出了带有通道权重的特征图N1。

图3 SE结构

2.3 Bneck模块

Bneck模块把SE融合到IR-DSC模块中,其模块结构如图4所示。

图4 Bneck结构

2.4 DSC-SE模块

为了兼顾网络的轻量化以及特征位置信息还原的准确率,MU-Net解码部分使用了DSC-SE模块,编码部分输出的特征图作为其输入,进行核大小为3×3的深度卷积,激活函数采用ReLU6,随后通过SE层,最后使用标准卷积,激活函数保持一致。

3 实验

3.1 实验数据集

网上公开的缺陷数据集大多背景简单、缺陷明显,与工程实例图像存在差异,在使用语义分割网络对其进行缺陷分割时精确度较高,缺乏实际工程意义。因此,本文采集了大量混凝土缺陷图像,构建了多类混凝土缺陷数据集。图像大小为4000×3000,背景复杂,包括裂缝168张、孔洞400张、破损100张、露筋160张。数据集的标签部分,采用专业语义分割标注软件LabelMe,由专业技术人员对缺陷区域进行像素级标注。

3.2 训练与测试

实验使用的操作系统为Win10,软件环境为Python3.6,Keras2.2.4,Tensorflow2.3,CUDA10.1,硬件环境为Intel(R) Xeon(R) CPU @ 2.20GHz,Teslat4 GPU,使用He方法对模型进行初始化,优化器使用Adam,初始学习率设置为0.001,批大小设置为1,训练100个epoch。

为了保证实验的客观性,对数据集采用五折交叉验证,将数据集中的每类缺陷图像平均分为五折,将其中的四折作为训练集,剩余的一折作为测试集,如此进行五次实验,确保数据集中的每一张图像都经过测试。

3.3 评价指标

本文采用准确率(Precision,Pre)、召回率(Recall,Re)、F1分数(F1)来评价分割的结果。

网络输出的分割结果与标签提供的ground truth相比,会有四种情况,如表1所示:其中TP表示实际为缺陷,网络判断为缺陷;FP表示实际为背景,网络判断为缺陷;FN表示实际为缺陷,网络判断为背景;TN表示实际为背景,网络判断为背景。三种评价指标的计算方法如式(4)-(6)所示:

表1 分割结果说明

(4)

(5)

(6)

准确率指的是目标的标签像素在模型预测像素中的比值,召回率指的是目标的模型预测像素在标签像素中的比值,F1值是一个综合指标,是准确率和召回率的调和平均数,能较为全面地评估模型性能。

3.5 实验结果

为了验证在MU-Net网络中加入的模块组合对提高缺陷分割性能的有效性,本文设计了5种不同的网络进行消融实验。其中U-Net是基准网络,U-Net+IR-DSC表示编码部分使用IR-DSC模块,U-Net+IR-DSC+SE表示编码部分同时使用IR-DSC和SE模块,U-Net+DSC-SE表示解码部分使用DSC-SE模块,MU-Net是本文提出的改进网络。表2-5是四类缺陷的消融实验比较。

表2 裂缝消融实验结果

表3 孔洞消融实验结果

表4 破损消融实验结果

表5 露筋消融实验结果

从以上结果可以看出,与基准网络U-Net相比,编码部分加入IR-DSC模块之后,Pre指标有了显著提升,但是误检较多,导致分割后的图像噪点较多,Re、F1值变低,加入SE模块之后网络更注重提取缺陷的特征,抑制背景信息,Re、F1值有了显著的提升。

此外,基于上述的语义分割评价指标,本文在构建的数据集上进行训练模型泛化能力的评价比较。其中Mobile-Unet模型将U-Net模型中的标准卷积替换成了深度可分离卷积,LU-Net是文献[11]中的模型。

图5是四类缺陷在不同模型上的分割结果。对于裂缝,U-Net模型对于图像中部的细小裂缝分割不完整,Mobile-Unet模型出现噪点,LU-Net模型噪点更多并且出现了将部分伪裂缝识别为裂缝的情况,MU-Net模型由于加入了SE模块,增大了模型对裂缝区域的注意力,因此,全局图像噪点得到了有效控制,并且也没有出现伪裂缝,细小裂缝分割较为完整。对于破损,U-Net模型左下角破损区域出现缺失,Mobile-Unet模型和LU-Net模型的破损区域边缘较为光滑,并且出现了噪声,MU-Net模型分割边缘贴合ground truth,并且基本没有出现破损区域分割缺失的情况。由于孔洞和露筋形状呈较为规则的圆形与长条状,并且像素占比不低,因此四种模型都取得了不错的分割结果。

图5 四类缺陷在不同模型上的分割结果

表6-9列出了四类缺陷在其它模型和MU-Net模型上的五折交叉验证结果,结果是五折结果的平均值与方差。实验表明,MU-Net对裂缝的分割提升最明显,准确率、召回率和F1分数较U-Net分别提高7.9%、1.15%、5.61%,但是稳定性逊于U-Net。四种模型对其它三类缺陷的分割不分伯仲,MU-Net模型要更胜一筹。

表6 模型对裂缝的分割结果

表7 模型对孔洞的分割结果

表8 模型对破损的分割结果

表9 模型对露筋的分割结果

表10列出了四类缺陷在不同模型和本文提出的MU-Net上模型参数量以及训练时长上的对比结果。U-Net模型的参数量比其它模型大了一个数量级,MU-Net模型的参数量最少,为U-Net模型的1/16左右;在同样的100个epoch的训练条件下,U-Net模型训练时长最长,Mobile-Unet、LU-Net和MU-Net由于使用了深度可分离卷积,都加速了模型的训练,MU-Net耗时最短,约为U-Net模型的1/2。

表10 模型参数量与训练时长对比

4 结论

本文基于语义分割U-Net网络设计了轻量化且有效的MU-Net网络,编码部分加入带深度可分离卷积的反残差模块,使得特征提取更加充分全面,加入通道注意力机制模块,提升模型在通道维度上提取细节特征的能力;解码部分使用带有注意力机制模块的深度卷积模块,更好地获取目标区域的位置关系和细节信息,目标特征的位置信息还原更加准确。此外,本文构建了一个混凝土缺陷数据集,数据集图像背景复杂、缺陷种类全面,具有实际的工程意义,所提出的网络在构建的数据集上取得了不错的效果。本文现阶段依据混凝土试块采集了缺陷图像,未来将加入户外实际桥梁混凝土缺陷图像,应用到实际混凝土缺陷检测中,具有更广阔的应用前景。

猜你喜欢
卷积裂缝深度
基于3D-Winograd的快速卷积算法设计及FPGA实现
碳酸盐岩裂缝描述七大难点
深度理解一元一次方程
完美“切割”,裂缝之谜
从滤波器理解卷积
深度观察
深度观察
深度观察
地球的裂缝
基于傅里叶域卷积表示的目标跟踪算法