Research on Autonomous Driving Detection Algorithm Based on YOLOv7
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%.
Autonomous Driving
目前,科技的进步和人工智能在汽车领域的飞速发展,使自动驾驶已经成为汽车领域的研究热点之一。所谓自动驾驶,其实就是让汽车可以自主的在交通路上正常安全的行驶,在复杂的道路场景中,可以实时地、准确地对各种目标:行人、自行车、汽车、交通标志、车道线等进行检测和判断,进而可以自主地控制汽车的行驶。所以想要快速高效的解决这个问题,就需要对目标检测的领域进行研究,对相应的算法进行改进,然后在自动驾驶领域提升汽车行业的发展,目前汽车检测车辆前方障碍物的算法已经从传统算法逐渐向深度学习算法发展。以深度学习为基础的目标检测算法,可以快速检测目标,精确度高,在自动驾驶领域已成为主流算法。基于深度学习的目标检测方法,大致可分为基于Transformer的双阶段目标检测、单阶段目标检测和目标检测三大类
然而,在自动驾驶场景下,对车辆前方出现的障碍物目标进行精准检测是一个难题,十分具有挑战性。在车辆进行自动驾驶的过程中,各种复杂的情况都会出现在路面上,而各种路况也让前方的障碍物在车辆行驶过程中显得扑朔迷离,难以察觉和辨别。因此,在自动驾驶领域中需要快速、准确地对复杂交通场景下的障碍物完成目标识别
YOLOv7的网络主要由三个部分组成:Input,Backbone和Head;其中Input部分用于输入相应的图片,Backbone部分的作用是提取特征,Head部分则用于预测
在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层。
为了提高自动驾驶交通场景下探测前方障碍物的精确性,将YOLOv7作为基础网络结构加以改进。
计算机视觉中的注意力机制是指在有限的计算资源条件下,通过对更有意义的任务进行优化配置,以克服信息过载的问题。通俗地说,注意力机制可以理解为我们在有限的资源条件下,通过增加更多的资源(指神经网络中的权重)和提高神经网络的精确度来识别检测对象的重要特征的资源分配机制。在神经网络的学习过程中,通常情况下,模型中包含更多的参数,能够更好地表示模型中的信息。在此基础上,本文将注意力机制引入更重要的当前任务信息中,减少对其他信息的关注
由于CBAM引入了两种注意力机制模块,即通道注意力机制模块和空间注意力机制模块,CBAM注意力机制又可称为混合式注意力机制,其核心是:应用了Channel Attention Module (通道注意模块)和Spatial Attention Module (空间注意模块)的结合,对输入进来的特征层分别进行通道注意力模块和空间注意力模块的处理
本文所采用的实验数据集是由加州大学柏克莱分校AI实验室(BAIR)于2018年发布的
实验中将数据集按比例7:2:1分为训练集、验证集和测试集,其中训练集2800张,验证集800张,测试集400张。数据集示例如
实验环境 | 配置参数 |
操作系统 | Windows11 64位 |
GPU | NvidiaGeforceRTX3060 |
深度学习框架 | Pytorch1.8.1 |
编程语言 | Python3.8.0 |
CPU | Intel ® coreTMi5 |
在每组实验中,我们均使用尺寸为640 × 640的输入图像,并将批量大小设置为5,在每一次训练迭代中,模型将同时处理5张这样的图像。训练的迭代次数为250轮,确保模型能够充分学习并优化其性能。三组实验的环境参数如
本文选取精准率P (Precision, P)、召回率R (Recall)以及均值平均精度mAP (mean Average Precision, mAP)作为评估指标
1) 精准率P。其值可以由如下公式计算得出:
2) 召回率R。召回率越高,准确率越低。其值可以由如下公式计算得出:
3) 均值平均精度mAP。其值可以由如下公式计算得出:
其中TP表示自动驾驶时前方障碍物识别成障碍物的个数,FP表示非自动驾驶时的前方障碍物识别成前方障碍物的个数,FN表示自动驾驶时未识别出来的前方障碍物个数。
在实验过程中,为了验证本文改进的模型相对于其他主流的模型有更优秀的目标检测能力,分别将改进后的CBAM-YOLOv7模型与YOLOv7和YOLOv5两种常见的主流模型在同一自动驾驶数据集上进行对比,具体的实验数据如
检测模型 | P | R | mAP |
CBAM-YOLOv7 | 96.5 | 87 | 84.6 |
YOLOv7 | 94 | 86 | 79 |
YOLOv5 | 89.6 | 84 | 72 |
由
在选择CBAM-YOLOv7作为检测模型后,为了进一步提高检测精度,还根据特征提取层中注意力机制CBAM添加位置的不同进行了细致的对比实验,如
图4. 注意力机制CBAM添加的不同位置
目标种类 | 添加的位置一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 |
从
从
为改善现有自动驾驶检测算法检测精准率低、实时性差且检测目标种类少等系列问题。本文提出了一种基于YOLOv7模型改进的自动驾驶检测模型,在主干网络的合适位置通过引入CBAM注意力机制增强特征提取,抑制无效信息的输入,提升模型对目标信息的关注程度。改进后的CBAM-YOLOv7模型与原模型相比,在不增加过多参数和权重大小的情况下,提高了自动驾驶中对前方障碍物目标的检测精准率,并且能够满足实时检测的需要。但是实验中也显示出有些目标种类的检测精准率偏低,在今后的研究中,将针对此问题对改进后的模型进一步调整,以达到更好的检测效果。
天津市科委科技计划项目(20YDTPJC01110)和天津市大学生创新创业计划训练项目(202210066064)。
*通讯作者。