基于改进YOLO V5的公路桥梁裂缝检测方法

2023-05-19 12:54廖祥灿李彩林姚玉凯郭宝云王悦
关键词:损失桥梁裂缝

廖祥灿,李彩林,2,姚玉凯,郭宝云,王悦

(1. 山东理工大学 建筑工程学院,山东 淄博 255049;2.黄河中下游数字地理技术教育部重点实验室(河南大学),河南 开封 475001)

桥梁在交通运输和促进社会经济发展的过程中发挥着重要作用。桥梁在使用过程中,由于汽车行驶产生的荷载、温度变化、地基沉降等因素的影响,容易出现大量裂缝,如不及时进行维护保养,裂缝程度会日益加重,导致混凝土对内部钢筋的保护失效,最终引起桥梁变形甚至倒塌,严重影响交通运输安全。因此,开展桥梁裂缝检测,及时掌握裂缝变化情况,对于保障交通安全具有较高的实际价值与安全意义。

Zhao等[1]提出利用Canny边缘检测算法进行裂缝检测,并通过设定阈值对裂缝边缘进行提取,以达到把裂缝和背景分离的目的;Li等[2]提出了利用集成策略检测裂缝的方法,但是这种检测方法对于图像亮度要求较高;Liu等[3]利用基于多尺度增强和视觉特征的混凝土结构鲁棒图像裂纹检测方法优化了裂缝图像的鲁棒性处理效果,但形态学处理后的图像边缘容易失真;Talab等[4]使用Sobel算子对混凝土图像进行滤波和去噪,然后执行Otsu(最大类间方差法)阈值分割以完成裂缝边缘检测,虽然证明了Sobel算子在检测混凝土表面裂缝时具有较高的实用性,但Sobel算子处理的裂缝边缘较厚,这将影响裂缝识别的准确性。以上这些传统的图像处理算法泛化能力差,手工设计的特征对于环境变化鲁棒性差。所谓手工设计特征顾名思义就是人为设计的特征,即直接设计特征本身,仿照人类视觉对什么样的特征敏感、什么样的特征不敏感的特点,提取图像中有区分能力的特征,因此提取出来的特征每一维往往都有具体的物理含义。

目前主流的基于深度学习模型的目标检测算法可以分成两大类别:(1)One-Stage(一阶段)目标检测算法,这类检测算法不需要产生候选区域(region proposals),可以通过一个Stage(阶段)直接产生物体的类别概率和位置坐标值,比较典型的算法有YOLO[5]、SSD[6](single shot multibox detector,单次多核探测器)和Corner Net[7];(2)Two-Stage(两阶段)目标检测算法,这类检测算法将检测问题划分为两个阶段,第一个阶段产生候选区域,包含目标大概的位置信息,第二个阶段对候选区域进行分类和位置精确定位,这类算法的典型代表有R-CNN[8](region-CNN),Fast R-CNN[9],Faster R-CNN[10]等。目标检测模型的主要性能指标是检测准确度和速度,其中准确度主要考虑物体的定位以及分类准确度。一般情况下,Two-Stage算法在准确度上有优势,而One-Stage算法在速度上有优势。目前有部分学者将深度学习应用于桥梁裂缝的检测,廖延娜等[11]提出基于热力图(heat map)的YOLO V4检测算法,定位出桥梁裂缝的大致走向;余加勇等[12]采用MASK R-CNN算法以及阈值分割、形态学操作、边缘检测等算法来自动识别桥梁结构裂缝;余加勇等[13]以深度学习YOLO V5与U-Net3+算法为基础,构建了桥裂缝识别检测的智能算法。上述深度学习方法尽管可以实现裂缝的检测识别,但检测效率、识别及定位精度仍有待进一步提高。深度学习检测方法虽然在精度和速度上优于传统检测方法,但是桥梁裂缝图像固有的低分辨率,使得深度学习检测方法经过多次下采样后特征图持续减小,从而导致裂缝的细节信息丢失严重。

针对以上问题,本文在目前主流的YOLO V5目标检测模型基础上,通过引入C3-B注意力机制模块,提高模型对目标的精确定位能力;使用PAN(路径聚合网络)加权跨层级联,防止浅层语义的丢失;选取SIOU损失函数替换GIOU损失函数,提高收敛速度,实现复杂环境下的桥梁裂缝高精度检测。

1 理论背景方法

1.1 整体网络结构

本文以YOLO V5模型为基础,结合C3-B注意力机制模块、PAN加权跨层级联及SIOU损失函数构建了一种新的桥梁裂缝检测模型,模型结构如图1所示。输入端部分包括Mosaic数据增强、自适应锚框计算、自适应图片缩放,其中,Mosaic数据增强是随机使用4张图片,随机缩放,再随机分布进行拼接,丰富检测数据集,使网络的鲁棒性更好;自适应锚框计算是在训练过程中,在初始锚框的基础上自动输出预测框,通过将预测框和真实框进行比对并计算它们之间的差距,再反向更新,对模型参数进行迭代;自适应图片缩放是将原始图片统一缩放到一个标准尺寸,再送入检测网络中。

