【深度学习目标检测】二十四、基于深度学习的疲劳驾驶检测系统-含数据集、GUI和源码(python,yolov8)

设计一个疲劳驾驶检测系统的重要性主要体现在以下几个方面:

  1. 提高道路安全:疲劳驾驶是引发交通事故的重要因素之一。驾驶员在长时间驾驶或缺乏休息的情况下,反应速度和判断能力会显著下降,从而增加事故风险。通过实时检测驾驶员的疲劳状态,并及时发出警告或采取相应措施,疲劳驾驶检测系统可以显著提高道路安全性,减少因疲劳驾驶引发的事故。

  2. 保护驾驶员健康:长时间驾驶对驾驶员的身体健康也有不良影响,可能导致肌肉疲劳、眼睛疲劳、颈椎问题等。通过检测疲劳状态,系统可以提醒驾驶员适时休息,有助于保护驾驶员的身体健康。

  3. 提升驾驶效率与舒适度:疲劳驾驶不仅危险,还会导致驾驶效率下降。一个能够准确检测疲劳并及时提醒驾驶员的系统,可以帮助驾驶员保持清醒和专注,从而提高驾驶效率。同时,合理的休息安排也能提升驾驶员的驾驶舒适度。

  4. 符合法规要求:许多国家和地区都有关于驾驶员工作时间和休息时间的法规要求,以防止疲劳驾驶。一个有效的疲劳驾驶检测系统可以帮助运输公司和个人驾驶员遵守这些法规,避免因违规而面临的法律风险和罚款。

  5. 技术进步与智能化趋势:随着汽车智能化和自动驾驶技术的发展,车辆能够越来越多地承担驾驶任务中的监控和决策职责。疲劳驾驶检测系统是这一趋势的重要组成部分,它体现了技术进步在提升道路安全和驾驶体验方面的积极作用。

  6. 保险与风险管理:对于运输公司和保险公司而言,疲劳驾驶是一个重要的风险管理因素。通过使用疲劳驾驶检测系统,这些公司可以更好地评估和管理风险,从而制定更合理的保险政策和安全措施。

综上所述,设计一个疲劳驾驶检测系统对于提高道路安全、保护驾驶员健康、提升驾驶效率与舒适度、符合法规要求以及适应技术进步与智能化趋势等方面都具有重要意义。

本文介绍了基于深度学习yolov8的行人检测计数系统,包括训练过程和数据准备过程,同时提供了推理的代码和GUI。对准备计算机视觉相关的毕业设计的同学有着一定的帮助。

模型在线体验:https://o554w00336.goho.co/

检测结果如下图:

一、安装YoloV8

yolov8官方文档:主页 - Ultralytics YOLOv8 文档

安装部分参考:官方安装教程

1、安装pytorch

根据本机是否有GPU,安装适合自己的pytorch,如果需要训练自己的模型,建议使用GPU版本。

①GPU版本的pytorch安装

对于GPU用户,安装GPU版本的pytorch,首先在cmd命令行输入nvidia-smi,查看本机的cuda版本,如下图,我的cuda版本是12.4(如果版本过低,建议升级nvidia驱动):

打开pytorch官网,选择合适的版本安装pytorch,如下图,建议使用conda安装防止cuda版本问题出现报错:

②CPU版本pytorch安装

打开pytorch官网,选择CPU版本安装pytorch,如下图:

2、安装yolov8

在命令行使用如下命令安装:

pip install ultralytics

二、数据集准备

本文数据集来自疲劳驾驶行为数据集

该数据集包含2041个训练数据,582个验证数据,291个测试数据,数据如下图:

为了使用yolov8算法进行训练,需要将该数据转换为yolov8格式,本文提供转换好的数据集下载连接:(驾驶疲劳检测)yolov8格式数据集,该数据集2041个训练数据,582个验证数据,291个测试数据

三、模型配置及训练

1、数据集配置文件

创建数据集配置文件fatigue.yaml,内容如下(将path路径替换为自己的数据集路径):

# Ultralytics YOLO 🚀, AGPL-3.0 license
# COCO 2017 dataset http://cocodataset.org by Microsoft
# Example usage: yolo train data=coco.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco  ← downloads here (20.1 GB)
 
 
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: D:\DeepLearning\datasets\csdn\fatigue\fatigue_yolov8  # 替换为自己的数据集路径
train: images/train 
val: images/val 
test: images/val  
 
# Classes
names:
  # 0: normal
  0: closed_mouth
  1: open_eye
  2: closed_eye
  3: open_mouth

2、训练模型

使用如下命令训练模型,数据配置文件路径更改为自己的路径,model根据自己的需要使用yolov8n/s/l/x版本,其他参数根据自己的需要进行设置:

yolo detect train project=fatigue name=train exist_ok data=fatigue.yaml model=yolov8n.yaml epochs=100 imgsz=640 

3、验证模型

使用如下命令验证模型,相关路径根据需要修改:

yolo detect val project=fatigue name=val imgsz=640 model=fatigue/train/weights/best.pt data=fatigue.yaml

