本发明涉及一种基于改进yolov7的自动驾驶道路场景目标检测方法。
背景技术:
1、目前大中型目标检测已取得瞩目的成绩,但随着智能化系统的快速发展和便携式拍照设备的广泛应用,大量小目标存在于视频和图片中,仅仅检测大中型物体已无法满足实际需求,很多领域需要从小目标中获取关键信息,这充分表明小目标检测极具研究价值和应用前景。然而相较于大中型目标检测,同种检测算法用于小目标检测时的性能指标往往偏低,很难达到预期效果。这是因为小目标的分辨率低、信息有限,在下采样过程中容易丢失关键特征,导致漏检、误检现象严重。性能优越的自动驾驶系统能够检测到较小的障碍物,及时避开可能引发交通事故的障碍,确保与周边车辆和行人保持一定的安全距离。
2、目前主流的目标检测算法可以分为以yolo系列为主的单阶段法和fasterrcnn为主的双阶段法两大类。一阶段算法比两阶段算法效率高,能够满足实时性需求,但准确率不如两阶段算法。joseph redmon等人于2016年提出了yolo,该算法将检测问题看作回归问题处理,开创了一阶段目标检测的先河。两阶段目标检测算法的主要代表是r-cnn系列。两阶段目标检测算法与一阶段目标检测算法各有千秋,随着研究的不断深入,研究者们逐渐在一阶段算法的基础上融入两阶段算法的一些优秀思想,能在保证模型速度的同时进一步提高检测精度。
3、在自动驾驶中道路场景中行人车辆等小目标、遮挡物漏检误检一直是目标检测难以攻克的问题。为了降低道路场景中小目标检测过程中的漏检误检,本发明以yolov7算法为基础模型,提出了一种基于改进yolov7的自动驾驶道路场景目标检测方法。
技术实现思路
1、本发明提供一种基于改进yolov7的自动驾驶道路场景目标检测方法,本发明对原有的yolov7网络模型backbone、neck、head结构进行优化改进,解决了现有驾驶道路场景中行人车辆等小目标、遮挡物漏检误检的问题,训练效果较好,检测精度提高。
2、本发明所采用的技术方案有:
3、一种基于改进yolov7的自动驾驶道路场景目标检测方法,选用kitti数据集,将图片输入至yolov7网络模型中进行训练处理,并对yolov7网络模型中的backbone、neck、head结构进行优化改进,具体操作步骤如下:
4、步骤1:选用kitti数据集,对原始数据集中的图片的标签进行转换并按照8:1:1的比例划分为训练集、验证集和测试集;
5、步骤2:搭建yolov7网络训练模型,将所述训练集传输至yolov7的输入端,输入端采用mosaic数据增强;
6、步骤3:通过输入端后的特征图进入yolov7的backbone结构,backbone结构包括cbs、elan和mp-1三个模块,引入ca注意力机制,提高网络检测小目标能力,进而避免发生漏检误检;
7、步骤4:特征图从主干网络进入yolov7的neck结构中,引入bifpn加权双向金字塔网络进行多尺度特征融合,同时满足图片信息语义表征能力和特征图分辨率的要求,进一步避免发生漏检误检;
8、步骤5:将提取到的特征信息输入到head中进行回归,添加160×160尺度目标检测头,输出目标的置信度、类别和预测框,完成目标检测识别与评价。
9、步骤6:对检测成功后的结果进行分析,选取实验结果中的best.pt作为推理权重对所选图片(该图片在kitti数据集任选一张获得)进行推理并比较消融实验的改进结果。
10、进一步地,数据集划分前,对数据集的图片进行预处理,具体为:将数据集图片的标签转换为yolov7训练需要的yolo格式(即txt格式),标签文件中包含了图片的坐标位置信息并与图片相互对应。
11、原数据集包括car、van、truck、pedestrian、pedestrian-sitting、cyclist、tram和misc这八种类别,去除misc类;将car、van、truck、tram合并为car一类,将pedestrian和pedestrian-sitting合并为pedestrian一类;处理过后包含car、pedestrian、cyclist三种类别作为实验数据,然后将图片按照8:1:1的比例划分为用于模型训练的训练集、验证集和测试集的图片数据集。
12、进一步地,步骤2中的yolo网络训练模型在pytorch环境下搭建,将所得到训练集、验证集、测试集路径添加至模型配置文件中,并在模型中设置相应参数;
13、mosaic数据增强的具体操作为经过随机裁剪、缩放和任意排列图片拼接成一张新的图片,再将新图片输入网络进行训练。
14、进一步地,步骤3中在原始yolov7网络模型backbone中不同尺度的特征图后引入ca注意力机制。将目标的横向和纵向信息嵌入到特征通道中,使生成的特征信息具有目标对应的坐标信息,加强对感兴趣区域的特征提取,进而提高模型的检测效果。
15、yolo系列算法用回归方法解决目标检测问题,其思想是通过一个卷积神经网络结构直接进行分类和边框回归,将全图划分为若干个等分网格,每个网格负责检测其中包含的对象。yolov7采用拓展高效长程注意力网络elan、基于级联模型(concatenation-basedmodels)的模型缩放、卷积重参数化等策略,用较小的计算量大大提高检测的准确性。yolov7网络由输入端input、主干网络backbone、和检测头head三部分组成。
16、进一步地,步骤4中在原始yolov7网络模型neck中引入bifpn加权双向金字塔网络,反复应用自顶向下和自底向上的多尺度特征融合,捕获交通标志多尺度上下文信息,既确保小目标的分辨率,又扩大卷积核的感受野和语义信息表征能力。
17、进一步地,步骤5中在原始yolov7网络模型head中添加160×160尺度目标检测头,增加锚盒的数量和密度,提高预测与目标盒的拟合程度,从而提高定位精度,使网络对小目标格外敏感,提升了算法的小目标检测性能。
18、进一步地,步骤5中的评价指标采用固定iou阈值为0.3和置信度为0.5的方式来检测实验结果是否准确;以map、精确率、召回率来衡量算法的检测能力。
19、本发明具有如下有益效果:
20、1)本发明在yolov7 backbone网络中引入ca注意力机制,将目标的横向和纵向信息融合成注意力特征层,提高网络对小目标的检测效果。
21、2)本发明在yolov7 neck网络中引入bifpn加权双向金字塔网络进行多尺度特征融合,采用双向跨尺度连接和快速归一化特征融合,捕获目标多尺度上下文信息,既保证目标分辨率,又扩大卷积核感受野,避免小目标在池化过程中丢失有效特征信息从而发生漏检。
22、3)本发明在yolov7 head网络中添加160×160尺度目标检测头,使网络对小目标格外敏感,提升了算法的小目标检测性能。
1.一种基于改进yolov7的自动驾驶道路场景目标检测方法,其特征在于:包括以下步骤:
2.如权利要求1所述的基于改进yolov7的自动驾驶道路场景目标检测方法,其特征在于:步骤1中,将数据集图片的标签转换为被改进yolov7模型训练所需要的yolo格式,标签文件中包含了图片的坐标位置信息并与图片相互对应;然后将数据集图片按照8:1:1的比例划分为用于模型训练的训练集、验证集和测试集的图片数据集。
3.如权利要求1所述的基于改进yolov7的自动驾驶道路场景目标检测方法,其特征在于:步骤3中,mosaic数据增强的具体操作为:经过随机裁剪、缩放和任意排列图片拼接成一张新的图片,再将新图片输入改进yolov7模型进行训练。
4.如权利要求1所述的基于改进yolov7的自动驾驶道路场景目标检测方法,其特征在于:步骤3中,通过引入ca注意力机制,将目标的横向和纵向信息嵌入到特征通道中,使生成的特征信息具有目标对应的坐标信息,用以加强对感兴趣区域的特征提取。
5.如权利要求1所述的基于改进yolov7的自动驾驶道路场景目标检测方法,其特征在于:步骤4中,通过引入bifpn加权双向金字塔网络,反复应用自顶向下和自底向上的多尺度特征融合,捕获图片中目标的多尺度上下文信息。
6.如权利要求1所述的基于改进yolov7的自动驾驶道路场景目标检测方法,其特征在于:步骤5中,目标评价时的评价指标采用固定iou阈值为0.3和置信度为0.5的方式来检测实验结果是否准确;以map、精确率、召回率来衡量检测能力。
7.如权利要求1所述的基于改进yolov7的自动驾驶道路场景目标检测方法,其特征在于:通过训练集中的图片对改进yolov7训练是将训练集中的图片数据进行提取,经过多次迭代,最终得到完整的检测模型文件,检测模型文件为.pt格式;