表观病害检查是混凝土结构安全检测中重要的一项工作,传统的检测方法主要为人工目测,检测人员以肉眼方式或借用如望远镜、钢尺等简单工具对表观病害进行观察记录[1-2].检测人员对表观病害的判别具有主观性.近年来,有研究人员将无人机无线采集图像技术应用于结构病害检测中,但无人机在进行病害图像采集后,采集的图像数据还须要通过人工逐一查看和判别,因此判别结果也存在着主观性[3-5].人们迫切需要一种智能化病害分类方法来完成判断病害的工作,它有助于检测人员做出客观判断和重复的检查决策,减轻工作量和检查成本.若能通过病害图片智能地判断出病害的类型,则对提高混凝土表观病害的检测效率以及准确度具有重要的意义.随着机器学习的出现,基于计算机视觉的检测技术被提出,但是在真正的检测实施过程中,传统的基于计算机视觉的方法很容易受到噪声和杂波的干扰.最近,深度学习已成功应用于图像识别,通过深度学习与图像处理技术相结合,可以从图像中识别出钢结构上螺栓附近的裂纹[6],还可以从图像中识别出螺栓松动[7].基于深层卷积神经网络(CNN)的裂缝检测方法被提出[8-11],准确度可以达到90%以上.深度学习还被用于民用基础设施和下水道的缺陷检测[12-14].然而,大多数研究都是针对裂纹的识别,除了裂纹之外,其他病害检测的研究还不够深入.病害分类工作大多集中在检测有无病害,且主要针对有无裂纹,并没有对混凝土的病害进行详细的分类.为此,本研究使用深度残差网络模型对混凝土的表观病害进行智能分类.深度残差网络模型具有参数规模小、训练速度快、精度高等优点,在自然图像分类领域取得了优异的效果.1 相关理论及技术路线1.1 相关理论深度残差网络(deep residual network,ResNet)是继GoogleNet之后又一个卷积神经网络模型的里程碑[15].残差网络最大的成就是解决了深层卷积神经网络模型的训练问题.2014年的GoogleNet网络模型只有22层,而2015年的深度残差网络则高达152层.卷积神经网络的深度对模型精度的提升非常重要,提升网络深度可以让模型的性能显著提升,但是从相关研究和实验上来看,一味地增加网络深度,网络模型的性能不但不增长反而下降.而且随着网络深度的增加,梯度消失和梯度爆炸出现的可能性也越来越大.这些问题使训练深层卷积神经网络模型非常困难[16-17].深度残差网络在构建深层网络过程中引入残差块,解决了深度神经网络由于存在梯度消失和梯度爆炸而难以训练的问题.图1为残差模块,图中X为输入,通过卷积层,得到残差映射,用F(X)表示.H(X)为F(X)的残差映射,ReLU (rectified linear unit)为人工神经网络中常用的激活函数.残差网络通过恒等映射的方法构建深层网络,使堆叠后的深层网络训练误差不高于浅层网络.用H(X)=X表示一组堆叠网络层的最佳解映射,由于当网络较深时,难以直接拟合H(X),而残差网络通过快捷连接将问题转换为拟合F(X),因此H(X)=F(X)+X.当F(X)=X时,就变成了一个恒等映射H(X)=X,故只须最小化残差映射F(X)=H(X)-X,以逼近H(X)来解决网络层堆叠的性能退化问题[18].10.13245/j.hust.210416.F001图1残差模块1.2 混凝土表观病害智能分类技术路线常见混凝土表观病害有麻面、蜂窝、空洞、剥落、磨损、风化、露筋和裂缝.其中麻面、蜂窝、空洞、剥落和磨损由于其外观现象极为相似,可以归为混凝土一般性病害.本研究将混凝土表观病害分为四大类,即混凝土一般性病害、风化、露筋、裂缝.本研究建立深度残差网络模型,将包含上述混凝土四种表观病害的图片数据进行智能分类,技术路线如图2所示.10.13245/j.hust.210416.F002图2技术路线图首先收集混凝土表观病害的图片,利用图像处理技术对图像集进行扩充;接着建立深度网络残差模型,得到混凝土四种表观病害的分类器;再通过迁移学习对残差模型进行优化,得到最优分类结果.2 数据准备及预处理2.1 数据准备由于混凝土表观病害图片没有公开数据集,因此本研究在日常混凝土检测工作中及互联网上收集了混凝土一般性病害、风化、露筋、裂缝四大类病害的图像,再加上一组背景图像用作对比,共收集了1 150张图片用于本次的研究工作.将全部图像根据上述5大类进行人工标记.2.2 数据扩充及预处理深度残差网络模型在自然图像分类领域已经取得了优异的成绩,但在使用残差网络对混凝土病害进行智能分类的训练过程中,同样需要大量的训练样本来使得模型获取最优参数.由于本研究所收集的样本相比较其他领域数十万的样本数量要少得多(如人脸识别等),因此须使用相关的图像处理技术(如图像翻转、旋转、图像颜色的对比度和饱和度变换)和随机噪声等对原始数据集进行扩增来提高图像的泛化能力.由于其中一些技术会对图像进行复杂的处理,因此会造成图像的相关特征改变.为提高建模的效率,本研究采用图像翻转及旋转技术对原始数据进行快速扩充,对图像进行翻转及旋转但不会改变图像中混凝土病害的病害特征[19].通对原始混凝土病害图像进行水平、垂直翻转,顺时针旋转30°,60°等操作将200张背景图像扩充到1 000张,将150张一般性病害图像扩充到750张,将300张风化图像扩充到1 500张,将200张破损露筋图像扩充到1 000张,将300张裂缝图像扩充到1 500张,总计4 750张,并进行了标记.将所有图片数据按60%,20%,20%的比例依次分为训练集、验证集和测试集.训练集即用于训练所建立的深度残差网络模型;验证集即用于选取最优模型;测试集即用于测试最优模型的准确度.3 基于深度残差网络的混凝土病害智能分类3.1 建立深度残差网络模型本研究所使用的深度学习框架为PyTorch(基于编程语言Python的科学计算包).本研究采用了经典的18层深度残差网络(ResNet-18).ResNet-18结构如图3所示,模型包含了卷积层共17个(每一个长方体块表示一个卷积层),全连接层1个,第一个池化层采用最大池化,最后一个池化层采用平均池化.第一层为输入层,ResNet-18对输入图像的要求为224×224像素,图像经过卷积、池化等运算被编码为一个向量,这个向量被输入全连接层,得到所需要的分类结果.10.13245/j.hust.210416.F003图3ResNet-18结构图3.2 分类过程及结果通过反复的训练和参数调整,最终模型的参数如下:学习速率为0.001;批大小为64;迭代次数为100;优化器为Adam,是一种计算每个参数的自适应学习率的方法,算法容易实现,对计算机内存要求低且计算效率高;激活函数为Relu.图4显示了四类混凝土病害图像的演化过程.10.13245/j.hust.210416.F004图4四类混凝土病害图像的演化过程在本次训练的测试集中,共有230张图像进行了人工标注,其中背景42张、一般性病害29张、风化53张、破损露筋42张、裂缝64张.经过模型的计算,42张背景图像的预测结果为:16张为背景,2张为风化,4张为破损露筋,20张为裂缝;29张一般性病害图像的预测结果为:1张为背景,4张为一般性病害,10张为风化,6张为破损露筋,8张为裂缝;53张风化图像的预测结果为:2张为背景,37张为风化,1张为破损露筋,13张为裂缝;42张破损露筋图像的预测结果为:1张为背景,8张为一般性病害,7张为风化,18张为破损露筋,8张为裂缝;64张裂缝图像的预测结果为:6张为背景,1张为一般性病害,9张为风化,3张为破损露筋,45张为裂缝.本次训练的测试集的分类准确度为52.2%,由每个类型病害分类正确的图像数量的和除以总的图像数量,即(16+4+37+18+45)/230=52.2%.根据本研究数据分布,裂缝的图像数量最多(64张),随机预测率最高为64/230=27.8%.52.2%的准确度高于原始数据中随机预测率27.8%,表明该模型对本研究所须完成的混凝土病害分类任务的可行性.但相比较残差网络在其他分类任务上的优秀表现,52.2%的准确度有些偏低;且一般性病害的图片预测准确度只有13.8%,较多数量的图片被预测为其他三类病害;无病害图片的预测准确度只有38.1%,较多数量的图片被预测为裂缝;风化、破损露筋、裂缝的预测分别为69.8%,42.9%,70.3%.这说明本研究深度残差网络模型对一般性病害的敏感度不高,导致这一结果主要原因是两个:混凝土一般性病害中的麻面、蜂窝、空洞、剥落、磨损其外观不易被分类;本研究所提供的数据样本不足.4 基于迁移学习的模型改进及实验本研究所建立的深度残差网络模型可以对混凝土病害图像进行分类,但受限于本研究样本数量不足,模型的准确度不高.现今的土木检测大数据中没有公开数据集,所以获得大量标记好了数据样本难度较大.迁移学习是深度学习领域中解决样本数量不足的重要技术,可以用来解决上述难题.4.1 建立基于迁移学习的深度残差网络模型在实际场景中,标注数据的成本十分高,无法为一个目标任务准备足够多的相同分布的训练数据.因此,如果有一个相关任务已经有了大量的训练数据,虽然这些训练数据的分布和目标任务不同,但是由于该任务的训练数据规模比较大,从中学习到的某些可以泛化的知识对目标任务有一定的帮助.将学习到的可泛化知识迁移到目标任务上,这就是迁移学习[20].简单来说,迁移学习是属于机器学习的一种研究领域,是把一个领域(即源领域)的知识,迁移到另外一个领域(即目标领域),使得目标领域能够取得更好的学习效果.具体而言,假设一个深度学习任务R的样本空间为xy,其中:x为输入空间;y为输出空间.其样本的概率密度函数为P(x,y).一个样本空间及其分布可以称为一个域(D),具体表达为:D=(x,y,P(x,y)).若它们的输入空间、输出空间或概率分布中有一个不同,则这两个域就被认为是不同的.迁移学习是指两个不同域的知识的迁移,利用源域(source domain)中学到的知识来帮助目标域(target domain)上的学习任务.在实际工程中源域的训练样本数量一般远大于目标域.下载Pytorch框架在其他领域训练好的ResNet-18模型,然后对该模型网络结构进行调整,修改最后的分类层,之后锁定其他层参数,到此基于迁移学习的残差网络模型已构建完成.输入本研究的样本数据进行训练,具体训练流程与上节相同.4.2 实验与结果深度学习中模型内的参数是自动更新的,无须手动调整.当模型建立时提前设置的超参数在很大程度上决定了网络模型的性能(训练效率,网络收敛和预测精度等).常见的超参数有神经元之间的连接关系、层数、每层的神经元数量、激活函数的类型、学习率、训练批次、正则化系数及迭代次数等.本研究选取在优化过程中最重要的训练批次、学习率和迭代次数这三个类超参数进行参数优化.4.2.1 不同训练批次的实验结果训练批次为模型进行一次训练所使用的样本数量,过大的批次和过小的批次都有不可避免的弊端.批次过大首先会对机器内存须要急剧提升,且过大的训练批次会导致跑完一次所有的数据集所需要的迭代次数减少,从而减少了参数更新率,导致若想达到相同的精度,计算时间会大大提高.批次过小会使得模型难以收敛,譬如在极端情况下,一次只输入一个样本数据即批次大小为1的情况下,参数每次修正方向以各自样本的梯度方向修正,很难找到最优解,因此须选择一个合适的批次来进行模型训练.为得到最优训练批次,本研究选取批次尺寸分别为16,32,64进行实验.实验结果如图5所示,图中:n为迭代次数;β为损失函数;Α为准确率;N为训练批次.图5(a)为选择不同批次进行训练的损失函数随迭代次数的变化.当批次为16时,损失函数振荡,参数修正极度无规律;当批次为64时,损失函数较平稳的下降,但模型只经过了100多次的训练,参数更新得不够充分;当批次尺寸为32时,损失函数同样以较平稳方式下降,且样本迭代次数同批次尺寸为64时相比多了近一倍,参数更新得较为充分,模型在过大或过小的批次中得到了平衡.10.13245/j.hust.210416.F005图5不同批次的训练结果如图5(b)所示,当批次为16时,模型预测的准确度为72.6%,由每个类型病害分类正确的图像数量的和除以总的图像数量所得;当批次为32时,模型准确度最高,最高为89.6%;当批次为64时,模型准确度为79.1%.4.2.2 不同学习率的实验结果学习率表示每次更新参数的幅度大小.过高的学习率会导致模型不收敛,而过小的学习率则导致模型收敛特别慢或者无法学习.本研究选取初始学习率为0.001,采取逐步下降的方式来寻找最优学习率.实验结果如图6所示.10.13245/j.hust.210416.F006图6不同学习率的训练结果图6(a)为相同迭代次数及训练批次的情况下不同学习率的训练过程,图中Ψ为学习率.由于初始学习率比较低,因此本次实验探究的三种学习率的模型都收敛了;但从图6(b)中不同学习率下模型的准确度可以看到:当模型在学习率为0.001时,具有89.1%左右的准确度;随着学习率的下降,当学习率为5×10-4时,模型的准确度为84.3%,与学习率为0.001时相比有了5.4%的下降,随着学习率的继续下降,当模型的学习率为2×10-4时,模型的准确度达到了91.3%,为本次试验的最优准确度.91.3%的准确度已经非常高了,此时再继续降低学习率将会极大地增加运算资源.4.2.3 不同迭代次数的实验结果迭代次数为在训练中整个数据集的一次完整遍历(训练集中所有样本全部输入模型进行了训练),因此1个迭代次数表示(N批次)1次训练迭代,其中M是样本总数.迭代次数是决定模型在训练中迭代次数的一个重要超参数.实验结果如图7所示,图7(a)为在相同学习率及训练批次下不同迭代次数的训练过程.随着迭代次数的增加,模型中的参数更新次数也会不断增加.但由图7(b)可知:迭代次数增加,准确度反而会下降.其主要原因为:随着训练次数的不断增加,相关参数的不断更新,模型在训练集上表现会越来越好,但该情况会导致过拟合现象越发严重,故而导致迭代次数增加,但模型在测试集上的准确度反而下降.10.13245/j.hust.210416.F007图7不同迭代次数的实验结果4.2.4 最优参数组合下的分类结果在进行参数优化后,得到了最优参数(批次为32,学习率为2×10-4,E=10),此参数组合下模型的预测准确度为91.3%.最优参数下的混凝土病害智能分类结果如下:a. 42张背景图像有39张预测正确,3张预测为一般性病害;b. 29张一般性病害图像有25张预测正确,1张预测为背景,3张预测为破损露筋;c. 53张风化图像有44张预测正确,2张预测为一般性病害,2张预测为破损露筋,5张预测为裂缝;d. 42张破损露筋图像有41张预测正确,1张预测为风化;e. 64张裂缝图像有62张预测正确,2张预测为风化.本研究所训练的模型对正常的背景图片、混凝土破损露筋和裂缝预测的准确度较高.对于背景图像而言,在本次试验的背景图像这一样本中,为提高模型的泛化能力,存在各式各样的图像样本,甚至有很大一部分图像与混凝土毫无关系,从而导致了错误分类的出现.对于混凝土一般性病害的智能识别,模型的准确度为86.7%,3.3%被错误分类为背景,10%被错误分类为破损露筋,主要原因是混凝土破损露筋病害与混凝土一般性病害的表现形式较为相似.对于混凝土风化的智能识别,模型的准确度为83.4%,16.6%病害样本被错误分类:3.3%被错误分类为混凝土一般性病害,3.3%被错误分类为混凝土破损露筋,10%被错误分类为混凝土裂缝.其原因是被分类的病害图像同时出现了风化和裂缝这两种病害.其余6.6%被错误分类的原因是图像质量差或轻微风化的特征不够明显.对于混凝土破损露筋的智能识别,模型的准确度为97.6%,2.4%被错误分类为混凝土风化病害,其原因是图像质量差或混凝土破损露筋的特征不够明显.对于混凝土裂缝的智能识别,模型的准确度为96.7%,3.3%被错误分类为混凝土风化病害,这是因为在混凝土中存在裂缝的情况下,混凝土中的化学成分更容易从裂缝中析出来,导致这两类病害同时出现,而模型的分类只能将其归为一类,从而出现错误,所以在实际使用过程中,对该类型病害还须要人工判别记录.上述分析说明本次实验所得出的分类器对本研究所列的四大类病害及背景的智能分类的准确度较高.5 结语本研究建立的基于深度学习的混凝土表观病害分类器可以针对混凝土单个病害图像进行智能分类,通过原始数据集的扩充,模型的预训练,再经过迁移学习的优化,准确率达到了91.3%,对混凝土破损露筋病害的识别准确度达到了97.6%,可以满足实际工程中混凝土病害智能检测的需要.在本研究工作中还基于Python语言完成了混凝土病害智能识别软件的开发,该软件可对用户输入的多张图片进行批量识别,自动生成文档,且可以运用于移动终端.

使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,

确定继续浏览么?

复制成功,请在其他浏览器进行阅读