王泽矫,张起睿,方冬冬,王新鹏
(1.甘肃省水利水电勘测设计研究院有限责任公司,甘肃 兰州 730000;2.澳门城市大学,澳门 999078; 3.广东省广州市城市规划勘测设计研究院,广东 广州 510000;4.贵州大学矿业学院,贵州 贵阳 550025)
裂缝是大坝普遍存在的风险源。裂缝危害轻则库水下泄,大坝停运检修,重则引发坝体溃坝,威胁下游群众生命财产安全。通过科学的手段,实时检测大坝裂缝,提前采取预防拯救措施,可以有效避免因裂缝引起的大坝事故。现有的大坝裂缝检测方法往往存在耗时耗力、实时性不高、检测精度低的缺点。周克明[1]采用裂缝计对坝体表面裂缝开合度进行测量,裂缝计需人工安放于已知裂缝位置,不能感知新裂缝,测程有限;姜福田[2]等研究了用超声波检测大坝混凝土裂缝的方法,通过在三门峡大坝中的具体实践,证明了该方法在裂缝检测上的有效性;胡江[3]等深入研究了光纤传感器裂缝检测法,其检测原理是利用调制解调信号来反映参数的变化情况,一旦坝体产生裂缝,即可对其定位并对裂缝宽度进行测量;叶贵如[4]等对原始数字图像采取一系列预处理步骤,实现对裂缝的提取,进而计算裂缝宽度等信息。现有基于深度学习裂缝检测大多面向路面、桥梁等对象,缺乏在大坝裂缝检测中的应用;Zhang L[5]首次采用卷积神经网络的方法对道路裂缝检测;李良福[6]等人提出了一种基于深度学习的桥梁裂缝检测方法,采用基于卷积神经网络的分类模型,实现桥梁背景与裂缝的识别;刘新根[7]等研究了一种基于深度学习的隧道衬砌裂缝自动识别算法,引入分类网络筛选出含有裂缝的图像,识别网络对裂缝进行识别,进而实现对裂缝几何信息的计算。基于深度学习的大坝裂缝检测方法可以将无人机灵活高精度获取坝体影像的优势与深度学习强大的数据特征学习功能相结合,实现大坝裂缝自动化、高精度及高时效性的检测。而目前采用该方法进行大坝裂缝检测,存在两方面的挑战:一是缺乏高精度的大坝裂缝数据集;二是没有现成的直接用于大坝裂缝检测的卷积神经网络模型,存在算法优化的问题。本文构建了标准的大坝裂缝数据集,引入了基于SegNet[8]的大坝裂缝卷积神经网络模型,通过定性和定量的方法验证了模型的有效性。通过基于深度学习模型的大坝裂缝检测结果,提取了裂缝的几何信息,并对特征信息进行了分析。
利用深度学习理论进行目标检测的本质在于用复杂的神经网络对海量的数据进行训练,得到目标对象准确的训练特征,然后将这些特征作为滤波器,与待识别的图像做卷积运算,实现目标的检测。由此需要构建高精度的大坝裂缝数据集。选用猎鹰8型无人机,搭载索尼a7r传感器,对某大坝坝内含裂缝的墙体近距离密集拍摄,获得尺寸大小为7360×4912的彩色裂缝图像786张,包含了22个坝段,空间分辩率为0.7mm。考虑到航飞影像航向和旁向的高重叠度,为了减少做裂缝标签的工作量,选取18个坝段的图像进行拼接处理,得到18张拼接后的图像,如图1所示,然后对拼接后的原始数据采用labelme进行裂缝特征标记,如图2所示。基于现有数据为了获得更多的裂缝数据集,按400像素值为步长对拼接后的原始图像和对应的标签图像进行裁剪,得到大小为512×512的图像,然后对裁剪后的图像进行翻转和旋转等操作,最后得到两组各含有13218张大坝裂缝的原始裂缝数据集和带裂缝标签的数据集,将其中90%的数据集作为训练集数据,5%的数据作为验证集数据,5%的数据作为测试集数据。
图1 拼接后的数据集
图2 标记后的数据集
卷积神经网络[9]依据对裂缝图像的特征学习和特征表达,形成成熟的训练模型,当将待检测的裂缝图像利用该模型进行测试时,可以快速准确地检测出坝面上裂缝的情况。将深度卷积神经网络的方法用于大坝裂缝检测上,可以达到与传统检测方法不一样的优势。
本文采用基于SegNet的神经网络模型[10]如图3所示。该网络主要由编码器网络与解码器网络组成,编码器与解码器网络充分提取图像中目标对象深层次的特征[10],然后采用卷积及反卷积等操作将编码器和解码器中每一个尺度的卷积特征进行融合得到一幅单尺度的融合特征图像。最后将融合特征图像在所有尺度上进行组合得到多尺度的融合特征图像,从而得到目标对象更加全面细致的特征[11]。这种基于多层特征融合的网络结构可以有效地将复杂背景中的裂缝识别出来[12]。
图3 裂缝检测深度卷积神经网络模型
裂缝检测深度卷积神经网络模型通过PyTorch深度学习框架实现,使用武大GPU集群完成网络模型训练。在网络训练中根据以往程序调试经验设置初始学习率为0.01,优化器函数选用Adam,冲量为0.8,batchSize为9,同时使用权值衰减正则化方法及动量优化算法,权值衰减系数设为0,动量系数设为0.8。对网络模型参数反复进行迭代计算,当训练集与验证集误差值趋于收敛并误差值达到最小时即得到最优的网络模型训练参数[13],最终选用第57次的迭代结果作为最优的网络模型。
采用测试集数据对网络模型进行测试,从测试结果中选取几幅典型的检测结果与原始图像和对应的裂缝标签图像进行比较,通过定性比较的方法,分析基于深度学习的方法检测大坝裂缝的有效性;求定检测结果图像的混淆矩阵、精确率、正确率及召回率,通过定量计算的方法,评定基于深度学习的方法检测大坝裂缝的准确性。
图4 典型检测结果一
图5 典型检测结果二
图6 典型检测结果三
图7 典型检测结果四
图4为理想状态下的检测结果,图像中没有包含任何其他干扰对象,裂缝识别清晰准确。图5原始图像中除了两条裂缝外,还存在数条竖直走向的水流痕迹,然而在检测结果中只有裂缝,没有水流痕迹的信息,检测结果中没有发生漏检和误检现象。图6原始图像A中除了两条裂缝外,还存在一条明显的红色缆线,从检测结果中可以看到,只有裂缝的特征信息,缆线没有被误检出来,检测结果与裂缝标签图中裂缝特征信息一一对应。图7原始图像A中除了彼此相交的三条裂缝外,还存在两块水泥修补的痕迹,其轮廓线条清晰,然而检测结果中只有裂缝的特征信息,裂缝形状清晰,检测结果没有受到其他对象的干扰。从以上的检测结果中可以看到基于深度卷积神经网络的方法可以准确检测出图像中的裂缝,能够较好的避开图像中的干扰因素,基本不存在漏检和误检现象,裂缝骨架特征清晰准确。
表1中给出了定量评价指标,混淆矩阵给出了预测值与真实值间的精度关系,精确率代表了预测目标对象的准确率,正确率代表了所有对象预测的准确性,召回率代表了预测真实目标的准确性。从表1中可以看到所有对象被正确分类的概率达到90%以上,网络对所有对象的预测具有较高的正确性;预测结果图像中计算的精确率高于75%,召回率高于80%,可以看到对裂缝的预测具有较高的准确度。可以看到部分目标对象没有被准确分类,可能的原因有:①样本容量不够大,网络训练参数不够精确;②该大坝裂缝开裂度特别细小,检测精度要求很高,发生了部分的漏检情况。综合分析可以看出采用基于深度卷积神经网络的方法对大坝裂缝进行检测具有一定的可靠性。
通过基于深度卷积神经网络的方法对大坝裂缝检测,得到了准确的裂缝检测结果,检测结果主要给出了两方面的信息。一是检测结果图像中只有裂缝的信息,其他对象的信息没有出现;二是在结果图像中可以清楚的看到裂缝的形状特征及裂缝间存在的几何位置关系。而在实际的大坝裂缝检测应用中除了准确识别裂缝外,往往还需关注裂缝的几何特征值,比如求定裂缝的面积、长度及宽度信息,这样能够更加详细地评估裂缝的病变情况。在解求过程中将标签图像中裂缝的几何值作为准确值,同时求定检测结果图像中对应的几何值,二者进行比较来验证检测结果中裂缝几何值的准确性。先选择合适的阈值,对检测结果图像进行二值化,得到检测结果的二值化图。设计程序分别统计检测结果二值化图和标签图中255像素值的个数,依据图像的分辨率计算面积特征值;对检测结果二值化图和标签图像做Canny边缘检测处理,统计边缘检测结果中255像素值的个数,依据分辨率计算裂缝的长度特征值。最后采用面积和长度的关系,得到裂缝宽度的信息。在本文中选取一条典型的裂缝作为测试对象,说明本文提出的方法在计算裂缝几何特征时的可行性。
表1 检测结果定量评价值整理
图8 检测结果与标签图像
设计程序统计图8中检测结果二值化图中白点的个数为5398,标签图像中白点个数为5238,两幅图像对应的空间分辩率为0.7mm,由此分别得到检测结果二值化图中裂缝面积为18.75cm2,标签二值化图中裂缝面积为18.12cm2。
采用Canny算子[14]对检测结果图像与标签图像进行边缘检测,边缘检测结果如图9所示。统计边缘检测结果中像素值为255的个数,检测结果图像为4030个,标签图像为4045个。图上可以看到检测结果为对称的双边缘,在计算长度时用一半的像素总数计算,两幅图像的空间分辩率都为0.7mm,计算得到检测结果图像中裂缝的长度为141.05cm,标签图像中裂缝的长度为141.58cm。由此可以得到检测结果图像的平均宽度值为1.87mm,标签图像的平均宽度为1.81mm。从而验证了基于深度学习的裂缝检测结果可以得到裂缝基本的几何信息值。
图9 Canny算子边缘检测结果
大坝裂缝隐蔽性强,存在范围广,检测精度要求高,检测工作量大。基于深度学习的大坝裂缝检测能克服传统方法低检测精度、低检测效率及高成本的不足,可以充分利用高精度的航飞影像,通过建立神经网络模型对海量的数据进行处理,依据严密的算法及网络强大的特征学习能力,得到裂缝最本质的特征属性,然后利用高性能的网络训练结果可以随时对获取的裂缝图像进行检测。该方法可以充分利用每次航飞的原始影像,组建十分丰富的网络训练数据集,可以对需要的网络模型不断地进行调优,再用调优的网络模型进行裂缝检测,可以得到更精确的结果。通过无人机可以获取大坝高陡处的影像数据,能够实现更大范围的裂缝检测,对裂缝的检测更加全面。本文基于深度学习的方法准确检测出了大坝中的裂缝,并通过定性和定量的方法验证了该方法的准确性,依据检测结果计算了裂缝的几何信息,但对网络模型训练不够,缺乏更具代表性、海量的数据对模型进行训练,对细小弱裂缝的检测性能不够好,对裂缝几何信息值的计算过于简单,后期需进一步深入研究、完善。