APP下载

融合CBAM-YOLOv7模型的路面缺陷智能检测方法研究

2023-12-12张艳君郭安辉

重庆理工大学学报(自然科学) 2023年11期
关键词:损失卷积精度

张艳君,沈 平,郭安辉,高 博

(中交第二公路勘察设计研究院有限公司, 武汉 430056)

0 引言

随着国民经济和基础建设的快速发展,我国公路在建设里程和服役里程上正呈现逐年增加的趋势。据统计,截至2021年,全国公路总里程已达到528.07万千米,而需要养护的服役公路里程达到525.16万千米,占公路总里程的99.4%[1]。目前,我国高速公路的总里程已经跃居世界第一位,但大部分公路在完工不久后便出现了各种形式的早期破坏,其实际使用寿命远达不到设计所要求的使用寿命。“十四五”现代综合交通运输体系发展规划明确指出要强化交通运输领域关键核心技术研发,同时综合利用科技手段,开展公路风险动态监测预警和分析研判[2]。

随着摄像设备和计算机算力的提高,路面缺陷检测正由传统人力检测朝着自动化、智能化的方向发展。目前,基于深度学习的图像处理方法是道路缺陷检测领域的研究热点,首先利用安装在移动设备上的高速相机对道路表面的图像信息进行实时采集,再通过图像处理系统对数据进行分析处理。有较多学者开展了基于深度学习的目标检测研究,深度学习具有成本低、鲁棒性高以及检测速度快等优点[3]。但现有方法对于路面缺陷检测存在可信度不足、缺陷检测精度不高以及工作效率低等问题。王丽苹等[4]利用基于AlexNet网络架构的卷积神经网络(convolutional neural networks,CNN)来进行混凝土路面裂缝检测,通过对像素矩阵进行卷积、池化、激活和全连接操作来输出分类检测结果,但该架构增加了训练拟合的次数和时间,减缓了收敛速度,降低了模型的工作效率。史梦圆等[5]利用改进的U-Net算法进行路面裂缝检测,该方法利用连续卷积和池化来提取特征信息,并通过反卷积进行图像恢复,能够提高边界信息的预测精度,但在多尺度特征图的信息提取方面存在较大缺陷。为解决路面细小缺陷检测难点问题,王丹[6]提出了一种多尺度全局全卷积神经网络算法,该算法构建了一种多尺度空洞卷积结构,能够在维持原分辨率的基础上增强细小特征感知,但该方法在检测速度方面仍有较大进步空间。基于上述研究现状,从检测速度和检测精度两方面深入研究了基于深度学习驱动的路面缺陷检测技术。

缺陷检测是机器视觉中目标检测领域重要的研究方向之一,该工作的主要任务是根据用户提出的信息来找出图片中相应的目标,并对目标进行类别和位置分析。随着用户对缺陷检测速度和精度要求的提高,基于深度学习的缺陷检测方法也在迅速发展。卷积神经网络作为深度学习的代表,具有参数数量少、检测效率高、防滑性强以及鲁棒性高等方面的优势,逐步在目标检测领域中引起广泛关注[7]。2014年Girshick等[8]提出了R-CNN(Region-CNN)算法,正式将CNN引入目标检测领域。R-CNN系列算法首先根据候选区域算法获得目标样本候选框,之后通过卷积神经网络进行样本候选框的筛选分类,因此这一系列模型被称为two-stage算法[9]。但随着目标检测要求的提高,two-stage算法难以满足实时性要求,因此以YOLO(you only look once)算法[10]为代表的one-stage算法应运而生。YOLO网络首先将输入图像分割为M×M个局部区域,每个区域检测中心点位于本区域内的目标物体,而每个局部区域会预测出N个锚框,因此会产生M×M×N个预测框,最后对每个框采取置信度评估值来评价预测准确度[11]。YOLO模型自提出之后就被广泛应用于目标检测任务中,YOLOv7模型作为当前该系列中集成度最高模型,在网络结构、特征提取方法以及训练方式等多方面优于其他模型。该模型首先在网络结构中引入重参数化操作来减少模型推理时间,其次提出了高效聚合模块来强化特征提取能力,最后在训练过程中添加辅助训练模块来提升模型精度[12]。在路面缺陷检测任务中,模型在进行特征提取的过程中会产生较多冗余特征,而抑制冗余特征、关注重要特征是提高模型精度的重要举措,卷积注意力模块(convolutional block attention module,CBAM)作为综合性的注意力模块能够在通道和空间两个维度加强重要特征的权重[13]。为此,提出了基于CBAM-YOLOv7模型的路面缺陷检测方法。经实验验证,该方法在道路缺陷检测任务中表现出的速度和精度性能均优于其他目标检测方法。

