基于YOLOv5s算法的路况危险检测算法

快速阅读

这篇论文主要提出了一种改进的YOLOv5s模型(ROD-YOLOv5s),用于提升路况危险检测的精度和鲁棒性。具体而言,作者在原始YOLOv5s模型的基础上进行了三方面关键改进:
网络结构优化:在Backbone部分引入更深的残差结构和SE(Squeeze-and-Excitation)模块,通过通道注意力机制增强特征提取能力;

多尺度特征融合:在Neck部分采用金字塔注意力网络(PAN)和CBAM(Convolutional Block Attention Module)模块,强化多尺度特征的表达能力;

损失函数改进:使用CIoU(Complete Intersection over Union)损失函数替代传统IoU损失,通过同时优化重叠区域、中心点距离和宽高比提升定位精度。

实验在PASCAL VOC数据集上验证表明,改进后的ROD-YOLOv5s模型实现了94%的精确率、91.5%的召回率和94.8%的mAP,显著优于原始YOLOv5s及其他主流模型(如YOLOv3/YOLOv4/SSD),并在远距离小目标、运动模糊及遮挡等复杂路况场景中表现出更强的鲁棒性,同时保持58 FPS的实时检测速度。

基于改进YOLOv5s算法的路况危险检测算法

摘要:为了提高道路安全意识,减少事故风险,本项目提出了一种基于改进YOLOv5s算法的路况危险检测算法。改进的YOLOv5s模型即ROD-YOLOv5s。本项目在改进过程中,在原来的YOLOv5s模型基础上,首先引入了更深的网络结构和压缩和激励网络模块(SE模块)来增强特征的提取能力;其次,模型使用金字塔注意力网络(PAN)来进一步强化特征的多尺度表达;最后通过使用完整的交并比损失函数(CIoU损失函数)代替传统的IoU损失函数提高了模型的定位精度和泛化能力。所提模型在PASCAL VOC数据集上进行了验证实验,发现ROD-YOLOv5s模型准确率为94%,召回率为91.5%,平均精度均值为94.8%,ROD-YOLOv5s模型与其他算法模型相比在各项指标上均有很大优势,具有很强的鲁棒性。

关键词:路况检测、改进YOLOv5s、SE模块、金字塔注意力网络、CIoU损失函数

0 引言

随着智能手机技术的飞速发展与普及,人类社会日益融入一个高度依赖数字通讯与即时信息获取的时代。智能手机的多功能性极大地便利了人们的日常生活,但同时也带来了一系列安全隐患,尤其是在交通安全领域。行人在移动过程中因使用手机而导致的注意力分散问题,已成为现代社会的一个突出问题。这种分散注意力的行为不仅增加了行人自身遭遇事故的风险,也对其他道路使用者的安全构成了威胁。根据世界卫生组织(WHO)的报告,全球每年约有135万人死于交通事故,其中因分心驾驶导致的事故占比高达22%。在中国,随着智能手机的普及率超过60%,因使用手机导致的交通事故数量也在逐年上升,特别是在城市地区,这一问题尤为严重[1]。

在目标检测领域,YOLO(You Only Look Once)系列模型因其卓越的速度和准确性而受到广泛关注。自2016年YOLOv1模型首次被提出以来,YOLO系列模型经历了多次迭代和改进,每一次更新都在目标检测的准确性、速度和易用性方面取得了显著进步。YOLOv5作为该系列的最新成员,由Ultralytics团队开发,它在前代模型的基础上进行了多项改进,以适应实时目标检测的需求。YOLOv5s模型作为YOLOv5的轻量级版本,以其较小的模型大小和较快的推理速度,在资源受限的设备上具有广泛的应用前景。

然而,尽管YOLOv5s模型在多个基准测试中展现出卓越的性能,但在实际应用中,尤其是在路况危险检测领域,模型仍面临诸多挑战。路况危险检测需要模型能够准确识别各种交通标志、障碍物和异常情况,这些目标可能因为距离、遮挡、光照条件等因素而难以检测。此外,交通环境的复杂性和多变性要求模型具备更高的鲁棒性和泛化能力。