精度如下:

# YOLOv8n summary (fused): 168 layers, 3006428 parameters, 0 gradients, 8.1 GFLOPs
#                  Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 19/19 [00:02<00:00,  6.84it/s]
#                    all        582       1545      0.483      0.491      0.543      0.353
#           closed_mouth        582        509    0.00268    0.00196      0.185      0.122
#               open_eye        582        580      0.965      0.964      0.986       0.54
#             closed_eye        582        403          0          0    0.00449    0.00305
#             open_mouth        582         53      0.963          1      0.994      0.747
# Speed: 0.5ms preprocess, 1.2ms inference, 0.0ms loss, 0.8ms postprocess per image

四、推理

训练好了模型,可以使用如下代码实现推理,权重路径修改为自己的路径:

from PIL import Image
from ultralytics import YOLO
 
# 加载预训练的YOLOv8n模型
model = YOLO('best.pt')
 
image_path = 'test.jpg'
results = model(image_path)  # 结果列表
 
# 展示结果
for r in results:
    im_array = r.plot()  # 绘制包含预测结果的BGR numpy数组
    im = Image.fromarray(im_array[..., ::-1])  # RGB PIL图像
    im.show()  # 显示图像
    im.save('results.jpg')  # 保存图像

五、界面开发

使用pyqt5开发gui界面,支持图片、视频、摄像头输入,支持导出到指定路径,其GUI如下图(完整GUI代码可在下方链接下载):

代码下载连接:基于yolov8的疲劳驾驶检测系统,包含训练好的权重和推理代码,GUI界面,支持图片、视频、摄像头输入,支持检测结果导出

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

金三银四面试题(一):JVM类加载与垃圾回收

面试过程中最经典的一题&#xff1a; 请你讲讲在JVM中类的加载过程以及垃圾回收&#xff1f; 加载过程 当Java虚拟机&#xff08;JVM&#xff09;启动时&#xff0c;它会通过类加载器&#xff08;ClassLoader&#xff09;加载Java类到内存中。类加载是Java程序运行的重要组成…

AI视频风格转换动漫风:Stable Diffusion+TemporalKit

话不多说&#xff0c;直接开干。 基本方法 首先通过 Temporal-Kit 这个插件提取视频中的关键帧图片&#xff0c;然后使用 Stable Diffusion WebUI 重绘关键帧图片&#xff0c;然后再使用 Temporal-Kit 处理转换后的关键帧图片&#xff0c;它会自动补充关键帧之间的图片&#…

Karmada 管理有状态应用 Xline 的早期探索与实践

背景与动机 目前随着云原生技术和云市场的不断成熟&#xff0c;越来越多的 IT 厂商开始投入到跨云多集群的怀抱当中。以下是 flexera 在 2023 年中关于云原生市场对多云多集群管理的接受程度的调查报告&#xff08;http://info.flexera.com&#xff09; 从 flexera 的报告中可…

优化选址问题 | 基于灰狼算法求解基站选址问题含Matlab源码

目录 问题代码问题 灰狼优化算法(Grey Wolf Optimizer, GWO)是一种基于自然界中灰狼群体狩猎行为的优化算法。这种算法通过模拟灰狼的社会等级和狩猎行为来寻找问题的最优解。 基站选址问题通常是一个多目标优化问题,涉及到覆盖范围、信号质量、成本等多个因素。使用灰狼算…

拌合楼管理软件开发(十一) 海康威视车牌识别摄像头安装调试,记录犯经验主义错误不断自己打脸过程

前言: 从小白开始 海康威视的摄像头接触过,包括前面也都开发了调用sdk开发拍照和视频预览,以及通过事件警报获取数据的。接触到的像头都是12v或者24v电源&#xff0c;或者是POE供电的&#xff0c;先入为主了觉得都是这样&#xff0c;结果打脸了。 一、设备选型&#xff1a; 最开…

glibc内存管理ptmalloc - largebin

前言 上节《glibc内存管理ptmalloc》我们讲了fastbin/unsortedbin/smallbin, 有意避开了largebin, 因为largebin稍微复杂一点点&#xff0c;需要单独一节讲解。 largebin的特点 chunk size 大于等于1024字节largebin共有63个链表largebin每个链表中的chunk size不固定largeb…

阿里云2核4G云服务器165元一年,ECS u1优惠价格199元一年

阿里云2核4G服务器租用优惠价格&#xff0c;轻量2核4G服务器165元一年、u1服务器2核4G5M带宽199元一年、云服务器e实例30元3个月&#xff0c;活动链接 aliyunfuwuqi.com/go/aliyun 活动链接如下图&#xff1a; 阿里云2核4G服务器优惠价格 轻量应用服务器2核2G4M带宽、60GB高效…

MySQL数据库 - 存储引擎

一. mysql 存储引擎的相关知识 1.1 存储引擎的概念 MySQL中的数据用各种不下同的技术存储在文件中&#xff0c;每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力&#xff0c;这些不同的技术以及配套的功能在MySQL中称为存储引擎。存储引擎是My…

