基于Dlib的疲劳检测系统

news2024/11/19 21:28:39

需要源码的朋友可以私信我

基于Dlib的疲劳检测系统

  • 1、设计背景及要求
  • 2、系统分析
  • 3、系统设计
    • 3.1功能结构图
    • 3.2基于EAR、MAR和HPE算法的疲劳检测
      • 3.2.1基于EAR算法的眨眼检测
      • 3.2.2基于MAR算法的哈欠检测
      • 3.3.3基于HPE算法的点头检测
  • 4、系统实现与调试
    • 4.1初步实现
    • 4.2具体实现过程
  • 5、系统实现与调试

1、设计背景及要求

随着经济的飞速发展,货运行业的发展趋势愈加迅猛,货车驾驶员24h都留在车上的现象已成为行业常态。据国家统计局数据显示,近几年的特大事故中,有超40%的事故是由于驾驶员疲劳驾驶造成的。为了减少疲劳驾驶导致的交通安全问题,本系统旨在设计一款可以自动实时检测驾驶员是否疲劳驾驶并发出警报的系统。
设计要求
(1) 设计并实现一个软件界面,能够实时获取人脸视频;
(2) 使用OpenCV或Dlib库实现人脸检测和特征点标定;
(3) 定义并提取与疲劳驾驶相关的人脸特征;
(4) 合理设计算法,实现驾驶员疲劳状态检测,检测到疲劳时发出预警;
(5) 测试系统性能,并分析

2、系统分析

通过摄像头实时采集驾驶员的行为表情状态,判断驾驶员的头部姿态,眼睛闭合频率和单位时间打哈欠的次数来判断驾驶员的疲劳程度。

3、系统设计

3.1功能结构图

功能结构图设计:
在这里插入图片描述
本系统通过收集人脸朝向、人脸位置、瞳孔朝向、眼睛开合度、眨眼频率等数据,提取驾驶员面部68个特征点及其坐标,准确定位驾驶员人脸的位置,并利用眼部的12个特征点计算眼部长宽比EAR,根据嘴部的6个特征点计算嘴巴的MAR,利用其他坐标结合HPE算法计算头部转动的欧拉角。将这些数据分别与对应的阈值比较,从而统计出驾驶员眨眼、打哈欠和点头的次数。通过对驾驶员眨眼、打哈欠、点头次数的统计,可实时判断驾驶员的注意力集中程度,分析驾驶员是否疲劳驾驶,并及时作出安全提示。

3.2基于EAR、MAR和HPE算法的疲劳检测

3.2.1基于EAR算法的眨眼检测

当人眼睁开时,EAR在某个值域范围内波动,当人眼闭合时,EAR迅速下降,理论上接近于0。当EAR低于某个阈值时,眼睛处于闭合状态;当EAR由某个值迅速下降至小于该阈值,再迅速上升至大于该阈值,则判断为一次眨眼。为检测眨眼次数,需要设置同一次眨眼的连续帧数。眨眼速度较快,一般1~3帧即可完成眨眼动作。
在这里插入图片描述
在这里插入图片描述
 Dlib库68个特征点模型

3.2.2基于MAR算法的哈欠检测

基于MAR算法的哈欠检测,利用Dlib提取嘴部的6个特征点,通过这6个特征点的坐标(51、59、53、57的纵坐标和49、55的横坐标)来计算打哈欠时嘴巴的张开程度。当一个人说话时,点51、59、53、57的纵坐标差值增大,从而使MAR值迅速增大,反之,当一个人闭上嘴巴时,MAR值迅速减小。
在这里插入图片描述

3.3.3基于HPE算法的点头检测

HPE(Head Pose Estimation, HPE)算法步骤 :2D人脸关键点检测,3D人脸模型匹配,求解 3D点和对应2D点的转换关系,根据旋转矩阵求解欧拉角。检测过程中需要使用世界坐标系(UVW)、相机坐标系(XYZ)、图像中心坐标系(uv)和像素坐标系(xy)。
世界坐标系转换到相机坐标系:
在这里插入图片描述
相机坐标系转换到像素坐标系:
在这里插入图片描述
像素坐标系与世界坐标系的关系为:
在这里插入图片描述
图像中心坐标系转换到像素坐标系:
在这里插入图片描述

4、系统实现与调试

4.1初步实现