针对上述挑战,本项目提出了一种基于改进YOLOv5s算法的路况危险检测算法,即ROD-YOLOv5s模型。本研究在YOLOv5模型的基础上,引入了更深的网络结构和压缩和激励网络模块(SE模块)来增强特征的提取能力;其次,模型使用金字塔注意力网络(PAN)来进一步强化特征的多尺度表达;最后通过使用完整的交并比损失函数(CIoU损失函数)代替传统的IoU损失函数提高了模型的定位精度和泛化能力。本研究的目标是提高路况危险检测的准确性和鲁棒性,减少交通事故,保障道路安全。

1 YOLOv5s算法

在近年来的目标检测领域,YOLO(You Only Look Once)系列模型因其卓越的速度和准确性而受到广泛关注。YOLOv5s作为该系列的最新成员,由Ultralytics团队开发,它在前代模型的基础上进行了多项改进,以适应实时目标检测的需求。本项目将详细介绍YOLOv5s模型的结构、关键特性以及损失函数等核心要素。

YOLOv5s模型的结构可以分为四个主要部分:输入端处理、Backbone特征提取、Neck特征融合和Prediction预测输出。输入端通过Mosaic数据增强技术提升模型对样本多样性的适应能力,同时采用自适应锚框计算和自适应图片缩放技术,以优化模型的检测性能。Backbone部分采用CSPDarknet53作为主干网络,该网络结构通过Focus结构和CSP结构的结合,有效提取图像特征。Neck部分则采用FPN(特征金字塔网络)和PAN(金字塔注意力网络)结构,增强了模型对不同尺度目标的检测能力。最后,Prediction部分采用GIoU Loss作为损失函数,进一步提升了模型的预测精度。

在损失函数的设计上,YOLOv5s采用了分类损失、目标性损失和位置损失的加权和,以优化模型的预测性能。具体地,分类损失和目标性损失采用BCE损失函数,而位置损失则采用CIoU Loss,这是一种改进的IoU损失函数,能够更准确地处理边界框的回归问题。此外,YOLOv5还引入了自适应图片缩放技术,在测试阶段减少填充像素,从而提高推理速度。YOLOv5s的回归函数如下所示:

\begin{align*} b_x&=\left(2\cdot\sigma\left(t_x\right)-0.5\right)+c_x \\ b_y&=\left(2\cdot\sigma\left(t_y\right)-0.5\right)+c_y \\ b_w&=a_w\cdot\left(2\cdot\sigma\left(t_w\right)\right)^2 \\ b_h&=a_h\cdot\left(2\cdot\sigma\left(t_h\right)\right)^2 \end{align*}

其中,awa_waha_h 分别代表锚框的宽度和高度,cxc_xcyc_y 代表网格的坐标,σ\sigma 代表Sigmoid函数。总体损失函数汇总为:

\begin{align*} Loss=\lambda_1 L_{cls}+\lambda_2 L_{obj}+\lambda_3 L_{loc} \end{align*}

其中,λ1\lambda_1λ2\lambda_2λ3\lambda_3 是损失函数的权重。

YOLOv5s的关键特性之一是其速度和准确性的平衡。它能够在保持高准确率的同时实现快速的推理速度,适合实时目标检测任务。模型的泛化能力强,能够在多种不同的数据集和场景中保持稳定的性能。YOLOv5s还具有较好的可扩展性,可以通过调整模型的规模来适应不同的计算资源和性能需求。

但是对于在特定方面的应用,单纯对于模型训练参数的调整是不足以满足要求的。本项目要求YOLOv5s算法在干扰更多的环境下对目标快速进行识别。同时减轻该算法对硬件带来的负担并保持足够的AP值。并且增强算法对小目标和被截断目标的识别能力。同时考虑到在路面上的应用场景,本项目还应该确保算法可以有效的识别运动中的物体(或者是由于运动而造成模糊的物体)。

2 基于改进YOLOv5s模型ROD-YOLOv5s的路况危险检测算法

YOLOv5s模型作为YOLO系列的最新成员,已经在多个基准测试中展现出卓越的性能。然而,为了适应更加复杂和多变的实际应用场景,对模型进行进一步的优化和改进是必要的。

2.1 改进的Backbone结构