天水麻辣烫火爆出圈,秦安能否接得住这“泼天富贵”?

文章目录 泼天富贵来袭莲花社火助力秦安花椒 秦安介绍基本概况秦安地形秦安气候秦安乡镇 秦安旅游李元芳故居兴国寺女娲庙秦安文庙泰山庙人民街古建商业一条街大地湾遗址三国街亭古战场遗址女娲洞 泼天富贵来袭 一碗麻辣烫带火一座城。甘肃天水麻辣烫在社交媒体平台火爆出圈&a…

算法系列--动态规划--回文子串系列

&#x1f495;"我们好像在池塘的水底&#xff0c;从一个月亮走向另一个月亮。。"&#x1f495; 作者&#xff1a;Mylvzi 文章主要内容&#xff1a;算法系列–动态规划–回文子串系列 今天为大家带来的是算法系列--动态规划--回文子串系列(1),本文重点掌握如何快速判…

Linux相关命令(2)

1、W &#xff1a;主要是查看当前登录的用户 在上面这个截图里面呢&#xff0c; 第一列 user &#xff0c;代表登录的用户&#xff0c; 第二列&#xff0c; tty 代表用户登录的终端号&#xff0c;因为在 linux 中并不是只有一个终端的&#xff0c; pts/2 代表是图形界面的第…

伦敦银操作建议中所蕴含的支撑阻力位技术

在伦敦银操作建议或者报告中&#xff0c;尤其是有关伦敦银操作技术分析的建议中&#xff0c;我们总是能看到一个名词&#xff1a;支撑阻力位。其实支撑阻力位有两个意思&#xff0c;一个是支撑位&#xff0c;一个是阻力位&#xff0c;我们习惯将它们合起来称呼&#xff0c;实际…

uniapp安装axios

先npm安装 npm i axios然后在项目里面建一个utils文件&#xff0c;再建一个index.js 以下是index.js代码&#xff1a; import axios from axios; const service axios.create({baseURL: //xxxx.xxxxx.com///你的请求接口域名, timeout: 6000, // request timeoutcrossDomai…

设计数据库之外部模式:数据库的应用

Chapter5&#xff1a;设计数据库之外部模式&#xff1a;数据库的应用 笔记来源&#xff1a;《漫画数据库》—科学出版社 设计数据库的步骤&#xff1a; 概念模式 概念模式(conceptual schema)是指将现实世界模型化的阶段进而&#xff0c;是确定数据库理论结构的阶段。 概念模…

【 yolo红外微小无人机-直升机-飞机-飞鸟目标检测】

yolo无人机-直升机-飞机-飞鸟目标检测 1. 小型旋翼无人机目标检测2. yolo红外微小无人机-直升机-飞机-飞鸟目标检测3. yolo细分类型飞机-鸟类-无人机检测4. yolo红外大尺度无人机检测 1. 小型旋翼无人机目标检测 类别 nc: 1 names: [‘drone’] 数据集和模型 VOC无人机UAV数据…

小目标检测常见解决策略总结

1. 引言 尽管目标检测算法取得了长足的发展&#xff0c;例如 Faster RCNN、YOLO、SSD、RetinaNet、EfficientDet 等。通常&#xff0c;这些模型是在 COCO数据集上训练的。它是一个包含各种对象类别和标注的大规模数据集&#xff0c;因此在训练对象检测器方面很受欢迎。然而&am…

FEX-Emu在Debian/Ubuntu系统使用

FEX-Emu在Debian/Ubuntu系统使用 1. Debootstrap子系统安装&#xff08;可选&#xff09;2. Debian/Ubuntu依赖包安装3. 获取FEX-Emu源码并编译4. 根文件系统RootFS安装5. 基于 FEX-Emu 运行应用 1. Debootstrap子系统安装&#xff08;可选&#xff09; sudo apt-get install …

蓝桥杯第二天刷真题

public class Main {public static void main(String [] args) { //存大数方法String s"202320232023"; // 定义一个字符串&#xff0c;它将被转换为结束循环的数值long end Long.parseLong(s);long sum 0;long primarynumber 1;for(int i 1; i<end; i) {long …

基于甘特图的资源调度优化策略

资源在项目管理中是一个永恒的话题。无论人力、物力还是财力资源,总是捉襟见肘,都希望用最少的资源完成最大的工作。这就要求我们在资源调度方面果断精准,做到最优化。而甘特图作为项目时间规划的重要工具,恰恰能为资源调度提供绝佳帮助。 甘特图能反映出任务之间的制约关系,有…

liunx CentOS7 搭建lnmp环境 php nginx mysql

安装一些刚需软件&#xff1a;不懂请自行查询 安装一些需要的软件命令 yum install wget vim net-tools bash* lrzsz tree nmapnc lsof telnet -y 刷新命令 source /usr/share/bash-completion/bash_completion echo source /usr/share/bash-completion/bash_completion &…