1、 2023 年第 11 期103计算机应用信息技术与信息化基于改进 Y O L O v 5的目标检测算法研究胡冠真1 李宏滨1 吴彦昕1 沈帅杰1HU Guanzhen LI Hongbin WU Yanxin SHEN Shuaijie 摘要 为提高道路目标检测精度,采用了基于 YOLOv5 网络模型的改进算法。其中,利用 Mish 激活函数来提高特征提取能力,引入 CBAM 注意力机制对特征信息进行增强,采用 DIOU 目标回归损失函数来直接最小化两个目标框的距离,从而提高收敛速度。实验结果表明,所提出的算法在公开的自动驾驶数据集 KITTI 上的表现非常出色,达到了 91.1%的 mAP
2、 和 94.9%的检测精度,相比原始算法分别提高了 3.1%和 3.2%。此外,所提出的算法具有较好的检测速度(69 帧/s)和实时性,相比一些主流的目标检测算法,具有一定的优越性。关键词 目标检测;YOLOv5;CBAM 注意力机制;Mish 激活函数;DIOU 损失函数 doi:10.3969/j.issn.1672-9528.2023.11.0241.太原师范学院 山西晋中 0306190 引言近年来,随着社会科技的发展,特别是在车辆和交通领域的飞速进展,人工智能和汽车交通的结合使得汽车交通变得更智能化,给人们的日常生活带来了许多便利。深度学习是实现人工智能的重要方法,在图像目标检测、语
3、音识别、文字识别等领域广泛应用,目标检测也在自动驾驶、人脸识别和行人检测等多个领域得到广泛应用。目标检测是近年来研究非常活跃的领域,其主要功能是识别图像中的特定目标类别和位置等信息1。检测精度是目标检测的重要评估指标,经过多位学者多年的努力,检测精度不断提升,但在某些复杂的交通场景下,仍存在检测准确度不尽如人意的问题。随着卷积神经网络的发展,目标检测在汽车行业得到了广泛应用。自动驾驶领域现在拥有许多完备的数据集,如 TUD-Brussels Pedestrian2、City Persons3、KITTI4、BDD100K5、LyftLevel-56、Apollo Scape7和 SODA10M
4、8等,这些数据集为自动驾驶的研究提供了宝贵的资源。与此同时,目标检测的深度学习架构和算法也快速发展。目前主流的检测算法可分为两类:一类是单阶段目标检测算法,如 YOLO9、SSD10;另一类是两阶段目标检测算法,如 R-CNN11、Faster R-CNN12。两阶段算法通过卷积操作在特征图上生成一系列候选框,并通过选择算法筛选最终的候选框。虽然这种方法具有较高的检测精度,但由于工作量大,检测时间较长,对算力要求较高,限制了其在实时性要求高、计算速度快、算力受限的边缘计算应用场景中的应用。相比之下,单阶段检测算法通过回归的方式进行目标检测,省略了生成大量候选框的过程,大大提高了检测速度。然而,
5、就检测精度而言,单阶段检测算法稍逊于两阶段检测算法。因此,在目标检测的研究过程中,检测精度和检测时间之间存在一种相互矛盾、此消彼长的关系。因此,许多学者长期以来一直在研究一种在满足检测实时性的前提下尽可能提高检测准确度的方法。总之,目前的研究在检测准确率和实时性上仍需改善,本文采用 YOLOv5 算法进行目标检测并对其进行改进。1 YOLOv5 网络结构基础理论YOLOv5 网络结构采用了之前版本的设计,并结合了一些新的功能。特征提取网络使用 CSPDarknet13,并新增了focus 结构,对输入图像进行切片、尺寸缩小和深度增加,以提高特征提取速度。在 neck 部分部署了 CSP2 结构
6、,以增强网络特征融合的能力。优化函数采用了 Adam 14和 SGD 15。网络中的主要结构是 Focus 和 Conv,包含卷积核和残差组件。通过控制 Conv 中残差组件的数量可以改变网络深度,通过掌握 Focus 和 Conv 中卷积核的数量可以调整网络宽度。因此,YOLOv5 推出了四个模型,分别是:YOLOv5s、YOLOv5m、YOLOv5l 和 YOLOv5x,其大小由小到大。1.1 输入端输入层采用了传统和高级的图像增强技术,例如旋转、翻转、模糊和 Mosaic 等方法。此外,还应用了自适应锚点和自适应图像缩放,以提高训练和推断的速度,减少训练参数的数量。在实验中,数据集中的图
7、像被缩放到相同的大小,即 640640 像素,即使它们的长度、宽度和比例不同也是如此。2023 年第 11 期104计算机应用信息技术与信息化1.2 主干网络YOLOv5 使用 CSPDarknet 作为特征提取的骨干网络,其中包含 Focus、CSP 和 SPP 等结构。Focus 可将宽度 w 和高度h的信息整合到c维度中,是一种特征映射的切片操作。其在通道上分割和堆叠单元,以间隔 2 个像素的方式,将宽度和高度减少 2 倍,通道数增加 4 倍。这种操作可以减少每秒浮点运算次数(FLOPS),提高推断速度。CSP 包含两种结构,有残差(蓝色)和无残差(黄色)。CSPNet 解决了其他大型卷
8、积神经网络框架骨干中梯度信息重复的问题,并将梯度变化集成到特征图中,以减少模型的参数数量和 FLOPS 值,从而保证了推断速度和准确度,同时减小了模型的大小。空间金字塔池化(SPP)用于在不同的尺度上汇集特征图,并在通道维度上连接不同的结果,以增加感受野并提高 Anchor 和特征图的对齐性。1.3 neck 模块YOLOv5 的 neck 部分采用了特征金字塔网络(feature pyramid networks,FPN)16结构。该结构从下到上进行连续的下采样,提取特征,形成一个特征金字塔。随着特征图的尺寸和像素值不断减小,从上到下进行连续的上采样,恢复特征图的尺寸,并与相同大小的特征图进
9、行融合,输出一个多尺度的特征图。FPN 可以预测多尺度结果,增强了模型的识别能力,同时可以更好地检测不同大小的同一对象。1.4 输出端在 YOLOv5 中,使用 NMS 作为预测框回归的筛选标准。预测框与真实框之间的重叠面积、长宽比和中心点距离被用作判断依据。NMS 算法用于过滤预测框,以去除同一检测目标的多余框。最终,输出的检测结果包括 8080、4040 和2020 的尺寸。2 模型的改进和优化2.1 Mish 激活函数好的激活函数可以提高深度学习网络模型的性能。图 1是本文绘制的常见激活函数的对比图。图 1 常见激活函数对比在 YOLOv5 中,使用 Leaky ReLU 作为激活函数。
10、尽管Leaky ReLU 在目前广泛应用的激活函数中表现优异,但是它存在一个缺陷,即在负值时直接截断,导致梯度下降不够平滑。为了解决这个问题,提出了 Mish 激活函数,其公式为:Mish=xtanh(ln(1+ex)(1)Mish 激活函数的负值不是直接截断为零,而是具有轻微的梯度流。此外,从图 1 可以看出,与其他激活函数相比,Mish 函数更加平滑,这有助于更好地传递特征,从而提高梯度下降的效果。因此在本研究中,使用 Mish 激活函数替换了 YOLOv5 网络基本卷积模块 Conv2d_BN_LeakyReLU 中的Leaky ReLU 激活函数,构建了 Conv2d_BN_Mish
11、基本卷积模块,以提高网络对特征的提取能力。2.2 引入 CBAM 注意力机制CBAM17(convolutional block attention module,CBAM)是一个由两个独立的子模块组成的网络。这两个子模块分别是空间注意力模块(spatial attention module,SAM)和通道注意模块(channel attention module,CAM)。CBAM 的网络结构如图 2 所示。图 2 CBAM 注意力机制网络结构在通道注意力模块中,首先对输入的特征图进行全局最大池化和全局平均池化操作,对特征图的宽度和高度进行压缩。然后,通过 MLP 模型对处理后的结果进行计算
12、,得到两个特征向量。这两个向量进行逐元素相加,经过 Sigmoid函数处理得到一个具有通道特征权重的向量。最后,将该向量与输入特征图的每个通道进行逐元素相乘,得到具有空间注意力的特征图。该过程的数学表达式为:c10avg10maxM(F)(F)(F)(W(W(F)W(W(F)ccMLP AvgPoolMLP MaxPool=+=+(2)空间注意力模块对通道注意力结果进行全局平均池化和全局最大池化操作,并将输出结果在维度上相加。接下来,采用卷积核大小为7*7的卷积操作,并结合Sigmoid激活函数,得到同时具有空间注意力和通道注意力的特征图。7 7s7 7ssavgmaxM(F)(F);(F)(
13、F;F)fAvgPoolMaxPoolf=(3)2023 年第 11 期105计算机应用信息技术与信息化2.3 损失函数 DIOU本文采用 DIOU 替换作为模型的回归部分预测,与 GIOU 与CIOU相比,DIOU采用两个框之间的最短直线距离,因此收敛速度更快,其计算表达式为:22dDIOUIOUc=(4)将 DIOUloss作为 YOLOv5 的回归损失:1lossDIOUDIOU=(5)DIOU 值越大,DIOUloss值就越小,模型就会沿着预测框和真实框重合程度高的地方进行优化,并且在收敛速度上优于 GIOU 和 CIOU。2.4 改进之后的 YOLOv5 网络结构经以上改进,能够得到
14、 Mish 激活函数和损失函数 DIOU并引入 CBAM 注意力机制后的 YOLOv5 检测算法,模型结构如表 1 所示。表 1 改进后的 YOLOv5 网络整体结构序号fromparamsmodulearguments0-13520Conv3,32,6,2,21-118 560Conv32,64,3,22-118 816C364,64,13-173 984Conv64,128,3,24-1115 712C3128,128,25-1295 424Conv128,256,3,26-1625 152C3256,256,37-11 180 672Conv256,512,3,28-1656 896SP
15、P512,512,5,9,139-11 182 720C3512,512,110-1131 584Conv512,256,1,111-10Up sampleNone,2,nearest12-1,60Concat113-1361 984C3512,256,1,False14-133 024Conv256,128,1,115-10Up sampleNone,2,nearest16-1,40Concat117-190 880C3256,128,1,False18-1147 712Conv128,128,3,219-1,140Concat120-1296 448C3256,256,1,False21-
16、1590 336Conv256,256,3,222-1,100Concat123-11 182 720C3512,512,1,False24-133 411CBAM512,512表 1 中的 from 列中的-1 表示来自上一层的输出,params 列表示参数量,module 为子模块,arguments 列中的参数分别表示输入通道数、输出通道数、卷积核大小、步长信息等。3 实验与结果分析3.1 实验环境实 验 硬 件 配 置 GPU 为 NVIDIA GeForce RTX 1050,GPU 显存 4 GB;软件环境为 Windows10 系统、CUDA11.7 和 PyTorch 框架;Y
17、OLOv5s 模型采用的参数 epoch(迭代次数)为 300、batch size(批次大小)为 16、Learning_rate(学习率)为 0.01、Weight_decay(权重衰减参数)为 0.000 5、Momentum(动量参数)为 0.937,采用随机梯度下降(stochastic gradient descent)优化算法。3.2 数据集KITTI 数据集是广泛用于评估自动驾驶检测算法性能的最知名数据集之一。本文使用了 KITTI 数据集中 2D 目标检测部分,并从样本中剔除了不相关的类别,只保留了车辆、货车、卡车和行人4个类别。数据集的详细信息可以参见表2。表 2 KITT
18、I 数据的基本信息数据集图像集类别数标注数原始的 KITTI7481840 570本文的 KITTI7481437 2373.3 评价指标在目标检测领域,通常使用准确率和召回率作为基本评价指标,并根据这两个指标计算各个类别的平均精度(AP)。然后,通过计算多个类别平均精度的平均值来得到平均精度均值(mAP)。本文使用准确率和 mAP 来评估算法性能。准确度又称为查准率,表示在所有检测出的目标中检测正确的概率。TPPTPFP=+(6)召回率又称为查全率,表示所有的正样本中正确识别的概率。TPRTPFN=+(7)3.4 实验结果与分析3.4.1 对比实验虽 然 Improved FSSD18在 目
19、 标 检 测 方 面 具 有 较 高的准确性,但其容易受到光照等环境因素的干扰,且实时 性 较 低。本 文 对 FSSD 方 法、YOLOv3、YOLOv5s、YOLOv5m、YOLOv5l、YOLOv7s 以及本文提出的改进2023 年第 11 期106计算机应用信息技术与信息化方法在相同的数据集上进行了比较,结果如表 3 所示。在 mAP 方 面,改 进 的 算 法 比 原 始 算 法 YOLOv5s 提 高了 3.1%,比 YOLOv5m 和 YOLOv7s 分 别 提 高 了 3.5%和 2.5%;在准确率方面,比 FSSD 算法提高了 3.8%,比YOLOv3 算法提高了 3.2%,
20、比 YOLOv5s 提高了 3.2%,比YOLOv5m、YOLOv5l和YOLOv7s分别提高了3%、1.7%和 2.3%。总之,改进的方法在保持较高 mAP 值的同时又有较高的准确率。表 3 不同算法检测结果对比算法模型参数量模型大小/MB准确率mAP速度/(帧s-1)Improved FSSD-0.9110.86132YOLOv361 550 659123.60.9170.86839YOLOv5s7 018 21614.30.9170.8863YOLOv5m20 891 52342.20.9190.87659YOLOv5l46 165 21992.90.9320.85854YOLOv7s3
21、7 223 52674.90.9260.886133本文方法7 052 39514.40.9490.911693.4.2 消融实验为验证改进后的 YOLOv5 算法在摔倒检测中的优势,本文进行了消融实验,采用了单一的 Mish 激活函数和 CBAM注意力机制,结合了 Mish 激活函数和 CBAM 注意力机制、CBAM 注意力机制和 DIOU 损失函数的方法。实验结果如表4 所示。表 4 消融实验结果模型修改激活函数加入CBAM注意力机制损失函数模型参数量模型大小/MB准确率mAP速度/(帧 s-1)YOLOv5s7 018 21614.30.917 0.8863优化模型 17 018 216
22、14.30.928 0.88663优化模型 27 051 62714.40.921 0.89268优化模型 37 051 62714.40.935 0.89867优化模型 47 052 39514.40.933 0.90251本文方法7 052 39514.40.949 0.91169由表 3 可知,无论缺少哪一项都会降低目标检测的性能,从而验证了本文算法在目标检测中的有效性。3.4.3 实验结果分析本文在 KITTI 数据集对原 YOLOv5 和改进的 YOLOv5模型进行有效性和可靠性测试,如图 3 和图 4 所示,实验结果表明,随着 epoch 的增加,改进后的 YOLOv5 的 mAP
23、 曲线和精确度比改进前都有所提高。图 3 改进前后 mAP 的结果对比图图 4 改进前后 precision 的结果对比图在 KITTI 数据集的 7481 张图像上,本文对原始 YOLOv5算法和改进后的 YOLOv5 模型进行了有效性和可靠性测试。改进后的算法在训练集和验证集上的边界框损失函数值(box_loss)、置信度损失函数值(obj_loss)以及分类损失函数值(cls_loss)随着训练轮数的增加而逐渐收敛,表明模型的拟合效果较好。4 结语本文基于 YOLOv5 网络模型,改进了一种适用于自动驾驶场景下不同道路环境目标检测的算法模型。本文所改进的模型在检测任务中提高了目标检测精度
24、,符合自动驾驶场景下需要高检测精度的工作需求。改进后的模型融入了 CBAM 注意力模块、更换了激活函数 Mish 等方法,可以有效捕捉目标的方向和位置信息,显著提高了整体网络模型对小目标和遮挡目标的检测性能。本文改进的DIOU 算法提高了目标框回归损失,并在一定程度上提高了检测精度。通过这些改进,整体网络模型更符合自动驾驶工作环境的需求。最终检测结果显示,本文模型相较于YOLOv5 网络有显著提升。但由于训练数据集种类不多、场景不够丰富,对迁移至其他场景的鲁棒性还有待提高。下一步将在数据集的多样性和检测种类上做改进,提高算法的鲁棒性。2023 年第 11 期107计算机应用信息技术与信息化参考
25、文献:1 董文轩,梁宏涛,刘国柱,等.深度卷积应用于目标检测算法综述 J.计算机科学与探索,2022,16(5):1-20.2 WOJEK C,WALK S,SCHIELE B.Multi-Cue onboard pedestrian detectionJ.IEEE conference on computer vision and pattern recognition(CVPR),2009(6):20-25.3 ZHANG S,BENENSON R,SCHIELE B.CityPersons:a diverse dataset for pedestrian detectionCIEEE c
26、onference on computer vision and pattern recognition(CVPR).Piscataway:IEEE,2017:4457-4465.4 SMOLYANSHIY N,KAMENEV A,BIRCHFIELD S.On the importance of stereo for accurate depth estimation:an effi cient semi-supervised deep neural network approachC/IEEE/CVF conference on computer vision and pattern re
27、cognition workshops(CVPRW).Piscataway:IEEE,2018:1120-1128.5 YU F,CHEN H,WANG X,et al.BDD100K:a diverse driving dataset for heterogeneous multitask learningC/IEEE/CVF conference on computer vision and pattern recognition(CVPR).Piscataway:IEEE,2020:2633-2642.6 HOUSTON J,ZUIDHOF G,BERGAMINI L,et al.One
28、 thousand and one hours:Self-driving motion prediction datasetEB/OL.(2020-06-25)2022-12-25.https:/arxiv.org/abs/2006.14480.7 WANG P,HUANG X,CHENG X,et al.The apolloscape open dataset for autonomous driving and its applicationC/IEEE transactions on pattern analysis and machine intelligence.Piscataway
29、:IEEE,2020:2702-2719.8 HAN J,LIANG X,XU H,et al.SODA10M:A large-scale 2D self/semi-supervised object detection dataset for autonomous drivingEB/OL.(2021-06-21)2022-12-30.https:/arxiv.org/abs/2106.11118.9 REDMON J,DIVVALA S K,GIRSHICK R B,et al.You only look once:unified,real-Time object detectionC/I
30、EEE conference on computer vision and pattern recognition(CVPR).Piscataway:IEEE,2016:779-788.10 LIU W,ANGURLOV D,ERHAN D,et al.Ssd:single shot multibox detectorC/European Conference on Computer Vision.Cham:Springer,2016:21-37.11 GIRSHICK R B,DONAHUE J,DARRELL J,et al.Rich feature hierarchies for acc
31、urate object detection and semantic segmentationC/IEEE conference on computer vision and pattern recognition.Piscataway:IEEE,2014:580-587.12 REN S,HE K,GIRSHICK R B,et al.Faster R-CNN:towards real-time object detection with region pro-posal networksJ.IEEE transactions on pattern analysis and machine
32、 intelligence,2017,39(6):1137-1149.13 WANG C Y,LIAO H Y M,WU Y H,et al.CSPNet:a new backbone that can enhance learning capability of CNNC/2020 IEEE/CVF conference on computer vision and pattern recognition workshops(CVPRW).Piscataway:IEEE,2020:390-391.14 KINGMA D P,BA J.Adam:a method for stochastic
33、optimi-zationEB/OL.(2014-12-22)2022-12-30.https:/arxiv.org/abs/1412.6980.15 ZHENG S,MENG Q,WANG T,et al.Asynchronous sto-chastic gradient descent with delay compensationC/In proceedings of the international conference on machine learning.New York:Curran Associates,2017:4228-6248.16 LIN T Y,DOLLAR P,
34、GIRSHICK R,et al.Feature pyramid networks for object detectionC/In proceedings of the IEEE conference on computer vision and pattern recognition.Piscataway:IEEE,2017:936-944.17 付国栋,黄进,杨涛,等.改进 CBAM 的轻量级注意力模型 J.计算机工程与应用,2021,57(20):150-156.18 杨雪旗,唐旭,章国宝,等.基于 YOLO 网络的人体跌倒检测方法 J.扬州大学学报(自然科学版),2019,22(2):61-64.【作者简介】胡冠真(1996),男,河南内乡人,硕士研究生,研究方向:智能数据分析与应用。李宏滨(1968),男,山西晋中人,大学本科,副教授,研究方向:智能图像处理。吴彦昕(1996),男,山西太原人,硕士研究生,研究方向:自然语言处理和机器学习。沈帅杰(1997),男,河南安阳人,硕士研究生,研究方向:智能数据分析与应用。(收稿日期:2023-07-21 修回日期:2023-08-13)