APP下载

重参数化YOLOv8路面病害检测算法

2024-03-12王海群王炳楠

计算机工程与应用 2024年5期
关键词:特征提取卷积病害

王海群,王炳楠,葛 超

华北理工大学电气工程学院,河北 唐山 063000

近些年来,随着人民经济水平的提高,私家车保有量正在逐年上涨,在如此繁重的交通压力下,路面病害的出现变得越来越普遍。路面病害会影响人们的日常出行,甚至会引发严重的交通事故,带来巨大的生命财产损失。因此,实现高效且精准的路面病害检测变得越来越重要,对于延长道路使用年限、保障人民财产安全具有重要意义。

传统的路面病害检测方法主要分为两种方式:第一种是通过人工巡检来实现路面病害检测,巡检人员沿道路两侧观察、测量并记录病害位置及大小,这种方式的时间成本和人力成本较大,而且会影响道路的正常通行;第二种是通过巡检车搭载检测装置实现路面病害检测,目前主要的检测装置有超声波、探地雷达与激光扫描仪等设备。如熊学堂等人[1]将三维探地雷达与深度学习技术相结合,实现了实时、高精度识别病害特征。如陈卫[2]将超声波技术应用于公路桥梁病害检测,实现了伸缩缝、桥面以及桥台等病害高效、高精度检测。虽然检测装置能够实现路面病害的自动检测,但是检测装置所涉及的部件较多,耗费的人力和资金成本较大,且对于检测路段有一定限制,不利于大范围推广使用,尤其不利于在村庄以及小乡镇使用。

随着深度学习在目标检测领域的发展与应用,出现了一系列基于深度学习的目标检测方法,在路面病害检测方面也引入了深度学习技术,实现高效且精准的路面病害检测。如Jing等人[3]改进了U-Net的解码器和编码器,使模型能够提取出更加完整的裂缝。Kyslytsyna 等人[4]提出了一种带注意力机制的生成对抗网络方法,在无监督LⅠamas 数据集上取得了非常好的检测效果。Deng等人[5]提出了一种路面裂缝自动检测、分割的集成框架,首先YOLOv5 算法对图像的裂缝区域进行检测,然后运用Res-UNet算法对裂缝区域进行像素级别的精确分割。Chun 等人[6]在全卷积神经网络基础上通过半监督学习对路面损伤进行检测,最终证明该方法能够很好的分割路面裂缝。安学刚等人[7]改进了YOLOv4 网络,实现了无人机影像路面裂缝检测。杜鹃等人[8]改进了YOLOv7网络,增加了小目标检测层,引入K-means++重聚类先验框,并引入新的协调坐标卷积和损失函数,提出了P-ELAN结构的轻量化骨干网络,实现了复杂场景下的道路目标检测。李松等人[9]基于YOLOv8网络,提出了一种能够提取道路损伤图像全局特征信息和局部特征信息的BOT模块,引入CA注意力机制和C2fGhost模块,实现了高准确率检测。目前,目标检测算法主要是针对物体检测,更加适用于特征明显的检测目标,对于路面病害特征提取能力不足,没有充分考虑路面病害的具体特征,对于四种路面病害类型检测效果较差。

目前,路面病害检测主要存在以下问题:路面病害特征和背景环境特征具有相似性,检测算法容易出现误检现象;路面病害具有空间连续性和线性特征,检测模型容易将网状裂缝检测为多种其他类型病害;路面病害大小差异较大,检测算法容易出现漏检现象。因此,提高模型对路面病害的特征提取能力,提高对于四种路面病害的检测效果,降低误检、漏检现象变得尤为重要。

在实际研究中发现,路面病害的产生是一个缓慢的过程,对于路面病害检测的实时性要求不高。一般的路面病害检测是通过巡检车或无人机采集路面病害图片,再通过检测网络实现离线的路面病害检测。因此,考虑到实际的检测要求及应用,本文主要提升网络的检测精度,实现路面病害的高精度离线检测。

