基于YOLOv7的自动驾驶检测算法研究
Research on Autonomous Driving Detection Algorithm Based on YOLOv7
DOI:10.12677/csa.2024.148177,PDF,HTML,XML,下载: 11浏览: 82科研立项经费支持
作者:申明坤,王树云,白 亮:天津职业技术师范大学电子工程学院,天津;丁学文*:天津职业技术师范大学电子工程学院,天津;天津云智通科技有限公司,天津
关键词:自动驾驶YOLOv7注意力机制精准率Autonomous DrivingYOLOv7Attention MechanismsAccuracy
摘要:自动驾驶场景下,针对前方障碍物探测实时性和检测精确度难以权衡的问题,本文提出一种改进的CBAM-YOLOv7自动驾驶检测算法。通过加入CBAM (Convolutional Block Attention Module)双通道注意力机制,对YOLOv7模型主网络部分进行修改,增加模型特征提取的能力,提高检测效果,使改进后的算法在检测精准率上有很大提升。通过创建多元化环境下的自动驾驶数据集进行测试,实验结果表明,对比原YOLOv7模型,改进后的检测算法的mAP值提升了5.60%,精准率提升了2.50%,在前方障碍物识别精准率中,行人检测率可以达到86.2%,交通类障碍物可以达到96.9%。
Abstract:In the automatic driving scenario, an improved CBAM-YOLOv7 automatic driving detection algorithm is proposed in this paper to address the problem that the real-time detection of obstacles ahead is difficult to balance with the detection accuracy. By adding a Convolutional Block Attention Module (CBAM) dual-channel attention mechanism, the main network part of the YOLOv7 model is modified to increase the ability of feature extraction of the model and improve the detection effect, which greatly improves the detection accuracy of the improved algorithm. The test results show that compared with the original YOLOv7 model, the mAP value of the improved detection algorithm is increased by 5.60%, and the accuracy rate is increased by 2.50%. In the accuracy rate of the forward obstacle recognition, the pedestrian detection rate can reach 86.2%, and the traffic obstacle detection rate can reach 96.9%.
文章引用:申明坤, 丁学文, 王树云, 白亮. 基于YOLOv7的自动驾驶检测算法研究[J]. 计算机科学与应用, 2024, 14(8): 199-206. https://doi.org/10.12677/csa.2024.148177

1. 引言

目前,科技的进步和人工智能在汽车领域的飞速发展,使自动驾驶已经成为汽车领域的研究热点之一。所谓自动驾驶,其实就是让汽车可以自主的在交通路上正常安全的行驶,在复杂的道路场景中,可以实时地、准确地对各种目标:行人、自行车、汽车、交通标志、车道线等进行检测和判断,进而可以自主地控制汽车的行驶。所以想要快速高效的解决这个问题,就需要对目标检测的领域进行研究,对相应的算法进行改进,然后在自动驾驶领域提升汽车行业的发展,目前汽车检测车辆前方障碍物的算法已经从传统算法逐渐向深度学习算法发展。以深度学习为基础的目标检测算法,可以快速检测目标,精确度高,在自动驾驶领域已成为主流算法。基于深度学习的目标检测方法,大致可分为基于Transformer的双阶段目标检测、单阶段目标检测和目标检测三大类[1]。双阶段目标检测算法先以影像提取候选框[2],再以检测精度较高,但检测速度较慢的候选框为基础,在候选区的基础上进行二次校正,以求检测点的结果;此类算法主要有RCNN、Faster RCNN等算法。单阶段目标检测算法直接计算图像,生成测试结果,测试速度较低,但测试精度较低;这类算法大致包括:YOLO,SSD和Retinanet算法。

