基于深度学习YOLOv5电动车头盔佩戴检测设计毕业设计

news2024/10/1 16:56:05

wx供重浩:创享日记
对话框发送:625头盔
获取完整源码源文件+标注好的数据集(在源码文件夹->yolov5-5.0->VOCdevkit)+优秀论文+答辩PPT及文稿等


在这里插入图片描述


设计总说明

在许多非机动车交通事故中,未佩戴头盔是造成驾驶人受伤或死亡的主要原因,检测和惩处此类骑手对于降低道路交通事故严重性与保障人生命财产安全具有重要意义。针对该问题,目前交管部门主要采取交警现场执法这种监管方式,该方式需要投入巨大的人力物力,且效率低下。随着深度学习和目标检测技术的发展,越来越多的基于深度学习的智能系统应用于交通识别的场景中,因此,本文研究并设计了基于深度学习的电动车头盔佩戴检测系统,主要基于改进及训练后的YOLOv5模型对未佩戴头盔该违规行为进行识别,该系统可以辅助交管部门对非机动车进行监管,具有一定的现实意义与实用价值。

本设计的主要标准是算法准确性和实时性。算法准确性要求检测结果正确率高,误报率低;实时性则要求算法能够在短时间内完成检测并输出结果。本设计的设计原则是综合考虑算法的准确性和实时性,选用适合的深度学习模型进行训练,并结合数据集特点进行优化。同时,要充分考虑实际使用场景中可能出现的干扰及操作的便捷性,针对性地进行算法优化及可视化设计。综上所述,本设计选择Pytorch对YOLOv5模型进行训练,根据数据集和实际场景骑手头部目标较小的特点,使用Mosaic-9数据增强和添加CBAM注意力机制对原模型进行改进。
本设计的具体步骤如下:
(1)数据采集:本次电动车头盔佩戴检测数据集由MS COCO大型目标检测数据集和互联网中收集的非机动车道交通情况的数据集组合而成。
(2)数据标注:利用labelimg标注工具对数据集中的佩戴头盔、未佩戴头盔和非机动车三类进行标注,并进行格式转换和划分,得到训练数据集。
(3)模型训练:选用YOLOv5框架训练模型,并使用优化算法对模型进行调参和优化。
(4)分析改进:针对数据集特点和实际应用场景下的目标特点,提出并进行Mosaic-9数据增强和添加CBAM注意力机制优化。
(5)实验验证:对不同场景下目标进行实验验证,评估算法的准确性和实时性。并且基于PySide6实现可视化操作界面。

本设计最终实现了基于YOLOv5的电动车头盔佩戴检测算法,该算法能够在实时性和准确性方面达到较高的水平。实验结果表明,改进后的模型在保持实时性为49FPS的情况下,均值平均精确度相比原始的YOLOv5模型从原来的83.3%提升到了85.3%,精确率从 83.8%上升到了86.5%,召回率从78.4%上升到79.4%。相较于原先的模型,改进后的 YOLOv5模型在小目标检测上优势明显,能在保持YOLOv5检测实时性的同时,提高是否佩戴头盔和是否为非机动车的检测和分辨效果。同时,针对实际使用场景中可能的干扰因素,本设计还进行了一定的优化改进,提高了算法的鲁棒性和稳定性。


论文目录

在这里插入图片描述
在这里插入图片描述


YOLOv5模型结构

在这里插入图片描述


YOLOv5检测流程

在这里插入图片描述


数据集分析和算法改进

本章首先对数据集和YOLOv5模型进行了分析,虽然YOLOv5是一种性能优异的通用目标检测算法,但在特定数据集上,其可能存在着一些问题,例如目标数量不均衡、目标过小等。这些问题可能会影响模型在该数据集上的检测效果和性能表现。为了解决这些问题,本章基于分析,提出了相关的改进措施。