在目标检测模型的架构中,Backbone网络扮演着至关重要的角色,它负责从输入图像中提取丰富的特征表示。这些特征随后被用于目标的定位和分类。一个高效的Backbone网络不仅能够捕捉到图像的高层语义信息,还能够保留足够的空间细节,这对于小目标的检测尤为重要。在原有的C3基础上,引入更深的网络结构,如使用更深的残差网络替换部分层,以增强特征提取能力。同时,引入Squeeze-and-Excitation(SE) [5]{}^{[5]} 模块来增强特征的表示能力。SE模块通过显式地建模通道间的相互依赖关系,并重新校准特征图的通道权重,实现了对重要特征的聚焦。引入SE模块后,mAP进一步增加到42.1%。这表明更深的网络结构和SE模块有效地增强了模型的特征提取和表示能力。

SE公式块:

zc=σ(1H×Wh=1Hw=1Wzc,h,w),sc=σ(1Cc=1Czc),SE(zc,h,w)=sczc,h,w,\begin{gathered} z_c=\sigma\left(\frac{1}{H\times W}\sum_{h=1}^H\sum_{w=1}^W z_{c, h, w}\right), \\ s_c=\sigma\left(\frac{1}{C}\sum_{c=1}^C z_c\right), \\ SE\left(z_{c, h, w}\right)=s_c\cdot z_{c, h, w}, \end{gathered}

其中,zc,h,wz_{c, h, w} 表示特征图在通道c、位置(h,w)的响应,σ\sigma 表示Sigmoid激活函数,H×WH\times W 表示特征图的空间维度,C表示通道数。

并且,在C3的输出层后,使用改进的空间金字塔池化(Spatial Pyramid Pooling with Focus, SPPF)模块来进一步提取多尺度特征。SPPF模块:

SPPF(f)=Concat(f,maxpool1(f),,maxpoolk(f)),\operatorname{SPPF}(f)=\text{Concat}\left(f,\max\text{pool}_1(f),\ldots,\text{maxpool}_k(f)\right),

其中,f表示输入特征,max池化表示不同尺度的最大池化操作。

2.2 改进的Neck结构

Neck结构在目标检测模型中起着特征融合的关键作用。在YOLOv5s模型中,对Neck结构进行了改进,以加强特征的融合和多尺度表达。在特征金字塔网络(FPN)的基础上,引入注意力机制来加强特征的融合。同时,使用金字塔注意力网络(PAN)来进一步强化特征的多尺度表达 [6]{}^{[6]}。这些改进使得模型能够更有效地处理不同尺度的目标,提高了检测的准确性。FPN公式:

\begin{align*} P2&=\text{上采样}(P3)+P2, \\ P3&=\text{上采样}(P4)+P3, \\ P4&=\text{上采样}(P5)+P4, \end{align*}

其中,P2,P3,P4,P5分别表示不同尺度的特征图。PAN公式:

\begin{align*} P2'&=\text{自顶向下路径}(P3)+P2, \\ P3'&=\text{自顶向下路径}(P4)+P3, \\ P4'&=\text{自顶向下路径}(P5)+P4, \end{align*}

其中,自顶向下路径表示从高层到低层的特征传递和融合。在Neck结构中,同时引入Convolutional Block Attention Module(CBAM)来增强模型对关键特征的关注。CBAM公式:

\begin{align*} F_c&=\text{通道注意力}(F), \\ F_s&=\text{空间注意力}(F_c), \end{align*}

其中,F表示输入特征图,FcF_{c}FsF_{s} 分别表示经过通道注意力和空间注意力后的特征图。

如此改良后,模型在多尺度目标检测任务中的表现得到了显著提升。改进后的Neck结构使得模型的准确率从82.3%提高到了85.6%。此外,使用金字塔注意力网络(PAN)进一步优化了特征的多尺度表达,使得模型在小目标检测上的准确率提高了5个百分点。

2.3 损失函数的改进

损失函数是目标检测模型训练过程中的关键组成部分,它直接影响模型的预测性能。在YOLOv5s模型中,对损失函数进行了改进,以优化边界框的回归。通过使用CIoU Loss代替传统的IoU损失函数来优化边界框的回归,该损失函数综合考虑了重叠区域、中心点距离和宽高比,提高了模型的定位精度和泛化能力。其公式如下:

\begin{align*} CIoU\left(B, B_{gt}\right)&=1-IoU\left(B, B_{gt}\right)+\frac{\rho^2\left(B, B_{gt}\right)}{\Delta A} \\ &+\frac{4}{\pi^2}\left(\frac{\rho\left(B, B_{gt}\right)}{W_{gt}\cdot H_{gt}}\right)^2 \end{align*}

其中,B和 BgtB_{gt} 分别表示预测框和真实框,IoU表示交并比,rho表示中心点距离,A\triangle A 表示预测框和真实框面积之差,WgtW_{gt}HgtH_{gt} 分别表示真实框的宽和高 [7]{}^{[7]}

应用CIoU Loss后,在COCO数据集上的定位精度(以IoU阈值为0.5时的准确率衡量)从76.4%提高到了79.2%。此外,模型在处理不同形状和大小的目标时表现出更好的泛化能力,这在复杂场景下的路障和路边提示信息识别任务中尤为明显。

通过上述改良,YOLOv5模型在复杂环境中对路障和路边提示信息的识别能力得到了显著提升。这些改进不仅增强了模型的特征提取能力,还通过优化损失函数提高了模型的定位精度和泛化能力。未来的工作将集中在进一步优化模型结构和训练策略,以适应更加多样化和复杂的实际应用场景。

3 实验分析

3.1 实验运行平台与数据集

本项目的实验平台基于高性能的计算系统构建,以确保模型训练和测试的高效性。具体配置包括:操作系统为Windows 10专业版;处理器为Intel Core i7-8700K,具有6核12线程,基础频率为3.7GHz,最高可睿频至4.7GHz;内存为16GB DDR4 2400MHz;显卡为NVIDIA GeForce GTX 1080 Ti,拥有11GB GDDR5X显存;固态硬盘为512GB NVMe SSD,确保数据读写的高速性。所有实验均在PyTorch深度学习框架下进行,CUDA版本为10.2,cuDNN版本为7.6.5。该平台配置为模型的训练和验证提供了强大的计算支持。

本项目在训练和检验过程中所用到的数据集为PASCAL VOC数据集。PASCAL VOC数据集是一个广泛用于计算机视觉研究的数据集,包含了20个类别的物体,总共有9963张训练图像和9144张验证图像。数据集中的图像经过了精确的标注,包括物体的边界框和类别标签,为模型的训练和评估提供了可靠的基础。

3.2 实验结果分析

为评估ROD-YOLOv5s模型在目标检测任务中的性能,本节详细介绍了不同实验设置下的模型表现。通过消融实验、对比实验以及在复杂场景中的测试,重点考察了模型在小目标检测方面的优势,并对不同改进模块的效果进行了深入分析。

(1) 消融实验

消融实验的主要目的是验证各个改进模块对整体模型性能的影响。依次加入SE模块、改进的SPPF(空间金字塔池化)模块,以及CBAM(卷积块注意力模块)模块,来观察其对检测精度、召回率、推理速度等方面的提升效果。实验中使用TT100K数据集,包含7962张图像,其中5289张用于训练,2673张用于测试。

表1、2展示了不同消融实验的结果:

表1 消融实验设置

实验编号 Backbone模块 Neck模块 Attention模块 CIoU损失函数
1 × × × ×
2 √(引入SE模块) × × ×
3 √(引入SPPF改进) × ×
4 √(CBAM模块) ×
5 √(CIoU损失)

表2 消融实验结果

实验编号 精确率(%) 召回率(%) mAP(%) FPS
1 91.2 87.0 91.0 72
2 92.0 88.5 92.0 69
3 92.8 89.7 93.5 65
4 93.2 90.1 94.0 60
5 94.0 91.5 94.8 58

实验1为原始YOLOv5s模型的基准实验,可以看出其精确率为91.2%,mAP值为91.0%,而FPS达到了72,证明了YOLOv5s模型的轻量化特性。随着模块逐步引入,实验2中加入了SE模块,这显著提高了精确率和mAP,特别是小目标的特征提取能力增强,召回率提高到88.5%,表明模型对小目标的定位能力有所改善。

在实验3中,通过引入改进的SPPF模块,模型对多尺度特征的提取能力进一步增强,使得召回率达到了89.7%,mAP也增加至93.5%。尽管推理速度有所下降,但整体性能的提升尤为明显。实验4中进一步加入CBAM注意力模块,注意力机制使得模型在复杂背景下能够更准确地捕捉重要特征,精确率提升至93.2%。