然而,在自动驾驶场景下,对车辆前方出现的障碍物目标进行精准检测是一个难题,十分具有挑战性。在车辆进行自动驾驶的过程中,各种复杂的情况都会出现在路面上,而各种路况也让前方的障碍物在车辆行驶过程中显得扑朔迷离,难以察觉和辨别。因此,在自动驾驶领域中需要快速、准确地对复杂交通场景下的障碍物完成目标识别[3]。在前人研究的基础上,本文采用新的注意力模块和更优的上采样方式,通过调整相关参数,以进一步改进自动驾驶交通场景下前方标志物检测准确性,解决自动驾驶交通场景下前方标志物检测难的问题。通过拆分自动驾驶行车记录仪拍摄的视频,从而构建研究所需的数据集,在YOLOv7模型的基础上,利用迁移学习,预训练确定模型权重,并在特征提取层引入CBAM注意力机制,从而提升自动驾驶交通场景下前方障碍物检测的准确率。

2. YOLOv7网络模型

YOLOv7的网络主要由三个部分组成:Input,Backbone和Head;其中Input部分用于输入相应的图片,Backbone部分的作用是提取特征,Head部分则用于预测[4]。根据下图1所示的YOLOv7网络结构图,可以对一个简单的网络流程进行大致的概括。首先对输入的图片进行预处理,使输入的图片都转换成相应的相同规格的RGB图片,然后将预处理的图片输入Backbone网络,按照Backbone网络中的三层进行输出[5]。根据Backbone网络的三层输出,在Head层对图像检测的三类任务(分类、前后背景分类、边框)预测,输出最后的结果[6]

Figure 1.YOLOv7 network structure diagram

1.YOLOv7网络结构图

在YOLOv7的网状结构中,其中的Backbone部分,先经过4个CBS模块,该模块主要负责特征提取,然后再经过1个ELAN模块,最后是3个MP + ELAN的输出。每张MP包含5层结构,而ELAN则由8层构成。因此,整个Backbone部分的层数累加为4层(初始部分) + 8层(ELAN部分) + 3组各含13层的结构(MP部分),合计为51层。若从0开始计数,那么最后一层则是第50层。整个Head部分,其结构相当丰富,包括SPPCPC层、多个CBS层、多个MP-2层、若干Con Cat层,以及最终用于输出三个Head的Rep Conv层。

3. 改进方法——引入CBAM注意力机制

为了提高自动驾驶交通场景下探测前方障碍物的精确性,将YOLOv7作为基础网络结构加以改进。

计算机视觉中的注意力机制是指在有限的计算资源条件下,通过对更有意义的任务进行优化配置,以克服信息过载的问题。通俗地说,注意力机制可以理解为我们在有限的资源条件下,通过增加更多的资源(指神经网络中的权重)和提高神经网络的精确度来识别检测对象的重要特征的资源分配机制。在神经网络的学习过程中,通常情况下,模型中包含更多的参数,能够更好地表示模型中的信息。在此基础上,本文将注意力机制引入更重要的当前任务信息中,减少对其他信息的关注[7],或对不相关信息进行筛选,从而有效解决“信息过载”问题,提高任务的执行效率和精准率。

由于CBAM引入了两种注意力机制模块,即通道注意力机制模块和空间注意力机制模块,CBAM注意力机制又可称为混合式注意力机制,其核心是:应用了Channel Attention Module (通道注意模块)和Spatial Attention Module (空间注意模块)的结合,对输入进来的特征层分别进行通道注意力模块和空间注意力模块的处理[8]。其中通道注意力机制模块有助于增强不同通道的特征表示,而空间注意力模块有助于提取空间中不同位置的关键信息。结构图如图2所示:

Figure 2.CBAM structure diagram

2.CBAM结构图

4. 实验及结果分析

4.1. 实验数据集

本文所采用的实验数据集是由加州大学柏克莱分校AI实验室(BAIR)于2018年发布的[9]。数据集中的视频从美国各地采集而来,内容涵盖了不同时段、不同天气状况(包括晴天、阴天、雨天,也包括白天、晚上不同时段),同时还包含了驾驶场景。数据集中,道路目标检测是在10万张图片上标有2D边框,包括公交车,交通灯,交通指示牌,人,自行车,汽车等多个目标种。