YOLOv8 目标检测算法是目前YOLO 系列的最新算法,其借鉴了YOLO 系列算法的一些优秀思想,取得了不错的检测效果。本文采用YOLOv8n 作为基本网络,针对路面病害检测准确率不高的问题进行改进。首先,构建CNX2f特征提取模块并引入主干网络,采用更大的卷积核提取路面病害特征,解决路面病害特征和背景环境特征易混淆问题;其次,引入重参数化结构RepConv和DBB模块,训练阶段融合多尺度特征,解决路面病害大小差异较大问题,推理阶段重参数化降低模型参数量提高检测速度;同时,结合RepConv和DBB结构构建RBB 重参数化模块引入检测头,并改进检测头结构为共享参数结构,解决YOLOv8网络检测头参数冗余问题,将多分支结构重参数化为5×5卷积取代两个3×3卷积,增大感受野提高特征提取能力;最后,引入SPPF_Avg模块,解决最大池化引起的信息丢失问题,提高颈部网络多尺度特征提取能力,提高模型的检测效果。

1 YOLOv8算法

YOLOv8 网络是在YOLO 系列网络基础上改进而来,YOLOv8 延用了YOLOv5 缩放系数方法,将模型分为n、s、m、l、x 五种大小,五种模型网络深度依次加深,检测精度提高,检测速度降低。其中YOLOv8n 是最小模型,其检测精度相对较低,但检测速度最快,训练难度最小,本文在YOLOv8n的基础上改进检测网络。

YOLOv8网络结构如图1所示,分为输入层、主干网络、颈部网络和检测头四部分。

图1 YOLOv8网络结构Fig.1 Network structure of YOLOv8

2 改进YOLOv8n算法

2.1 改进YOLOv8n网络结构

为了提高路面病害检测的检测精度,本文作出如下改进:首先,在模型主干网络引入CNX2f模块,由于7×7深度可分离卷积的引入扩大了特征提取的感受野,提高了特征间的关联性,更好地区分路面病害特征和背景环境特征;其次,在主干网络引入重参数化模块RepConv,并在颈部网络和Head处引入DBB模块,两个模块在训练阶段均使用多分支结构提高模型的训练效果,在推理阶段通过重参数化转换为单分支结构提高推理速度,解决网络对路面病害特征提取、融合能力不足导致的误检问题;同时,对网络的Head 采用共享参数结构,并引入新的重参数化模块RBB,解决头部参数量冗余问题并提高头部网络特征提取能力。最后,改进YOLOv8网络中SPPF 模块,构建双分支结构SPPF_Avg 模块,防止路面病害特征丢失,解决路面病害多尺度特征提取不足问题。改进后的YOLOv8n网络结构如图2所示。

图2 改进后的YOLOv8n网络结构Fig.2 Ⅰmproved YOLOv8n network architecture

2.2 引入CNX2f特征提取模块

近些年来Tranformer[10]给CV领域带来了巨大提升,引起了广泛关注,而ConvNeXt[11]网络借鉴了Tranformer的结构特点,构建了纯卷积神经网络,取得了非常好的检测效果,并且其网络结构简单、训练难度小。ConvNeXt网络采用CNX(convnext block)作为基本模块实现特征提取,其借鉴了自注意力机制结构,将检测网络中常用的3×3卷积替换为感受野更大更轻量的7×7深度可分离卷积,采用线性归一化取代批归一化并减少使用量,并将激活函数改进为SiLu激活函数。

考虑到路面病害特征和部分背景环境特征具有相似性的特点,采用更大的卷积核提取特征可以覆盖更大的感受野,从而捕捉到更多的上下文信息,使特征具有更好的区分度和可解释性,有效解决目标特征和背景特征易混淆问题。本文构建了CNX2f模块并引入YOLOv8网络取代C2f 特征提取模块,经过实验验证发现将CNX2f模块仅引入主干网络对模型提升最大,实验结果如表1所示,具体位置如图2所示。

表1 CNX2f检测结果Table 1 CNX2f test result

CNX2f 模块采用了spilt 结构,使用两个CNX 模块取代C2f 中的两个普通卷积C。CNX 模块通过1×1 的普通卷积降低通道数,减小了模型的参数量和计算量,并且7×7深度可分离卷积扩大了模型的感受野,提高了模型的检测效果,CNX2f模块如图3所示。

