基于改进卷积神经网络的混凝土桥梁裂缝检测
2021-12-10张振华陆金桂
张振华,陆金桂
(南京工业大学机械与动力工程学院,江苏 南京 211816)
1 引言
混凝土桥梁在长期服役中,由于车辆超重,环境等因素影响,多数都存在裂缝[1],根据相关数据,裂缝是混凝土桥梁损坏的主要因素[2-3]。依靠人眼观察的传统检测方式效率低精度差。随着科学技术的发展,研究人员将图像采集与分析设备安置于桥检车上即为智能化桥检车[4-6],此方法检测效率高、成本低。
为了更好的对桥梁进行检测,对裂缝检测的算法开发刻不容缓。Xu[7]通过研究提取裂缝图像的4个统计特征,以BP神经网络进行裂缝的识别。丁爱玲[8]等根据图像特征数据,以支持向量机检测破损路面。上述方法通常需要复杂的预处理手段,而卷积神经网络可以直接对图像进行学习,不需要复杂的预处理过程,且具有较好的平移、缩放和旋转不变性[9-10]。Lecun首先运用CNN完成了对数字的识别[11],Lawrence等将CNN用于人脸识别上并取得较好的识别效果[12],S.Ji等以CNN实现了人体动作的识别[13],刘欣等人将CNN用于轨道零部件检测[14],姚明海等人将CNN用于铁氧体磁片缺陷检测中[15]。
由于卷积神经网络的特性[16],对于不同的识别目标往往需要采用不同的网络结构。通过对桥梁裂缝图片的分析和对卷积神经网络结构的研究,本文采用双通道多种尺寸卷积核对桥梁裂缝图片进行卷积和特征提取,并配以改进的激活函数作为传递函数,使用支持向量机(SVM)替代Softmax分类器,提高识别精度和效率。利用该方法对桥梁裂缝图像进行识实验,统计其识别率,并与传统卷积神经网络方法进行对比。
2 基于熵阈值法法的图像预处理
由于在桥梁表面存在干扰物,或由于图像采集问题导致图片质量问题等因素,采用熵阈值法对图像进行简单的预处理,突出裂缝与背景的对比,有效提高识别精度。
熵往往用来表示系统混乱的程度,熵阈值法通过寻找阈值对图像进行分割,先设定阈值对图像进行分割,分割后计算图像目标和背景的熵总值,若某一阈值使分割后图像的熵总值达到最大,则认为该阈值使图像最佳分割阈值,熵阈值法表达式如下:
假设设原图像的灰度级为K,当前设定的阈值为L,图像目标为T,图像背景为B,图像中灰度级为i的像素为p(i),则目标像素的累计PT(L)如式(1)所示,背景像素的累计PB(L)如式(2)所示
(1)
(2)
则根据上式结果可得目标熵HT(L)和背景熵HB(L)分别为
(3)
(4)
而总熵即为两熵之和
Hs(L)=HT(L)+HB(L)
(5)
以使总熵达到最大的阈值L对桥梁裂缝图像进行简单的预处理,效果如图1所示。
图1 混凝土桥梁裂缝处理效果图
3 改进的卷积神经网络
在桥梁表面往往会有拼接缝、划痕、标线等一些类似于裂缝形态的物体,这些物体在一定程度上影响了对于裂缝识别的准确率,通常将其归类是伪裂缝,如图2所示。
图2 混凝土桥梁常见的伪裂缝
伪裂缝的存在是目前影响桥梁裂缝检测准确率的最大因素,但是相比于真实的裂缝这些伪裂缝在特征上还是有区别的,如何采用卷积神经网络提取真实裂缝和伪裂缝的不同特征即为研究重点。同时桥梁裂缝一般有线状裂缝和网状裂缝,如何设计卷积神经网络结构使其能充分提取图像特征完成裂缝的识别是研究关键。
3.1 传统卷积神经网络结构
卷积神经网络主要由卷积层、激活函数、池化层、全连接层组成,卷积层主要是通过不同的卷积核对图像的特征进行提取。
激活函数即为神经元之间输入和输出之间映射关系的表达。池化层的即将相近的特征进行合并。全连接层的神经元与之前一层的每个神经元相连。卷积神经网络基本结构如图3所示。
图3 卷积神经网络结构图
3.2 改进卷积神经网络结构
由于桥梁的裂缝和伪裂缝具有不同层次的特征,传统的卷积神经网络的结构会限制提取的特征的来源和层次,为了改善这种缺陷,往往采用添加卷积层的方法来提高获取特征的层次,但若一味的添加卷积层会导致网络层数过高,最后全连接层得到的信息较少,导致识别性能下降。由于桥梁裂缝识别中干扰物的存在和伪裂缝的影响,且微裂缝与真实裂缝相似度非常高,根据采用不同结构的卷积神经网络对桥梁裂缝的识别测试,设计了双通道多尺寸卷积核对桥梁裂缝图像进行卷积处理,并最终将得到的信息在全连接层进行汇总,从而对桥梁裂缝进行识别。改进后的卷积神经网络结构如图4所示。
图4 改进的卷积神经网络结构
从图4中可以看出,本文模型由两个相对独立的子卷积神经网络构成,这样不会有过多的卷积层导致全连接层得到信息过少的问题,且可以充分提取输入图像的特征。最终将两个子网络的信息在全连接层汇总处理。本文采用输入图片统一大小为128*128的分辨率,包含4个卷积层(C1,C2,C3,C4,),4个池化层(P1,P2,P3,P4),池化层以均值池化的方法得到池化结果,1个全连接层,最后以SVM代替softmax分类器来进行识别分类。
C1层由16个7*7的卷积核与输入图像进行卷积,得到16个不同的特征图,特征图的大小为122*122,后由池化层P1对卷积层C1以2*2的单元进行池化操作,P1层由16个61*61的特征图构成。再以32个10*10的卷积核对P1进行卷积,得到卷积层C2,其由32个52*52大小的特征图组成,再以2*2的单元对C2进行池化操作,得到池化层P2,其由32个26*26大小的特征图组成。
C3层由16个13*13的卷积核与输入图像进行卷积,得到16个不同的特征图,特征图的大小为116*116,后由池化层P3对卷积层C3以2*2的单元进行池化操作,P3层由16个58*58的特征图构成。再以32个15*15的卷积核对P3进行卷积,得到卷积层C4其由32个44*44大小的特征图组成,再以2*2的单元对C2进行池化操作,得到池化层P2,其由32个22*22大小的特征图组成。
全连接层F的输入来自两个子卷积神经网络的最终池化层P3,P6,公式如下,F采用全连接的方法。
(6)
3.3 改进激活函数
常用的激活函数有sigmoid函数、Tanh函数、Relu函数等。但这些函数或多或少都有些缺陷,sigmoid函数和Tanh函数易出现梯度弥散的问题,而Relu函数是分段的线性非饱和函数,相比sigmoid函数和Tanh函数有了很大的进步,但是其在运行时会将一部分神经元的输出设为0,会造成神经网络稀疏特征。本文对桥梁裂缝图像进行识别,由于桥梁干扰物和伪裂缝的存在,且和真实裂缝非常相似,需要对图像特征的映射更加精确。
Softplus函数也是非饱和线性函数,其数学表达式如式(7)所示,与Relu函数相比稀疏性较差,收敛速度比Relu函数慢,但Relu函数过分的强制稀疏往往会导致模型错误率的增高,其数学表达式如式(8)所示。本文采取两个函数各自的优点,构造一个非饱和线性的激活函数用于神经网络的输入输出映射,以期提高识别率。
f(x)=loge(1+ex)
(7)
(8)
在进行输入输出的映射时,由于Relu函数将小于0的部分都强制输出为0,使小于0的神经元处于都处于非激活状态,导致网络学习受阻。本文引入Softplus函数,对小于0的部分使用Softplus函数来进行处理。当x=0时,Softplus函数的取值为loge2,为了保证组合函数的连贯性将Softplus函数减去loge2,使函数连贯。对于大于0的部分依旧采用Relu函数进行处理,以此方法改进Relu函数会造成神经网络过度稀疏、模型欠拟合问题,综合得到的改进激活函数如下式
(9)
以此操作保留了Relu函数收敛较快,不易丢失有用特征的优点,同时通过使用Softplus函数保留了小于0部分神经元的特征信息,提高了信息的获取量,避免模型欠拟合。
图5 改进的激活函数图像
3.4 使用支持向量机(SVM)替代Softmax分类器
卷积神经网络具有较好的特征提取能力,但其分类效果一般,卷积神经网络通常采用Softmax分类器。支持向量机最初来自于线性分类器,它建立在VC维度理论和结构风险最小化原则之上。支持向量机具有较好的泛化性能,它可以在学习能力与模型复杂度之间取得最佳平衡。支持向量机能较好解决机器学习算法经常遇到的小样本、过学习、局部极值、高维数问题。
Softmax分类器在对目标样本分类时,若目标样本的分类概率大于0.9时即认为分类正确,但此时损失函数仍然继续计算,仅在分类概率接近1时才会终止计算,这种情况下运行时间会更长;而SVM的侧重点在于被错误分类的目标样本,对分类正确的目标样本不再计算,因此使用SVM分类器的卷积神经网络可以提高计算效率,缩短训练时间,识别效果也更好。
4 基于改进的卷积神经网络桥梁裂缝识别实验
4.1 实验参数和样本选取
实验采用单核CPU:3.30GHz,内存4GB,GPU为NVIDIA GTX960,操作系统为64位win7系统,使用matlab2016a编写算法。采用1013张桥梁采集的裂缝和伪裂缝图片作为数据库。实验数据详情如表1所示。
表1 实验数据集
再对验证集分别进行旋转操作,旋转角度分别为旋转45°,90°,135°和180°,进行一共5组识别对比实验。先对其以熵阈值法进行简单地预处理,效果图如前文第2节图1所示。
参与实验的各卷积神经网络的结构如表2所示。
表2 实验的卷积神经网络结构和激活函数
4.2 实验结果与分析
通过上节所提方法对桥梁表面裂缝图像进行识别,3种卷积神经网络通过5组实验所得实验结果如图7所示,第一组实验本文方法均方误差与迭代次数关系图如图6所示,总迭代次数为1200次。
图6 均方误差变化图
图7 不同模型分类准确率
表3 不同模型平均分类准确率对比
表4 不同模型训练时间对比
从实验结果中可看出改进的卷积神经网络对桥梁真实裂缝的识别率有了明显的提高,无论是将图像做了多少度的旋转,本文方法始终保持较高的识别率,且识别率波动不大,说明本文算法对旋转、平移有较好的鲁棒性。综合来看5组试验平均96.26%的识别率证明该方法在识别桥梁裂缝方面的可行性。
对比本文方法和CNN1可以发现,本文通过设计双通道模型,使用Softplus函数改进Relu函数,并且使用SVM代替Softmax分类器构建新的CNN模型,其分类准确率、训练时间较传统的CNN模型均有显著改善,平均分类准确率提高了10.34%,训练时间缩短了15s,充分验证了改进的CNN模型对桥梁裂缝检测的适用性。对比本文方法和CNN2,在使用相同双通道结构,相同激活函数的前提条件下,使用SVM分类器替代Softmax分类器的CNN模型,训练时间缩短了10s。验证了本文改进分类器策略的有效性。
5 结论
1)本文以基于卷积神经网络设计了用于混凝土桥梁裂缝检测的方法,通过对桥梁裂缝图像进行简单地预处理,将处理后的图像输入改进的卷积神经网络进行训练学习,并最终完成对桥梁裂缝的识别检测。
2)桥梁裂缝图像存在大量的干扰物,且伪裂缝和真实裂缝高度相似,直接识别会造成特征提取困难且容易混淆。以熵阈值法对桥梁裂缝图像进行预处理。以该方法很好地完成了桥梁裂缝图像处理过程。
3)设计双通道多种卷积核方式提取的图像特征并在全连接层汇总;为充分提取图像特征,进一步提高识别精度,以Relu函数和Softplus函数取优,构建了改进的卷积神经网络激活函数,用于映射输入和输出之间的关系;为了提高计算效率,缩短模型的训练时间,以SVM分类器替代Softmax分类器进行识别分类。最终以1013幅桥梁裂缝图像对网络进行训练学习和识别测试,通过与其它2种卷积神经网络进行对比,本文所提卷积神经网络在桥梁裂缝的识别率上有了明显的提高,高达96.26%。证明该方法在桥梁裂缝识别中的优越性和可行性。