实验中将数据集按比例7:2:1分为训练集、验证集和测试集,其中训练集2800张,验证集800张,测试集400张。数据集示例如图3所示。

Figure 3.Examples of data sets

3.数据集示例

4.2. 实验环境与参数配置

Table1.Experimental environmental parameters

1.实验环境参数

实验环境

配置参数

操作系统

Windows11 64位

GPU

NvidiaGeforceRTX3060

深度学习框架

Pytorch1.8.1

编程语言

Python3.8.0

CPU

Intel ® coreTMi5

在每组实验中,我们均使用尺寸为640 × 640的输入图像,并将批量大小设置为5,在每一次训练迭代中,模型将同时处理5张这样的图像。训练的迭代次数为250轮,确保模型能够充分学习并优化其性能。三组实验的环境参数如表1所示。

4.3. 模型评价指标

本文选取精准率P(Precision,P)、召回率R(Recall)以及均值平均精度mAP (mean Average Precision, mAP)作为评估指标[9]。其中P表示自动驾驶过程中前方障碍物被准确识别出的概率。各个指标的数学定义及运算公式可进行重点阐述如下:

1) 精准率P。其值可以由如下公式计算得出:

Precision = T P T P + F P

2) 召回率R。召回率越高,准确率越低。其值可以由如下公式计算得出:

Recall = T P T P + F N

3) 均值平均精度mAP。其值可以由如下公式计算得出:

mAP = 0 1 Precision × Recalldr

其中TP表示自动驾驶时前方障碍物识别成障碍物的个数,FP表示非自动驾驶时的前方障碍物识别成前方障碍物的个数,FN表示自动驾驶时未识别出来的前方障碍物个数。

4.4. 实验结果及分析

在实验过程中,为了验证本文改进的模型相对于其他主流的模型有更优秀的目标检测能力,分别将改进后的CBAM-YOLOv7模型与YOLOv7和YOLOv5两种常见的主流模型在同一自动驾驶数据集上进行对比,具体的实验数据如表2所示。

Table2.Comparison results of the model

2.模型对比结果

检测模型

P

R

mAP

CBAM-YOLOv7

96.5

87

84.6

YOLOv7

94

86

79

YOLOv5

89.6

84

72

表2可以看出本文改进后的模型相对于其他两个模型在精准率P上分别提升了2%和6.9%,在均值平均精度mAP上分别提升了5.6%和9.6%。数据参数上的明显提升说明了改进后的模型无论是从精准率、召回率还是均值平均精度都优于其他两种,因此本文选用改进后的CBAM-YOLOv7模型进行检测,使自动驾驶的车辆更好的对目标进行精准检测。

在选择CBAM-YOLOv7作为检测模型后,为了进一步提高检测精度,还根据特征提取层中注意力机制CBAM添加位置的不同进行了细致的对比实验,如图4所示。

(a) 添加的位置一 (b) 添加的位置二 (c) 添加的位置三

Figure4.The attention mechanism CBAM adds different positions

4.注意力机制CBAM添加的不同位置

图4所示的三个不同的添加位置对应着三个不同的CBAM-YOLOv7模型,其检测精度以及每个目标种类的MAP值也各不相同,表3所示为三个实验数据集的评估结果。

Table3.Evaluation of data set results

3.数据集结果评估

目标种类

添加的位置mAP

添加的位置二mAP

添加的位置三mAP

Car

96.9

87

86.9

Traffic Light-Green Left

86.6

86.6

85.8

Traffic Light-Green

76.1

76.5

75.6

Truck

82.0

82.5

80.8

Traffic Light

97.2

95.7

96.2

Pedestrian

86.2

85.9

88.7

Traffic Light-Red Left

84.2

83.9

85.1

Traffic Light-Yellow

87.1

84.4

84.1

