基于MATLAB人脸检测的汽车疲劳驾驶检测

news2024/11/5 19:42:09

  • 课题介绍

疲劳驾驶导致汽车交通事故逐年增加,为了提升驾车的安全性,需对驾驶员疲劳状态实时监测并及时提醒. 为了提高疲劳驾驶判断效率及准确率,本文运用Viola-Jones 框架特征矩阵进行人脸预判断;预判断过程中为了减少Haar 值计算量并提高人脸识别速度,采用Adaboost 算法和级联分析,剔除非人脸的Haar 特征值,实现快速人脸识别;根据色彩空间转化实现眼部分割处理,根据PERCLOS 值评估驾驶员是否处于疲劳状态并提前予以警示;通过MATLAB 仿真软件实现疲劳驾驶检测算法的仿真分析. 在多个样本的测试过程中,该方法有效识别出人脸,并能够准确监测驾驶员的疲劳状态.

  • 背景

随着交通工具的飞速发展,交通隐患也成为威胁人类安全的杀手之一,每年全世界至少有50 万人死于交通事故. 欧美各国的研究报告指出,交通事故的起因有接近90% 的因素是人为造成,其中在驾驶过程中由于疲劳引发的交通事故就有10 万多例. 由此得知,驾驶员的疲劳驾驶已经成为道路交通事故的主要原因之一. 因此,对疲劳驾驶实时监测的研究对安全行车以及驾驶员的生命财产安全具有一定的意义.

汽车疲劳驾驶的表现特征有很多方面,较为突出的特征就是驾驶员的面部特征,如嘴部和眼部的开度、头部偏移等直观现象可作为疲劳的判断条件. 利用图像处理手段对图像进行增强处理,消除因周围光线不佳造成的疲劳驾驶特征识别的干扰. 采用AdaBoost 的人脸检测算法对人脸关键部位进行跟踪, 根据人眼变化并结合 PER‐ CLOS 准则进行疲劳判定,仿真结果能准确实现对人脸关键部位的检测. 文献[5]对疲劳驾驶的判断考虑了人脸部位的变化和驾驶状态数据两个因素. 根据Dlib 库的人脸轮廓点提取计算眼部和嘴部开度比值,获取正常及疲劳状态特征,再采用改进后的随机森林模型对疲劳状态进行判断,结果表明疲劳驾驶检测结果准确率达到92.06%. 文献[6]根据驾驶员的眼睛开度以及颅骨位置变化设计了基于驾驶人眼睛开度信息和头部姿态信息的驾驶疲劳检测系统. 采用Camshift 算法对人脸跟踪检测,并用二阶HOG 特征和随机森林回归算法对头部角度实时检测. 其仿真结果表明在各种驾驶姿态下都可以实时快速检测疲劳情况. 有研究指出,人疲劳和正常时其心率数据会存在微小区别,故有部分研究人员以心率区别来判断是否属于疲劳驾驶. 如文献[7]为了解决疲劳驾驶检测系统实用性和准确率低等问题,基于空间聚类心率检测算法实现了疲劳驾驶实时检测系统. 通过手环采集驾驶员心率值,利用该值与疲劳度之间相关程度,经空间聚类算法分析判断驾驶员是否为疲劳状态.

为了简单快速判断出人脸,并进行疲劳驾驶的判断,本文先用Viola-Jones 框架人脸检测算法对人脸进行检测;针对检测速度以及特征Haar 值累加计算量大等问题,采用图像积分、级联分析方法快速对拍摄图像进行人脸筛查,提高人脸判断速度和效率;采用PERCLOS 值判断驾驶员是否属于疲劳状态. 实验结果表明,该检测方法有一定的实用性和有效性.

流程图

  • 算法流程原理

1、眼睛部位提取及疲劳判定

在人脸的面部特征中,眼睛、鼻子、嘴巴可以最为直观地体现人在当前情况下大脑的疲劳程度. 在人脸的研究中发现人的肤色呈现出聚类性, 如果将人脸中非特征区域的部分去除,保留眼睛、鼻子、嘴巴等明显特征区域,对人脸疲劳特征识别和提取有很大帮助. 此外,人脸千变万化,在实际应用中整张面部识别存在一些问题,如人脸模板不能通用于任意拍摄图像,即人在驾驶时的姿势、位置的微量变化都会对人脸识别产生影响. 这需要多模板、多尺度、多角度的匹配,很难做到把所有人脸模板都囊括. 因此,需将眼睛和嘴巴单独分割建模,对其开度、张度进行单独匹配且其限值也是随着人脸比例进行动态调节设定.

对于关键部位的提取采用 Matlab 软件自带的级联对象检测器对眼睛位置进行定位.

    1. 眼睛状态的提取

