《武汉工程大学学报》  2023年01期 81-86   出版日期:2023-02-28   ISSN:1674-2869   CN:42-1779/TQ
基于像素差分卷积神经网络的类岩石裂缝检测方法


混凝土类岩石是基础设施建设中常用的一种建筑材料,大量用于公路、桥梁和大坝等基础设施建设中。由于环境和负荷的影响,这些基础材料结构会随着时间而老化,从而对结构的健康造成损害[1-3],在建筑结构健康的各项指标中,裂缝是直接指示结构状况的关键参数之一[2]。统计分析表明,46% 的结构弱点仅仅是由于未能检测到结构裂缝[4]。因此,持续有效地进行裂缝检测对于确保结构安全非常重要。
裂缝检测是经典的工程问题,主要方法有实际测量、传感器定位和图像观测等多种方法。人工手动测量简便易行但是费时费力,在大规模结构检测中难以胜任;传感器定位方法精度高但是每个裂缝需要安装设备无法满足低成本要求。利用视频/图像对观测到的裂缝信息进行检测,简单高效,该检测方法日益成为大规模结构安全监控的首选。
图像中的裂缝检测问题,与图像的边缘检测问题相似。3种常用的裂缝图像检测方法:基于边缘检测算子方法、基于深度学习的边缘检测方法和图像语义分割方法。Sobel[5]、Canny[6]和Laplace[7] 方法主要是基于手工设计的特征算子,通过依赖选取阈值的方式计算图像不同方向上的梯度,再根据梯度分布来区分裂缝和背景,但考虑到全局梯度和局部梯度存在一定的差异,阈值选取的方法很难正确地反映图像的整体梯度分布。因此,边缘检测算子在处理复杂的真实图像时往往表现出的检测能力是有限的。
基于深度学习的边缘检测方法:Yang等[8]不再依赖手工设计的特征,以HED(holistically-nested edge detection)[9]为基础,利用卷积神经网络(convolutional neural network, CNN)的特征层次结构,构建了一个在各层上加强语义特征的网络。实现了图像从局部到全局的多尺度特征的边缘检测。但是,这种方法通常不能完整地保留裂缝全部信息。
图像语义分割方法将裂缝边缘检测任务看成是图像二分类的分割问题。Schmugge等[10]利用SegNet[11]计算每个像素点的裂纹概率,并通过聚合多个视图中同一物理位置的概率对像素点进行分类,较完整地保留了分割后的裂缝信息。这种方法是在图像块级上进行的,需要对像素邻域预测结果进行聚合才能得到最终的分割结果。Cheng等[12]和Wu等[13]利用U-Net[14]实现裂缝图像在像素级上的分割,后处理不再需要邻域聚合,裂缝识别效率高。然而,U-Net编码过程中,传统卷积通常直接聚合局部的强语义信息,图像梯度信息的提取能力有限,很难学习到背景复杂的裂缝边缘信息。Hu等[15] 定义了包含边缘、边角等含义的新模式子类集,在具有最小方差的局部区域内,由中心像素差表示的局部模式直接合并到相应的子类中,实现较低成本的裂缝边缘识别。郭香蓉等[16]通过对图像进行栅格化和二值化处理,提取像素标准差的水平和垂直投影作为特征量,对裂缝实现分类。这些方法在局部模式下编码,但缺乏裂缝的语义信息。
上述方法在理想条件下能够取得良好的边缘检测效果,然后在实际的应用中其检测模型精度受限往往不能满足实际应用需求。为获取有效的裂缝语义信息的同时提取更丰富的边缘信息,设计一种基于像素差分的编码器-解码器U型结构的裂缝检测网络(PDU-Net,pixel different U-Net)。该方法的主要贡献有: ①设计了一个由残差块和像素差分卷积块组成的特征提取块PDCBlock,获取更丰富的裂缝特征。②将两种不同方向上的像素邻域的差分计算融合到U型卷积网络运算中,以充分获取裂缝语义信息的同时更好地捕获局部梯度信息。实验表明论文所提出算法相比对比算法具有更好的性能表现。
1 方 法
U-Net是一种对称的基于编码器-解码器结构的带有跳跃连接的全卷积网络。它的一个重大创新是使用跳跃连接操作,融合了底层的位置信息与深层特征的语义信息,在医学细胞等图像检测应用中效果较好,但在裂缝检测上的应用仍然十分有限,特别是在解码器中利用双层卷积层结构提取的特征有限。
1.1 PDU-Net结构
本文设计的网络结构PDU-Net使用加入了注意力机制的U-Net—Attention U-Net[17]作为基础网络,利用PDCBlock提取图像局部梯度信息,其总体结构如图1所示。PDU-Net 与Attention U-Net的主要区别在于解码器中,使用基于差分卷积的模块PDCBlock(如图1虚线框)替换Attention U-Net中的双层卷积作为网络中的特征提取单元(如图1中编码部分),此模块将两种邻域内的像素差分计算融入到卷积运算中,既有效提取了丰富的裂缝梯度信息又保留了卷积神经网络提取的语义信息。解码时在特征拼接前,使用门控注意力机制(attention gate,AG)[17](如图1中的圆圈部分)激活PDCBlock提取的特征区域,抑制背景区域,使输出的特征图更好的关注裂缝区域,从而获得良好的裂缝检测结果。
<G:\武汉工程大学\2022\2022-06工程\陈 娟-1.tif>[编码器][解码器][PDCBlock][输入/输出
最大池化
上采样
门控信号
门控注意力机制]
图1 PDU-Net结构图
Fig. 1 PDU-Net architecture
1.1.1 编码器 如图1所示,编码器包括5个阶段,每阶段执行一个PDCBlock之后进行最大池化,输出的尺寸变为原来的1/2,卷积层的通道数变为原来的2倍。而每个PDCBlock由3个不同的卷积层组成,同一个PDCBlock的不同卷积层具有相同大小的过滤器。经过4次池化后输出尺度变为初始图像的1/16,卷积层通道数变为初始图像的16倍。如表1中S1至S5所示。
1.1.2 解码器 如图1所示,解码器包括5个阶段。从第1到第4阶段,每阶段执行一次上采样后输出图像尺寸变为原来的2倍,接着与上一层PDCBlock提取的特征图一起输入至AG,计算后的结果与解码特征图进行拼接,通道数变为原来的2倍,图像尺寸不变,再进行2次卷积,通道数还原,这样依次执行4次。第5个阶段执行1次卷积,输出与原始图像同尺寸且通道数为1的特征图像。如表1中S6至S10所示。
每个阶段包括多个主要操作,Conv2d-pd1和Conv2d-pd2表示两种不同的差分卷积,Conv2d-cv表示普通卷积,Att表示门控注意力机制,Cat表示特征拼接,Conv2d表示卷积后执行归一化和ReLU激活操作,Conv表示卷积后执行Sigmod激活操作。
1.2 PDCBlock
为了更好地提取裂缝边缘的特征,本文设计出一种基于像素差分卷积[18]的模块PDCBlock,该模块加入两种方向上的差分卷积,分别是中心方向上和角向上的差分卷积。对于裂缝识别任务,中心差分卷积 (central difference convolution,CDC)[19]通过计算中心邻域的特征信息差,聚合各个方向的梯度,因此对不同环境下不变的细粒度特征具有显著的表示能力。另外,边缘检测[18]中多层差分卷积计算时中心差值和角向差值提取的纹理信息更丰富。因此本文首先对中心邻域中的差分信息进行卷积,结合角向邻域特征,使得两种不同方向上的局部信息互补。
具体来说,PDCBlock内部结构如图2(b)所示。该模块由3个残差块组成,每1个残差块内部使用深度可分离卷积[21-22]结构,分别在每个通道上进行卷积,大大减少了参数量和运算时间。该残差块由1个3×3深度卷积层、1个ReLU层、1个1×1点卷积层组成,其中深度卷积层依次为CDC、角向差分卷积(angular difference convolution,ADC)[18]和传统卷积。
<G:\武汉工程大学\2022\2022-06工程\陈 娟-2.tif>[nC×H×W
(n=1,2,4,8,16)][3×3 Conv][ReLU][nC×H×W][3×3 Conv][ReLU][nC×H×W][nC×H×W
(n=1,2,4,8,16)][3×3 CDC][ReLU][1×1 Conv][nC×H×W][3×3 ADC][ReLU][1×1 Conv][nC×H×W][3×3 Conv][ReLU][1×1 Conv][nC×H×W][ a ][ b ]
注:设输入特征图尺寸为C×H×W,H为图像的高,W为图像的宽,C为通道数。
图2 (a)Attention U-Net中双层卷积结构 ,(b)PDCBlock内部结构图
Fig. 2 (a) Double level convolutional structure in attention U-NET, (b)Construction of PDCBlock

