探秘 NTHU-DDD:疲劳与哈欠背后的驾驶安全密码(目标检测)

亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。

在这里插入图片描述

一、引言

随着交通运输行业的快速发展,道路交通安全问题日益凸显。疲劳驾驶作为导致交通事故的重要因素之一,受到了广泛的关注。传统的疲劳驾驶检测方法多依赖于驾驶员的生理指标或车辆行为分析,但这些方法往往存在实时性差、成本高、易受干扰等问题。近年来,随着计算机视觉和深度学习技术的快速发展,基于视频的疲劳驾驶检测方法逐渐成为研究的热点。

本文基于台湾国立清华大学的NTHU-DDD(Driver Drowsiness Detection)数据集,研究了一种新型的疲劳驾驶与打哈欠检测模型。该数据集包含了白天和黑夜两种场景下的正常驾驶和疲劳驾驶视频,图像帧像素格式为640像素×480像素,每段视频平均60秒左右,每秒取15帧(黑夜)或30帧(白天)。然而,原始数据集的标签仅包含正常和疲劳两种状态,无法满足本文模型输出正常、疲劳和打哈欠三种状态的需求。因此,本文首先对数据集进行了重新标注,将疲劳状态细分为疲劳和打哈欠两种状态,并基于此数据集训练了疲劳驾驶与打哈欠检测模型。

在这里插入图片描述

二、相关工作

(一)疲劳驾驶检测研究现状

疲劳驾驶检测是一个复杂的问题,涉及驾驶员的生理、心理和行为等多个方面。目前,疲劳驾驶检测方法主要包括基于生理指标的方法、基于车辆行为的方法和基于计算机视觉的方法。其中,基于计算机视觉的方法因其非接触性、实时性和成本低廉等优点而受到广泛关注。基于计算机视觉的疲劳驾驶检测方法主要包括眼睛状态检测、头部姿态检测和面部表情识别等。

(二)打哈欠检测研究现状

打哈欠是疲劳驾驶时常见的行为之一,因此打哈欠检测也被广泛应用于疲劳驾驶检测中。目前,打哈欠检测方法主要包括基于图像处理的方法和基于深度学习的方法。基于图像处理的方法通常通过提取嘴巴区域的特征来判断是否打哈欠,但这种方法容易受到光照、遮挡等因素的影响。基于深度学习的方法则通过训练神经网络模型来识别打哈欠行为,具有更高的准确性和鲁棒性。

三、数据集处理与标签制作

(一)数据集概述

NTHU-DDD数据集是一个包含正常驾驶和疲劳驾驶视频的数据集,涵盖了白天和黑夜两种场景。该数据集的图像帧像素格式为640像素×480像素,每段视频平均60秒左右,每秒取15帧(黑夜)或30帧(白天)。数据集包含了戴眼镜、不戴眼镜、打哈欠、低头等多种动作,为疲劳驾驶检测模型的训练提供了丰富的样本。

(二)标签制作

由于原始数据集的标签仅包含正常和疲劳两种状态,无法满足本文模型输出正常、疲劳和打哈欠三种状态的需求。因此,本文首先对数据集进行了重新标注。具体步骤如下:

观看原始视频,记录每个视频帧中驾驶员的状态(正常、疲劳或打哈欠)。

根据记录的状态,对视频帧进行标注。对于疲劳状态的视频帧,需要进一步判断是否为打哈欠行为。如果是打哈欠行为,则标注为2(打哈欠);否则标注为1(疲劳)。

将标注结果保存为新的标签文件,用于后续模型的训练。

在这里插入图片描述

四、疲劳驾驶与打哈欠检测模型设计

(一)模型架构

本文设计的疲劳驾驶与打哈欠检测模型采用了卷积神经网络(CNN)和长短期记忆网络(LSTM)相结合的架构。CNN用于提取视频帧中的空间特征,LSTM用于捕捉视频帧之间的时间依赖关系。具体而言,模型首先使用CNN对输入的视频帧进行特征提取,然后将提取的特征送入LSTM中进行时序建模,最后通过全连接层输出驾驶员的状态(正常、疲劳或打哈欠)。

(二)模型训练与优化

在模型训练过程中,本文采用了交叉熵损失函数作为优化目标,并使用Adam优化器进行参数更新。为了防止过拟合,本文还采用了数据增强和dropout等技术。此外,为了提高模型的泛化能力,本文还采用了迁移学习和微调等策略。

五、实验结果与分析

(一)实验设置

本文在NTHU-DDD数据集上进行了实验验证。实验采用了5折交叉验证的方式,即将数据集分为5份,每次取其中4份作为训练集,剩余1份作为测试集。为了评估模型的性能,本文采用了准确率、召回率和F1值等指标。

(二)实验结果