眼睛疲劳判断是根据人眼开度不同时眼部轮廓会随之变化,故所提取的边缘会稍微不同. 而眼睛边缘检测准确度不高但速度快,考虑到疲劳检测速度及准确度,对于眼睛部位状态的提取采用组合算法,即模板匹配及水平灰度投影算法相结合;用检测器确定眼部位置后,运用模板匹配法对样本进行粗略检测,将样本进行分类,如睁眼、闭眼和可疑闭眼;再通过水平灰度投影法对闭眼和可疑闭眼样本进行判断,进一步确定其状态, 故该组合方法判断眼睛开闭状态的准确度较高.

    1. 疲劳的判定

在进行眼部分割时,首先提取眼睛特征. 根据卡内基梅隆实验[15],在一定时间内眼睛的内瞳孔占整个眼部比例达到一定数值即为眼睛闭合状态. 实验中将眼睑遮住瞳孔的面积超过 70%80%50% 3 个不同百分比计为眼睛闭合,并分别用P70P80 EM 符号来表示. 故在一定时间内,提取眼部参数进行眼部闭合百分比匹配,当达到眼睛闭合程度并满足一定频率时可判断为疲劳驾驶状态, 该频率用PERCLOS 值表示. 相关研究表明,P80 实验数据对驾驶员疲劳驾驶过程中的描述较为准确, 其 PERCLOS 值与疲劳状态的关联性很强[4]. PERCLOS 值计算如下:

PERCLOS  眼睛闭合帧数 % 

检测时间段总帧数

  • 运行效果示例

测试视频ID

实际眨眼次数

算法检测眨眼次数

眼部检测准确度/%

实际PERCLOS

算法PERCLOS

实际疲劳判断

算法疲劳判断

1

152

140

92.3

0.25

0.23

2

257

236

91.8

0.42

0.39

3

245

230

94.2

0.41

0.38

4

231

210

90.9

0.38

0.35

5

296

281

95.1

0.49

0.46

6

308

288

93.7

0.51

0.48

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

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

相关文章

【p2p、分布式,区块链笔记 Torrent】WebTorrent的上传和下载界面

上传 upload.html client.seed <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>文件上传与哈希值&l…

vue3uniapp实现自定义拱形底部导航栏,解决首次闪烁问题

前言&#xff1a; 我最初在网上翻阅查找了很多方法&#xff0c;发现大家都是说在page.json中tabbar中添加&#xff1a;"custom": true,即可解决首次闪烁的问题&#xff0c;可是添加了我这边还是会闪烁&#xff0c;因此我这边改变了思路&#xff0c;使用了虚拟页面来解…

软考系统分析师知识点三一:案例知识点二

前言 今年报考了11月份的软考高级&#xff1a;系统分析师。 考试时间&#xff1a;11月9日。 倒计时&#xff1a;6天。 目标&#xff1a;优先应试&#xff0c;其次学习&#xff0c;再次实践。 复习计划第三阶段&#xff1a;总结案例知识点&#xff0c;并作为论文的框架知识…

WorkFlow源码剖析——Communicator之TCPServer(上)

WorkFlow源码剖析——Communicator之TCPServer&#xff08;上&#xff09; 前言 上一篇博客已经介绍了一下WorkFlow GO-Task的实现原理。本文会介绍一下WorkFlow Tcp Server端的一些实现细节以及有趣的思想。因为这部分涉及的内容有点多&#xff0c;一些有趣的细节也希望能完…

嵌入式硬件电子电路设计(一)开关电源Buck电路

目录 Buck电路基本结构 1. 开关闭合&#xff08;SW 闭合&#xff09; 2. 开关断开&#xff08;SW 断开&#xff09; 3. 开关控制和占空比 MP1584电路分析 其他Buck芯片的电路参考 Buck电路基本结构 下图是简化之后的BUCK电路主回路。下面分析输出电压的产生K闭合后&…

UE4_Niagara基础实例—13、通过纹理采样来创造粒子

效果&#xff1a; 知识点&#xff1a; 1、纹理采样目前仅支持GPU粒子运行&#xff08;Texture sampling is only supported on the GPU at the moment.&#xff09; 2、网格位置输出每个粒子在网格中的归一化位置。我们使用该值来采样纹理&#xff0c;就像它是UV一样&#xff…

多个锚点定位时的锚点优选方法(附公式和python代码讲解)

以下是将上述 MATLAB 代码转化为 Python 代码的版本。我们使用 NumPy 库进行数值计算&#xff0c;并使用 itertools 库生成锚点组合。 1. 基于几何分布的选择 锚点的几何分布影响定位的可辨识性。选择位置均匀分布的锚点组合可以提高定位精度。具体来说&#xff0c;锚点之间的…

HTML 基础概念:什么是 HTML ? HTML 的构成 与 HTML 基本文档结构