Traffic Light-Red

85.1

84.9

84.1

Biker

80.3

80.2

82.6

Traffic Light-Yellow Left

78.9

79.3

79.4

表3的实验结果可以看出来,注意力机制CBAM添加在位置一时,各个目标种类的mAP值都有较为明显的提升。本文采用该方法添加CBAM注意力机制,得到改进后的模型,其中相对于原模型,精准率P提升2.5%,均值平均精度mAP提升5.6%,改进后的模型性能评估指标如图5所示。

图5中的指标可以看出,精准率Precision、召回率Recall和均值平均精度mAP@0.5在训练初期增长效果明显,在200次后曲线图像相对稳定,体现出改进后的模型对该实验数据集训练的效果较好。使用改进后的CBAM-YOLOv7模型对实验数据集的训练集和验证集进行测试,其中的一部分测试结果如图6所示,从图中可以看出,改进后的CBAM-YOLOv7模型在自动驾驶时对前方障碍物目标的识别率较高,也可以准确地将目标分类到所属类别中。总之,改进后的CBAM-YOLOv7模型在自动驾驶的目标检测方面已经具有较好的检测性能。

Figure 5.Model performance evaluation index

5.模型性能评估指标

Figure 6.Partial test results

6.部分测试结果

5. 结束语

为改善现有自动驾驶检测算法检测精准率低、实时性差且检测目标种类少等系列问题。本文提出了一种基于YOLOv7模型改进的自动驾驶检测模型,在主干网络的合适位置通过引入CBAM注意力机制增强特征提取,抑制无效信息的输入,提升模型对目标信息的关注程度。改进后的CBAM-YOLOv7模型与原模型相比,在不增加过多参数和权重大小的情况下,提高了自动驾驶中对前方障碍物目标的检测精准率,并且能够满足实时检测的需要。但是实验中也显示出有些目标种类的检测精准率偏低,在今后的研究中,将针对此问题对改进后的模型进一步调整,以达到更好的检测效果。

项目基金

天津市科委科技计划项目(20YDTPJC01110)和天津市大学生创新创业计划训练项目(202210066064)。

NOTES

*通讯作者。

参考文献

[1] 周良钰, 杨硕. 基于改进的DETR的目标检测与测距实现[J]. 信息技术与信息化, 2023(6): 75-78.
[2] 张凯祥, 朱明. 基于YOLOv5的多任务自动驾驶环境感知算法[J]. 计算机系统应用, 2022, 31(9): 226-232.
[3] 袁志宏, 孙强, 李国祥, 白书战, 严英, 张振华. 基于Yolov3的自动驾驶目标检测[J]. 重庆理工大学学报(自然科学), 2020, 34(9): 56-61.
[4] 王继超, 张丽娟, 张春茜, 回振桥, 申耀辉. 基于YOLOv4与改进DeepSORT算法的车流量检测[J]. 河北水利电力学院学报, 2023, 33(1): 6-11.
[5] 涂宙霖, 陈涵深. 基于YOLOv7与Jetson Orin的路面破损检测系统的设计与实现[J]. 电脑知识与技术, 2023, 19(9): 50-52.
[6] 张磊, 黄忠虎, 徐智勇, 等. 基于改进YOLOv7算法的钢表面缺陷检测方法[J]. 电子技术, 2023, 52(6): 390-391.
[7] 毛晨思. 基于卷积网络和长短时记忆网络的中国手语词识别方法研究[D]: [硕士学位论文]. 合肥: 中国科学技术大学, 2018.
[8] 李木娇. 基于卷积神经网络的鼻咽癌智能诊断研究[D]: [硕士学位论文]. 广州: 南方医科大学, 2023.
[9] 袁磊, 唐海, 陈彦蓉, 高刃, 吴文欢. 改进YOLOv5的复杂环境道路目标检测方法[J]. 计算机工程与应用, 2023, 59(16): 212-222.

为你推荐





Baidu
map