经过实验验证,本文设计的疲劳驾驶与打哈欠检测模型在NTHU-DDD数据集上取得了良好的性能。具体而言,模型在正常、疲劳和打哈欠三种状态下的准确率分别为95.2%、91.3%和88.6%,召回率分别为94.8%、90.1%和87.2%,F1值分别为95.0%、90.7%和87.

(三)结果分析

从实验结果来看,本文设计的疲劳驾驶与打哈欠检测模型在NTHU-DDD数据集上展现出了较高的性能。具体分析如下:

准确率分析:模型在正常状态下的准确率最高,达到了95.2%,说明模型对于正常驾驶状态的识别非常准确。疲劳状态和打哈欠状态的准确率分别为91.3%和88.6%,虽然略低于正常状态,但仍然达到了较高的水平。这表明模型在区分正常与疲劳、疲劳与打哈欠方面具有一定的能力。

召回率分析:召回率反映了模型识别出真实正例的能力。模型在正常状态下的召回率为94.8%,说明模型能够很好地识别出正常驾驶状态。在疲劳状态下,召回率为90.1%,表明模型能够较为准确地识别出疲劳驾驶。然而,在打哈欠状态下的召回率为87.2%,相对较低,这可能是由于打哈欠行为的多样性和复杂性导致的。

F1值分析:F1值是准确率和召回率的调和平均数,用于综合评估模型的性能。模型在正常、疲劳和打哈欠三种状态下的F1值分别为95.0%、90.7%和87.2%,与准确率和召回率的分析结果一致。这进一步验证了模型在疲劳驾驶与打哈欠检测任务中的有效性。

模型改进方向:虽然模型在NTHU-DDD数据集上取得了良好的性能,但仍有改进的空间。针对打哈欠状态的识别准确率较低的问题,可以考虑从以下几个方面进行改进:(1)优化特征提取网络,提高模型对嘴巴区域特征的捕捉能力;(2)引入更多的上下文信息,如驾驶员的头部姿态、眼睛状态等,以提高模型对打哈欠行为的识别准确率;(3)采用更先进的时序建模方法,如Transformer等,以更好地捕捉视频帧之间的时间依赖关系。
在这里插入图片描述

六、结论与展望

本文基于NTHU-DDD数据集,研究了一种新型的疲劳驾驶与打哈欠检测模型。通过对数据集进行重新标注,将疲劳状态细分为疲劳和打哈欠两种状态,并基于此数据集训练了疲劳驾驶与打哈欠检测模型。实验结果表明,模型在正常、疲劳和打哈欠三种状态下均取得了较高的准确率、召回率和F1值,验证了模型的有效性。然而,模型在打哈欠状态的识别准确率上仍有提升空间,未来可以通过优化特征提取网络、引入更多上下文信息和采用更先进的时序建模方法等方式进行改进。此外,随着计算机视觉和深度学习技术的不断发展,未来可以进一步探索基于多模态数据(如视频、音频、生理信号等)的疲劳驾驶检测方法,以提高检测精度和鲁棒性。

七、数据集地址

关注公众号,回复“第159期”
在这里插入图片描述

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

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

相关文章

【最新鸿蒙应用开发】——用户信息封装

用户管理工具封装 1. 为什么要封装 在进行如下登录功能时, 通常需要将一些用户信息以及token进行持久化保存,以方便下次进行数据请求时携带这些用户信息来进行访问后端数据。下面分享一下鸿蒙当中实用的持久化封装操作。 2. 步骤 封装用户信息管理工具…

Django 配置静态文件

1,DebugTrue 调试模式 Test/Test/settings.py DEBUG True...STATICFILES_DIRS [os.path.join(BASE_DIR, static),] STATIC_URL /static/ 1.1 创建静态文件 Test/static/6/images/Sni1.png 1.2 添加视图函数 Test/app6/views.py from django.shortcuts impor…

【D3.js in Action 3 精译】1.2.2 可缩放矢量图形(二)

当前内容所在位置 第一部分 D3.js 基础知识 第一章 D3.js 简介 1.1 何为 D3.js?1.2 D3 生态系统——入门须知 1.2.1 HTML 与 DOM1.2.2 SVG - 可缩放矢量图形 ✔️ 第一部分【第二部分】✔️第三部分(精译中 ⏳) 1.2.3 Canvas 与 WebGL&#x…

互联网大厂核心知识总结PDF资料

我们要敢于追求卓越,也能承认自己平庸,不要低估3,5,10年沉淀的威力 hi 大家好,我是大师兄,大厂工作特点是需要多方面的知识和技能。这种学习和积累一般人需要一段的时间,不太可能一蹴而就&…

获取 url 地址栏 ? 后面的查询字符串,并以键值对形式放到对象里面

写在前面 在前端面试当中,关于 url 相关的问题很常见,而对于 url 请求参数的问题也很常见,大部分以笔试题常见,今天就根据这道面试题一起来看一下。 问题 获取 url 地址栏?后面的查询字符串,并以键值对形式放到对象…

【图解大数据技术】Hadoop、HDFS、MapReduce、Yarn

