改进YOLOv7的地下工程衬砌表观病害检测算法
The Apparent Disease Detection Algorithm of Underground Engineering Lining of YOLOv7 Was Improved
DOI: 10.12677/airr.2024.132031, PDF, HTML, XML, 下载: 77  浏览: 150  科研立项经费支持
作者: 石朱林, 陶为戈*:江苏理工学院电气信息工程学院,江苏 常州;孙志刚:哈尔滨工业大学电气工程及自动化学院,黑龙江 哈尔滨
关键词: YOLOv7SPPFCSPC衬砌病害注意力机制YOLOv7 SPPFCSPC Lining Disease Attention Mechanism
摘要: 针对地下工程衬砌表观病害检测精度低的问题,给出了一种改进YOLOv7的衬砌表观病害检测算法。该算法首先在主干网络输出位置各自加入CBAM注意力机制,用于加强主干网络对关键区域的特征提取能力;其次将无参数注意力机制SimAM引入到SPPCSPC模块中,并裁剪掉冗余的一层CBS模块,在增强主干网络对密集小目标的特征提取能力的同时,缩减计算量和参数规模;最后使用自制数据集训练算法模型,与原算法相比本算法的PR以及mAP0.5分别提升了12.7、5.4和8.6个百分点。实验结果表明本文改进方法有效地提升了算法对衬砌表观病害的检测性能。
Abstract: Aiming at the low detection accuracy of underground engineering lining apparent disease, an improved YOLOv7 algorithm for lining apparent disease detection is presented. Firstly, CBAM attention mechanism is added to each output position of the backbone network to enhance the feature extraction capability of the backbone network for key regions. Secondly, the non-parametric attention mechanism SimAM is introduced into SPPCSPC module, and the redundant CBS module is cut out, which enhances the feature extraction ability of the backbone network for dense small targets, and reduces the computation and parameter scale. Finally, the algorithm model is trained with self-made data set. Compared with the original algorithm, the P, R and mAP0.5 of the proposed algorithm are improved by 12.7, 5.4 and 8.6 percentage points respectively. The results show that the improved method can effectively improve the detection performance of the algorithm on the apparent diseases of the lining.
文章引用:石朱林, 陶为戈, 孙志刚. 改进YOLOv7的地下工程衬砌表观病害检测算法[J]. 人工智能与机器人研究, 2024, 13(2): 290-299. https://doi.org/10.12677/airr.2024.132031

1. 引言

中国地下工程的建设规模名列世界前茅,截至2022年底,中国城市地下空间累计建筑面积29.62亿平方米 [1] 。然而早期投入使用的地下工程设施,例如公路和铁路隧道、地下停车场和洞库等地下工程设施在长期的服役过程中,不可避免地承受着结构应力、地质变动以及化学腐蚀等关键因素的耦合作用,各类衬砌病害 [2] 也由此逐渐产生,其中衬砌开裂、衬砌掉块与衬砌鼓包是三类较常见的表观衬砌病害。因为不同程度的病害反映着不同程度的工程结构缺陷,并预示着将来工程结构有可能出现的安全隐患,所以衬砌病害检测工作显得尤为重要。人工检测作为最常使用的传统的检测方法,分为人眼检测与人工使用仪器检测。人眼检测以肉眼配合基础测量工具进行检测,记录病害位置与严重程度 [3] ,这种方法检测不仅低效而且实时性差 [4] 。人工使用仪器检测主要使用检测仪进行测量 [5] 。两种人工检测方法都需要暂停设施的运营,占用大量的运营时间,并且检测精度较差,容易滋生安全隐患。

