一种基于YOLOv8改进的车辆检测与识别方法
- 国知局
- 2024-07-31 22:45:53
本发明属于物体检测图像处理领域,具体为一种基于yolov8改进的车辆检测与识别方法。
背景技术:
1、随着我国经济社会快速发展,人民生活水平普遍提高,以汽车作为主要代步工具的出行方式已经逐渐融入到人们的生活中,导致车辆保有量迅速增加。汽车的出现一方面给人们的出行提供了无尽的便捷,另一方面也使得我国的交通问题开始恶化,交通事故不断发生、道路拥挤逐渐严重。为了解决此类问题,高级驾驶辅助系统(advanced driverassistance system,adas)随之产生。
2、adas是指通过装置在车上的各种信息传感器设备,在车辆运行中对实时采集到的周围环境数据进行分析计算,从而辅助驾驶员对即将可能发生的危险做出关键性决策。adas主要包括环境感知、决策规划和控制警示三部分。其中环境感知部分是整个系统的核心支撑,主要作用是通过超声波、雷达等传感器采集行驶汽车周围环境的数据,并利用解析的数据来进行物体的位置检测和目标识别。而车辆目标检测作为环境感知中基础且最重要的一部分,涉及驾驶员的安全,因此对车辆目标检测算法的精度和速度具有较高的要求。所以,研究车辆目标检测算法,提升算法检测性能对于推动adas发展以及减少交通事故所带来的灾难具有重要意义。
3、目前主要的目标检测算法分为以fast-rcnn为代表的两阶段(two-stage)检测算法和以yolo和ssd为代表的一阶段(one-stage)检测算法。其中two-stage算法先对图像提取候选框,然后再利用卷积神经网络对候选区域进行定位分类,这类检测算法精度高,但无法达到实时检测。相比于两阶段算法,one-stage算法不需要生成候选框,直接在对目标物体进行位置回归计算的同时给出物体分类得分。具有更快的检测速度,但对于小目标的检测依然存在目标检测视野范围小、检测精度低等问题。在实际的应用中,我们需要找到精度和速度最佳的平衡点,因此通过提高一阶段检测算法性能,能够在实际应用中达到更高的实用价值。
4、随着yolo系列算法的不断改进,yolov8算法以其较高的检测精度以及速度被广泛应用于目标检测任务中。但是交通场景下的检测背景十分复杂,很可能与背景信息混淆在一起,由于其对浅层的特征提取的信息比较少,很难对小尺度的车辆进行准确的分类和精准的定位。同时由于车辆间存在遮挡,也使得提取的特征信息不够充分,导致目标车辆的漏检。
技术实现思路
1、为了克服现有技术的上述缺陷,本发明的实施例提供一种基于yolov8改进的车辆检测与识别方法,以解决上述背景技术中提出的问题。
2、为实现上述目的,本发明提供如下技术方案:一种基于yolov8改进的车辆检测与识别的方法,其具体步骤包括:
3、获取车辆检测数据集bdd100k,并对数据集进行预处理。
4、(1-1)选取bdd100k中的验证集作为本发明的检测数据集,数据集包含10000张图片。由于本发明特定的应用场景,忽略bdd100k数据集中light、sign、person、bike、rider这几种类别。将每一张图片对应标签的json格式通过python脚本转换为xml文件。xml文件包含图片名称、图片路径、目标标签名称以及目标位置坐标。
5、(1-2)将bus、truck、motor、car、train统一归为car类。将统一类别之后的图片及标签xml文件按照voc格式进行存储。
6、将处理好的图片和标签文件,按照voc标准格式,导入到yolov8的data中。并在该目录下新建annotations,images,imagesets,labels四个文件夹。annotations文件夹中存储每一个标签xml文件,images文件夹中存储所有图片。
7、(1-3)使用python脚本将创建好的voc格式的数据集随机按照8:2划分为训练集和测试集。再用python脚本把数据集标签格式转换成yolo适用的txt格式。
8、基于注意力机制的思想,在原yolov8网络中加入simam注意力机制。
9、simam是一个用于卷积神经网络的概念简单但非常有效的注意力模块,与现有的通道注意力模块和空间注意力模块相比,simam注意力模块在无需向原始网络添加参数的情况下,为特征图推断三维注意力权重。具体来说,该注意力机制是基于一些著名的神经科学理论,提出优化能量函数以发掘每个神经元的重要性。我们进一步推导出能量函数的快速封闭形式的解,并表明该解可以在不到十行代码中实现。使用simam模块可以提高模型对特征的提取能力,进而提高对目标的检测精度。
10、对空间金字塔池化进行改进,将原yolov8网络中的sppf层换成了rfb层。
11、rfb网络由几个具有不同大小卷积核的卷积层组成。每个分支使用不同尺度的卷积核和不同扩展率的腔卷积的组合,允许每个分支的感知场扩展到不同程度。rfb的结构借鉴了inception的结构,在inception中添加了空腔卷积,有效地增加了感受野。
12、对损失函数进行改进,运用了mpdiou损失函数。
13、当预测框与真实边界框具有相同的纵横比,但宽度和高度值完全不同时,大多数现有的边界框回归损失函数都无法优化。为了解决上述问题,将yolov8中的ciou替换成一种新的基于最小点距离的边界框相似性比较度量mpdiou,该度量包含了现有损失函数中考虑的所有相关因素,即重叠或不重叠区域、中心点距离、宽度和高度偏差,同时简化了计算过程。
14、对改进后的网络进行训练和测试:
15、设置迭代次数epoch为300,batch-size为8,初始学习率为0.01,经过300次迭代训练,损失值与精度均趋于稳定,保存此时的最佳模型参数。
16、模型测试采用的模型评价指标精准率(precision)、召回率(recall)、平均精度(ap)如下:
17、
18、
19、
20、其中,tp为将正类预测为正类的数,tn为将正类预测为负类的数,fp为将负类预测为正类的数,fn为将负类预测为负类的数,precision即正确检测到的样本数占总样本数的比例,recall即正确检测到的样本数占真实样本数的比例,平均精度(ap)即在不同recall下的最高precision的均值。
21、本发明的技术效果和优点:
22、本发明通过对yolov8网络进行改进,相比原来的yolov8算法,提高了检测精度,改善了小目标车辆的识别,取得了良好的效果。
技术特征:1.一种基于yolov8网络改进的车辆检测算法,其特征在于,主要包括以下步骤:
2.根据权利要求1所述的一种基于yolov8网络改进的车辆检测检测算法,其特征在于:输入尺寸为640*640*3的图片,经conv后输出(320*320*64),后连接conv层输出(160*160*128),连接c2f层输出(160*160*128),连接conv层输出(80*80*256),连接c2f层输出(80*80*256),连接层simam模块和卷积conv层,连接的simam输出作为特征金字塔的中间层的输入,并对目标进行预测输出;而连接卷积conv层输出(40*40*512),连接c2f层输出(40*40*512),连接层simam模块和卷积conv层,连接的simam输出作为特征金字塔的中下层的输入,并对目标进行预测输出;而连接卷积conv层输出(20*20*512),连接c2f层输出(20*20*512),连接rfb层输出(20*20*512)和simam模块,连接层simam模块输出作为特征金字塔的低层的输入,并对目标进行预测输出。
3.根据权利要求2所述的一种基于yolov8网络改进的车辆检测检测算法,其特征在于:将原yolov8中的池化层sppf层替换为rfb层,由于rfb允许每个分支的感知场扩展到不同程度,因此有效地增加了感受野;
4.根据权利要求3中所述的一种基于yolov8网络改进的车辆检测算法,其特征在于:引入基于mpdiou的边界框回归损失函数lmpdiou,yolo系列依赖于边界框回归模块来确定物体的位置,因此设计良好的损失函数对边界框回归的成功至关重要,lmpdiou定义为:
5.根据权利要求4中所述的一种基于yolov8网络改进的车辆检测算法,其特征在于,所述步骤(5)中,设置迭代次数epoch为300,batch-size为8,初始学习率为0.01,经过300次迭代训练,损失值与精度均趋于稳定,保存此时的最佳模型参数;
技术总结本发明公开了一种基于YOLOv8改进的车辆检测与识别方法,其方案是:(1)对公开的车辆检测数据集BDD100k进行预处理;(2)引入SimAM注意力模块来增强特征提取;(3)引入了RFB层,有效的增加了感受野;(4)对损失函数进行了改进,运用了MPDIoU损失函数,它包含了现有损失函数中考虑的所有相关因素,即重叠或不重叠区域、中心点距离、宽度和高度偏差,同时简化了计算过程;(5)对改进后的网络进行训练和测试。本发明在公开的车辆检测数据集BDD100k上得到了良好的检测效果,提高了车辆的检测精度,可用于无人驾驶和智能监控领域,为人们的生活带来便利。技术研发人员:张开玉,林彦伶受保护的技术使用者:哈尔滨理工大学技术研发日:技术公布日:2024/7/29本文地址:https://www.jishuxx.com/zhuanli/20240730/194472.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表