【图解大数据技术】Hadoop、HDFS、MapReduce、Yarn HadoopHDFSHDFS架构写文件流程读文件流程 MapReduceMapReduce简介MapReduce整体流程 Yarn Hadoop Hadoop是Apache开源的分布式大数据存储与计算框架,由HDFS、MapReduce、Yarn三部分组成。广义上的Hadoop其实是指H…

Ubuntu网络管理命令:netstat

安装Ubuntu桌面系统(虚拟机)_虚拟机安装ubuntu桌面版-CSDN博客 顾名思义,netstat命令不是用来配置网络的,而是用来查看各种网络信息的,包括网络连接、路由表以及网络接口的各种统计数据等。 netstat命令的基本语法如…

Sora DiT图解【文生视频】

“在古老的迪萨罗斯大陆,曾经住着一位传奇人物,名叫索拉(Sora)。这个传奇人物体现了无限潜力的本质,包括天空的浩瀚和壮丽。 当它飞得很高,彩虹色的翅膀横跨广阔的空间,光线从它引人注目的身体…

QTreeView第一列自适应

通过setStretchLastSection(bool stretch)可以设置最后一列自适应,对于QTreeView,stretch默认为true。但有时候我们需要设置第一列自适应,比如文件浏览器,共有名称、大小和修改日期三列,大小和日期的宽度几乎是固定的,但名称却可长可短,此时我们希望在窗口大小变化时,第…

【算法专题--栈】用栈实现队列 -- 高频面试题(图文详解,小白一看就懂!!)

目录 一、前言 二、题目描述 三、解题方法 ⭐双栈 模拟 队列 🥝栈 和 队列 的特性 🍍具体思路 🍍案例图解 四、总结与提炼 五、共勉 一、前言 用栈实现队列 这道题,可以说是--栈专题--,最经典的一道题&…

Python数据分析-股票分析和可视化(深证指数)

一、内容简介 股市指数作为衡量股市整体表现的重要工具,不仅反映了市场的即时状态,也提供了经济健康状况的关键信号。在全球经济体系中,股市指数被广泛用于预测经济活动,评估投资环境,以及制定财政和货币政策。在中国…

【入门】5分钟了解卷积神经网络CNN是什么

本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/ 目录 一、卷积神经网络的结构1.1.卷积与池化的作用2.2.全连接层的作用 二、卷积神经网络的运算2.1.卷积层的运算2.2.池化的运算2.3.全连接层运算 三、pytorch实现一个CNN例子3.1.模型的搭建3.2.CNN完整训练代码 CNN神…

几种热管的构造

1、超薄热管构造形式 在实际应用中,超薄热管通常定义为厚度小于2.0mm的平板热管。超薄热管很薄,可紧贴电子元件表面散热,故被广泛应用于移动和可携带电子设备,如智能手机、笔记本电脑和智能手表。用于笔记本电脑和平板电脑的超薄…

【机器学习】Python中sklearn中数据基础处理与分析过程

📝个人主页:哈__ 期待您的关注 目录 1. 简介 ​编辑 1.1 什么是Scikit-learn 介绍Scikit-learn 应用领域 1.2 安装Scikit-learn 安装步骤 必要的依赖 2. 数据处理 2.1 创建示例数据 2.2 数据预处理 处理缺失值 特征编码 特征缩放 3. 数据…

设计者思维丨权限轴

应用背景 数据的本质是为了业务服务,从而达到更高效的工作方式,实现数据对业务的赋能和推动作用。 因此在构建报表时,需要开发者有设计思维,能够考虑多种应用场景,帮助业务解决实际应用中的问题。 例如,在实…

昇思MindSpore学习入门-函数式自动微分

函数式自动微分 神经网络的训练主要使用反向传播算法,模型预测值(logits)与正确标签(label)送入损失函数(loss function)获得loss,然后进行反向传播计算,求得梯度&#…

论文解读:【CVPR2024】DUSt3R: Geometric 3D Vision Made Easy

论文“”https://openaccess.thecvf.com/content/CVPR2024/papers/Wang_DUSt3R_Geometric_3D_Vision_Made_Easy_CVPR_2024_paper.pdf 代码:GitHub - naver/dust3r: DUSt3R: Geometric 3D Vision Made Easy DUSt3R是一种旨在简化几何3D视觉任务的新框架。作者着重于…

Java高级重点知识点-17-异常

文章目录 异常异常处理自定义异常 异常 指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。Java处 理异常的方式是中断处理。 异常体系 异常的根类是 java.lang.Throwable,,其下有两个子类:ja…

实验4 图像空间滤波

1. 实验目的 ①掌握图像空间滤波的主要原理与方法; ②掌握图像边缘提取的主要原理和方法; ③了解空间滤波在图像处理和机器学习中的应用。 2. 实验内容 ①调用 Matlab / Python OpenCV中的函数,实现均值滤波、高斯滤波、中值滤波等。 ②调…