陶世峰 吴巨峰 周强 赵训刚 王熊珏 谈遂
(1.桥梁智能与绿色建造全国重点实验室,武汉 430034;2.中铁大桥科学研究院有限公司,武汉 430034;3.高速铁路建造技术国家工程研究中心,长沙 410075)
桥梁建成投入使用后存在大量如混凝土剥落、露筋、蜂窝麻面和锈蚀等病害,因此需对桥梁进行定期巡检。无人机等非接触式仪器因安全、便捷等优势已经被广泛应用至结构健康监测中[1],且无人机搭载高清摄像头对桥梁表观进行检测,可有效地获取桥梁表观病害特征图像,并为后续桥梁病害分析起到了至关重要的作用。随着计算机视觉领域的不断发展,基于深度学习的智能识别技术也相应成熟。
近年来,国内外学者开展了大量基于深度学习的目标检测的研究[2-5],其中以Fast-RCNN(Fast regionbased eonvolutiona neural networks)、Faster-RCNN(Faster region-based eonvolutiona neural networks) 与Mask-RCNN(Mask region convolution neural network)的双阶段目标检测算法和YOLO(You Only Look Once)系列的单阶段目标检测算法为主。深度学习在桥梁病害检测中已成为近年来桥梁智慧检测的研究热点。为实现结构病害智能识别检测,研究者们把卷积神经网络(CNN)[6-8]引入到实际混凝土表观病害识别中,实现了混凝土表观病害分类的目的并取得了较高的精确度。但在混凝土表观病害检测中,研究组更关心病害所处位置及其类别,因此简单的卷积神经网络不能满足当前的需求。随着目标检测的不断发展,以YOLOv3[9]等目标检测算法不仅能够输出目标病害类别,同时还可以预测目标病害所处位置,进一步推动了混凝土表观病害检测智能化的发展。Cha 等[10]使用快速卷积神经网络(Faster-RCNN)对结构损伤进行目标检测,其中包括混凝土裂缝和两级钢腐蚀等5 种损伤类型,取得了87.8%的平均分类准确度。Shen 等[11]基于YOLOv4-FPM 算法,利用焦点损失函数(focal loss)及剪枝算法(Pruning Algorithm)对原有算法进行随机剪枝,从而减小网络模型的复杂程度,分析了改进后的YOLOv4-FPM 对裂缝的识别效果。Zhang 等[12]基于YOLOv3 算法结合迁移学习算法以改善训练样本不足的问题,成功实现了裂缝、露筋、剥落、保护层脱落4种病害的识别以及定位,其平均分类准确率达80%。
在实用性方面,研究者们探讨了通过无人机进行桥梁病号检测,包括混凝土结构裂缝检测[13,14],裸露钢筋的检测[15,16],基础设施的健康评估[17],桥梁病害的3D 重建[18]等。
虽然深度学习被广泛应用至桥梁病害检测当中,但一方面需要大量算力,对设备要求较高,处理结果传输至前端花费时间较长,无法做到快速实时检测;另一方面,其识别病害种类较少,未能整合病害检测模型,应用性有待提高。
针对上述问题,本研究基于YOLOv5 算法进行改进。首先,通过K-means 聚类算法选取合适的桥梁病害比例,以便有效地获取建议区域;其次,利用图像切割与拼接算法对输入和输出图像分别进行切割与拼接,从而减小模型训练难度。通过上述方法对桥梁分别按照桥面系(伸缩缝堵塞、排水孔堵塞、龟裂)、混凝土结构(剥落、蜂窝麻面、裂缝)、下部结构(渗水、白皙、防尘罩脱落)以及钢结构(螺栓锈蚀、松动、缺失,油漆脱落)进行病害识别,共计13 种桥梁病害;最后,基于Python Flask 框架设计桥梁病害检测系统管理平台公开接口API,提供了一体化的桥梁结构病害的智能检测方法,并将其应用至Web 端。
桥梁病害识别检测系统主要有无人机巡航系统、病害识别定位系统、实时目标检示。
无人机巡航系统是由无人机机身、相机和测前端三部分组成,技术路线图如图1 所示。模块和机载计算机控制软件组成,如图2 所示。首先,作业人员对桥梁病害通过无人机进行采集,并上传至桥梁病害检测系统;其次,通过目标检测算法对图像是否包含病害进行识别定位,获取相关病害信息;最后,输出结果展示至桥梁病害检测系统前端。
图1 桥梁病害检测系统流程图
图2 无人机巡航系统
在本研究中,无人机采用大疆经纬M300RPK 无人机,具有六向定位避障系统和40m 探测距离,为飞行提供了安全、稳定的飞行能力,可有效地避免在桥梁检测过程中发生无人机碰撞,减少对行车的安全风险。
相机模块选用大疆禅思H20,该相机模块集成了1 200 万像素广角、2 000 万像素、23 倍混合光学变焦、640×512 热成像和1 200 米激光测距于一身,可满足不同桥梁位置的拍摄需求。相机模块具有将世界坐标下的物体转换到图像像素下坐标的功能,以便对病害进行精确定位。为保证图像病害具有较高辨识度,相机模块尽量采用平行于桥面进行拍摄,拍摄距离偏差不超过±3m,角度偏差不超过±15°,搭配大疆经纬M300RTK 无人机,可实现精准定位、精准复拍等功能,避免了在作业中产生漏拍,减少了作业的人员的重复性工作。
机载计算机控制软件满足无人机飞行策略设定,自动巡航、自动拍摄等功能,可有效地减少作业人员的工作量。为得到有效的拍摄图像与高效作业,无人机的拍摄距离与焦距具有至关重要的作用。因此,针对桥梁不同位置需进行合适的拍摄距离与焦距选择。
YOLOv5 是YOLO(You only look once)系列网络模型的最新版本,是基于YOLOv4 的网络模型进行改进。该结构采用GIou_Loss 作为Bounding box 的损失函数进行改进,同时引入YOLOv4 的马赛克数据增强方法(Mosaic),随机挑选4 张图像进行随机缩放、裁剪等方式进行拼接,丰富了数据集样本形式,尤其是增加了许多小目标,增强了卷积神经网络的学习能力,降低了模型的计算量,极大地提高了模型的运算速度,具有高效、易部署到移动端等优点,已被广泛应用至各个领域中的目标检测、跟踪与分割。
基于以上优点,本研究针对桥梁病害搭建了YOLOv5 病害识别与定位模型,YOLOv5 桥梁病害识别与定位模型由骨干网络(Backbone)、颈部网络(Neck)和预测端(YOLO Head)组成,图3 描绘了YOLOv5模型的整体结构。
图3 YOLOv5 桥梁病害识别定位网络结构图
由于无人机拍摄图像像素值较大,但部分病害目标较小,若直接输入无人机拍摄图像进行病害检测,将存在大量漏检行为,且对模型训练与推理存在较大难度。基于对病害检测任务的分析,提出改进的YOLOv5 网络模型对输入图像切割成若干个小图进行训练,减小计算成本。这有助于检测大面积图像中的病害,减少漏检与误检的情况,提高桥梁病害检测效率,符合实际工程中获取桥梁病害图像的特点。
禅思H20 相机模块所拍摄的单张图像分辨率为5 888×3 888,若直接将该图像输入至YOLOv5 模型中,将严重导致模型训练慢,推理困难。因此,对无人机图像进行切割,切片尺寸像素为640×640,切片步长为512 像素,最后一张切割图像像素大小不足640×640,则进行填充,以满足输入图像要求。
坐标在滑动窗口内的切割图像作为有效训练图像,并重新计算当前目标坐标信息。在研究中发现,由于切片尺寸像素为640×640,切片步长为512 像素,若将切割图像结果直接进行拼接,则完整图像将产生重叠部分。为更好的获取无差别图像,本文采用AP 算法利用多个局部单应性进行精准对齐匹配,并对图像重叠区域进行切割,得到拼接缝;采用Multi-band Bleing算法对拼接图像进行加权平均,得到重叠图像融合结果,最终反向进行重建图像,得到完整的拼接图像结果。
切割图像分别进行训练与预测,最终将所有切割图像识别结果进行拼接,得到完整病害图像识别结果,实际病害图像切割与拼接效果如图4(a)~(c)所示。
图4 切割与拼接效果图
为了更好地使模型学习病害特征,具有优秀性能,研究组分析了模型中所需训练的数据集的真实框,研究中发现预选框框比例为固定参数(0.5∶1∶2),不满足实际病害尺寸要求。
因此,本研究采用K-means 聚类算法对实际病害进行先验框比例调整,对象边界框和聚类中心框之间的距离参数如公式(1)所示。其中cj代表第j个聚类中心框,O ij代表第j个聚类中心的第i个对象边界框。
通过不断地调整相关参数,研究中发现随着聚类中心数量地不断增加,模型的精确度也相应提高,直至聚类数量达到9 簇。如图5 所示,模型准确度达到最优值,此时聚类先验框比例为(0.36∶1.14∶2.8),该预选框比例均匀地分布在各个病害尺寸上,满足实际病害尺寸特点,可有效地提升模型性能,提高病害识别精确度。
图5 聚类中心数-精确度曲线图
首先,基于无人机巡航系统收集桥梁相关病害,该系统提供了3 294 张桥梁病害图像。数据集图像使用LabelImg 标注工具进行分类标注,采用VOC 数据集格式,将图像目标信息转化为.xml 格式的坐标文档,可随时进行修改。
采用旋转、翻转、加噪声等图像处理技术进行数据集扩充,将3 294 张图像扩充为9 882 张;然后将桥梁病害进行分类,分为桥面系(伸缩缝堵塞、排水孔堵塞、龟裂)、混凝土结构(剥落、蜂窝麻面、裂缝)、下部结构(渗水、白皙、防尘罩脱落)、钢结构(螺栓锈蚀、松动、缺失,油漆脱落)分别构建成不同数据集进行模型训练。扩充后的数据集取882 张作为测试集,其余图像按照8∶2 的比例随机划分,分别得到训练集图像7 200 张,验证集图像1 800 张。
在训练过程中,采用迁移学习方法,通过在COCO 数据集上的预训练权重,优化网络模型。初始学习率设置为1×10-5,训练批次大小为8 张,世代数(Epoch)根据实际数据集进行相关设定,每个训练周期步长为1 000 步,输入图像大小为640×640 像素。与此同时,为防止训练模型产生过拟合,将根据上节所划分的桥梁病害位置,分别将各部位病害数据集分别放入模型进行训练。模型采用随机梯度下降算法,使得网络模型不断收敛至最优解,以此保证模型具有较优性能。
图6(a)~(d)分别显示了各个部位数据集在训练过程中的损失函数收敛状况,随着世代数地不断增加,模型在验证集上的性能表现也不断提升,最终趋于收敛状态,具有一定的稳定性和有效性。
为评估桥梁病害识别模型的检测性能,将测试集作为输入图像测试模型性能。本文引入准确率(Precision)、 回 召 率(Recall) 和 1F分 数( 1Fscore)作为该模型的评价指标。准确率为正确识别病害数量占所有识别出该类病害数量的比例,回召率为正确识别出该病害数量占实际病害数量的比例, 1F分数为评价该模型综合性能的评价指标。
TP表示为图像中所对应病害被正确识别成相应病害;FP表示图像中非病害种类被识别成正确病害;FN表示将非病害种类被错误识别;P、R分别表示为精确率与回召率。评价指标计算公式(1)~(3)所示:
由表1 可知:模型对于下部结构的病害识别的准确率、回召率和F1 分数均在90%以上,桥面系病害的准确率、回召率F1 分数分别为94.4%、84.3%和89.1%;混凝土结构的病害的准确率、回召率F1 分数分别为89.1%、90.7%和89.9%;钢结构的病害的准确率、回召率F1 分数分别为93.9%、87.0%和90.3%。研究中发现,该三个桥梁部位的病害由于其中的某类病害的训练样本不足,导致该模型的准确率或回召率较低。YOLOv5 桥梁病害识别模型总体的准确率、回召率和F1 分数分别为92.9%、89.0%和90.9%,因此该模型对于各个桥梁部位结构的病害识别具有较高的准确率与回召率,可实现对于13 种桥梁病害的高精度的病害识别与定位。
表1 网络结构表
桥梁病害识别系统主要便于作业人员能够进行实时病害识别,为此,本研究设计并实现了一套完善的Web 端桥梁病害检测系统。
Web 端基于Python Flask 框架并采用前后端分离的架构进行开发,Flask 是一种轻量级Web 端构成框架,可同时实现多个Python 环境并行,为多部位桥梁病害检测提供了有力帮助。首先对YOLOv5 网络模型进行封装,其次利用Flask 框架搭建桥梁病害识别系统平台的公开接口API,对YOLOv5 相关病害权重进行调用,实现在Web 端上传病害图像并进行相关病害识别,系统整体框架如图7 所示。
图7 前端实时检测框架流程图
图8 病害展示
为测试桥梁病害检测系统的检测性能,本文随机采用未训练样本作为测试集对各个部位病害进行测试。由图9(a)~(l)可知,该桥梁病害识别与定位系统对桥梁病害具有较高精确度,满足实际工程应用。
图9 病害识别结果汇总
本文研发了桥梁桥梁病害检测系统,可实现13 种桥梁病害识别,集后台识别与前端展示一体化,有效地提高了桥梁巡检效率。具体来讲,首先结合K-means聚类算法对桥梁病害尺寸进行调整,引入图像切割与拼接算法对YOLOv5 网络模型进行改进,训练并重建桥梁病害识别模型;其次集桥面系、混凝土结构、下部结构、钢结构相关病害检测模型,利用Python Flask搭建桥梁病害检测系统,可分别调用相关权重文件对各个部位进行精确病害检测与定位;最后通过无人机拍摄的图像对桥面系、混凝土结构、下部结构、钢结构相关病害进行实验,总体的准确率、回召率和F1 分数分别为92.9%、89.0%和90.9%,具有较高的准确率和回召率, 对于桥梁病害检测,尤其对特大桥梁检测具有较高的借鉴价值与实践意义。