最终,实验5中使用了CIoU损失函数,对目标的边界框回归进行了更精细的优化。相比传统的IoU损失,CIoU在考虑中心点距离的同时,增强了对目标形状和位置关系的刻画。通过该优化,精确率和召回率分别提升至94.0%和91.5%,mAP达到了94.8%,说明ROD-YOLOv5s模型在检测性能上取得了显著进步。尽管FPS有所下降至58,但仍保持了较高的推理速度,适合实时检测任务。

(2) 对比实验

为了更全面地评估所提出的改进模型的性能,将改进的YOLOv5s与其他几种流行的检测算法进行了对比实验,包括YOLOv3、YOLOv4、SSD以及YOLOv5的其他变体(如YOLOv5m、YOLOv5x)。实验采用相同的数据集和测试集进行评估,结果如表3所示。

表3 对比实验结果

模型 精确率(%) 召回率(%) mAP(%) 模型大小(MB) FPS
SSD 79.0 75.2 80.1 159 45
YOLOv3 83.4 80.0 85.0 235 24
YOLOv4 87.8 84.5 88.6 246 23
YOLOv5s 91.2 87.0 91.0 15 72
YOLOv5m 94.8 90.7 94.0 42.9 53
YOLOv5x 95.5 92.3 95.0 89.1 40
改进的YOLOv5s(ROD-YOLOv5s) 94.0 91.5 94.8 17.8 58

从表3可以看出,ROD-YOLOv5s模型在精确率、召回率和mAP上均优于原版YOLOv5s,特别是在小目标检测任务中表现尤为出色。与SSD、YOLOv3和YOLOv4相比,ROD-YOLOv5s模型不仅在精度上有显著优势,而且其模型大小也更小,更适合部署到资源有限的硬件设备上,如嵌入式系统或移动设备[9]。

在推理速度上,虽然YOLOv5x的mAP略高,但其模型大小和推理速度都明显不及ROD-YOLOv5s模型,特别是FPS较低,只有40帧每秒。而提出的改进模型保持了较快的推理速度,FPS达到58,足以满足实时检测的要求。

(3) 小目标检测场景分析

为了进一步验证模型在实际复杂场景中的性能,重点测试了模型在小目标检测中的表现。交通标志的检测是一个典型的小目标检测任务,其中小目标的检测精度往往受到距离、遮挡、光照条件的影响。

图3显示了不同模型在小目标检测场景中的不同表现。其中,YOLOv3(第一行左)、YOLOv4(第一行中)、YOLOv5s(第一行右)以及YOLOv5x(第二行中)没有成功识别出远处的障碍。而YOLOv5m(第二行左)虽然成功识别,但是对近距离目标的识别能力弱于本项目ROD-YOLOv5s模型(第二行右)。

图4对长度较长并且一直向前延伸的栏杆进行了测试。经过测试发现经改良后的模型(第二行右)对于向前延伸的栏杆的识别范围更广、能识别到更远出的栏杆。

在图5中,要进行识别的是因运动而模糊的杆子。运动模糊场景在移动端是较为常见的。可以看到在识别移动的杆子时,本门改良过的模型对运动中的杆子(第二行右)的识别能力更强。

在图6中,要进行识别的杆子被行人遮挡、分成两截。其中YOLOv3(第一行左)、YOLOv4(第一行中)、YOLOv5s(第一行右)以及YOLOv5x(第二行中)虽然识别出了图中左半部分的杆子,但是在右边的杆子并没有识别出来。YOLOv5m(第二行左)和ROD-YOLOv5s模型(第二行右)都成功识别出了右边的杆子,但是可以发现YOLOv5m(第二行左)对于近距离有阻挡的目标的识别能力不及本项目的ROD-YOLOv5s(第二行右)。

总结来看,本项目通过一系列实验,评估了ROD-YOLOv5s模型在目标检测任务中的表现。通过消融实验,验证了SE模块、改进的SPPF模块和CBAM模块对模型性能的积极影响,特别是在小目标检测方面。对比实验进一步显示,ROD-YOLOv5s模型在精确率、召回率和mAP上均优于其他流行的检测算法 [10]{}^{[10]},同时保持了较小的模型大小和较快的推理速度,使其非常适合资源有限的硬件部署。

