复杂背景下基于改进YOLO v3算法的桥梁表观病害识别
2022-01-20邹俊志杨建喜李昊帅聪黄蝶蒋仕新
邹俊志,杨建喜,李昊,帅聪,黄蝶,蒋仕新
(1.重庆交通大学 土木工程学院,重庆 400074;2.重庆交通大学 信息科学与工程学院,重庆 400074)
截止2019年底,我国公路桥梁数量已达87.83万座、6 063.46万m。伴随大量桥梁建成服役,桥梁管养任务日趋艰巨。受混凝土材料老化、车辆超载严重、运营环境恶劣等多重因素耦合作用,在役桥梁会不可避免地产生开裂、保护层剥落、渗水泛碱、露筋锈蚀等病害[1],对桥梁结构的安全性和耐久性是极大考验。传统的桥梁检测方法以人工巡检为主,存在主观性强、工作量大、效率低等缺点,逐渐不能满足人们的需求。随着传感器采集、信息存储与分析技术的发展,基于数字图像处理的桥梁病害检测技术引起了学界的广泛关注。刘建威等[2]提出一种基于双目视觉的桥面裂缝检测方法,对裂缝图像进行高斯滤波、直方图均衡化、边缘检测、二值化操作,最后经双目视觉系统计算出裂缝尺寸。陈飞飞等[3]提出了基于图像特征值的混凝土桥梁表面病害分类方法,通过提取病害图像的灰度直方图特征、颜色矩特征及纹理特征,运用支持向量机(Support Vector Machine,SVM)实现了病害图像的分类。韩琨等[4]基于图像连通域特征,采用SVM进行特征分类检测裂缝区域。但这类方法主要依靠人工经验进行样本特征抽取,且构建的仍是没有层次的单层特征,在桥梁自动化巡检中应用场景有限。伴随着无人机[5]、爬壁机器人[6]等智能检测设备在桥梁结构外观评估方向的迅速发展,为进一步分析智能检测设备采集的大量病害图像,以卷积神经网络[7](Convolutional Neural Network,CNN)为代表的基于深度学习的方法,正逐渐成为学术界与工业界的研究热点。相较于传统的机器学习算法,CNN能够自动提取病害结构特征,避免了传统算法所需的人工经验。且CNN具有很强的滤去背景噪声能力[8],能够克服桥梁结构表面存在的污渍、遮挡、光照不均等多种产生噪声干扰,足以识别复杂背景下的多种桥梁结构病害。沙爱民等[8]设计了3种CNN神经网络分别应用于路表病害识别、裂缝特征提取、坑槽特征提取,证明了CNN精度足以满足裂缝、坑槽等病害的复杂形态特性。韩晓健等[9]将CNN应用于桥梁结构表面病害检测,通过迁移学习训练并微调了AlexNet模型,构建了裂缝、锈蚀、缺损3类病害识别模型。然而这类基于CNN的图像分类方法很难去定义滑动窗口的大小,也难以处理具有不同大小的病害图像。为进一步提高检测和定位多种桥梁病害的效率,基于CNN的各种目标检测算法正获得持续关注。CHA等[10]使用Faster R-CNN算法,对混凝土裂缝和不同程度的螺栓、钢板腐蚀等5种损伤类型进行识别和定位。XU等[11]提出了一种改进的Faster R-CNN方法,用于检测钢筋混凝土柱地震后不同损伤类型。相比以Faster R-CNN[12]为代表的两阶段目标检测算法,以SSD[13]和YOLO[14]为代表的单阶段目标检测算法,避免了生成候选区域这一步骤,实现了更快的检测速度,更适用于桥梁自动化巡检场景中。ZHANG等[15]基于YOLO v3算法实现了桥梁表面裂缝、露筋、剥落等多种缺陷的实时检测。然而现有的基于深度学习的目标检测算法中,尚未根据桥梁表面病害特点进行改进,针对复杂背景下桥梁病害的目标检测算法仍亟需构建。在现有研究基础上,本文对YOLO v3算法进行改进,以解决桥梁病害存在的密集分布、尺度变化较大等问题,提升检测桥梁病害的精度。其次,本文就复杂背景下的桥梁表观病害检测任务制作了相应的数据集,将桥梁检测图像划分为露筋、剥落和水侵蚀3种病害类别,并对数据进行了人工标注用于训练模型网络。最后,通过测试集验证了本文所提出模型的可行性和准确性。
1 YOLO v3算法
YOLO v3算 法是由REDMON等[14]提 出的一种基于回归的单阶段目标检测算法,由特征提取主干网络和检测层2个部分组成。受ResNet[12]残差网络启发,YOLO v3在主干网络中加入了残差单元,组成了特征提取主干网络darknet53,使得网络模型准确率增加的同时有效缓解了深度神经网络中的梯度消失问题。YOLO v3在最后3次下采样中以1/32,1/16和1/8的下采样率分别输出13×13,26×26,52×52这3种不同尺度的特征图。同时借鉴了特征金字塔[16](FPN,feature pyramid networks)的多尺度预测方式,将提供图像深层语义信息的小尺寸特征图与提供较大感受野的大尺寸特征图相融合,增强了对不同大小病害的检测效果,使得所有尺度下的病害特征细节更为丰富,其预测方式如图1所示。
图1 多尺度预测方式Fig.1 Multi-scale forecasting
在检测层中,YOLO v3将输入的病害图像按照特征图尺寸大小划分成S×S个网格,每个单元格负责检测落入其中心的病害,同时输出多个预测框和每个预测框的置信度。每个边界框(bounding box)包含参数(tc,tx,ty,tw,th),其中c为置信度变量,采用sigmod函数,(tx,ty)为候选框的中心坐标,(tw,th)为候选框的中心点。在位置预测上,以每张特征图上某单元左上角坐标为(cx,cy)为例,每个锚框(anchor)预测尺寸为(pw,ph),所生成的预测坐标为(bx,by,bw,bh),其中(bx,by)为预测边界框的中心坐标,(bw,bh)为预测框的宽度和高度,具体如图2所示。输出多个预测框后,将抛弃置信度低的预测框并通过非极大值抑制最终定位病害位置。
图2 带有锚框和预测位置的边界框Fig.2 Bounding box with anchor and predicted position
YOLO v3算法虽然检测速度快且精度较高,但直接应用在复杂背景下的桥梁表观病害检测中仍存在以下几点不足。其一,桥梁表面病害存在密集分布且病害尺度变化较大等问题,其特征提取能力仍有待进一步加强;其二,YOLO v3采用了多尺度预测方式,虽然充分利用了感受野及语义特征,但其提取的特征鲁棒性较差,无法应用于复杂背景下的桥梁病害检测;其三,交并比IoU虽然可以反映预测框与病害真实标注框间的检测效果,但当2框并未相交的时候,IoU无法提供任何调整梯度,对于病害位置的预测精度也会有所下降。故而针对上述问题,本文结合桥梁病害特性对YOLO v3算法进行改进。
2 改进的YOLO v3算法
算法的具体改进主要可分为4个部分,分别为嵌入SENet的特征提取网络、空间金字塔池化模块、采用更好地定位损失函数以及聚类自己数据集的anchor,从而提升算法整体的检测精度。
千真万确,对方说,下午我见大妈围着一棵合欢树转圈,开始没在意,后来就见她蹲下来,把树周围的草全拔了,然后挖上几个洞,点上几粒什么种籽。当时我可不能制止啊,她的年纪比我妈还大……等大妈离开,我上前挖开看,你猜怎么着?她在那棵树的周围种上了豆角!说着松开手,呼伦看到他的手心里,躺着几粒饱满肿胀的豆粒。
基于以上的论述,信息化建设是铁路企业发展趋势的必然要求,以成熟的技术和硬件为背景,借鉴中国铁路沈阳局集团有限公司的成功实施经验,利用新型在线审批模式的平台在中国铁路沈阳局集团有限公司企业的推广与应用,是符合企业发展要求,顺应时代发展的必经之路。站在全集团公司角度出发,如何将《在线审批平台》进行科学部署与实施,将是工作模式的转换和工作方式改革的重要举措。平台的建立与实施,不仅可以完成对内部工作机制的改革、创新、升级,确保达到提质增效的管理目标,也为企业的快速迅猛发展提供必要的手段和技术支撑,同时对企业的精细化、持续性、扩张性、稳定性发展具有重大的意义和影响。
2.1 嵌入SENet的特征提取网络
为解决桥梁病害检测中存在的病害重叠、密集分布等问题,本文分别在YOLO v3的3个检测层前嵌入SE注意力机制结构,使网络生成通道权重并对通道进行重标定,输出表达能力更强的特征图。SENet是由LIN等[16]提出的一种注意力机制结构,其网络结构如图3所示[17]。SE模块主要包括压缩(squeeze)和激励(excitation)2种操作。首先输入特征图X∈RH′×W′×C′,经过Ftr变换后得到特征图U∈RH×W×C,其中U=[u1,u2,…,uc]。随后对特征图U进行全局平均池化计算,得到大小为1×1×C(C为通道数)的特征图Zc。
其中:N表示病害类别的数量。FPS是指使用GPU时每秒能够检测图像数量。本文主要采用mAP@0.5指标和检测速度FPS来评价模型。
图3 SE网络结构Fig.3 Squeeze and excitation networks structure
为进一步提取通道间相关性,将生成的特征图分别经过2个全连接层,对特征图先降维后升维,压缩率r设置为16,再使用sigmod激活函数,得到各通道间对应的权重S=[s1,s2,…,sc]。
最后将各个通道与对应权重相乘进行权值更新,得到更新后的输出
SE注意力机制使网络在生成特征图的过程中更加“关注”不同类型的桥梁病害特征,同时通过网络自注意力的形式,增强了病害特征的语义信息,有效抑制了混凝土桥面复杂的背景信息,解决了桥梁表观病害密集分布时识别精度较差的问题。
2.2 空间金字塔池化模块
为解决桥梁病害在不同的桥检人员拍摄图像中尺度变化较大,难以较好地提取病害特征问题。本文引入空间金字塔池化(Spatial Pyramid Pooling,SPP)模块进一步丰富特征图信息。SPP是由HE等[17]提出的一种解决神经网络不同图像尺寸输入问题的方法。从主干网络darknet53输出的特征图分别经过卷积核大小为5×5,9×9,13×13的3个最大池化层,进一步将病害的局部特征信息与全局特征信息融合获得更丰富的结构特征表示,尤其针对不同大小病害的检测任务,提升病害总体识别精度。SPP模块的结构图如图4所示。
图4 SPP网络结构图Fig.4 Spatial pyramid pooling structure
2.3 定位损失函数
IoU作为目标检测中最常用性能指标之一,表示真实标注病害框与预测病害框的交并比,其计算如式(5)所示:
其中:Bpred表示桥梁病害预测框;Btrue表示桥梁病害真实标注框,IoU的大小反映了病害的检测效果。但当病害预测框与真实框并未相交时,IoU为0,无法反映此时两者间的距离大小,导致无法传播调整梯度。为解决此问题,本文引入了最新提出的CIoU[18]定位函数,相较于IoU,CIoU考虑了病害预测框与真实框间的中心点距离,重叠比以及长宽比,使得在梯度下降时,边界框回归更加稳定。CIoU的计算如式(6)所示:
但笔者认为:迄今为止,已发现的位于我国河南安阳(殷墟)小屯村的甲骨文收藏遗址,应是世界上已知最早的图书馆遗址。它的存在比亚述巴尼拔图书馆要早800多年。
平均精度AP和平均精度均值mAP如式(10)~(11)定义:
本文选择目标检测中常用的评价指标来进行分析,采用的统计指标为精确率(precision)、查全率(recall)、每类病害的精度均值AP(Average Precision)、病害的平均精度均值mAP(mean AveragePrecision,mAP)及检测速度FPS进行评价。检测结果可分为4种:真正例TP,真反例TN,假正例FP,假反例FN。精确率及查全率如式(8)~(9)定义:
2.4 通过k-means算法聚类锚框
从图7和图8中可以看出,改进后的YOLO v3算法具有更高的病害识别精度,既能够识别出目标尺寸相对较小的桥梁露筋病害,也具有更高的混凝土剥落、水侵蚀病害识别精度,同时在弱光条件下仍具有更好的病害识别精度,能有效改善因背景复杂、密集分布、光照条件和病害尺寸较小等因素造成的病害错检、漏检情况。为了更好地权衡YOLO v3算法与改进的YOLO v3算法的性能,本文引入了Precison-Recall(P-R)曲线来评价模型的性能,P-R曲线的横坐标为查全率,纵坐标为精确率,图9展示的是2种算法的总体P-R曲线对比图。
融合了上述方法之后组成的改进YOLO v3算法其结构图如图5所示,其中SE注意力层分别嵌入3个检测层中,其具体位置位于darknet53网络第86,99,112层,SPP模块具体位于网络第78~83层。
图5 改进的YOLO v3结构Fig.5 Improved YOLO v3 architecture
3 桥梁病害数据集与超参数设置
3.1 桥梁病害图像数据集
实验采用开源的Pytorch1.6.0深度学习框架,CPU配置为Intel®Core™i9-9900KF,显卡为Ge-Force RTX 2080Ti,内存大小为64GB,系统为ubuntu18.04 LTS,Python3.7.7,CUDA 10.2,cu DNN 7.6.5,OpenCV 4.4.0环境。
图6 桥梁表观病害标注示例Fig.6 Bridge apparent damage ground truth
3.2 实验环境介绍
针对桥梁检测报告中最为常见的混凝土剥落(spall)、露筋(rebar)和渗水(corrosion)3种病害,筛选出总计1 363张桥梁检测照片,共标注了2 603个目标病害真实值。这些桥梁病害图像由不同的桥梁巡检人员拍摄,筛选图片的原则是病害区域清晰且图像分辨率较高。采用开源的labelimg工具对每张图像病害区域进行标注,部分标注真实值(ground-truth)示例如图6所示。
3.3 实验参数设置
网络训练采用带动量的随机梯度下降算法,动量因子为0. 9;初始学习率设置为0.01,最终学习率设置为0.000 5,学习率衰减策略为余弦退火策略[19],则学习率ηt可表示为如式(7)所示,其中t为batch大小,T为整个epoch轮数。
batch size大小设置为16,训练轮数为300轮。模型输入图像尺寸为416×416,将其中80%的图像作为训练集,20%的图像作为测试集。在训练过程中,对训练集进行数据增强,分别采用随机裁剪、平移、水平翻转、垂直翻转等方式,提升模型的泛化能力,增强后的训练集共计5 455张。为进一步增强小目标识别效果,本文采用了mosaic[20]数据增强方式。将4张图片进行随机裁剪,再拼接到一起,极大丰富了待检测物体的背景,提升了小目标识别的效果。
由于林芝市特殊气候的影响,每年降雨量特别大,导致青稞倒伏以及发生锈病等农作物病虫害。对此,要采取切实可行的方法加以应对,如选育抗倒伏品种、适合林芝市的青稞优良品种,采用科学技术进行统防统治,做好病虫害的预测预报及防治指导工作,将灾害造成的损失降至最低。
4 实验结果分析
4.1 性能评价指标
巡回法院从《1930年关税法》第303节的内容开始着手,试图找出相关法规对本案的适用性。“第303节”赋予了当局采取反补贴措施的权力,其规定如下:
式中:b和bgt分别代表病害预测框和真实框的中心点;ρ2(b,bgt)代表病害预测框与中心框间的欧式距离;c表示能够同时包含病害预测框与真实框的最小区域的对角线距离;α为权衡参数;β则用来衡量长宽比的一致性。
1) 假定房间外墙为定温壁面,其温度取实测数值的平均数.在实际测量期间,为保证测量数值的准确性,测量墙体温度时,均匀布置测点(图2),测量时间间隔为5 min.考虑到正午墙体壁面温度较高,利于验证侧送风方式下办公室内热环境的舒适合理性,故以12:00—13:00为测量时间段.选取天气炎热,温度相差不大的5 d进行测量,用热电偶温度传感器共测得300组数据,取其平均值,求得走廊和南墙温度为28 ℃,西墙温度为31 ℃.
圆通不仅仅人力资源流失严重,复合型人才也较为缺失。快递行业属于劳动密集型行业,部分营业网点为了降低劳动成本,聘用专业素质较低的人员,这种人员往往服务水平不高,处理问题和紧急事件的能力有限,而圆通也在人才培育的上也没有制定完善的方案,这些种种原因导致圆通的竞争力下降。
4.2 实验结果分析
4.2.1 本文算法与YOLO v3算法实验结果对比
YOLO v3与改进后的YOLO v3算法性能对比如表1所示,其中混凝土剥落和露筋病害取得了较高的检测精度,而渗水病害检测精度相对较低。这是因为剥落和露筋与背景差异性相对较大,提取的特征鲁棒性较好,而水侵蚀病害在梁底分布不均匀且与背景差异性相对较小,故而整体检测的分类精度相对较低。同时本文所提出的改进YOLO v3算法在桥梁表观病害检测中取得了更佳的性能,在mAP值上提升了5.5%。
表1 YOLO v3与改进的YOLO v3性能对比Table 1 Comparison of YOLO v3 and improved YOLO v3
接下来,本文将具体展示复杂背景下混凝土剥落、水侵蚀和露筋3种病害的实际检测效果,YOLO v3与改进YOLO v3的检测效果如图7~8所示。
图7 YOLO v3算法识别病害结果Fig.7 Detect disease results by using YOLO v3 algorithm
YOLO v3通过使用anchor boxs对边界框进行定位预测。然而在自建的桥梁数据集上,病害间尺度变化较大,且长宽比存在显著不同,故而需要聚类自己的anchor boxes,经K-means聚类后总共生成了9组先验框,分别为(11×34),(33×15),(16×72),(41×52),(88×25),(25×163),(67×175),(120×70),(190×161)。
图8 改进的YOLO v3算法识别病害结果Fig.8 Detect disease results by using improved YOLO v3 algorithm
图9 2种算法的P-R曲线对比Fig.9 Comparison of P-R curves between two algorithms
从图9可以看出,改进后的YOLO v3算法的P-R曲线面积完全大于YOLO v3的曲线面积,其精确率和查全率均优于YOLO v3算法,具备更强的特征提取能力,更加适用于复杂背景下的桥梁病害检测场景中。
4.2.2 消融实验结果分析
为进一步分析所加入的每种网络结构分支对于模型整体的影响,将本文所提出的改进YOLO v3算法划分成5组不同的网络模型进行消融实验。实验总共可以分为5组,其中第1组代表YOLO v3算法,第2组对训练集数据进行了mosaic数据增强,第3组在第2组基础上采用了CIoU定位损失函数,第4组加入了SPP空间金字塔池化模块,最后一组在第4组基础上嵌入了SE注意力机制,即第5组为本文所提出的改进的YOLO v3算法,具体实验结果如表2所示。
从表2消融实验的结果可知,第1组原有版本的YOLO v3取得了74.3%的mAP值,检测速度FPS为 86;第2组采用了mosaic数据增强,丰富了检测图像背景,提高了模型的泛化能力,其mAP值整体提升了1.2%;对于第3组模型,由于采用了CIoU定位损失函数,更好地描述了预测框与真实病害标注框的距离,进一步加速了模型的收敛速度,故提升了检测精度和检测速度;而第4组实验嵌入了空间金字塔池化模块,进一步解决了病害在不同检测图像中尺度变化较大的问题,尤其是针对水侵蚀病害,其AP值提升了3.3%,同时检测速度也随着网络模块的引入略有下降;最后一组即本文所提的改进YOLO v3算法,通过嵌入了SENet注意力机制,进一步增强了病害特征的语义信息,达到了79.8%的mAP值,同时也增加了模型参数量,故最终检测速度为84 fps。
表2 消融实验结果分析Table 2 Comparison of experimental results of ablation
综上所述,所提出的每种改进策略均具有一定效果,在剥落、水侵蚀和露筋3种不同的桥梁结构病害上,与原有的YOLO v3算法相比,其AP值分别提升了6.5%,5.0%,5.0%,mAP值提升了5.5%,整体提升效果显著。而在检测速度上,随着SPPNet和SENet等模块的加入也带来了更多的模型参数,检测速度FPS稍有下降,但仍保持在84FPS,能够做到实时且更加精准地检测桥梁病害。
4.2.3 本文算法与其他目标检测算法结果对比
霜降前,将成熟的鲜辣椒(青红椒均可)采摘下来,选择未受霜冻、无虫、无病、无伤害的好青辣椒(不能太嫩),晾干表面水分,根据数量确定贮藏工具(筐,篓,铁桶均可),装具底面先铺一层70毫米厚的干草木灰(去粗的)然后在灰上摆一层辣椒,辣椒之间要有空隙,其四周用灰隔开,辣椒上边覆灰厚70毫米,依次类推,最后上面再覆盖70毫米厚的干草木灰,置于室内阴凉处贮存,勿翻动,吃时用一层扒一层,可贮至立春前后。
为了更全面地评测本文所提出的改进YOLO v3算法,本文使用Faster R-CNN检测算法和SSD检测算法进行对比实验,实验结果具体如表3所示。从表3可以看出,两阶段的Faster R-CNN方法取得了70.9%的mAP值,但其检测速度受限于需要产生目标候选区域而只达到了15FPS。而单阶段的SSD和YOLO算法由于省去了生成候选区域这一中间步骤,通过直接预测对象而获得了更快的检测速度,其中YOLO v3算法在精度及速度上表现得更好。而本文所提出的改进YOLO v3算法在平均检测精度上有较大提升,其mAP值整体提升了5.5%,更加适合应用于复杂场景下的桥梁表观病害检测,同时其检测速度fps相较于原有YOLO v3只减少了2 fps,仍能保持高速且更加精准地识别桥梁病害。
表3 改进的YOLO v3与其他目标检测算法对比Table 3 Comparison of improved YOLO v3 with other target detection algorithms
5 结论
1)提出了基于改进YOLO v3的桥梁表观病害识别方法,通过引入SE注意力机制和SPP模块来生成更丰富信息的特征图,有效地抑制了复杂场景下混凝土桥梁表面的背景信息,同时选用更好的定位损失函数和锚框来训练网络,有效改善了因背景复杂、密集分布、光照条件、病害尺寸较小等因素造成的桥梁病害漏检情况。
闸机端和手机端都无需联网,闸机通过蓝牙回写技术,把进出站信息写入二维码。双脱机回写方案采用脱机安全认证技术,车站网络没有要求,整个进出站时间控制在半秒以内。支持地铁复合消费,解决“一码多进”、“一码多出”的难点,避免产生单边交易,是一种等同于刷卡的过闸方式。目前该技术已在上海地铁全网实现应用,长沙、武汉也采用这种方式。
2)改进的YOLO v3算法的mAP值达到了79.8%。相比原有的YOLO v3算法,其mAP值提升了5.5%,同时其检测速度保持在84FPS,能做到快速且更加精准地识别复杂背景下的桥梁病害。