3.1 头盔佩戴数据集分析
本次电动车头盔佩戴检测数据集由MS COCO大型目标检测数据集和网络中收集的非机动车道交通情况的数据集组合而成。通过labelimg软件对所有收集的图片进行标注,先标注为XML格式,再通过Python脚本转换为YOLO格式,并将其进行划分,代码详解附录B。处理完成的数据集一共有1164张图片用于训练,299张图片用于验证。其中检测的类别包含电动车及摩托车(two_wheeler)、佩戴头盔(helmet)和未佩戴头盔(without)三类,每个类别的实例数量如图3-1所示。其中,电动车及摩托车(two_wheeler)类共有3604个,佩戴头盔(helmet)类共3087个,未佩戴头盔(without)类共1760个。具体而言,数据集中未佩戴头盔类的检测实例数量较少,导致类别不均衡问题,可以通过数据增强处理来改善此问题。另外,数据集中存在许多较小的目标,占比约为44.52%。在这种情况下,可以添加CBAM注意力机制以改进小目标检测效果。总之,在解决目标检测问题时,需要针对数据集中的具体情况进行相应的处理和优化,以提高模型的检测准确率和性能。
在这里插入图片描述
3.2 YOLOv5分析
YOLOv5通过使用路径聚合网络和改进的网络骨架,显著提高了小物体检测效果。同时,对于大目标检测,该模型采用了多尺度训练和PAN模块来提高检测精度。多尺度训练可以从不同的尺度下学习到更多特征信息,而PAN模块则将不同尺度的特征信息融合起来,有效提高了检测精度。
然而, 由于小目标的面积较小且分辨率低,YOLOv5模型容易忽略或误分类这些目标。此外,该模型采用的anchor-based方法限制了检测框的大小和形状,因此在小目标检测方面表现不如一些anchor-free方法。这些问题可能导致在检测密集小物体时存在定位失误的问题,并且还容易将背景错误判别为物体。针对这些问题,可以尝试使用其他更适合小目标检测的模型或方法,或者采用更加细致和精确的参数调整方式来改进模型性能。

3.3 YOLOv5改进
由上述对于数据集和YOLOv5模型的分析,得知检测类别数量不均衡且数据集中的小目标较多,因此,针对具体问题提出以下改进方法。
3.3.1 Mosaic-9数据增强
为了解决图3-1中的数据不均衡问题,本文选择采用数据增强方法以增加数据量。数据增强是一种预处理技术,可以通过微小的变换操作使神经网络将其视为全新的图片,从而减少过拟合并提高模型效果。本文采用了Mosaic-9数据增强方法,将9张图片随机缩放、翻转、调整色域等,然后拼接起来。在实际应用中,数据增强是一种简单有效的方法,可用于解决数据不足和数据不均衡等问题,提高模型的表现和泛化能力。图3-2展示了Mosaic-9数据增强在本次设计的数据集上的效果图。
在这里插入图片描述
3.3.2 添加CBAM注意力机制
通过对数据集的分析得知小目标对象占到了44.52%,并且道路交通背景较为复杂,作为检测对象的骑手头部被遮挡情况较多,在此问题下,若要提高目标检测和定位的精度,可以将CBAM注意力机制引入YOLOv5网络主干。CBAM模块可以增强网络在关键区域的响应,更好地捕捉目标物体的细节和特征,并引入上下文信息来更好地识别和定位目标物体。然而CBAM模块需要额外的计算量来计算通道和空间注意力权重,这会导致在处理大型图像集时网络速度下降。在YOLOv5网络中添加CBAM模块需要更长的训练时间来学习注意力权重,因此模型的训练时间会有所增加,与此同时,其需要更多的存储空间来存储注意力权重,这会增加训练和推理的内存需求。
在这里插入图片描述


模型训练与检验

本文利用PyTorch框架实现YOLOv5模型的改进,并在此基础上对模型性能和检测效果进行了分析。PyTorch是Facebook开源AI框架之一,它具有易学易用、可读性高、支持动态计算图和GPU加速等优点,且拥有强大的社区支持。本章将讨论训练和实验所使用的硬件平台以及对改进前后的模型进行比较分析。

