基于U-Net网络改进的混凝土裂缝检测方法

2022-05-30 10:48侯华杨沛钊曹俊俊王曹宋卫虎
电脑知识与技术 2022年16期

侯华 杨沛钊 曹俊俊 王曹 宋卫虎

摘要:针对混凝土复杂背景下细小裂缝漏检和误检的问题,提出基于U-Net网络改进的混凝土裂缝检测方法。首先,将空洞卷积与普通卷积构成并联卷积模块,融合双重尺度特征使解码器更好地恢复原图信息。其次,在并联卷积模块中引入挤压与激励网络(Squeeze-and-Excitation Networks,SENet)结构,强化重要特征通道,弱化无用特征通道。最后使用二元交叉熵作为损失函数,以精确率、召回率和F1值作为评价指标。实验结果表明,该方法精确率提高了2.43%、召回率提高了4.24%、F1提高了3.36%,能够满足各种混凝土裂缝分割的需求。

关键词:U-Net;空洞卷积;SENet;裂缝检测

中图分类号:TP391      文献标识码:A

文章编号:1009-3044(2022)16-0008-04

1 概述

混凝土是当今用量最大的一种建筑材料,广泛应用于桥梁、房屋等建筑中。由于混凝土抗拉强度低、受温度变化、雨雪等内外因素的影响,在施工过程中或长期使用中不可避免地会出现裂缝。如果不及时发现并修补,会加剧混凝土的损害。当裂缝的深度和宽度超过混凝土所承受的临界时,不仅会影响外在美观,更会影响混凝土结构的正常使用。因此混凝土裂缝检测和预防对维持混凝土结构的稳定性和延长使用寿命具有重大的意义[1]。

采用传统的人工视觉方法进行裂缝检测,存在耗时长、成本高、危险性大、效率低和易受主观因素影响等问题。随着计算机视觉技术的发展,众多学者把各种图像处理方法应用到裂缝检测中,常用方法如直方图估计法[2]、梯度直方图[3]等。这些方法对输入图像的质量要求高,需要人工干预较多。当受到光线不均和噪声干扰等影响时,裂缝检测的性能会受到极大影响,而且难以一次性达到分割要求。

近年來,深度学习技术广泛应用于各领域,其在目标检测、目标分类和语义分割等研究方向均取得了巨大成功。其中语义分割是基于像素级别的图像分割,比目标检测和目标分类更为复杂,不仅能确定目标的类别,还能提取目标轮廓以实现精确定位,相较于传统图像处理方法,在性能和效果上有巨大的提升。Long等人在卷积神经网络的基础上,提出了一种全卷积神经网络(Fully Convolutional Networks,FCN),用卷积层替换全连接层实现了像素级的分类,拉开了全卷积神经网络用于语义分割的序幕[4]。Ronneberger 等人随后提出了具有U型对称结构的U-Net网络,对图像特征进行编码与解码,并实现高低层网络信息融合[5]。与FCN 相比,U-Net 能够在少样本量的情况下实现较好的图像分割效果。

目前,众多学者已经把基于深度学习的语义分割应用于裂缝检测。李丽基于Alexnet构建了FCN模型,可以检测出复杂路面背景下的裂缝[6]。王森等人用VGG16替换FCN的编码结构,取消全连接层中的Dropout技术,修改滤波器尺寸以及扩大网络深度,提高了裂纹检测能力[7]。但是FCN仍存在明显缺陷,分割结果不够精细。Liu等人采用U-Net方法进行裂缝检测,分割效果较FCN有很大提升,但仍存在细节丢失、漏检和误检[8]。朱苏雅等人采用U-Net网络进行裂缝检测,利用阈值法和改进的迪杰斯特拉连接算法进行精确提取,该方法提升了检测精度,但受限于U-Net检测效果[9]。

目前裂缝分割大多是基于U-Net网络进行改进的,虽然U-Net适用于小数据集,能够较好地完成裂缝分割,但不能很好地恢复池化层中丢失的信息,易造成细小裂缝漏检和误检现象。由于混凝土裂缝与背景对比度不明显、像素数量不均衡,而且细小裂缝偏多,使得裂缝分割较困难。针对上述问题,提出一种基于U-Net网络改进的混凝土裂缝检测方法。实验结果表明,本文模型总体的分割效果优于U-Net和Segnet[10]模型,证明了该模型对裂缝分割的有效性。