为了获得最佳的检测效果,将CNX2f 模块分别引入主干网络、颈部网络以及整个网络来获得最佳改进方案,检测结果如表1所示。

由表1可知,当CNX2f模块仅引入主干网络时对模型的检测效果提升最大,虽然参数量较原网络增大了0.22×106、计算量增加了0.2,但是mAP值提升了1.3个百分点。因此,在路面病害检测方面,将CNX2f引入YOLOv8主干网络给模型的检测效果带来了很大提升。

2.3 引入重参数化模块

多分支结构(inception net[12]等)可以更好地提取多尺度特征,其检测效果要优于单分支结构,但是由于其使用了多分支并行结构,导致计算量和参数量较大。重参数化模块对多分支结构和单分支结构进行了融合,在模型训练阶段采用多分支并行结构,更好地实现特征提取,得到更好的权重参数,而在推理阶段将多分支结构转换为单分支结构来更高效的完成检测任务。

在路面病害检测任务中,纵向裂缝、横向裂缝与网状裂缝特征具有相似性,容易出现误检现象,采用重参数多分支结构实现多尺度特征提取,可以有效解决裂缝类型误检问题,同时重参数化后又不会影响模型检测效率。本文在模型的主干网络引入RepConv[13]模块取代原网络中的普通卷积模块,提高主干网络的多尺度特征提取能力,更好的融合多尺度特征获取模型参数。将DBB[14]模块引入颈部网络末端,提高特征图的多尺度特征表达能力,有效缓解颈部网络上采样带来的多尺度信息丢失问题。RepConv和DBB引入位置如图2所示。

RepConv(Re-param Conv)模块是RepVGG 网络的基本模块,采用了卷积重参数化方法,在Train阶段采用BatchNorm、1×1 卷积和3×3 卷积的并行结构丰富多尺度信息,在Val 阶段通过卷积重参数化方法将多分支融合成单分支结构,重参数化模块通过一个3×3卷积实现高效高精度检测。RepConv结构如图4所示。

图4 RepConv模块Fig.4 RepConv module

在YOLOv8 算法中,推理阶段会自动将卷积层和BN 层融合,来达到加速推理的目的。卷积层公式如式(1)所示,BN层如式(2)所示,融合过程如式(3)所示:

其中,x为输入值,W为卷积模块权重,b为偏置,avg为输入均值,σ为输入方差,γ为BN 权重,β为权重,fuse为融合后的权重和偏差值。在模型转换过程中需要将各分支权重大小均转换为3×3大小,其中1×1卷积通过pad操作实现大小转换,最后将各个分支的权值和偏执分别求和作为单支路卷积的权重和偏执。

将RepConv 引入模型主干网络实现更好的特征提取,训练阶段和推理阶段模型的参数量和计算量如表2所示。

表2 RepConv参数量对比Table 2 RepConv parameter number comparison

如表2所示,尽管RepConv的引入增加了训练阶段的参数量和计算量,但在推理阶段的参数量和计算量要小于YOLOv8n 网络,并且平均检测精度提高了1 个百分点。综上所述,引入RepConv在不增加模型推理阶段参数量和计算量的同时提高了检测精度。

DBB(diverse branch block)重参数化模块采用分离分支结构,如图5所示。Train阶段通过分离分支结构提取多尺度特征,获得不同尺寸和复杂度的特征信息,提高特征表达。Val阶段结合不同尺寸和复杂度的分离分支来增加特征空间,提升单个卷积的表达能力,实现快速的模型推理。

图5 DBB模块Fig.5 DBB module

如图5所示,与RepConv不同DBB需要将1×1卷积和k×k卷积在同一分支上进行融合,将1×1卷积和平均池化在同一分支进行融合可以看作为1×1 卷积与k×k卷积的融合,其中k×k卷积的每个权重均为1/(k×k)。融合过程如式(4)所示:

其中,k和b代表融合后的权重和偏置,k1和b1代表1×1卷积的权重和偏置,kk和bk代表k×k卷积的权重和偏置。先将同一分支的模块按式(4)融合,再将不同分支模块的权重参数求和实现模块由多分支到单分支的转换。