系统的关键就是对驾驶员的面部进行识别,然后计算并统计出疲劳值,通过显示屏把数据显示在屏幕上给驾驶员看,如果驾驶员被判定为疲劳驾驶或者危险驾驶系统就会立即进行语音提醒。想要成功获得人脸面部的68个特征点,就必须先检测到人脸的存在。调用Dlib中的正向人脸检测器API,如果没有检测到人脸就会在屏幕上显示“No Face”,控制台输出“没有检测到人脸”,这里用手遮住脸、脸转向左右两边的幅度太大、人脸不在摄像头的摄像范围里,人脸距离摄像头太远都算没有检测到人脸。
在这里插入图片描述
从视频流进行循环,读取图片,并对图片做维度扩大,并进灰度化,使用dlib获得脸部位置以及脸部特征位置,将脸部特征信息转换为数组array的格式,从而提取左眼和右眼坐标。构造函数计算左右眼的EAR值,使用平均值作为最终的EAR。类似的,获得嘴部MAR值。分别计算左眼、右眼和嘴部的评分求平均作为最终的评分,如果小于阈值,则加1,如果连续3次都小于阈值,则表示进行了一次眨眼活动;如果嘴部评分大于阈值,则表示一次打哈欠。
在这里插入图片描述
在这里插入图片描述

4.2具体实现过程

在这里插入图片描述
基于上述程序基础,添加可视化界面,增加系统交互性。利用wx进行界面搭建,设置视频源,可选择摄像头或视频文件导入,提供实时检测和文件检测功能;添加疲劳检测参数设置,可自行勾选检测参数以及疲劳时间调整,检测条件更加灵活;状态输出栏可查看历史状态,追溯用户历史数据,为事故调查提供条件。如图7为 UI界面。
后添加点头检测增加系统精度,本系统根据计算欧拉角判断驾驶员的点头次数,这里涉及欧拉角的三个角,分别是 Pitch(绕X轴旋转),Yaw(绕Y轴旋转),Roll(绕Z轴旋转),一个物体对于相机的姿态可以用旋转矩阵(R)和平移矩阵(T)来表示。人脸2D与3D之间的仿射变换矩阵包含了头部旋转和平移信息,可以直接调用OpenCV的solvePnp()函数求解得出旋转和平移向量,最终利用得到的旋转矩阵来求解欧拉角。当在某一个时间段10s内,驾驶员的|Pitch|≥20或者|Roll|≥20的时间占比超过0.3时,则判定驾驶员处于疲劳状态。
在这里插入图片描述

5、系统实现与调试

本系统采用人脸追踪和图像处理相结合的方式采集面部图像处理疲劳信息,利用面部疲劳特征判断疲劳状态,以采集到的人脸图像信息作为输入,通过检测算法输出判断结果,判断为疲劳状态后,系统发出警告。
在这里插入图片描述
本系统通过Dlib库中的人脸识别和dat模型中的68个关键点,结合EAR、MAR和HPE算法,判断驾驶员是否眨眼、打哈欠、点头,不仅实现了检测指标多样化,还实现了实时检测驾驶员疲劳状态的目的,可用于货车、汽车、出租车等机动车辆,为驾驶员的生命安全增加一份保障。本系统的不足之处在于当驾驶员面部有部分遮挡时就无法准确判断驾驶员是否处于疲劳驾驶状态,只会发出提示,提醒驾驶员“您已脱离摄像范围”。因此,下一步的工作重点是如何解决在有遮挡情况下也能正确识别驾驶员精神状态的问题。

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

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

相关文章

使用MATLAB画SCI论文图

从gcf和gca说起 不论是 Python 绘图还是Matlab绘图,想要获得更好看的图,都会用到这两个单词。 gcf:get current figure,是目标图像的图形句柄对象 gca:get current axes,是目标图像的坐标轴句柄对象 Mat…

pandas---数学函数、离散化处理、分组聚合

1. 数学函数 方差:当数据分布比较分散(即数据在平均数附近波动较大)时,各个数据与平均数的差的平方和 较大,方差就较大;当数据分布比较集中时,各个数据与平均数的差的平方和较小。因此方差越 …

【计算机网络】如何学好计网-第一章概论

相关术语 URI:Uniform Resource Identifier 统一资源标识符,指的是一个资源 URL:Uniform Resource Location 统一资源定位符,URI的子集,用地址定为的方式指定一个资源 URN:Uniform Resource Name 统一资…

北京论道|光环云李卓然:以“云”为帆 赋能文化出海行业创新增长

2023年6月15~16日,由流媒体网主办,北京新媒体(集团)有限公司、北京联通、北京电信、北京移动共同协办的「北京论道暨第25届中国智能视听与科技创新高峰论坛」在北京隆重举行。 本届论道以“电视的未来与未来的电视”为主题&#…

java语言中方法的重载

文章目录 前言一、重载是什么?二、使用步骤 1.实操展示2.注意事项总结 前言 小时候,我们学会了十以内的加法,却对十以外的加法感到害怕,但从现在来看,它们都属于加法,只是计算方法略有不同。方法的重载也一…