2 改进U-Net的混凝土裂缝分割网络

2.1 U-Net网络架构

本文搭建的U-Net主要由编码器(Encoder)和解码器(Decoder)两部分组成。编码器逐层提取图像特征,其结构分为4个阶段,每个阶段包含两个3×3卷积(Padding=Same)和一个以2×2最大池化实现的下采样层,每经过一个阶段,输出特征图尺度缩小一半,通道维度加倍。解码器逐层恢复图像信息,其结构与编码器对称也分为4个阶段,每个阶段包含两个3×3卷积(Padding=Same)和一个以2×2反卷积实现的上采样层,每经过一个阶段,输出特征图尺度扩大一倍,通道维度减半。编码器每个阶段中第二个卷积的输出特征图通过跳跃连接(Skip Connection)传输至解码器,并与解码器对应阶段上采样层的输出特征图进行通道堆叠,实现浅层信息与深层信息的融合,为解码过程提供更多语义信息。最后利用1×1卷积把64维通道特征图转化为2维通道特征图,通过Softmax分类器对每个像素点进行分类,获得以白色为目标,黑色为背景的分割图。

本文搭建的U-Net 网络结构如图 1 所示。

2.2 U-Net网络改进策略

改进后的U-Net结构如图2所示。

2.2.1引入空洞卷积的并联卷积模块

编码器使用了4次最大池化进行下采样,虽然通过跳跃连接可以降低池化所造成的信息丢失的影响,但部分丢失的特征信息仍很难在解码器中恢复,可以通过扩大感受野利用全局信息来辅助解码器恢复原图像信息。

传统的卷积核在扩大感受野的同时会增大参数量,占用更多的硬件资源,针对该问题可以通过空洞卷积解决。空洞卷积又称为膨胀卷积,其卷积核的膨胀率Rate参数表示卷积核各个点的距离,Rate值越大则感受野越大。卷积核有效的参数只存在9个位置上,其余位置参数均为0,这样就能保证在参数不变的情况下,增大卷积的感受野。空洞卷积原理如图3所示:

空洞卷积在不损失分辨率和不增加计算量的情况下,通过扩大感受野获取全局信息,使得卷积输出包含较大范围的特征信息和空间层级信息,用于捕获裂缝的位置特征来辅助恢复原图像信息。但空洞卷积存在网格效应,容易造成空洞处局部信息丢失,影响信息的连续性,导致裂缝局部区域断裂,而普通卷积虽然感受野小,但可获取裂缝的细节特征信息。为了降低网格效应的影响,能够兼顾局部细节和全局信息,用并联卷积模块代替解码器中的两次卷积,对输入特征图同时进行普通卷积和空洞卷积,既能扩大感受野加深下层对上层的语义理解,又能捕捉双重尺度特征信息以弥补下采样造成的信息丢失问题。并联卷积模块如图4所示:

设输入并联卷积模块的特征图大小为M×N×K,第一条支路经过3×3普通卷积(Padding=Same)后得到M×N×K/4的特征图,其重点关注临近中心点的局部信息;第二条支路经过Rate为3的3×3空洞卷積(Padding=Same)后得到M×N×K/4的特征图,其重点关注全局信息;然后把两路输出进行通道堆叠,得到M×N×K/2的特征图,完成局部信息与全局信息的融合,有助于提高裂缝分割的准确性。

并联卷积模块的卷积后加修正线性单元ReLU激活函数以提升网络的表达能力,此外在U-Net网络中的卷积和ReLU激活函数中间加入批量归一化层BN,加快网络训练速度,使网络可以更快收敛,防止网络过拟合。

2.2.2 注意力机制