1 网络模型及训练方式

1.1 CBAM-YOLOv7模型基本原理

CBAM-YOLOv7模型是在YOLOv7模型中融入CBAM注意力,以此来提升模型精度的。YOLOv7模型主要由输入层、主干网络层、特征融合层、输出层组成。其中,输入层负责将输入的原始三通道图像尺寸定义成640×640;主干网络层通过深度卷积来提取不同尺度的特征信息;而特征融合层负责将不同尺度的特征图像信息进行深度融合;输出层将预测出的锚框坐标、种类以及置信度进行非极大值抑制后输出。YOLOv7模型中含有多个高度集成的卷积运算模块,分别是ELAN模块、MP模块、SPPCSPC模块,这些集成结构在优化模型结构、提升特征提取能力方面具有突出贡献。网络结构如图1所示。

其中,卷积模块均包括卷积、归一化、激活操作,是对图像进行特征提取的基本工具,并通过改变卷积核大小及卷积步长来实现多尺度特征提取。ELAN模块是一个网络聚合结构,它通过改变特征提取的路径来丰富主干层提取到的特征信息,并提高模型的鲁棒性。MP模块是实现下采样的结构,它通过最大池化和下采样卷积的并联操作来实现对特征图的深度下采样。SPPCSPC模块的作用是增大感受野,提升算法的泛化性能。该模块将多通道特征图分成2部分:一部分采用多尺寸最大池化操作来获得不同的感受野;另一部分采用常规卷积操作提取特征。该模块在提升模型精度的基础上能最大程度降低计算量,是提升模型效率的重要结构。

图1 集成化卷积结构图

此外,针对特征提取过程中出现的特征冗余问题,在原始模型的基础上融合了CBAM注意力模块,旨在通过特征加权来提升模型精度。CBAM作为综合性的注意力机制,能够融合通道注意力和空间注意力的优势,在抑制一般特征干扰的基础上着重关注部分特征通道和空间区域,并通过最大池化和平均池化的组合使用来丰富特征信息。其模型结构如图2所示。

图2 CBAM结构示意图

上述模块与多尺寸卷积模块的有效组合就构成了CBAM-YOLOv7模型的基本结构,网络结构如图3所示。

图3 CBAM-YOLOv7模型网络架构图

YOLOv7模型在结构上的创新使得该模型在分类精度和推理速度上都取得了较大进步。同时,YOLOv7模型在运算过程中提出了重参数化操作,该操作在训练过程中将一个模块细化为多个模块分支,从而丰富了训练过程获取的信息,而在模型推理的过程中将多个分支模块集成为等价模块,从而在丰富训练过程的同时减少模型的推理时间。CBAM-YOLOv7模型首先对输入图像进行尺寸重定义,然后利用主干网络层来提取输入图像的特征信息,对于主干层输出的特征采用多个CBAM模块进行重点特征信息加权,之后将提取出的深层特征和浅层特征进行注意力加权,并输入特征融合层进行信息融合,最后由输出层输出预测信息,包括预测框的位置、预测种类以及置信度,从而完成整个推理过程。

1.2 损失函数

神经网络模型主要包括训练和推理过程,而YOLOv7模型的训练效果主要受到损失函数的影响。损失函数是计算预测信息与目标信息距离的工具,预测信息越接近目标信息,损失函数值就越小。YOLOv7的损失函数可以分为目标置信度损失、坐标损失和分类损失。其中,前两者采用带log的二值交叉熵损失函数(BCE with logits loss),后者采用CIoU损失函数。该模型使用的交叉熵损失函数相较于之前的损失函数,加入了sigmoid函数,能够起到稳定数值、加速模型收敛的效果,原理如下:

(1)

li=-w[yi·log(σ(xi))+

(1-yi)·log(1-σ(xi))]