随着计算机和摄像设备性能的提升,衬砌病害检测逐渐由传统的人工检测向自动化、智能化的方向发展。目前,以深度学习算法为基础的衬砌病害检测方法的研究,逐渐成为热点。例如卢芳芳等 [6] ,提出的基于深度学习的隧道衬砌病害检测与识别研究,首先构建隧道衬砌病害数据库,其次详细对比了VGG16和ResNet34在各自训练环境的识别效果,最后提出了一种基于YOLOv3隧道衬砌病害检测算法,使用改进的K-Means++分配合适尺寸的先验框,加强了网络对小目标病害的定位和识别能力;任松等 [7] ,在自制数据集上对比SSD模型和R-FCN模型,提出离线式隧道衬砌病害检测方案;胡丽娜等 [8] ,使用卷积神经网络(CNN)的深层架构来检测隧道衬砌病害,提出了一种基于视觉的方法;仁安虎 [9] 提出的改进YOLOv5s算法,将结合深度可分离卷积(DSC)的全局注意力(GAM)以及空间金字塔软池化网络(SPSF)引入主干特征提取网络,使用空洞深度可分离卷积(Atrous DSC)进行下采样,实现了复杂背景下的裂缝病害检测。

本文针对实际衬砌病害检测的需要,优选新颖的目标检测算法,并根据实际应用中的需要对算法进行改进,给出了一种改进YOLOv7的地下工程衬砌病害检测算法。该方法首先在主干网络输出部分分别加入CBAM模块,保留待测目标关键特征信息的同时,抑制无关信息的干扰,使网络能够关注到更多有效的病害特征;再将无参数注意力机制SimAM加入SPPCSPC模块的池化层之前,并裁剪掉1个位于池化层之前的CBS层,在输入特征图中将目标和背景像素点进行分离,以计算三维注意力权重的方式,来增强对密集小目标病害目标的关注,同时缩减计算量和参数规模。

2. YOLOv7算法

YOLOv7是目前最新颖的单阶段目标检测算法之一,于2022年被提出。在COCO公开数据集上YOLOv7基础网络的检测精度和检测速度均超过了之前所有的目标检测算法 [10] 。与之前的YOLOv5版本相同,YOLOv7依旧包含:输入层(Input)、主干层(Backbone)、特征融合层(Neck)以及输出层(Prediction)四个部分。其中,主干层具有特征提取能力,由CBS、ELAN-1、MP和SPPCSPC四种模块构成。在特征融合层,通过路径聚合特征金字塔网络(PAFPN)利用不同层级的特征信息,捕捉目标的多尺度特征。输出层中引入了RepVGG重参数化思想 [11] 。建立REP模块,该模块在推理和训练过程中表现出不同的状态,在训练过程中模块有3 × 3卷积、1 × 1卷积和Identity三个分支;在推理过程中只包含一个3 × 3卷积,该卷积由训练结果重参数化转化求得。

3. 改进YOLOv7算法

YOLOv7主干网络进行特征提取时,将所有信息按照相同权重的方式进行处理,却没有体现局部关键信息的重要性,导致许多重要信息的丢失。然而在衬砌病害的检测过程中,背景与病害的区分度较小且病害密集,需要重视关键区域信息的提取。为此本文采用以下改进:首先在主干网络输出部分添加多个CBAM模块;其次再将无参数注意力机制SimAM加入SPPCSPC模块的池化层之前,使得目标和背景像素点有效地分离开,以加入三维注意力权重的方式,增强对密集小目标病害目标的关注;最后并裁剪掉1个位于池化层之前的CBS层,缩减计算量和参数规模。

3.1. CBAM注意力机制

CBAM [12] 注意力机制具有重点关注有效的目标特征信息,并抑制无关信息干扰的能力。该注意力机制同时关注了空间和通道维度特征,有利于提高目标检测能力。具体的CBAM结构如图1所示。

Figure 1. CBAM Attention Module

图1. CBAM注意力模块

在通道维度上,CBAM模块首先对输入的F (H × W × C)特征图进行全局最大池化和全局平均池化,得到两个1 × 1 × C的通道的重要性权重;再将这两个权重分别送入共享的多层感知机(MLP)网络处理,生成通道特征Mc。通道特征Mc反映了每个通道在分类任务中的重要性,将其与输入特征图相乘,便能得到空间特征模块所需的输入特征。在空间维度上,对通道特征模块的输出特征图,使用全局最大池化和全局平均池化操作,得到两个H × W × 1大小的特征图,并将特征图做通道拼接;然后经过一个7 × 7卷积,降维为1个通道,即H × W × 1;再使用激活函数生成空间特征Ms,反映了输入特征图中不同位置的重要性;最后再将输入特征图与Ms相乘。通道上模块具体计算如式(1)~式(4)所示,CBAM具体计算如