注意力机制与视觉注意力类似,让网络能够重点关注图像中的目标,忽略冗余信息。SENet[11]是一种复杂度低、计算量小且简单有效的通道注意力机制,通过改变特征图通道的权重来提升网络的分割效果。SENet包括Squeeze、Excitation和通道加权三部分。Squeeze通过全局平均池化对特征图的宽和高进行压缩,将M×N×C特征图转化成1×1×C的一维特征向量,该向量具有原特征图的全部感受野。Excitation通过一个全连接层对一维特征向量进行非线性变换降维至1×1×C/r,经过ReLU激活函数后再通过一个全连接层恢复原来一维特征向量的维度,然后通过Sigmoid函数确定各个通道的权重值。通道加权是将Excitation输出的通道权重与原特征图通道对应相乘。SENet结构如图5所示:

由于混凝土裂缝特征较少且与背景对比不明显,会对裂缝的分割造成干扰。为了降低背景和噪声的影响,提升解码器的特征恢复能力,在并联卷积模块中融入SENet注意力机制,调整双重尺度信息特征图的通道关系,提升包含裂缝特征信息通道的权重,降低其他通道的权重,加强对裂缝边缘和形状等特征的权重分配,从而捕获更多重要的语义信息,能更好地实现复杂背景下混凝土裂缝的分割。融入SENet的并联卷积模块如图6所示:

3 实验结果与分析

3.1实验环境和参数设置

实验操作系统为Ubuntu20.04.2LTS,开发框架为PyTorch,编程语言为Python。实验采用的CPU为Intel i7-9700F,GPU为NVIDIA GeForce RTX 2080Ti。在训练过程中优化器选用Adam,[β1]设置为0.5,[β2]设置为0.999,batchsize设置为1,初始学习率设定为0.0003,epoch为50。

3.2数据集

本文使用的是公开数据集CFD[12],包含118张分辨率为480×320的已标注裂缝图片。标注实例如图7所示。

为避免模型过拟合,提高网络的泛化能力,在原裂缝图像的基础上通过模糊、亮度增强、亮度减弱、旋转180度和水平镜像的方法生成了590张裂缝图像及其对应的标注图像。扩充后的最终数据集样本为708张,随机挑选420张作为训练集,144张作为验证集,144张作为测试集。扩充实例如图8所示。

3.3 评价指标

本文实验采用精确率(Precision,P)、召回率(Recall,R)和F1值(F1-score,F1)对裂缝分割结果进行定量分析,其定义如下:

[P=TPTP+FP]                                    (1)

[R=TPTP+FN]                                     (2)

[F1=2×P×RP+R]                                   (3)

其中,[TP]是预测正确的裂缝像素点个数,[FP]是误检为裂缝像素点个数,[FN]是误检为背景的裂缝像素点个数,[TP+FN]是Ground Truth中的裂缝像素点个数,[TP+FP]是检测出的所有裂缝像素点个数。精确率和召回率是相互制约的,仅从这两个指标难以判断裂缝分割性能的好坏,而综合性指标[F1]同时考虑了精确率和召回率,能够全面地评估算法的性能。

3.4 损失函数

混凝土裂缝图像的语义分割问题属于二分类问题,采用经典的二分类交叉熵(Binary cross entropy,Bce)损失函数,其公式如下:

[LBce=-1Ni=1Nyilogpi+1-yilog1-pi]           (4)

其中,[N]为图像像素个数,[yi]是第[i]个像素点真实标签值,[pi]是第[i]个像素点的预测概率值。

3.5 实验对比

为了说明本文方法的有效性,通过消融实验验证引入空洞卷积和SE模块的改进性,并通过与Segnet模型对比验证本文算法的优越性,各模型分割效果如图9所示。

图9前两行图像中的裂缝较粗且与背景对比明显,各模型都能较好地检测出裂缝。图9第三行图像中的裂缝较为细小且与背景对比不明显时,各模型的检测结果相差较大,Segnet和U-Net漏检比较严重,U-Net-DC和U-Net-DC-SE有所改善。图9第四行和第五行图像中裂缝粗细交替,Segnet和U-Net漏检部分小裂缝,U-Net-DC和U-Net-DC-SE更注重裂缝的细节。从图9的第六行图像可看出,Segnet和U-Net检测的裂缝断裂,U-Net-DC保持了裂缝的连续性但仍有漏检,U-Net-DC-SE的分割效果更好。从图9的第七行图像可看出,Segnet边界漏检,U-Net有轻微误检,U-Net-DC有轻微漏检,U-Net-DC-SE更接近原图。图9说明使用空洞卷积和SE模块改进的网络模型改善了细小裂缝漏检和误检的情况。