(2)

式中:I表示目标样本的数量;li表示第i个样本对应的loss值;xi表示第i个样本的预测值;yi表示第i个样本的真实值;σ表示sigmoid函数。坐标损失是影响模型预测精度的重要指标,CIoU损失函数能够在训练过程中考虑重叠面积、中心点距离以及长宽比,具有提高模型精度的效果,原理如下:

(3)

(4)

(5)

式中:IoU表示真实框与预测框之间的交并比;Agt与A分别表示真实框与预测框的中心坐标;ρ表示计算两点之间的欧氏距离;c表示能够包含真实框与预测框的最小线框的对角线长度;w、h分别表示框的宽和高。CIoU计算示意图如图4所示。

图4 CIoU计算示意图

1.3 模型性能评价方法

在目标检测领域中,通常需要从预测类别的分类精度、预测框的定位精度以及模型的运行速度方面去评价模型的综合性能。上述模型精度指标都是基于统计学指标来计算的,而在模型推理过程中可以基于统计学将推理结果分为4个类别,即正样本预测正确(TP)、正样本预测错误(TN)、负样本预测正确(FP)和负样本预测错误(FN)。预测精确度P(Precision)和召回率R(Recall) 可以对上述分类结果进行综合评价,计算原理如下:

(6)

(7)

在实验过程中,采用F1(F-Measure)值、mAP(mean average precision)值以及FPS(frame per second)对YOLOv7模型进行综合评价。F1值是衡量分类模型性能的重要指标,表示精度和召回率的调和平均数。mAP值是基于不同IoU阈值对不同召回率下的预测精度进行计算,是评价定位精度和预测精度的综合指标。FPS值表示在同一运行环境下模型每秒能处理的图像帧数,是评价模型速度的重要指标。

(8)

(9)

式中:m表示分类的类别数;n表示单个类别中预测出的目标数量;P(r)表示召回率为r时的精确度值。

2 实验方案

2.1 路面缺陷数据集建立

实验采用RDD2022道路缺陷数据集中的China_Drone数据。该数据集由DJI M600 Pro无人机采集于南京东极大道[14],由2401张512×512像素的道路缺陷图组成,每张图像都包含道路缺陷目标。数据采集设备及数据示例如图5所示。

图5 数据采集设备及数据示例图

实验所用数据集包含纵向裂纹、横向裂纹、复杂裂纹、坑洞以及修补块5种类型的道路缺陷,其数量分布如表1所示。该数据集具有环境复杂、道路类别多变、缺陷类别不均衡等特点,因此对验证YOLOv7模型的泛化性能和适用范围具有重要的参考作用。实验将数据集按照6∶2∶2的比例划分为训练集、验证集和测试集。

表1 数据集内缺陷数据分布情况

2.2 实验环境配置

在验证实验中,设置了3组对比实验,分别利用CBAM-YOLOv7、YOLOv7、YOLOv6、Faster-RCNN 4种目标检测模型对China_Drone数据集进行缺陷检测。4组实验所采用的硬件设备和软件环境都是一样的,都是基于Windows操作系统和GPU进行运算的,具体参数如表2所示。

表2 实验配置参数

2.3 实验过程

为保证各个模型在训练过程中的收敛效果,所有模型均使用官方提供的预训练权重。经过多次实验发现模型在80次训练时损失函数均已完全收敛,其中CBAM-YOLOv7模型的训练损失曲线如图6所示,因此所有模型的训练迭代次数均设置为80次。

图6 CBAM-YOLO模型训练损失曲线

同时,在综合考量运算设备显存、内存以及训练效果之后,将单批训练量设置为8,线程数设置为4。此外,一个性能良好的目标检测模型需要大量且复杂的数据作为训练基础,而YOLOv7模型能够对已有数据进行增强、增广操作,通过缩放、旋转、拼接、透视、马赛克等方法实现训练图像的复杂化,从而提升模型的鲁棒性和泛化性能。在模型参数更新的过程中,采用随机梯度下降算法(stochastic gradient descent,SGD),SGD的优点在于每次更新模型参数只需要计算单批样本的梯度,能够极大地提升训练速度。同时为了防止模型出现过拟合现象,该模型采用权值衰减来平衡模型复杂度与损失函数的关系。上述过程通过迭代实现损失函数的快速收敛,从而获得性能良好的道路缺陷检测模型。模型在网络训练的准备过程中,首先根据数据特点配置网络(配置参数如表2所示),然后将带有缺陷标注的图片重新定义到固定尺寸,最后通过模型的数据增强模块来增加训练数据的多样性。需要说明的是,在训练过程中,模型需要根据训练效果不断更新权重参数,具体可以分为前向传播、损失计算、反向传播、参数更新、迭代训练、学习率调整和模型保存7个步骤,训练过程如图7所示。