为了提高颈部网络的多尺度特征表达能力,同时在推理阶段获得更快的推理速度,将DBB 模块引入YOLOv8的颈部网络,训练阶段和推理阶段模型的参数量和计算量如表3所示。

表3 DBB参数量对比Table 3 DBB parameter number comparison

如表3所示,尽管在颈部网络引入DBB模块导致训练阶段参数量增加了1.81×106,但在推理阶段参数量仅增加了0.77×106,并且检测精度提高了1.3个百分点,模型的检测效果得到了较大提升。

2.4 改进模型检测头

YOLOv8的检测头采用解耦头结构,共分为两个分支,一个分支用来计算分类损失,一个分支用来计算锚框损失,这两个分支分别由两个卷积块组成,这就带来了巨大的参数量和计算量。为了解决检测头参数量、计算量冗余问题,本文将检测头的两个检测分支改为共享参数结构,并引入了新的重参数化模块(RBB),提高头部网络的多尺度特征融合能力及特征提取能力。

RBB 重参数化模块借鉴了RepConv 和DBB 结构,融合了RepConv 和DBB 多分支结构和重参数化方案,采用了5分支结构并使用更大的卷积核实现特征提取,RBB结构如图6所示。为了提高网络的特征提取能力,在Train阶段分别用1×1卷积、3×3卷积、5×5卷积和最大池化提取多尺度特征,提高特征图的特征表达能力,在Val阶段转化为5×5卷积的单分支结构提高模型的推理速度。模型重参数化过程依然采用DBB和RepConv的重参数化方案,先融合串联结构,再融合多分支并联结构。

图6 RBB模块Fig.6 RBB module

将检测头结构改进为共享参数结构,再将RBB 模块引入检测头来实现多尺度特征提取,如图7所示。将原来的双分支结构共享参数化,组成更小更轻量的头部结构,首先经过1×1 卷积降低通道数减小计算量,再经过重参数化模块RBB 提取多尺度特征,最后经过卷积变成相应的通道数计算损失。

图7 改进的检测头部Fig.7 Ⅰmproved detection head

改进前后模型的参数量和计算量大小,如表4所示。

表4 RBB参数量对比Table 4 RBB parameter number comparison

如表4所示,采用共享参数结构后模型的参数量明显降低,并且RBB模块的引入提高了模型的检测精度,模型的参数量降低了0.41×106,平均检测精度提高了0.5个百分点。综上所述,本文的头部改进方案降低了模型的参数量并提高了检测效果。

2.5 改进SPPF模块

YOLOv8颈部网络采用SPPF结构来丰富特征图包含的特征性信息,SPPF 通过三个最大池化层提取不同尺度特征,再通过拼接操作实现特征融合。虽然SPPF能够很好地实现局部特征和全局特征的融合,但是由于其仅使用了最大池化操作提取特征可能会导致部分局部信息丢失。为解决部分特征信息丢失问题,缓解由于路面病害大小差异较大导致的漏检现象,实现更好的多尺度特征提取,提高特征图的丰富度,现将SPPF引入新的平均池化支路构建SPPF_Avg模块,如图8所示。

图8 SPPF_Avg模块Fig.8 SPPF_Avg module

如图8所示,SPPF_Avg模块可以分为两部分,一部分为SPPF分支,另一部分为AvgPool分支。通过1×1卷积降低通道数减小计算量,SPPF 分支通过最大池化来提取全局特征和局部特征并实现特征融合,AvgPool 分支通过平均池化来补偿SPPF 分支可能引起的特征丢失,最后将两个分支的特征图进行拼接操作实现特征融合,提高特征图的丰富度。具体计算流程如式(5)所示:

其中,Y1和Y2分别代表MaxPool 分支和AvgPool 分支的输出,M(1~3)代表经过1~3 个最大池化后的输出,A(1~3)代表经过1~3 个平均池化后的输出。引入SPPF_Avg模块能够更好地实现了多尺度特征提取和融合,提高特征图所包含信息的丰富度,以及模型检测效果。

3 实验及结果分析

3.1 实验环境及数据集

本实验平台的操作系统,如表5所示。

表5 实验环境Table 5 Experimental environment

本实验网络训练的超参数如表6所示,其中Patience代表训练过程中模型不再提升超过指定次数时停止训练。

