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。其值可以由如下公式计算得出:
2) 召回率R。召回率越高,准确率越低。其值可以由如下公式计算得出:
3) 均值平均精度mAP。其值可以由如下公式计算得出:
其中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
*通讯作者。