图7 训练流程示意图

3 实验结果分析

利用训练好的实验模型对测试集中的道路图像进行缺陷检测,结果显示各个模型对缺陷道路图像具有不同的检测效果,其中大部分缺陷均能被检测出来,但在置信分数、小目标检测、定位框准确度等方面表现出不同的性能。以图8中的道路图像为例,对4种实验模型进行对比分析,3种对比模型存在检测框置信分数低、小目标检测不准、预测框与实际缺陷匹配度不高等问题。其中,Faster-RCNN和YOLOv6-v7模型出现较为明显的缺陷漏检、误检问题;相比之下,CBAM-YOLOv7在上述问题上表现出的性能较优,具有最好的观测效果。

最后分别对训练好的Faster-RCNN、YOLOv6、YOLOv7、CBAM-YOLOv7模型进行对比分析,并采用mAP值、F1值、FPS值对模型性能进行定量分析,结果如表3所示。

图8 典型样本上不同模型的表现效果

表3 4种模型测试效果

Faster-RCNN作为目标检测领域中two-stage系列算法的代表,由于两阶段网络结构的局限性,该模型在推理速度上具有很差的效果,难以实现实时检测的标准,同时训练过程中通过超参数限定了正负样本数量,使得模型在预测精度方面存在较大局限性。而在one-stage系列算法中,YOLOv6与YOLOv7具有相似的网络结构和训练方式,且YOLOv7作为前者的改进版本,通过高效聚合网络、重参数化思想以及动态标签分配策略等方式来提高模型的预测精度和运行速度。而CBAM-YOLOv7作为YOLOv7的提升版本,能在相同的运行速度上大幅提升模型精度。从表3的数值对比中可以看出CBAM-YOLOv7模型在mAP值、F1值两项精度指标中均优于其他模型,而在FPS值指标上与原始YOLOv7模型几乎相同,因此CBAM-YOLOv7模型在实现精确、快速的道路缺陷检测任务中具有较大优势。

4 结论

针对传统目标检测模型存在的运行速度与检测精度不能兼顾的问题,YOLOv7模型分别从模型结构、运算方式和训练流程方面进行改进优化。在模型结构方面,该模型采用高效聚合网络ELAN来提高深层网络的特征提取能力,该结构能够通过改变梯度复杂度的方式来提高网络的学习能力。在运算方式方面,该模型采用重参数化的思想,能够在丰富训练过程的基础上减少模型推理过程的数据量,从而提升运行速度。在训练流程方面,该模型提供辅助训练模块来优化标签分配策略,从而提升模型分类精度。对YOLOv7模型提出改进,在保证模型推理速度基本不变的基础上,通过融合综合性能良好的CBAM注意力来提升模型的精度。

将CBAM-YOLOv7模型应用到复杂路面缺陷检测任务中,对比该模型与Faster-RCNN、YOLOv6、YOLOv7模型的检测结果,并采用mAP值、F1值和FPS值进行定量分析,结果显示CBAM-YOLOv7在观测效果和数值对比层面均具有最好的性能,因此应用该模型进行复杂路面的实时缺陷检测具有较大优势。

猜你喜欢

损失卷积精度
基于3D-Winograd的快速卷积算法设计及FPGA实现
胖胖损失了多少元
从滤波器理解卷积
玉米抽穗前倒伏怎么办?怎么减少损失?
基于DSPIC33F微处理器的采集精度的提高
基于傅里叶域卷积表示的目标跟踪算法
GPS/GLONASS/BDS组合PPP精度分析
一般自由碰撞的最大动能损失
损失
改进的Goldschmidt双精度浮点除法器