【备战秋招】每日一题:2023.05-B卷-华为OD机试 - 阿里巴巴找黄金宝箱(IV)

2023大厂笔试模拟练习网站(含题解) www.codefun2000.com 最近我们一直在将收集到的各种大厂笔试的解题思路还原成题目并制作数据,挂载到我们的OJ上,供大家学习交流,体会笔试难度。现已录入200道互联网大厂模拟练习题&a…

Computer Graphics From Scratch - Chapter 9

系列文章目录 简介:Computer Graphics From Scratch-《从零开始的计算机图形学》简介 第一章: Computer Graphics From Scratch - Chapter 1 介绍性概念 第二章:Computer Graphics From Scratch - Chapter 2 基本光线追踪 第三章:Computer Gr…

IEEE 最佳论文提名 | TraND:用步态算法优化身份识别

来源:投稿 作者:小灰灰 编辑:学姐 论文标题:TraND: Transferable Neighborhood Discovery for Unsupervised Cross-domain Gait Recognition 论文链接: https://arxiv.org/pdf/2102.04621v1.pdf 步态识别开始应用在公共场域身份…

centos mysql安装配置远程访问

包含以下三个部分:mysql安装,mysql密码重置、mysql配置远程访问。 一 centos安装mysql 1、wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 2、yum -y install mysql57-community-release-el7-10.noarch.rpm 3、yum…

to be delete

一、grafana版本升级 1.1 还是先跟着官网简单走一波 建议经常升级Grafana,以获取最新的修补程序和增强功能。 为了实现这一点,Grafana升级向后兼容,并且升级过程简单快捷。升级通常是安全的(在许多次要版本和一个主要版本之间&a…

Python习题进阶

1.十六进制数字的大小 描述 计算的世界,除了二进制与十进制,使用最多的就是十六进制了,现在使用input读入一个十六进制的数字,输出它的十进制数字是多少? 输入描述: input读入一个十六进制数字&#xf…

微信支付服务商接入指引(企业)

目录 一、官方指引二、申请流程1.进入服务商平台2.填写资料3.账户验证&资料审核 三、登录 一、官方指引 https://kf.qq.com/faq/161220iqeAfA1612202yeURB.html 二、申请流程 1.进入服务商平台 https://pay.weixin.qq.com/static/partner_guide/service_provider.shtml…

【JVM快速入门篇】

本笔记内容为狂神说JVM快速入门篇部分 目录 一、JVM的位置 二、JVM体系结构 三、类加载器(ClassLoader) 四、双亲委派机制 双亲委派机制的作用 五、沙箱安全机制 六、Native ​编辑Native Method Stack 本机方法栈 Native Ilnterface本地接口…

低代码靠谱吗?实操一遍就知道了

一、前言 最近一段时间,“低代码”概念特别流行,有些人特别推崇它,也有些人对此不屑一顾。 推崇它的人认为,它有很多优点,比如说能够降低开发周期,提高系统开发效率,降低开发成本,学…

使用HBuilder将h5网站打包成app 自行打包

1、点击manifest.json,基础配置,APP名字,是否全面屏 2、然后点击图标配置,选好后点自动生成所有图标并替换 点击模块配置,选VideoPlayer和X5内核 然后顶部菜单选发行,选择原生App-云打包 选公测证书然后…

WPF教程-XAML介绍

XAML介绍 1.定义 为构建应用程序用户界面而创建的一种新的“可扩展应用程序标记语言”,提供一种便于扩展和定位的语法来定义和程序业务逻辑分离的用户界面。 XAML 是一种 XML(Extensible Markup Language)的扩展,XAML 是 WPF 中…

云计算——云计算与虚拟化的关系

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​ 目录 前言 一.虚拟化 1.什么是虚拟化 2.虚拟化技术作用 二.云计算与虚拟化的关系 三.虚…

一文让非技术宅读懂为什么AI更“喜欢”GPU而不是CPU?

一、引言 随着人工智能(AI)技术的快速发展,深度学习等算法在图像识别、自然语言处理、数据挖掘等方面表现出了强大的能力。而这些算法的底层计算,往往对硬件有着极高的要求。为了满足这些需求,越来越多的研究和工程实…

关于不同型号电脑谷歌浏览器下载指定版本的方法(超详细教程)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言1、根据链接打开地址2、页面说明3、下载过程(1)选中指定版本点击它(这里以52.0.27.37.1为例)(2&…

美国访学博后答疑|尚未出国DS-2019表格过期了怎么办?

美国执J1签证者尚未出国,但DS-2019表格过期了怎么办?本篇知识人网老师就以下三种情况,统一做答疑建议。 美国访问学者和博士后的签证类型多是J1签证,需要由美国接收方将签字后的DS2019表邮寄给国内,申请者本人在表格正…