表6 训练超参数Table 6 Training hyperparameter

本实验选用全球道路损伤检测挑战赛提供的GRDDC2022 公开数据集,从中选取出与国内路面环境相近的图片共13 866张作为本实验数据集,并将数据集按照8∶1∶1划分为训练集、测试集和验证集。其中路面病害共分为4 个类别:D00(纵向裂缝)、D10(横向裂缝)、D20(网状裂缝)、D40(坑洞)。

3.2 评估指标

本文选用参数量、计算量和平均精度均值mAP(mean average precision)作为评价指标,mAP具体计算如式(6)~(9)所示:

其中,TP 代表预测样本中将正样本正确预测为正样本的个数,FP 代表预测样本中将负样本错误预测为正样本的个数。AP 是对P-R曲线的积分,即曲线与横纵坐标所围成的面积,而mAP为各类预测对象精度的均值,mAP@0.5是ⅠoU阈值为0.5时的mAP。

3.3 本文算法检测结果

在本文所选路面病害数据集上分别对YOLOv8n网络和改进后的YOLOv8n 网络进行训练,然后分别用训练好的模型在验证集上进行验证。YOLOv8n算法和改进后的YOLOv8n 算法在测试集上的检测结果,如表7所示。

表7 算法改进前后对比Table 7 Comparison before and after algorithm improvement

由表7 可知,在训练阶段改进后的YOLOv8n 模型参数量较YOLOv8n增加了1.83×106,计算量增加了6.1,但在推理阶段参数量仅增加了0.59×106,计算量增加了2.3,并且改进后的模型对各类病害检测精度以及平均检测精度均得到了较大提升。其中,纵向裂缝的检测精度提高了0.5 个百分点,横向裂缝提高了1.2 个百分点,网状裂缝提高了1.2 个百分点,坑洞提升了8.1 个百分点,平均检测精度提升了2.8个百分点。综上所述,本文改进算法在实际检测应用中参数量和计算量上仅增加了0.59×106和2.3,但是模型的平均检测精度提高2.8 个百分点,尤其是针对坑洞小目标检测精度提升较大。模型改进前后在验证集上的mAP 曲线如图9(a)、(b)所示,在模型训练时mAP对比曲线如图9(c)所示。

图9 mAP对比图Fig.9 mAP comparison diagram

由图9(a)和(b)可知,改进后YOLOv8n 算法的mAP 曲线所围成面积均大于YOLOv8n,特别是在坑槽小目标检测方面提升巨大,较原算法提高了8.1 个百分点,整体平均mAP提高了2.8个百分点。由图9(c)可知改进后的模型在训练时mAP值位于YOLOv8n上方,说明改进后模型的检测效果得到了提升。

本文对训练完成后的YOLOv8n以及改进后算法从路面病害测试集中选取图片进行检测,检测结果如图10所示。

图10 检测结果对比Fig.10 Comparison of test results

如图10(a)所示,改进后的网络解决了YOLOv8n存在的漏检问题;如图(b)所示在对病害密集区域检测时,改进后的网络能够更好地区分病害类型并获得检测结果;如图(c)所示在路面颜色产生变化时,改进后的网络仍能检测出病害类型;如图(d)所示在面对坑槽小目标时,YOLOv8n漏检了坑洞小目标,并且将阴影误检为横向裂缝,而改进后的网络正确的检测到了坑槽并避免了误检情况;如图(e)所示在雨天视线模糊时,改进后的网络检测效果要优于YOLOv8n。综上所述,改进后的网络在测试集上的检测效果整体上要优于YOLOv8n。

3.4 消融实验

为了验证本文所提出各种改进方案对模型检测效果的提升,在YOLOv8n网络的基础上进行了消融实验,每一组实验都设置相同的超参数,采用相同的训练策略,实验结果如表8所示。

表8 消融实验结果Table 8 Ablation experimental results

表8中,“√”代表在YOLOv8n网络基础上引入了对应的改进方案,“×”代表未引入该改进方案。方案一代表仅引入CNX2f模块后的检测模型,方案二代表引入重参数化RepConv和DBB模块,方案三代表引入SPPF_Avg模块,方案四改进了检测头部作为本文的改进方案。