Backbone模块包含Focus结构和C3-B注意力机制单元,其中,Focus结构是在输入的图片进入Backbone前,对图片进行切片操作,为后续的特征提取保留了更完整的图片下采样信息;C3-B注意力机制模块先将基础层的特征映射划分为三部分,然后通过跨阶段层次结构将它们合并,扩大感受野。

Neck模块采用“FPN+PAN”(特征金字塔网络+路径聚合网络)加权跨层级联方式,FPN是自顶向下的,将高层的特征信息通过上采样的方式进行传递融合,得到进行预测的特征图;FPN层添加一个自底向上的特征金字塔,其中包含两个PAN结构;对PAN结构进行加权跨层级联,从而增强了金字塔自底向上传达浅层语义。

图1 改进后YOLO V5模型结构

Prediction模块采用SIOU损失函数分别计算分类、定位和置信度损失,在目标检测后处理过程中,使用非极大值抑制(non-maximum suppression,NMS)来对多目标框进行筛选,增强了多目标和遮挡目标的检测能力。

1.2 C3-B注意力机制模块

由于图像拍摄距离的变化导致裂缝在图像中成像的尺度不同,为了消除裂缝尺度的影响,需要在裂缝识别定位中扩大感受野。为了扩大感受野,本文提出在原C3模块上新增一个X2路径,将C3模块的输入特征映射与另外两个分支X1、X3的输出特征图直接进行特征融合,并在X3分支的Conv卷积块后新增一个Bottleneck_1,与原bottleneck相比多加了一个3*3标准卷积块。C3-B注意力机制模块可以在增加极少计算量的情况下学到更多特征,提高识别精度,其结构如图2所示。

图2 C3-B注意力机制模块

1.3 PAN加权跨层级联

为了进一步增强模型对浅层语义的关注度,充分融合FPN各层提取出的语义信息,增强网络对目标边界的回归能力,本文对PAN结构的输出、输入节点间加入加权跨层级联。跨层级联结构能够有效地将浅层的细节、边缘、轮廓等信息融入到深层的网络中,可以在几乎不增加计算量的同时,融合到目标的浅层细节信息,使网络对目标边界的回归更加精准,有效提升预测框与真实框的交并比。同时,考虑到使用跨层级联时浅层特征的融入会对深层语义信息造成一定的影响,所以采用可学习权重的加权add操作进行特征融合,add操作既可以减少计算量,也可以减少无效浅层信息的融合,其计算公式如下:

out=kx+(1-k)y,

(1)

式中:x、y表示每个需要进行融合的特征图;k是该特征图的权重系数,可通过学习进行更新。

1.4 损失函数的选取

到目前为止,损失函数的发展过程经过了IOU-Loss[14]->GIOU-Loss[15]->DIOU-Loss[16]->CIOU-Loss[16]->SIOU-Loss[17]五个阶段,各个损失函数具有不同的检测侧重点:IOU-Loss主要考虑检测框和目标框重叠面积;GIOU-Loss在IOU-Loss的基础上,解决边界框不重合时的问题;DIOU-Loss在GIOU-Loss的基础上,考虑了边界框中心点距离的信息;CIOU-Loss在DIOU-Loss的基础上,考虑边界框宽高比的尺度信息。

本文采用综合考虑边界框中心点的距离信息及边界框宽高比尺度信息和期望回归之间向量角度的SIOU损失函数,加快了收敛速度。利用传统神经网络和相应数据集进行的实验表明,SIOU损失函数提高了训练速度和推理精度,控制训练的优势变得更为明显,对于epoch具有更好的收敛性,通过大量的仿真和测试证明了SIOU损失函数的有效性。

SIOU损失函数由分类损失函数和回归损失函数组成,其中包含Cost函数:Angle cost、Distance cost、Shape cost、IOU cost。SIOU损失函数公式如下:

L=WboxLbox+WclsLcls,

(2)

式中:Lbox为回归损失函数;Lcls为分类损失函数;Wbox、Wcls为回归损失和分类损失的权重。

2 实验及结果分析

2.1 数据集

本文所用的混凝土桥梁裂缝数据集包含3 532张图片,裂缝数据集是在不同光照、不同干扰条件下采集得到的,可有效地测试目标检测模型的鲁棒性和泛化能力。数据集按照6∶2∶2划分为训练集、验证集和测试集。训练集用来训练拟合模型权重参数,验证集用来调整模型参数以便得到最优模型,测试集则利用得到的最优模型进行最终输出预测和评价。图3呈现的是部分具有代表性的桥梁裂缝照片。

图3 桥梁裂缝照片

2.2 数据预处理

本文使用LabeImag对采集到的图片中的裂缝进行标注,构建桥梁裂缝数据集,共标注裂缝3 044个。将标注好的图像标注信息保存为.xml格式,内容包括目标物体的类别和目标框的坐标信息。

2.3 实验环境

实验中采用的硬件配置:CPU为Intel(R) Core(TM) i7-11800H,主频为2.3 GHz,内存为16 GB,显卡为NVIDIA GeForce RTX3060;软件配置为Win10操作系统,显卡驱动为461.92版For Win10-64和CUDA10.1,深度学习框架采用PyTorch-3.7.3,使用Lableimg作为标注工具,编程语言为Python3.7。