在小目标检测场景分析中,ROD-YOLOv5s展现了对远距离目标和复杂背景下目标的优越识别能力。此外,在复杂场景测试中,无论是运动模糊还是遮挡条件下,ROD-YOLOv5s均显示出更强的识别能力,证明了其在实际应用中的潜力。

总体而言,本研究提出的改进YOLOv5s模型在目标检测领域具有显著的性能优势,特别是在小目标和复杂场景下的应用,展现了其在实时检测任务中的实用价值。未来的工作将进一步探索模型的优化和应用,以满足更广泛的实际需求。

4 结论

在本项目中,针对行人因使用手机而导致的注意力分散问题,开发了一种基于改进YOLOv5s算法的路面障碍检测算法。通过引入更深的网络结构、Squeeze-and-Excitation(SE)模块、注意力机制以及金字塔注意力网络(PAN),显著增强了模型的特征提取能力和多尺度表达能力。此外,使用CIoU Loss代替传统的IoU损失函数,进一步提升了模型的定位精度和泛化能力。实验结果表明,ROD-YOLOv5s模型在精确率、召回率和mAP等关键指标上均优于其他流行的目标检测算法,尤其是在小目标检测任务中展现出卓越的性能。尽管引入的改进模块略微降低了模型的推理速度,但ROD-YOLOv5s模型仍保持了较高的FPS,达到58帧/秒,满足了实时检测任务的需求。

本项目模型在远距离目标检测、复杂背景和运动模糊等复杂场景下均表现出较强的鲁棒性,这表明它能够在多变的实际路况中稳定工作,为道路安全提供了有力的技术支持。尽管ROD-YOLOv5s模型在本次研究中表现出色,但认识到仍有进一步优化和改进的空间。未来的工作将集中在探索更高效的网络结构和注意力机制,以进一步提升模型的性能和鲁棒性。还将研究更先进的训练策略,如知识蒸馏和迁移学习,以提高模型在有限数据下的学习能力。此外,将模型应用于更多实际场景,如无人驾驶车辆和智能交通系统,以验证其广泛的适用性,也是未来工作的重点。期待通过这些努力,能够进一步推动该模型的发展,以满足更广泛的实际需求。

参考文献

[1] CNNIC发布第49次《中国互联网络发展状况统计报告》[J]. 新闻潮, 2022, (02): 3.
[2] 林德铝, 刘畅, 陈琦, 等. 基于低秩分解的YOLO轻量化目标检测模型[J]. 机车电传动, 2024, (01): 138-144. DOI: 10.13890/j.issn.1000-128X.2024.01.120.
[3] 刘茴茴香. 微量DNA提取站关键工件智能识别与检测技术研究[D]. 长春工业大学, 2022. DOI: 10.27805/d.cnki.gccgy.2022.000070.
[4] 王国庆, 李璇, 杨理践, 等. 基于改进YOLOv5算法的管道漏磁信号识别方法[J]. 计算机测量与控制, 2022, 30(08): 147-154. DOI: 10.16526/j.cnki.11-4762/tp.2022.08.024.
[5] 蒋云超. 基于双模调制的细粒度图像识别[D]. 电子科技大学, 2021. DOI: 10.27005/d.cnki.gdzku.2021.001085.
[6] 朱智惟, 单建华, 余贤海, 等. 基于YOLOv5s的番茄采摘机器人目标检测技术[J]. 传感器与微系统, 2023, 42(06): 129-132. DOI: 10.13873/J.1000-9787(2023)06-0129-04.
[7] 杨健. 基于视觉的水下目标识别与定位技术研究[D]. 桂林电子科技大学, 2022. DOI: 10.27049/d.cnki.ggldc.2022.000169.
[8] 马新舒. 面向无人驾驶车的交通标志检测技术研究[D]. 桂林电子科技大学, 2021. DOI: 10.27049/d.cnki.ggldc.2021.000294.
[9] 武建鹏. 基于目标检测的模型压缩算法研究[D]. 天津大学, 2022. DOI: 10.27356/d.cnki.gtjdu.2022.000545.
[10] 刘麒, 盛德庆,

Donate
  • Copyrights © 2015-2025 Xinyu Zhuang
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信