M c ( F ) = σ ( M L B ( A v g P o o l ( F ) ) ) + M L P ( M a x P o o l ( F ) ) (1)

M c ( F ) = σ ( W 1 ( W 0 ( f a v g c ) ) ) + W 1 ( W 0 ( f m a x c ) ) (2)

M s ( F ) = σ ( f 7 × 7 ( [ A v g P o o l ( F ) ; M a x P o o l ( F ) ] ) ) (3)

M s ( F ) = σ ( f 7 × 7 ( [ f a v g S ; f m a x S ] ) ) (4)

式中,σ为激活函数Sigmoid; W 0 R C / r · C W 1 R C · C / r f 7 × 7 7 × 7 的卷积。

3.2. 引入SimAM注意力机制

为加强网络对密集小目标特征区域的关注能力,有效提高密集小目标的定位精度。以SPPCSPCS模块为对象展开了相应改进,来提高模型的泛化能力和检测精度。

3.2.1. SPPCSPC

SPPCSPC模块的作用是增大感受野,提升算法的泛化性能,该模块将多通道特征图分成两部分,一部分采用多尺寸最大池化操作来获得不同的感受野,另一部分采用常规卷积操作提取特征,该模块在提升模型精度的基础上能最大程度降低计算量,是提升模型效率的重要结构。

3.2.2. SimAM

SimAM [13] 因为其本身无参数的特性,相比现有的通道注意力机制与空间注意力机制,SimAM在没有引入额外参数的前提下,能够综合考虑通道维度与空间维度的相关性,直接推理出三维注意力权重,能够有效的平衡模型的计算量与检测效率,其结构如图2所示。

Figure 2. SimAM attention module

图2. SimAM注意力模块

在衡量目标像素点(t)和背景像素点(xi)的线性可分性时,SimAM使用了能量函数,当输入特征图为 X R C × H × W 时,像素点线性变换如下:

t ^ = w t t + b t (5)

x i ^ = w t x i + b t (6)

其中,wt和bt分别是线性变换的权重和偏置值。将这些值代入能量函数中,可以得到能量函数的表达式:

e t ( w t , b t , y , x i ) = ( y t t ^ ) 2 + 1 M 1 i = 1 M 1 ( y 0 x i ^ ) 2 (7)

其中,yt和y0为目标像素点(t)和背景像素点(xi)的标签值,y为某一像素点的标签值,i为空间维度上的索引,et为能量函数的值,M为某一通道上像素点个数:

M = H × W (8)

3.2.3. 改进后的SPPCSPC

为使得网络更加关注密集小目标区域的特征,本文提出SimAM-SPPCSPC结构,在原SPPCSPC中引入SimAM,再去1个CBS层。SPPCSPC和SimAM-SPPCSPC的结构见图3(a)和图3(b)。

Figure 3. SimAM-SPPCSPC and SPPCSPC Module

图3. SimAM-SPPCSPC和SPPCSPC模块

1) 在SPPCSPC池化层之前嵌入SimAM,将目标像素点和背景像素点分离开,并增加三维注意力权重的方式重点关注密集小目标区域。

2) 去除多余CBS。在池化层之前去除1个CBS层,削减不必要的卷积计算,加快模型的推理速度。

3.3. 改进后的YOLOv7网络结构

改进后的YOLOv7主干网络部分,在第2、3、4个ELAN模块后面分别引入CBAM模块,重点关注关键病害区域的特征。提高算法对密集小目标的检测能力。用SimAM-SPPCSPC模块替换SPPCSPC模块,减少有效特征损耗并抑制混淆特征表达,同时增强对密集小目标区域的关注。具体的改进网络如图4所示。

Figure 4. SimAM-SPPCSPC and SPPCSPC Module