文章目录 什么是 HTML &#xff1f;HTML 的构成 &#xff1f;什么是 HTML 元素&#xff1f;HTML 元素的组成部分HTML 元素的特点 HTML 基本文档结构如何打开新建的 HTML 文件代码查看 什么是 HTML &#xff1f; HTML&#xff08;超文本标记语言&#xff0c;HyperText Markup L…

web安全测试渗透案例知识点总结(上)——小白入狱

目录 一、Web安全渗透测试概念详解1. Web安全与渗透测试2. Web安全的主要攻击面与漏洞类型3. 渗透测试的基本流程 二、知识点详细总结1. 常见Web漏洞分析2. 渗透测试常用工具及其功能 三、具体案例教程案例1&#xff1a;SQL注入漏洞利用教程案例2&#xff1a;跨站脚本&#xff…

基于Qt的独立线程创建与多线程执行实验Demo

一、多线程与线程池的应用目的[1][4] &#xff08;一&#xff09;多线程 一个进程内多个线程并发执行的情况就叫多线程&#xff0c;每一个线程是一个独立的执行流。多线程是一种编程模型&#xff0c;它与处理器无关&#xff0c;与设计机制有关。 需要多线程的原因包括&#xf…

基于FPGA的图像双线性插值算法verilog实现,包括tb测试文件和MATLAB辅助验证

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 这里实现的是256*256双线性插值到512*512的系统模块 局部放大&#xff1a; 将数据导入到matlab&#xff0c;得到插值效果…

Spring1(初始Spring 解耦实现 SpringIOC SpringDI Spring常见面试题)

Spring1 创建项目集成maven创建一个Maven项目实现&#xff1a; 初识SpringSpring简介Spring的发展历史Spring之父体系结构生态系统官方文档解耦实现JDBCSpringBoot整合MyBatis和lombok&#xff0c;开启驼峰映射三层思想 SpringIOC实现 SpringDIset注入全部代码&#xff1a;实现…

纯享受 : 力扣:234 回文链表

BLG牛逼 – 奖励自己一道题 描述&#xff1a; 给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为 回文链表 。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例&#xff1a; 何解&#xff1f; 1、所谓 回文 就是正读反读都一样&…

开源项目-投票管理系统

哈喽,大家好,今天主要给大家带来一个开源项目-投票管理系统 投票管理系统主要有首页,发起投票,管理投票,参与投票,查看投票等功能 首页 为用户提供了一键导航到各个功能模块的便捷途径。 新增投票 用户可以在此轻松创建新的投票活动,设置投票主题、选项等信息。 管理…

系统架构图设计(行业领域架构)

物联网 感知层&#xff1a;主要功能是感知和收集信息。感知层通过各种传感器、RFID标签等设备来识别物体、采集信息&#xff0c;并对这些信息进行初步处理。这一层的作用是实现对物理世界的感知和初步处理&#xff0c;为上层提供数据基础网络层&#xff1a;网络层负责处理和传输…

APP获取用户的三大法则

APP内容&#xff0c;提升APP吸引力和用户留存率 A. 用户研究深化 1. **深入用户行为分析**&#xff1a; - 用户使用路径分析 - 用户行为模式识别 - 用户流失点分析 2. **定性研究与定量研究结合**&#xff1a; - 进行深度访谈和焦点小组讨论 - 利用数据分析用…

QT——串口调试助手

目录 1.QSerialPort类包含了很多有关串口的API 2.实现串口的打开 2.1 方法一&#xff1a;通过函数实现 2.2 方法二&#xff1a;在ui界面右下角实现 3. 实现定时发送 3.1类的私有成员中添加定时器QTimer timer并去构造函数中初始化它 3.2帮助文档中有QTimer类相关的说明 …

全自动一键批量创建站群网站插件 | Z-BlogPHP 堆词起站工具

在当今竞争激烈的数字营销世界&#xff0c;如何快速提升网站曝光率和流量&#xff1f;答案就是智能站群系统。 本文将结合实际效果&#xff0c;介绍一款功能强大的站群系统&#xff0c;重点讲述其堆词功能、泛目录管理、一键批量创建、内容转码、自定义标签和GPT内容生成与发布…

计算机毕业设计Spark+大模型知识图谱中药推荐系统 中药数据分析可视化大屏 中药爬虫 机器学习 中药预测系统 中药情感分析 大数据毕业设计

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

Linux云计算 |【第五阶段】CLOUD-DAY7

主要内容&#xff1a; 在kubernetes平台上理解掌握各种控制器的用法&#xff1a;掌握kubectl管理命令、掌握POD原理、掌握集群调度的规则、熟悉控制器资源文件&#xff1b; 一、kubectl 常用命令 Kubectl是用于控制Kubernetes集群的命令行工具&#xff1b; - 格式&#xff1…