Segnet易发生断裂和漏检;U-Net的分割效果比Segnet较好,但仍处理不好细小裂缝;U-Net-DC引入了并联卷积模块,能够获取双重尺度特征信息,加强了裂缝分割的细节,保持了裂缝的连续性,漏检和误检的情况相对较少;U-Net-DC-SE融入了SE模块,加强了对裂缝边缘、形状等特征的权重分配,降低了裂缝与背景对比度低的影响,使得分割结果更加接近原图。

各种模型的精确率、召回率和F1值如表1所示。

从表1可以看出,由于U-Net-DC在U-net的基础上引入了空洞卷积,模型的精确率、召回率和F1值分别提升了1.78%、3.65%和2.74%。由于U-Net-DC-SE在U-Net-DC的基础上融入了SE模块,模型的精确率、召回率和F1值分别提升了0.65%、0.59%和0.62%。本文方法能够较准确地检测出裂缝信息且误检和漏检较少, 裂缝检测效果提升明显,模型具有良好的鲁棒性。

4 结论

针对混凝土复杂背景下细小裂缝的漏检和误检问题,本文提出了一种基于U-Net网络改进的混凝土裂缝检测方法。该方法以U-Net为基础,首先引入空洞卷积构成并联卷积模块,融合双重尺度特征,以弥补特征信息损失。然后添加注意力机制SENet,加强对裂缝特征通道的权重分配,降低裂缝与背景对比度低的影响,从而提高网络的分割性能。实验表明,改进的U-Net网络在公开数据集上取得了很好的分割效果,精确率达到了74.41%,召回率达到了73.26%,F1值达到了73.83%,能满足各种混凝土裂缝检测的需求,下一步将尝试在改进U-Net的基础上降低网络权重,缩短检测时间,更好地完成混凝土裂缝的实时智能化检测。

参考文献:

[1] 温作林.基于深度学习的混凝土裂缝识别[D].杭州:浙江大学,2019.

[2] 徐志刚,赵祥模,宋焕生,等.基于直方图估计和形状分析的沥青路面裂缝识别算法[J].仪器仪表学报,2010,31(10):2260-2266.

[3] 靳华中,万方,叶志伟.结合路面深度影像梯度方向直方图和分水岭算法的裂縫检测[J].华中师范大学学报(自然科学版),2017,51(5):715-722.

[4] Long J,Shelhamer E,Darrell T.Fully convolutional networks for semantic segmentation[C]// Boston,MA,USA:2015 IEEE Conference on Computer Vision and Pattern Recognition.June 7-12,2015.IEEE,2015:3431-3440.

[5] Ronneberger O,Fischer P,Brox T.U-net:convolutional networks for biomedical image segmentation[C]//Medical Image Computing and Computer-Assisted Intervention-MICCAI 2015,2015:234-241.

[6] 李丽.复杂背景下的路面裂缝检测算法研究[D].西安:陕西师范大学,2018.

[7] 王森,伍星,张印辉,等.基于深度学习的全卷积网络图像裂纹检测[J].计算机辅助设计与图形学学报,2018,30(5):859-867.

[8] Liu Z Q,Cao Y W,Wang Y Z,et al.Computer vision-based concrete crack detection using U-net fully convolutional networks[J].Automation in Construction,2019,104:129-139.

[9] 朱苏雅,杜建超,李云松,等.采用U-Net卷积网络的桥梁裂缝检测方法[J].西安电子科技大学学报,2019,46(4):35-42.

[10] Badrinarayanan V,Kendall A,Cipolla R.SegNet:a deep convolutional encoder-decoder architecture for image segmentation[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2017,39(12):2481-2495.

[11] Hu J,Shen L,Sun G.Squeeze-and-excitation networks[C]//2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition.June 18-23,2018,Salt Lake City,UT,USA.IEEE,2018:7132-7141.

[12] Limeng Cui, CFD. CrackForest Dataset[EB/OL].[2021-05-25]. https://github.com/cuilimeng/CrackForest-dataset.

【通联编辑:唐一东】