1. 引言
中国的桥梁数量在世界各国中位居首位[1],中国是世界上桥梁数量最多的国家,截至2022年末,全国共有桥梁103.32万座,总延米达8576.49万,且近年来持续增加[2]。桥梁的广泛建设和使用大大改善了交通状况,但随着时间推移,桥梁结构容易受到施工材料、建筑工艺、极端天气等多种因素的影响,裂缝成为影响桥梁安全性的重要病害。裂缝的存在可能引发钢筋锈蚀,从而显著缩短桥梁的使用寿命[3],因此,裂缝检测和修复是桥梁养护中的重要环节。我国已初步建立了以检测、鉴定和评价为核心的在役工程结构技术标准体系[4] [5],以支持基础设施的维护和安全评估。然而,传统的人工检测方法[6] [7]存在效率低、作业风险大、且易受主观因素影响的问题[8],难以满足对高时效性和准确性的需求[9]。因此,发展桥梁表观病害的自动化检测技术对于提升检测效率和准确性具有非常重要的意义[10]。
近年来,随着计算机技术的持续发展,众多研究者已经开始采用图像处理和机器学习算法来诊断桥梁结构的损伤。尤其是深度学习技术在计算机视觉领域的快速进展,已经被广泛引入桥梁裂缝的检测中。这种技术的应用不仅显著提高了检测精度,而且免除了传统图像处理方法中所需的繁琐预处理步骤。与传统的人工检测方法相比,基于数字图像技术的检测方法提供了更高的准确性和效率,并允许对裂缝检测结果进行量化分析[11]。例如,YOLOv2和Faster R-CNN在裂缝检测中表现出较大的性能差异,其中YOLOv2在精度上占有优势[12]。此外,一些改进的深度学习模型,如改进的YOLOv3 [13]-[15]和卷积神经网络(CNN) [16]-[19],通过引入焦点损失函数和迁移学习策略以及引入注意力模块或者选用更好的损失函数等方法,有效提升了模型的识别准确性。类似地,无人机和机器视觉技术[20]的结合也在裂缝检测中取得了显著进展,提供了更加精准的像素级裂缝分割。Yang等[21]则提出了一种基于SSD深度学习框架的自动路面裂缝检测系统,并集成了感受野模块以增强网络的特征提取能力。Xiong等[22]在YOLOv8中引入GAM (Global Attention Module)模块并更新原本的损失函数CIOU提出了新的YOLOv8-GAM-Wise-IOU深度学习模型用于桥梁裂缝的检测并得到了很好的识别效果。
本文基于现有的YOLOv8模型,提出了一种改进的YOLOv8-GAM-Wise-IOU深度学习检测模型。通过在颈部网络中加入GAM注意力机制,并替换传统的CIOU损失函数为Wise-IOU,进一步提升了检测精度和效率,为桥梁健康监测提供了更为高效的检测工具。
2. 优化模型
2.1. YOLOv8网络
YOLO (You Only Look Once)是目前一种流行的目标检测算法,它以其速度快和效率高而著称。与传统的目标检测方法不同,YOLO将目标检测任务作为一个单一的回归问题来处理,直接从图像像素到边界框坐标和类别概率的预测。这种方法使得它能够在处理图像时实现端到端的预测,极大地加快了处理速度。YOLOv8是YOLO系列中的最新作品,相较于目前使用较为流行的YOLOv5网络,YOLOv8网络无论是在检测精度还是速度方面都有长足进步。YOLOv8根据不同的使用场景目的分为n、s、l、m、x共5种模型,网络深度依次加深,检测精度依次增高。其中YOLOv8n参数量最小且检测速度最快。因此,为保证算法的实时性和模型大小可控,该研究选择使用YOLOv8n版本。YOLOv8网络架构如图1所示,包含三个主要部分:主干网络、特征融合网络和检测头。
Figure 1. Overall structure diagram of the YOLOv8 model
图1. YOLOv8模型整体结构图
2.2. 全局注意力机制
本文提出了全局注意力机制(Global Attention Mechanism, GAM)作为YOLOv8的增强模块。GAM模型专为从桥梁检查图像中复杂背景中提取显著特征而设计。通过整合GAM模块,YOLOv8能够有效地从背景中提取关键信息,从而显著提升整体检测性能。此外,本文引入了一种动态非单调聚焦机制,该机制利用“异常值”概念来评估锚框质量。此机制使得检测器能够综合考虑不同质量的锚框,从而优化检测任务的整体性能。采用该方法后,模型能够更好地适应不同质量的锚框,进一步提升检测结果的准确性。总体而言,本研究通过结合GAM模型与YOLOv8,有效应对桥梁裂缝检测中复杂背景的挑战。GAM模块的引入便于从背景中提取重要特征,而动态非单调聚焦机制通过考虑不同质量的锚框,显著提高了整体检测性能。
鉴于数据集中存在复杂的多重干扰,全局注意力机制(GAM)被认为是抑制图像中非重要信息的最优选择。与其他注意力模块相比,GAM因其能够减少信息损失并增强全局维度交互特征而尤为突出。在卷积块注意力模块(Convolutional Block Attention Module, CBAM)的基础上,GAM保留了顺序的通道–空间注意机制,并进一步重新设计了子模块。在通道注意子模块中,采用三维排列以保留所有三个维度的信息,并通过两层多层感知器(Multi-Layer Perceptron, MLP)增强跨维度的通道–空间依赖性。空间注意子模块则通过使用两层卷积层进行空间信息融合,聚焦于空间信息的提取与处理。GAM结构图如图2所示,其中:
(1-1)
(1-2)
(1-3)
F1表示上层神经网络输入的特征图,Mc和Ms分别是通道和空间注意力图,采用逐个元素相乘,总体上采用通道–空间注意力机制为顺序的结构来保留三个维度的信息,放大跨纬度通道空间特征信息的依赖性。
Figure 2. Schematic diagram of the GAM
图2. GAM示意图
2.3. 损失函数
Wise-IOU损失函数是一种用于目标检测的高级损失函数,其原理是利用预测框与真实框之间的交并比(Intersection over Union, IOU)作为衡量其差异的指标,并以此计算损失值。该损失函数的显著特点是其在训练过程中能够自适应地调整样本的权重,使得模型更加专注于难以检测的样本。具体来说,Wise-IOU损失函数将IOU值离散化为多个区间,并为每个区间分配相应的权重系数。这个权重系数与该区间内样本的数量相关,使得模型在训练过程中能够更加关注那些IOU值较小、检测难度较高的样本。通过这种方式,Wise-IOU损失函数能够有效地提高目标检测的精度,确保模型在处理具有挑战性的样本时表现更佳。改进后的结构如图3所示。
Figure 3. Structural diagram of the improved YOLOv8 model
图3. 自改进后YOLOv8模型结构图
3. 数据处理
数据来源于网上的公开数据集,将数据图片按照比例分为训练数据集和验证数据集,分别为1774张和204张。
训练模型时需要告诉模型目标的位置信息,即在训练前首先要人工手动对数据集中的裂缝进行标注,无论是公开数据集还是自行收集的数据集,都需要将图中的裂缝用边界框标注出来。本研究运用Labelimg标注工具进行桥梁裂缝标注,Labelimg是python下的第三方标注工具包。选用矩形边界框进行标注。本文的裂缝数据集中包括了各种裂缝类型,如横向裂缝、纵向裂缝等,为了简单起见,本研究并未对裂缝进行分类,均标注为一种类型裂缝(Crack)。对于数据的收集中并未包含无裂缝的图片作为背景,因为图片本身除裂缝之外其余均看作为背景。
4. 实验结果与分析
4.1. 实验环境和参数配置
本次试验在64位操作系统下进行,运行内存16 GB,显卡为NVIDIA GeForce RTX4060,显存为8 GB,CPU为AMD Ryzen9 7945Hx,编程语言为python3.9.19,采用PyTorch深度学习框架搭建模型,CUDA版本为11.8。训练参数设置如表1所示。
Table 1. Setting of the training parameters
表1. 标训练参数设置
参数 |
数值 |
参数 |
数值 |
epochs |
1000 |
optimizer |
SGD |
patience |
100 |
weight_decay |
0.0005 |
batch |
16 |
momentum |
0.937 |
imgs |
640 |
warmup_momentum |
0.8 |
workers |
8 |
close_mosaic |
10 |
lrf |
0.01 |
patience |
100 |
4.2. 评价指标
本试验使用精确度(Precision)、平均精度均值(mean average precision, MAP)对模型进行评价,召回率(Recall)以及F1分数作为辅助性参考。精确度(Precision)越高表示模型对负样本的识别能力越强;平均精度均值MAP中的M代表均值,MAP0.5指的是当混淆矩阵的IoU的阈值为0.5时,针对这一类样本的平均精确度。MAP0.5是将所有的类别的样本的精确度取平均值,其反映的是模型的精确度随召回率的变化趋势,该值越高代表模型越容易在高召回率下保持着高精确度。而MAP0.5~0.95则代表在不同IOU阈值(从0.5到0.95,步长0.05)上的平均MAP值。
MPA =
(3-1)
Precision =
(3-2)
Recall =
(3-3)
F1-score =
(3-4)
式中:N为类别综述;PA为以召回率为横坐标、精确度为纵坐标形成曲线所围成的面积;FP代表假阳性的数量,TP代表真阳性的数量,FN代表假阴性的数量。
4.3. 实验结果与分析
4.3.1. 改进YOLOv8n消融试验
为了评估两种改进方法对改进模型的效果和作用,分别进行了消融试验,结果如表2所示。从表中可以看出更换损失函数WIOU之后,精确度相较于有原始模型提升0.9个百分点,但是召回率、MPA0.5、MPA0.5-0.95以及F1-score均有小幅度的下降,因此可以得出更换损失函数WIOU对精确度的提高是有所帮助的;添加GAM注意力机制之后,精确度、MPA0.5、MPA0.5-0.95比原始模型分别提高1.6、0.8、3.7个百分点,F1-score比原始模型提高0.1,说明GAM注意力机制确实能够提取特征信息从而提升模型的准确率,但是召回率相对于原始模型降低了1.2个百分点;在引入GAM模块的同时更换损失函数的模型在精确度、MPA0.5以及MPA0.5-0.95分别比原始模型提高了2.4、1.1、1.3个百分点,F1-score比原始模型提高0.1,但是召回率略微降低。并且与单独更换损失函数和单独引入GAM模块相比精确度经有提升,分别提升1.5、0.8个百分点,F1-score比单独更换损失函数提高0.2。
从表2中也可以看出,更换损失函数WIOU对虽然能提高模型识别裂缝的精确度,但是会对召回率和MPA0.5-0.95的结果造成一定的不利影响;引入GAM模块使得模型的精确度、MPA0.5、MPA0.5-0.95以及F1-score的结果得到一定程度上的提升,但是对召回率有略微的不利影响。
总的来说,改进的模型在桥梁裂缝检测中的各项指标均取到了很好的结果;表明改进后的网络结构可以有效提高桥梁裂缝的检测性能。
Table 2. Ablation test results
表2. 消融试验结果
模型(%) |
精确度(%) |
召回率(%) |
MPA0.5 (%) |
MPA0.5-0.95 (%) |
F1-score |
YOLOv8n |
92.8 |
90.3 |
91.5 |
63.3 |
0.89 |
YOLOv8-WIOU |
93.7 |
80.3 |
91.0 |
61.1 |
0.88 |
YOLOv8-GAM |
94.4 |
89.5 |
92.3 |
67.0 |
0.90 |
YOLOv8-GAM-WIOU |
95.2 |
89.1 |
92.6 |
64.6 |
0.90 |
4.3.2. 不同模型的对比结果
为验证该研究算法相比当前热门目标检测模型的优越性,以精确度、召回率、mAP@0.5、mAP@0.5~0.95、F1-score等作为评价指标,将该研究算法YOLOv8-GAM-WIOU与YOLOv5、YOLOv8n 算法在相同的条件下进行对比试验,试验结果如表3所示。
根据表3的实验结果可得,虽然YOLOv5的精确度略高于YOLOv8,但是召回率、MPA0.5、MPA0.5-0.95以及F1-score是远低于YOLOv8;该研究算法除了在召回率上略低于YOLOv8原始模型,但是精确度、MPA0.5、MPA0.5-0.95以及F1-score等指标均优于其他模型;通过以上分析可见,该研究提出的YOLOv8-GAM-WIOU算法在多个指标方面均展现出其优越性。
Table 3. Experimental results of the different models
表3. 不同模型实验结果
模型(%) |
精确度 |
召回率(%) |
MPA0.5 (%) |
MPA0.5-0.95 (%) |
F1-score |
YOLOv5 |
93.2 |
78.8 |
88.9 |
49.2 |
0.87 |
YOLOv8n |
92.8 |
90.3 |
91.5 |
63.3 |
0.89 |
YOLOv8-GAM-WIOU |
95.2 |
89.1 |
92.6 |
64.6 |
0.90 |
4.3.3. 注意力机制的比较
将所建立的YOLOv8-GAM-WIOU模型与YOLOv8-CBAM-WIOU进行比较,检验GAM注意力模块以及CBAM注意力模块在精确度、召回率、mAP@0.5、mAP@0.5~0.95、F1-score等方面进行比较;由表4可以看出YOLOv8-GAM-WIOU在精确度、召回率、mAP@0.5、F1-score等分别比YOLOv8-CBAM-WIOU高出0.8%、1.9%、0.5%、0.1,但是mAP@0.5~0.95略微降低;但是与原始模型以及其他模型相比该研究算法仍然具有绝对的优越性。
Table 4. Results of performance comparison of attention mechanisms
表4. 注意力机制的性能比较结果
模型(%) |
精确度(%) |
召回率(%) |
MPA0.5 (%) |
MPA0.5-0.95 (%) |
F1-score |
YOLOv8-WIOU |
93.7 |
80.3 |
91.0 |
61.1 |
0.88 |
YOLOv8-CBAM-WIOU |
94.8 |
87.2 |
92.1 |
65.0 |
0.89 |
YOLOv8-GAM-WIOU |
95.2 |
89.1 |
92.6 |
64.6 |
0.90 |
5. 总结与展望
本研究对YOLOv8n的网络结构进行了改造,在特征融合网络中引入了GAM注意力模块来提高模型对于桥梁裂缝的关注度。对于收集到的桥梁裂缝数据集用于模型的训练、验证。结果表明:
(1) 本文研究提出了一种改进的YOLOv8-GAM-Wise-IOU模型,旨在提升桥梁裂缝检测的准确性和效率。通过引入全局注意力机制(GAM)和Wise-IOU损失函数,模型在处理桥梁裂缝检测任务时表现出了显著的性能提升。具体而言,与原始YOLOv8模型相比,改进后的模型在精确度、平均精度均值(mAP)和F1分数上分别提高了2.4%、1.1%和1.3%。尽管召回率略有下降,但整体性能较其他常见目标检测模型(如YOLOv5、YOLOv8n)具有明显优势,表明该模型能更有效地检测桥梁表面裂缝。
(2) 在模型优化方面,YOLOv8n的网络结构得到了有效改造,特别是引入GAM注意力模块,这使得模型能够更好地聚焦于桥梁裂缝的关键特征,从复杂背景中提取显著信息。此外,Wise-IOU损失函数的应用提升了对难检测样本的关注,进一步提高了模型的精度。
(3) 实验结果显示,改进后的YOLOv8-GAM-Wise-IOU模型在不同指标上均表现优异,尤其在精确度和F1分数上超越了其他模型。与YOLOv8-CBAM-WIOU进行比较时,本研究模型在大多数评估指标上也略有优势,验证了GAM注意力机制的有效性。
综上所述,本文提出的改进方法能够有效提升桥梁裂缝的检测精度和效率,为桥梁健康监测领域提供了一种更为高效的自动化检测模型。未来的研究可以进一步优化模型,提升召回率,并扩展到更多类型的桥梁病害检测任务中。
NOTES
*通讯作者。