4.1 训练硬件平台
本次实验中的所有数据皆在以下硬件平台上运行所得。
(1)CPU:Intel® Core™ i5-8265U CPU @ 1.60GHz 1.80 GHz
(2)运行内存:8.00 GB
(3)GPU:NVIDIA GeForce MX250,2GB显存,浮点计算速度约为1.5 TFLOPS

4.2 训练结果分析
在上述硬件设备基础上,本文通过100轮训练对改进前后的模型进行实验,使用精确率、召回率和 作为模型的评价指标。
4.2.1 训练过程对比
如图4-1所示,纵坐标为 ,横坐标为训练轮数。红色的曲线为改进前模型在训练时期的 的变化曲线,蓝色的曲线为改进后模型在训练时期的 的变化曲线。从图中可以看出改进后模型的 在训练期间一直比改进前模型高。
在这里插入图片描述
图4-2为验证集cls_loss变化图,cls_loss是分类损失函数,用于度量预测的类别标签与实际标签之间的差异。YOLOv5使用交叉熵损失函数计算cls_loss。该损失函数基于预测类别概率和实际标签之间的交叉熵来衡量预测结果的准确性。训练后期改进后模型的cls_loss要比改进前的低,因此改进后模型的分类效果要更好。图4-3为box_loss变化图,表示的是模型的边界框坐标定位方面的误差,越低表示模型的边界框定位越准。在YOLOv5中使用了CIoU loss来计算box_loss,CIoU loss比原本的损失函数多考虑了边界框的中心点距离和长宽比,能更好的反应预测框和真实框的接近程度,可以看到训练时期改进后模型比改进前的box_loss低,这表明改进后的模型在定位方面更精确。图4-4为obj_loss变化图,表示的是边界框是物体的置信度方面误差,越低表示模型对边界框内是否存在物体的判别能力越强。改进后模型的obj_loss一直比改进前低,这表明改进后模型判别是否存在物体的能力更强,能够减少风景被误判概率。随着训练批次的上升,loss出现了先下降后上升的趋势,这是因为出现了过拟合的现象。为了选取泛化能力最强的模型权重,应该选择loss曲线中最低的点所对应的模型权重作为最佳的模型权重。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.2.2 训练结果对比
图4-5展示了YOLOv5模型改进前后在 指标上的表现。横坐标表示佩戴头盔、未佩戴头盔和电动车三个不同的类别以及所有类别,纵坐标表示预测边界框中IoU大于50%的情况下的均值平均精确度。根据图中数据可知,改进后的模型在整体和每个类别上的均值平均精确率都有所提升。佩戴头盔类的均值平均精确率从81.1%提升到了85.2%,未佩戴头盔类的均值平均精确率从73.4%上升到了75.4%,电动车类的改进前后均为95.4%,而全部类别的均值平均精确率从83.3%提升到了85.3%,提升了2.0%。综上所述,YOLOv5模型的改进使其在物体检测方面表现更加优秀,能够更准确地识别不同类别的物体。
在这里插入图片描述
图4-6为模型改进前后在精确度方面的对比,横坐标代表各个类别,纵坐标代表精确度。由图可知,佩戴头盔类从81.4%提升到85.3%,提升了3.9%;未佩戴头盔类从80.2%提升到84.4%,提升了4.2%;电动车类从89.9%提升到90.0%,基本保持不变。而在全部类别上,改进后模型的精确度为86.5%,比改进前的83.8%有了2.7%的提升。这表明改进后的模型能够更准确地识别不同类别的物体,从而提高了整体的检测性能,使其能够更好地应用于实际场景中的物体检测任务。
在这里插入图片描述
图4-7为模型改进前后在召回率方面的对比,横坐标表示各个类别,纵坐标表示召回率。由图可知,改进后模型在未佩戴头盔类的召回率从64.6%上升到了67.6%,而电动车类的召回率从89.6%上升到了90.2%,但佩戴头盔类的召回率从80.9%下降到了80.6%。综上所述,所有类别的召回率从原来的78.4%上升到了79.4%,通过改进YOLOv5模型,在召回率方面有所提高,从而使其能够更准确地检测不同类别的物体。虽然某些类别的召回率可能会有所下降,但整体上模型的性能仍然得到了显著提升。
在这里插入图片描述
图4-8和图4-9展示了模型改进前后在两个电动车骑行者检测方面的表现对比。其中图4-8显示的是改进前的未佩戴头盔检测效果图,绿色框表示电动车类,0.88和0.87则表示模型认为该框有88%和87%的可能性为电动车;黄色框则表示未佩戴头盔类,0.82和0.81分别表示模型认为该框有82%和81%的可能性为未佩戴头盔。而图4-9则显示了改进后的模型在同一张图片上的检测效果图,紫色框表示电动车类,0.91和0.87则表示改进后的模型对该框的置信度分别为91%和87%。与此同时,未佩戴头盔检测出的置信度分别提升为84%和82%。比较改进前后的检测效果图可以明显的看出改进后的模型相较于改进前模型在电动车类及未佩戴头盔类的检测上有了较大的提升。综上所述,通过改进YOLOv5模型,在物体检测方面取得了显著的提升,能够更准确地识别不同类别的物体并提高整体的检测性能。
在这里插入图片描述
在这里插入图片描述
图4-10展示了未经改进的模型在道路交通图片上的目标检测效果。在该图中,深蓝色边框代表电动车类,数字表示其置信度大小,数字越大代表预测结果越可信。该图中,模型共预测出了4个电动车和摩托车边框。相比之下,图4-11展示了经过改进后的模型在小目标检测上的表现。该图中,本章可以发现改进后的模型总共预测出了6个电动车和摩托车边框,并且相对于改进前的模型,改进后的模型整体置信度有所提高。因此,从这个角度来看,改进后的模型能够更加精准地定位目标。
在这里插入图片描述