2.4 评价指标

考虑到桥梁裂缝在实际工程中的应用,本文使用检测精度(Precision)、召回率(Recall)、mAP@0.5、mAP@0.5∶0.95、参数量和计算量作为模型的评价指标。检测精度的含义为模型正确识别的有目标判例占模型所有认为有目标判例的比例;召回率的含义为模型正确识别的有目标判例占所有正确判例的比例;mAP是指平均准确率,是多个类别AP(即P-R曲线下方面积)的平均值,用来衡量模型在所有类别上的好坏;mAP@0.5代表在IOU阈值为0.5时的平均AP,主要用于体现模型的识别能力;mAP@0.5∶0.95表示在不同IOU阈值(从0.5到0.95,步长0.05)上的平均mAP,主要用于体现定位效果以及边界回归能力。参数量和计算量指标分别从空间和时间上描述模型的复杂度。Precision、Recall、AP、mAP的计算公式如下:

(3)

(4)

(5)

(6)

式中:TP代表样本的真实类别与模型的预测结果一致均为正例,即预测正确数目;FP代表样本的真实类别为负例,模型预测为正例,即预测错误数目;FN代表样本的真实类别为正例、模型预测为负例,即预测错误。

2.5 桥梁裂缝检测结果

利用本文提出的模型对混凝土桥梁表面裂缝进行检测,检测结果如图4所示。由图4可以看出,模型的收敛性较高且最终趋于平稳,表明本文的桥梁裂缝检测模型没有发生过拟合或欠拟合现象,模型检测出的结果准确可靠。

为了对比本文模型的有效性,设计7组实验对不同的模型进行结果分析,每组实验使用相同的训练参数,不同模型对检测性能产生的影响结果如表1所示。对表1进行分析可见,SSD和Faster R-CNN模型参数量及计算量远高于本文模型且精度低于本文模型。在YOLO V5主干网络中使用C3-B注意力机制模块,增大了感受野,学到更多图像特征,且减少了模型参数数量,使得模型在原有基础上mAP和检测精度都有较大提升。在PAN结构上进行加权跨层级联,使浅层语义信息得到了更好的利用,识别精度有了较大提高。选取最新SIOU损失函数,使难以检测的较小尺寸目标得以正确识别。针对YOLO V5在桥梁裂缝检测任务中感受野小、特征融合不充分的问题,通过使用C3-B注意力机制模块,增大感受野,提高模型对目标的精确定位能力;结合PAN加权跨层级联,防止浅层语义的丢失,使网络对目标边界的回归更加精准;最后选取SIOU为损失函数,加快模型收敛速度,提高桥梁裂缝检测效率。改进后模型的mAP值为0.874,比原始YOLO V5算法的mAP值高4.3%,精度提升了5%,且需要的参数量更少。

(a)Box (b)Objectness (c)Precision (d)Recall

表1 不同模型检测结果对比

2.6 桥梁表面裂缝检测结果可视化

本节对不同模型检测裂缝的结果进行可视化,以更加直观的方式表达各种方法的检测效果。为体现模型的泛化能力和强鲁棒性,选取不同条件下的裂缝检测结果进行展示,裂缝可视化结果如图5所示。由图5可知,分别单独使用C3-B注意力机制模块的检测模型、PAN加权跨层级联的检测模型和使用了SIOU损失函数的检测模型对于不同条件下的原始裂缝图片检测准确度不高,有漏检或过检现象,而使用本文的检测模型都能对裂缝进行准确检测,这体现了本文模型具有良好的泛化能力和鲁棒性,同时模型的准确预测结果可在实际桥梁裂缝检测与智能识别中发挥重要作用。

(a)YOLO V5+C3-B (b)YOLO V5+PAN (c)YOLO V5+SIOU (d)YOLOV5+C3-B+PAN+SIOU

3 结论

1) 本文基于YOLO V5目标检测模型,提出引用C3-B注意力机制模块结合PAN加权跨层级联设计了高效的目标检测模型,并选取最新的SIOU-Loss作为边框回归的损失函数,提高了训练速度和推理精度,控制训练的优势变得更为明显,提高了边框回归精度。

2) 实验表明,本文所提出的检测方法能够准确、快速地检测出不同干扰因素下的桥梁裂缝。实际应用中检测精度达到0.866,召回率达到0.808,mAP达到0.874,性能高于普通目标检测模型,对桥梁裂缝检测具有实际应用价值。

3) 本文主要对桥梁裂缝病害进行自动化检测,还可推广应用于桥梁混凝土剥落、钢筋暴露、锈蚀、漏水等桥梁病害识别。后续研究中将采用语义分割方法对桥梁病害进行量化。

猜你喜欢
损失桥梁裂缝
胖胖损失了多少元
碳酸盐岩裂缝描述七大难点
完美“切割”,裂缝之谜
手拉手 共搭爱的桥梁
句子也需要桥梁
玉米抽穗前倒伏怎么办?怎么减少损失?
地球的裂缝
高性能砼在桥梁中的应用
一般自由碰撞的最大动能损失
损失