图4. SimAM-SPPCSPC和SPPCSPC模块

4. 实验分析

4.1. 训练环境

本文的实验环境建立在Linux ubuntu操作系统上,以RTX3060GPU对加速图像处理、PyTorch深度学习框架,使用Pycharm编辑器,基于Python3.8语言进行编程。

4.2. 病害数据集建立

针对实际应用场景存在复杂多样性的问题,首先本实验依靠自动监测小车实现具体应用场景下的图像采集,使用Labelme软件进行标注,具体的采集设备和图像标注软件如图5中所示;之后使用人工方式优选出合适的样本作为原始数据集,共1994张病害图片,其中包括衬砌开裂病害571张、衬砌鼓包病害758张以及衬砌剥落病害615张,部分病害图像数据如图6所示;最后按照8:1:1的比例划分训练集、验证集和测试集。

Figure 5. Acquisition equipment and image annotation software

图5. 采集设备和图像标注软件

Figure 6. Lining apparent disease image data

图6. 衬砌表观病害图像数据

4.3. 评价指标

本文以准确率(Precision, P)、召回率(Recall, R)和平均精确度均值(mAP)这三个指标来评估模型的性能。具体的指标如式(9)~式(12)表示。准确率表示模型预测的正确性,召回率则表示模型查全率。平均精确度考虑了模型在不同阈值下的表现,综合评估了模型的检测效果。具体的公式为:

P = T P T P + F P (9)

R = T P T P + F N (10)

A P = 0 1 P ( R ) d R (11)

公式(11)中,AP是模型的平均精度由一对相矛盾的指标——准确率P和召回率R共同决定。而平均精度均值(mAP)则是所有类别下AP值的平均值,用于综合评估网络在不同类别下的检测效果。

m A P = 1 n 1 n A P (12)

式(12)中:n是所有类别的数量。

4.4. 对比实验

为了验证每一部分改进的有效性,建立本消融实验。由表1可知,第二组实验添加CBAM可以使模型的mAP0.5提升了6.6个百分点;第三组实验通过加入SimAM-SPPCSPC模块增强对密集小目标病害目标的关注,模型的mAP0.5增加了5.2个百分点;由第二和第三组实验可知,引入CBAM和SimAM-SPPCSPC模块都不同程度的对网络性能进行了提升;第四组实验同时使用上述两部分改进,模型的mAP0.5为91%,达到了本消融实验的最大值。上述消融实验结果证实了改进的有效性。

Table 1. Ablation test results

表1. 消融实验结果

为了进一步验证本文所提出的改进YOLOv7算法的检测性能,将该算法和YOLOv5 [14] 、YOLOv7-tiny以及YOLOv7进行对比实验。利用本文自制数据集对上述算法进行训练,并对模型性能进行比较,实验结果如表2所示。由表2可知,本文改进算法各项指标相较于其他目标检测算法都具有优势,其中相较于YOLOv7算法的P、R和mAP0.5分别提升了12.7、5.1和8.6个百分点。实验结果验证了本改进算法的性能优势。

Table 2. Algorithm comparison experiment results

表2. 算法对比实验结果

通过自制病害数据集对改进YOLOv7进行训练,结果如图7中所示,图中左侧6张图表示的是模型在训练集与验证集上的各部分损失函数。右侧四张图分别对应P、R、mAP0.5和mAP0.5:0.95四项指标。从图7中可知,改进的算法随着训练轮数的增加,损失函数下降速度减缓并且收敛,各项指标不断提升且在300轮训练时仍然有较好的增长趋势,证明本文改进算法具有较好的收敛和学习能力。

Figure 7. Training result graph

图7. 训练结果图

检测结果如图8所示,从图8(d)和图8(e)对比可以看出,改进算法对于易丢失小目标病害的检测效果优于YOLOv7原算法,并且检测精度也高于原算法,提升了衬砌病害的检测质量,能够实现衬砌外观病害的有效检测。

Figure 8. Comparison chart of test results

图8. 检测结果对比图

5. 总结