由表8可知,每一种优化方案的引入都提升了模型的检测效果,其中引入CNX2f 模块后模型的mAP 提高了1.3个百分点,说明CNX2f模块提升了主干网络的特征提取能力;引入重参数化RepConv 和DBB 模块后模型的mAP较方案一提高了0.5个百分点,较原网络提高了1.8 个百分点;引入SPPF_Avg 模块后模型的mAP 较方案二提高了0.7个百分点,较原网络提高了2.5个百分点,说明SPPF_Avg 模块能够更好地提取并融合多尺度特征,提高特征图的表达能力;最后,改进模型的检测头部,将头部改为共享参数结构并引入RBB 重参数化模块,改进后模型的mAP 较方案三提高了0.3 个百分点,较原网络提高了2.8个百分点;综上所述,方案四的检测效果最佳,模型精确率提高了2.6个百分点,召回率提高了3.0个百分点,mAP提高了2.8个百分点,证明了本文所改进算法对模型的检测性能有很大提升。

3.5 对比实验

为了进一步验证本文改进算法对路面病害检测的优越性,将本文算法与传统的目标检测算法进行对比试验,其中二阶段检测算法有Faster-RCNN[15]算法,一阶段检测算法有SSD[16]、YOLOv3[17]、YOLOv4[18]、YOLOv5s、YOLOX[19]、YOLOv7[20]、RTMDet[21]、PP-YOLOE[22]算法,实验结果如表9所示。

表9 对比实验结果Table 9 Comparison of experimental results

由表9 可知,本文改进算法提高了YOLOv8n 模型的检测精度,四种路面病害检测精度均得到了提升。本文改进算法的参数量和计算量小于除YOLOv8n 和YOLOv5n外的目标检测算法,与其他9种目标检测算法相比mAP分别提高了20.2、23.4、9.7、17.8、5.6、8.0、15.8、3.1、2.4个百分点。虽然参数量和计算量大于YOLOv5n和YOLOv8n,但在平均精度上分别提升了11.2和2.8个百分点。综上所述,通过将本文改进算法与传统算法对比,证明了本文改进算法在路面病害检测方面要优于目前常用的目标检测算法,mAP 值在所有算法中达到了最佳,在精度和参数量的综合考量方面较其他算法有明显优势,可以有效且高精度的实现路面病害检测,并且参数量和计算量较小完全可以部署在移动端或无人机设备。

4 结束语

为了解决路面病害特征和背景特征易混淆、不同类型病害容易误检、检测目标大小差异较大容易漏检、检测精度低等问题,提出了重参数化YOLOv8路面病害检测算法。首先构建CNX2f特征提取模块并引入主干网络,提高网络的特征提取能力,更好地区分路面病害特征和背景环境特征;引入RepConv 和DBB 重参数化模块使模型在训练阶段获得更好的权重和偏置,在推理阶段降低模型参数,有效解决路面病害多尺度特征提取能力差的问题,解决不同类型病害的误检问题;改进模型检测头部采用共享参数结构,并构建重参数化模块RBB引入检测头部,解决检测头部冗余问题,提高头部网络特征提取能力;最后构建SPPF_Avg 多尺度特征提取模块,提高网络的多尺度特征提取能力,提高特征表达,解决了病害尺度差异较大和部分特征丢失引起的漏检现象。实验结果表明,改进后YOLOv8n 算法在路面病害数据集上mAP提高了2.8个百分点,相比传统的目标检测算法取得了较大提升。综上所述,本文改进算法在面对背景复杂和病害大小差异较大的检测任务具有一定的优越性,促进了路面病害检测朝着智能化和无人化的方向发展。

猜你喜欢

特征提取卷积病害
早春养羊需防六大病害
小麦常见三种病害咋防治
基于3D-Winograd的快速卷积算法设计及FPGA实现
葡萄病害周年防治历
果树休眠期咋防病害
从滤波器理解卷积
基于Daubechies(dbN)的飞行器音频特征提取
基于傅里叶域卷积表示的目标跟踪算法
Bagging RCSP脑电特征提取算法
基于MED和循环域解调的多故障特征提取