其余完整详见下载!!!!

4.3 可视化界面
为了使得检测操作更加便捷,本文基于PySide6开发了一个简单的图片及视频检测的可视化操作界面,由于无法连接交通摄像头进行检测,因此该可视化界面未加入摄像头作为数据源的检测。
PySide6是一个基于Python语言和Qt框架的开源软件库,提供了对Qt6及其功能的完全支持,可用于创建跨平台的桌面应用程序。PySide6提供了大量的模块和类,如QtWidgets、QtCore、QtGui、QtNetwork等,可以通过这些模块和类来实现各种操作,使得Python开发人员得以使用Qt框架构建功能丰富的GUI应用程序。
因此本文基于PySide6进行相关开发,首先根据逻辑及界面需求,使用Qt Designer设计用户界面,并将设计的.ui文件转换为Python文件,接着在PyCharm中创建主程序代码,并导入所需的PySide6模块、自动生成的.py文件和其他必要的库;最后编写Python代码以实现用户界面上的交互行为和逻辑,具体代码详解附录C。如图4-13为电动车头盔佩戴检测可视化界面,底部两个按钮可以选择图片检测和视频检测,左上方显示的为供检测的源文件,右上方显示的为检测结果。
在这里插入图片描述
其余完整详见下载!!!!

数据集格式转换和划分代码

import os, random, shutil
 
def moveimg(fileDir, tarDir):
    pathDir = os.listdir(fileDir)  # 取图片的原始路径
    filenumber = len(pathDir)
    rate = 0.2  # 自定义抽取图片的比例,比方说100张抽10张,那就是0.1
    picknumber = int(filenumber * rate)  # 按照rate比例从文件夹中取一定数量图片
    sample = random.sample(pathDir, picknumber)  # 随机选取picknumber数量的样本图片
    print(sample)
    for name in sample:
        shutil.move(fileDir + name, tarDir + "\\" + name)
    return
 