本文通过在YOLOv7主干网络输出部分分别加入CBAM注意力机制,在SPPCSPC模块中加入无参数注意力机制SimAM,并裁剪掉一层冗余CBS层,提升了网络对衬砌病害的检测精度,其准确率P、召回率R以及平均精度均值mAP@0.5分别提升了12.7、5.4和8.6个百分点,且模型具有较好的泛化性能抑制复杂背景对检测效果的影响。由于本领域没有较完善的公开数据集,本文的数据集样本量过小,且包含的病害种类有限,后期需要对数据集进一步的扩展,同时模型的检测效率也需要进一步提升。

基金项目

常州市5G+工业互联网融合应用重点实验室(CM20223015);江苏省研究生实践创新计划(SJCX22_1481)。

NOTES

*通讯作者。

参考文献

[1] 陈湘生, 付艳斌, 陈曦, 等. 地下空间施工技术进展及数智化技术现状[J]. 中国公路学报, 2022, 35(1): 1-12.
https://doi.org/10.19721/j.cnki.1001-7372.2022.01.001
[2] 刘德军, 仲飞, 黄宏伟, 等. 运营隧道衬砌病害诊治的现状与发展[J]. 中国公路学报, 2021, 34(11): 178-199.
https://doi.org/10.19721/j.cnki.1001-7372.2021.11.015
[3] 《中国公路学报》编辑部. 中国隧道工程学术研究综述·2015 [J]. 中国公路学报, 2015, 28(5): 1-65.
[4] 范文田. 我国隧道及地下工程的现状和发展[J]. 土木工程学报, 1995(6): 73-75.
[5] 王平让. 隧道病害快速检测技术现状及分析比较[J]. 公路与汽运, 2016(3): 241-245.
[6] 卢芳芳. 基于深度学习的隧道衬砌病害检测与识别研究[D]: [硕士学位论文]. 郑州: 华北水利水电大学, 2022.
https://doi.org/10.27144/d.cnki.ghbsc.2021.000314
[7] 任松, 朱倩雯, 涂歆玥, 等. 基于深度学习的公路隧道衬砌病害识别方法[J]. 浙江大学学报(工学版), 2022, 56(1): 92-99.
[8] 胡利娜. 一种基于深度学习的隧道衬砌病害检测技术[J]. 山西电子技术, 2019(5): 38-40.
[9] 任安虎, 姜子渊, 马晨浩. 基于改进YOLOv5s的道路裂缝检测算法[J/OL]. 激光杂志: 1-7.
http://kns.cnki.net/kcms/detail/50.1085.TN.20230626.1756.012.html, 2024-03-18.
[10] Wang, C.Y., Bochkovskiy, A. and Liao, H.Y.M. (2023) YOLOv7: Trainable Bag-of-Freebies Sets New State-of-the-Art for Real-Time Object Detectors. Computer Vision and Pattern Recognition.
https://doi.org/10.1109/CVPR52729.2023.00721
[11] Ding, X., Zhang, X., Ma, N., et al. (2021) Repvgg: Making Vgg-Style Convnets Great Again. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, Nashville, TN, 20-25 June 2021, 13733-13742.
https://doi.org/10.1109/CVPR46437.2021.01352
[12] Woo, S., Park, J., Lee, J.Y., et al. (2018) Cbam: Convolutional Block Attention Module. Proceedings of the European Conference on Computer Vision (ECCV), 3-19.
https://doi.org/10.1007/978-3-030-01234-2_1
[13] Yang, L., Zhang, R.Y., Li, L., et al. (2021) Simam: A Simple, Parameter-Free Attention Module for Convolutional Neural Networks. International Conference on Machine Learning, 11863-11874.
[14] Dadboud, F., Patel, V., Mehta, V., et al. (2021) Singlestage UAV Detection and Classification with YOLOV5: Mosaic Data Augmentation and PANet. 2021 17th IEEE International Conference on Advanced Video and Signal Based Surveillance (AVSS), Washington DC, 16-19 November 2021, 1-8.
https://doi.org/10.1109/AVSS52988.2021.9663841