随着公路和铁路交通系统的快速兴起与发展,桥梁作为路网的重要关节,其使用状态和检测养护问题也受到关注.桥梁的细微之处往往很难依靠人工发现
[1].采用智能化识别技术和深度学习算法可有效检测出桥梁的裂缝病害,为桥梁的维护提供了很大的便利性.对于桥梁结构裂缝的病害防治,国内外的专家都进行了相关的研究,金耀等
[2]应用计算机视觉技术来识别桥梁的局部损伤,通过分析桥梁荷载的时空分布特点,结合动态检测系统识别桥梁的裂缝.杨建华等
[3]基于图像分组自动处理方式,捕获桥梁的裂缝,提出识别的检测方法.蒋文波等
[4]采用了基于图像纹理的SVM模型,将桥梁裂缝病害的检测的线性特征扩展到非线性特征,进一步扩大研究领域范围.高庆飞等
[5]为了从桥梁图像上正确识别出裂缝病害,采纳了连通域提取方法,可以成功地提取出特征参数.由于深度学习算法的发展,更多学者也参与到该领域的研究中.黄凤华等
[6]利用卷积神经网络(convolutional neural network,CNN)特征框架分析桥梁裂缝,减少了人工设定参数的干扰.曾世钦等
[7]学者通过将朴素贝叶斯数据与CNN算法进行结合,以数据集成的方式检测每帧图像,提高了该算法的性能.朱劲松等
[8]采用超声波标定的方式替代GPS的桥梁定位方法,并结合卷积神经网络从视频数据中对桥梁结构裂缝病害进行检测,但是通用性较低.
1 桥梁结构裂缝图像数据的处理
1.1 全卷积神经网络结构的设计
对于桥梁结构的裂缝病害识别检测,首先研究全卷积神经网络(fully convolutional networks,FCN)的整体结构,全卷积神经网络主要用来对裂缝病害进行识别.其主要组成部分包括输入层、卷积层、池化层、反卷积层以及Softmax分类器等
[9],其基本结构如
图1所示.输入层的功能就是将原始信号或图像作为全卷积网络的起点进行数据输入,以便于后续的卷积层和池化层对数据进行特征提取.卷积层作为卷积神经网络的核心
[10],担任着重要的角色.该层将预处理后的数据进行卷积计算,产生信号的特征参数.卷积层会依据权值共享特点降低过拟合现象,通过采用卷积核的滑动方式进而减少了网络权值参数的个数
[11],以达到模型训练参数个数最小的目的,保障模型较低的复杂度,有效进行模型的学习.
权值共享的示意图如
图2所示,可以看出卷积核根据固定的步长对所有的输入进行一次性地遍历计算,并且第
层和第
层的权值个数只要求3个参数就能保证功能实现,进而减少了权值的数量,也减小了对数据的内存需求.卷积层的计算公式如
公式(1)所示.
.
其中, 表示第 层的第 个的神经元通道的输入; 表示第 层的第 的神经元通道的输出; 表示第 层第 个神经元与第 个神经元的卷积核; 为卷积网络的激活函数, 表示特征图的数量; 表示第 层的第 个特征图的偏置.
其卷积示例计算过程如
图3所示.将一个3 × 3的二维矩阵与一个2 × 2的卷积核进行卷积运算,二维矩阵的首先选取第一个2 × 2被卷积的局部区域进行神经元的乘法运算得出结果数据值
,接着根据步长为1的要求移动卷积核对第二个区域进行卷积得出结果
.然后依次按照上述方法对所有局部区域进行遍历乘法运算,直至得到一个2 × 2的输出矩阵.
在进行完卷积运算后,为了进一步提高神经元计算速度,减少权值数量,降低计算的复杂度,会对输入数据进行池化.池化层的作用就是利用滑动窗口的方式对数据进行降采样
[12],池化方法分为最大池化和平均池化,这是根据选择池化窗口的最大值还是平均值实现来选择的.最大池化的计算公式如
公式(2)所示.其中,
表示池化区域的宽度,
表示池化操作后的第
层第
j帧的第
个神经元的数值.
.
在进行池化操作后,全卷积神经网络会不断进行卷积层和池化层的迭代,而得到更深层次的抽象特征信息,有力地保证对桥梁裂缝病害的识别.
反卷积层也称为转置卷积层,反卷积的过程相当于插值过程.如
图4所示,反卷积是将输入的张量中的每个像素与反卷积核相乘,然后将中间矩阵与横纵轴的步长结合在一起.当存在像素重叠的时候,为了提取输入扩展矩阵,重叠区域的值进行相加;最后通过添加偏差将目标尺寸的矩阵进行裁剪,恢复出与目标图像大小相同的新矩阵,反卷积核是卷积核的转置形式.反卷积层是全卷积神经网络的核心部分,主要的目的是将稀疏的小矩阵转换成稠密的大矩阵,使得特征图上每一个特征向量和原图中像素一一对应.其计算公式如
公式(3)所示.
.
式中, 表示反卷积输出的大小; 为反卷积的输入大小; 表示步长; 为卷积核的大小; 表示图像填充的方式.
通过Softmax分类器对预测结果转换成概率值,有利于对故障的分类.全连接层的原理图如
图5所示.
其计算公式如公式(4)所示,其中 表示第 层的第 个神经元的输出; 表示第 层的第 个神经元与第 层的第 个神经元权重值. 表示池化操作的数值.
.
最后,通过Softmax分类器将全连接层后的数值进行归一化转换,其概率计算数值如公式(5)所示,式中, 表示第 个输出神经元对数; 表示最后一层的神经元个数; 表示归一化概率.
/.
同时,为了评价数据模型的一致性程度,采用目标函数的方式对计算结果的拟合情况进行评价,该评判函数常采用平方差函数或者交叉熵损失函数,其计算公式分别如公式(6) ~ (7)所示.式中, 表示输入小批量值的大小, 为实际值, 为Softmax输出的概率值.本文采用交叉熵损失函数.
.
.
1.2 图像数据的预处理
对于设计好的全卷积神经网络模型,需要对输入层的图像信息进行选取,对于全卷积神经网络需要足够多的图像来对其进行训练才能够发挥其特点.并且对于图像数据要进行一定的几何变换,通过几何变换增强神经网络模型的泛化能力,并且也可以减少过拟合现象的发生.几何变换不会改变图像数据的特征,只是为了变换其像素.常用的几何变换包括旋转、翻转、平移、放大、缩小、噪声扰动、变色以及对比度变换.
本模型训练的图像数据采用自数据库Crackforest和TITS2016的图像数据集,其数量如
表1所示.初始具有762幅训练集图像,分辨率在1 024 × 500像素和500 × 300的像素.为了便于对桥梁结构的裂缝进行准确地定位识别,将其分割成更小的80 × 80像素的图片,并且选择裂缝在图像中间的图片,组成新的数据集合,大约在12 800张左右的图片作为训练数据集.
2 基于全卷积网络的桥梁结构裂缝病害识别方法
2.1 模型训练与性能评价
通过利用数据集对全卷积神经网络中的权重值和偏置值进行不断更新.最速下降法是神经网络中常用的算法,其通过设置好的步长距离进行迭代搜索,将目标函数进行最小化,本模型利用改进的最速下降法即Adam算法对每个参数进行优化,其算法的调参公式如公式(8)所示.
=,.
式中, 为待修正的参数, 为时间步长, 为时间步长为 时的 取值, 是 的修正值. 为学习率,取值为0.001. 和 是一阶动量 和二阶动量 的修正值, 为常量.一阶动量s和二阶动量r的计算如公式(9) ~ (10).
其中ρ 1、ρ 2为一阶动量和二阶动量的衰减率,ρ 1为0.9,ρ 2为0.999, 如公式(11)所示.
.
.
.
式中, 是梯度的平均值, 是训练样本数量. 是ground truth值. 为预测的概率值, 是损失函数.
对于全卷积神经网络的评价方法采用准确率、召回率等评价指标.而交并比和F值对于全卷积神经网络的评价更加具有综合性,也应加入到评价指标中.首先在分析准确率和召回率之前,需要了解ROC(receiver operating characteristic)曲线,该曲线主要用来表征神经网络分类器的可信度,尤其对于较大数据量的数据集时,可以体现出诸多信息.ROC的定义如
表2所示.
其中, 表示模型预测为正例,实际值也是正例的数目; 表示模型预测为负例,实际值也是负例的数目.这2种方式都表示识别正确.而 表示模型预测为正例,实际值是负例的数目; 表示模型预测为负例,实际值却是正例的数目,意味着模型预测产生错误的情况.对于故障分类进行性能评价需要准确率 、召回率 、 值和交并比 指标.这4个指标的定义如公式(12) ~ (15)所示.
.
.
=(1+)(Pre)/().
.
式中, 表示负样本的识别能力,表示神经网络的分类性能; —对于正样本的识别能力, 值表示当 的结果与 结果产生矛盾时,由 值进行综合考虑,是对上述2个因素的加权调和平均的结果, 是准确率和召回率之间的系数,设置为1.交并比 的指标表示模型预测的边界范围与真实情况的边界范围的交集和这2个因素并集的比例,表征检测算法的性能.
2.2 桥梁裂缝病害数据集训练
根据上文Crackforest和TITS2016数据库的标注图片数据集,对上面全卷积神经网络模型进行模型训练,利用12 800张80 × 80像素的图片作为训练与验证的数据集.训练过程根据搭建的模型,部署在工作站上完成,该工作站具备Geforce GTX 1080TI的高性能GPU,其处理器CPU为Intel Core i7,主频频率为3.6 GHz.编程语言用Python完成,版本选择为Python3.5,虚拟机环境为TensorFlow1.4以及Numpy1.14.对于该FCN模型,设置学习率为10
-4,用于训练的数据集为70%,剩下30%作为模型验证用.每次批处理的尺度设置为32,采用数据对模型进行训练,具体结果如
图6所示.
图6在经过40轮周期之后,对于桥梁结构裂缝的训练数据集的识别率达到约93.8%左右.可以看到训练数据集的识别率和验证数据集的识别率随着周期轮数增长而逐渐增加,并且逐渐趋于一致和稳定.在第20轮时,识别率有大幅度的提升,并且达到至90%以上.对于这个现象主要是由于模型中的对神经网络中的权重系数的不断更新修正,并且实现了较高的模型泛化性能.在完成模型验证之后,为了计算出该模型的评价指标,在数据库汇总随机抽取1 000张图片作为对模型性能评估的样本.经过多次迭代分析后,其性能评价指标如
表3所示.从准确率和召回率等指标上来看,可以较好地满足桥梁裂缝识别的基本需求.
3 桥梁结构裂缝病害识别试验
3.1 试验验证
为了验证训练的FCN模型的识别检测的实用性,采用实际未经过灰度化处理的图像进行识别,为了对桥梁结构的裂缝病害的识别具有全面性.在采取识别的实际原图像中,第一种选取具有单一横向裂缝的图片;第二种选取具有光影影响的图片,由于光照的作用,存在阴影的干扰,对于裂缝识别具有一定影响;第三种选取裂缝较多且密集的,由于桥梁结构上存在的凹凸不平的现象,对于图像的识别也具有很大的影响.首先,分析具有单一横向裂缝的桥梁结构图像.对于图片中的背景部分,在识别过程中将其标注为紫色,而对于裂缝病害区域则将其标注为黄色,并且伴随着裂缝深度的增加,其黄色也进行加深.具体的识别结果如
图7所示.可以从图中看出,原图像中具有一定的背景噪声,对于裂缝的识别具有干扰,而在识别结果中,有效地忽略了裂缝背景噪声,将单一裂缝识别出来,并且根据识别出的裂缝状态上分析,左部分的裂缝深度较浅,而裂缝的重点部分存在于中间和右部,因为根据黄色的颜色在这两个区域加深.由上述,可以确定FCN模型对于图像中裂缝可以进行有效地识别检测.
而对于第二种图像的识别结果如
图8所示.可以从原图像中看到,桥梁结构的裂缝由于受到光照的影响,使得裂缝部分存在阴影区域,对于识别检测带来了一定的难度.同样地,背景区域标注为紫色,裂缝区域标注为黄色.可以从图中看出,阴影区域中存在一条黄色的线,说明存在一条裂缝,并且明显地显示出裂缝的形状,说明本FCN模型有效地减少了光照条件对裂缝病害识别的干扰,并且检测识别出图片右部的黄色线条较深,裂缝的深度较大.
第3种图像中裂缝周围的环境较为复杂,周围凹凸不平.同样地,背景区域标注为紫色部分,裂缝则标注为黄色.如
图9所示,可以从识别结果中看出,黄色线条对应了原图像中的裂缝部分,而凹凸部分都认为是背景部分,与裂缝无关,对于其中细小的裂缝也体现出很小的黄色线条.在实际的桥梁结构中存在很多这样的情况,说明对于这种复杂下的裂缝检测识别,本FCN模型依然具有很好的识别效果以及模型适用性.
3.2 实际裂缝病害的识别检测
上述的桥梁裂缝图像可以包含基本的桥梁裂缝类型,在经过对上述图像的识别检测之后,为了验证对在役桥梁裂缝病害的检测适用性,利用数码相机采集不同桥梁的路面,主要包括砖石结构、沥青结构和混凝土结构.其中,砖石、沥青和混凝土作为常用的桥梁建筑材料,被大范围地使用在实际的施工建设中.采集设备使用佳能相机,其分辨率达到4 608 × 3 456像素,符合对桥梁图片的获取需要.对于获取到的三种桥梁路面类型,使用全卷积神经网络模型对其中的裂缝病害进行识别.首先,对砖石铺装表面的桥梁裂缝病害进行检测识别,如
图10所示.
由于砖石表面相对比较光滑,对于裂缝宽度相对较窄的区域识别检测的难度比较大,且会存在一定的噪声干扰.从图中可以看出,该模型依然是将裂缝病害区域标注为黄色,黄色越深,越代表该处的裂缝可能性越大,从黄色的线条判断出该区域存在裂缝病害.同样地,对于混凝土铺装的桥梁结构,其原图像如
图11所示.在图像的上方存在星星点点的斑点,在原图像中用红色框标出,这些斑点会对于桥梁裂缝的病害部分产生干扰,同时,混凝土部分的裂缝末端非常细微,对于识别的难度有所增加.该模型对裂缝的识别检测依然满足需求,避免了斑点区域的干扰,识别结果中黄色表示裂缝线条的形态.
在沥青铺装的桥梁表面上,采集具有零星斑点和细微裂缝病害的图像,如
图12所示.斑点干扰区域用红色框线标出,末端的细微裂缝用紫色框线标出.全卷积神经网络模型对裂缝的识别结果显示,可将斑点的干扰区域忽略掉,而正确识别出桥梁结构的裂缝病害,除了对末端的细微裂缝识别不够明显,其余部分的裂缝部分都基本识别出.
4 结语
在未来的研究中,会增加训练样本的数量与维度,后续还会应用各类传感器等采集手段对桥梁裂缝缺陷实现更加细致的检测,进一步扩大应用范围,为桥梁结构裂缝病害检测的发展提供更多的智能化解决方案.