def movelabel(file_list, file_label_train, file_label_val):
    for i in file_list:
        if i.endswith('.jpg'):
            filename = file_label_train + "\\" + i[:-4] + '.txt' 
            if os.path.exists(filename):
                shutil.move(filename, file_label_val)
                print(i + "处理成功!")
 
if __name__ == '__main__':
    fileDir = r"C:\Users\XXX\Desktop\hat\JPEGImages" + "\\"  # 源图片文件夹路径
    tarDir = r'C:\Users\XXX\Desktop\hat\JPEGImages_val'  # 图片移动到新的文件夹路径
    moveimg(fileDir, tarDir)
    file_list = os.listdir(tarDir)
    file_label_train = r"C:\Users\86159\Desktop\hat\Annotations_yolo"  # 源图片标签路径
    file_label_val = r"C:\Users\86159\Desktop\hat\Annotations_val"  # 标签
      # 移动到新的文件路径
    movelabel(file_list, file_label_train, file_label_val 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/686775.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

永磁电机中的磁钢

稀土永磁最大的应用领域就是永磁电机,电机俗称马达,广义上的电机包含了将电能转换成机械能的电动机,和将机械能转换成电能的发电机,不管是电动机还是发电机,都是利用电磁感应定律或电磁力定律作为基础原理的电气设备。…

【教学类-36-02】动物头饰制作(midjounery动物简笔画四图)

作品展示 (用midjounery动物简笔画四图作为头饰上的动物,正方形折纸的辅助黏贴物) 背景需求: 1、用midjounery生成简笔画动物图案(四张预览) 2、收集各种不同的动物的一张图片.png 3、设计一款中班幼儿用…

python spider 爬虫 之 解析 xpath 、jsonpath、BeautifulSoup (-)

Xpath 插件下载及安装 下载地址:https://chrome.zzzmh.cn/info/hgimnogjllphhhkhlmebbmlgjoejdpjl 安装xpath 如果下载的xpath后缀是crx 格式的, 直接改成zip格式,然后直接拖拽到上面的界面中便可, 查看是否安装成功&#xff0c…

DOM操作——获取元素的方式

关注“大前端私房菜”微信公众号,回复暗号【面试宝典】即可免费领取107页前端面试题。 DOM-文档对象模型 DOM(Document Object Model):文档对象模型 其实就是操作 html 中的标签的一些能力,或者说是一整套操作文档流的…

10年内打造量子超级计算机,行吗?

光子盒研究院 在未来十年内,微软打算建造一台量子超级计算机。 本周四,微软制定了一个开发自己的量子超级计算机的战略蓝图。设计它的团队将花费至少10年的研究时间,来建造一台能够每秒进行一百万次可靠量子操作的机器。 微软声称&#xff0c…

C++的access()函数

文章目录 函数功能头文件函数原型参数说明示例 函数功能 确定文件是否存在或者判断读写执行权限;确定文件夹是否存在即,检查某个文件的存取方式,比如说是只读方式、只写方式等。如果指定的存取方式有效,则函数返回0,否…

津津乐道设计模式 - 观察者模式详解(学会察言观色再也不怕女朋友生气了)

🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Micro麦可乐的博客 🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战 🌺《RabbitMQ》…

Nginx 优化配置及详细注释~转

Nginx 优化配置及详细注释 转https://www.cnblogs.com/taiyonghai/p/5610112.html Nginx 的nginx.conf文件,是调优后的,具体影响已经写清楚注释,可以拿来用,有一些设置无效,我备注上了,不知道是不是版本的…

《kafka 核心技术与实战》课程学习笔记(七)

生产者压缩算法 怎么压缩? 压缩(compression)秉承了用时间去换空间的经典 trade-off 思想,具体来说就是用 CPU 时间去换磁盘空间或网络 I/O 传输量,希望以较小的 CPU 开销带来更少的磁盘占用或更少的网络 I/O 传输。…

初识mysql数据库之基础操作

目录 一、库的操作 1. 创建数据库 2. 数据库的编码集 2.1 数据库的编码问题 2.2 查看系统默认字符集和校验规则 2.3 创建数据库时指定字符集和校验集 2.4 校验规则对数据库的影响 3. 进入数据库 4. 确认自己当前所处的数据库 5. 修改数据库的编码集 6. 查看创建数据…

FPGA解码MIPI视频 OV5647 2line CSI2 720P分辨率采集 提供工程源码和技术支持

目录 1、前言2、Xilinx官方主推的MIPI解码方案3、本 MIPI CSI2 模块性能及其优越性4、我这里已有的 MIPI 编解码方案5、详细设计方案6、vivado工程介绍7、上板调试验证8、福利:工程代码的获取 1、前言 FPGA图像采集领域目前协议最复杂、技术难度最高的应该就是MIPI…

现代民机“飞行管理系统(FMS)”的功能和组成

01 什么是 “飞行管理系统”? 飞行管理系统(FMS, Flight Management System),中文简称 “飞管”,是飞机航电系统的重要一员。 FMS 自 20 世纪 70 年代诞生以来,目前已有了跨越式发展。它作为航电关键系统&…

100种思维模型之质量控制理论思维模型-83

质量控制理论思维模型,又叫做戴明环思维模型,即PDCA循环思维模型。 在上世纪50年代,日本的商品和今天中国的商品一样,都是低质低价的代表,后来日本引入了戴明博士的质量控制理论,即PDCA循环理论&#xff0…

浅谈无线测温系统在高压开关柜中的应用

关注acrelzxz,了解更多详情 摘要:高压开关柜是配电系统中重要的组成部分,其主要作用是控制电荷、分配电能和开断电流等,对维持系统的稳定性有一定的保障作用。将无线测温技术应用于高压开关柜,可以实现对其进行实时的…

汽车芯片,竞逐新周期

在过去几年,SoC几乎成了智能汽车行业皇冠上的明珠。汽车芯片从通用型、分散化的单一功能芯片(MCU)快速转向集成化的多功能SoC(System on Chip)芯片。 比如,在智能座舱领域,CPU算力用于提高任务处…

国产chatgpt:基于chatGLM微调nlp分类任务

文章目录 一、源码网址1. 硬件设施:2. INT4 量化示例 二、重要的开源社区功能:网址:使用方法:利用方法:对 NLP 工作者的作用:对大模型工程师的用处: 三、重要的开源库四、提示词工程五、进行分类…

优思学院|精益生产管理七大要素

精益生产是一种有效的管理方法,通过优化生产流程和资源利用,帮助企业提高效率、降低成本,并最大程度地满足客户需求。在精益生产中,有七个关键的管理要素,它们分别是人员、资金、方法、机器设备、物料、市场及士气。 1…

避坑指南!一文帮您解决Jmeter录制chrome操作过程中遇到的问题!

Jmeter录制脚本原理 脚本录制时,Jmeter作为代理网关,通过监听某个端口,来捕获监听端口的报文信息,对抓取到的请求信息和响应信息进行转换为对应的行为函数。我们这里以设置chrome代理为例,然后使用jmeter进行脚本录制…

【方法】ZIP分卷压缩文件如何解压?

有时候文件太大,我们在压缩ZIP文件时会使用分卷压缩。 那后期想要解压ZIP分卷文件,要如何解压呢?不清楚的小伙伴,可以跟着小编来看看哦。 在解压ZIP分卷压缩文件之前,要先确保所有的分卷压缩包都存放在一个文件夹里&…

HTML5的新特性有哪些?

HTML5是近年来Web开发标准最巨大的飞跃。与以前的版本不同,HTML5并非仅仅用来表示Web内容,它的新使命是将Web带入一个成熟的应用平台,在HTML5平台上,视频、音频、图像、动画,以及同计算机的交互都被标准化。 HTML5在以…