本文使用PDC [18]像素差分卷积运算公式,对第i个像素[xi]邻域内的像素进行差分卷积运算为:
[yi=(xi,xi+j)∈Rwi?(xi+j-xi)] (1)
式(1)中:[xi]为输入特征图的第i个像素,[xi+j]为[xi]邻域R(R[∈]3×3)内的像素,[wi]为3×3卷积核对应的权重,[xi+j-xi]为像素[xi]的差分信息。特征图经过CDC后对特征像素3×3邻域的所有像素进行差分计算,聚合了各个方向的梯度,结合ADC计算的角向上的梯度,有效地补充了传统卷积提取的局部特征。所有输出通道数和尺寸不发生改变。每次采样后,通道数增加2倍。相对Attention U-Net的双层卷积模块见图2(a),PDCBlock加深了网络,并且获得的特征图拥有丰富的底层特征。本文对裂缝纹理模糊程度不同的图像,通过在块结构中加入文本使用的差分卷积的方法做了消融实验。
2 实验及结果分析
2.1 数据集
实验主要使用的裂缝图像来源于CRACK500[8] 数据集,该数据集中包括500张大小约为2 000 × 1 500像素的混凝土类岩石裂缝图片。由于数量有限,本文将每幅图像裁剪成16个不重叠的图像区域,只保留包含超过1 000个像素的裂缝的区域。最终获得了1 896张640×360像素的图片为训练数据,348张640×360像素的图片为验证数据,1 124张640×360像素的图片为测试数据。
2.2 实验细节
实验使用基于Python 3.6版本下的Pytorch框架,硬件配置为NVIDIA GeForce GTX 1080 Ti 。当使用训练集训练模型时,使用Adam优化器进行优化,学习率设置为0.000 1,训练批大小为4,训练迭代次数为300。
2.3 评估指标
为定量评估各模型的性能,本文采用以下指标进行分割准确率评估:平均交并比(mean intersection over union,MIoU),Hausdorff距离(Hausdorff distance,Hd)和Dice相似系数(Dice similarity coefficient,Dsc)。各项评估指标的计算公式如下:
MIoU[=1k+1i=0kTPFN+FP+TP] (2)
裂缝图像分割问题实质是对裂缝和背景进行分类,裂缝为正样本,背景为负样本。式(2)中,类别k=1,TP表示预测正确的正样本数量; FP表示误测的正样本数量;FN表示误测的负样本数量;MIoU取值为0到1,其值越大,表示预测效果越好。
Hd(X,Y)=[max{h(X, Y), h(Y, X)}] (3)
Hausdorff距离对图像分割出的边界比较敏感,描述了两个点集之间的相似程度。X为真实裂缝标记图的像素点集,Y为预测裂缝图像的像素点集,h(X,Y)表示点集X中的每个点到点集Y中的每个点之间的最大距离。Hd值越小,表示预测效果越好。
Dsc = [2TPFP+2TP+FN] (4)
Dsc系数是集合相似度的度量指标,本文用来计算预测裂缝和真实裂缝的相似程度,取值范围为0~1,值取1时分割效果最佳。
2.4 实验结果
2.4.1 对比实验 选取4种方法[具体包括FCN(fully convolutional networks)[20]、U-Net、RAU-Net(recursive attention U-Net)和 HED作对比实验]。在CRACK500数据集上对比上述方法。首先设置相同的训练参数,将上述方法进行训练。然后,选取各方法在验证过程中评估指标最优的模型在CRACK500测试集上进行测试,各方法的预测效果对比如图3所示。
在CRACK500测试集中,实验选取了纹理清晰、模糊、背景复杂等5张图片进行测试。a#图片背景单一、裂缝宽度较小。b#图片背景单一但与裂缝区分度小。c#图片背景复杂、裂缝宽度较大。d#图片背景单一、裂缝宽度较大。e#图片模糊裂缝不清。从结果可以看出,相对未进行裂缝识别的FCN,本文的结果更清晰,特别是在复杂背景下,本文更关注有效的信息;相对进行裂缝识别的U-Net 、RAU-Net,本文分割出的裂缝特征更突出,在细节上更准确。虽然, RAU-Net在a#、c#和d#上效果良好,但在b#和e#图片上无法区分裂缝与背景信息以致关注了许多错误信息,相反,PDU-Net通过获取更充足的裂缝边缘信息确保提取的裂缝特征的准确性,从而更好地抑制不相关的信息,使得识别精度更高。相比基于边缘检测的方法HED,本文的结果颗粒度更小,边缘特征更细致。各个方法的评估指标数据如表2所列。从数据中可以看出,本文方法在关键指标MIoU上优于其他方法,比最好的FCN提升了0.91%,平均 Dsc提升了1.71%。
表2 CRACK500 数据集上的对比实验结果
Tab. 2 Comparison of experiment results on CRACK500
[方法 MIoU 平均 Hd 平均 Dsc FCN 0.427 2 5.969 4 0.563 3 U-Net 0.414 6 6.120 8 0.543 7 RAU-Net 0.398 9 6.583 0 0.538 6 HED 0.402 8 7.490 1 0.554 9 本文 0.436 3 6.102 8 0.580 4 ]
2.4.2 消融实验 采用不同的编码特征模块在数据集CRACK500上进行了消融实验,验证了PDCBlock模块的有效性。首先选取基础网络的双层卷积模块进行实验,然后通过改变PDCBlock结构中卷积层的方法进行实验,结构中三层均为普通卷积的模块记作“L1”;结构中第一层为中心差分卷积,其余两层为普通卷积的模块记作“L2”;结构中的第二层为角向差分卷积,其余两层为普通卷积的模块记作“L3”。实验选取4张裂缝辨识度不高且边缘模糊程度不同的图片, f#图、h#图和i#图部分裂缝纹理清晰,f#图裂缝边缘模糊程度最大,使用不同方法的预测效果如图4所示。L1比双层卷积识别效果好,特别是对g#图,双层卷积无法识别裂缝, L1加深网络后提取更多的裂缝特征。L2和L3在不同程度上识别出模糊的裂缝边缘, L2的泛化能力更强。而使用本文的PDCBlock模块后,提取的局部特征更丰富,识别效果相对更好。消融实验的结果数据如表3所示。
表3 CRACK500 数据集上的消融实验结果
Tab. 3 Ablation experiment results on CRACK500
[模块 MIoU 平均 Hd 平均 Dsc 双层卷积 0.396 5 6.128 2 0.524 1 L1 0.430 2 6.114 1 0.577 0 L2 0.433 1 6.107 3 0.577 4 L3 0.434 0 6.063 5 0.578 0 PDCBlock 0.436 4 6.102 8 0.580 4 ]
3 结 论
本文提出的一种基于像素差分卷积的混凝土类岩石裂缝检测方法,与现有的裂缝检测方法相比,有效地提高了裂缝的识别精度。首先将作为基础网络的Attention U-Net中的双层卷积特征提取块改进为由残差块和像素差分卷积块组成的PDCBlock,获取更丰富的裂缝特征;然后依次将中心方向和角向上的像素邻域的差分计算融合到卷积网络运算中,获取更为充分的裂缝图像局部梯度信息。PDU-Net在裂缝边缘识别任务上突显优势,特别是在裂缝图像纹理复杂的情况下,实现了更准确的检测效果。此外,与其他对比方法相比,该方法在CRACK500上的平均交并比和平均相似系数分别达到了0.436 3和0.580 4。但是,由于训练数据集图像数量有限,裂缝背景简单,可能造成不能满足复杂的实际场景应用的问题。在后续的研究中,将对模型做进一步的优化。