Python基于OpenCV的实时疲劳检测

2.检测方法

1)方法 与用于计算眨眼的传统图像处理方法不同,该方法通常涉及以下几种组合:

1、眼睛定位。 2、阈值找到眼睛的白色。 3、确定眼睛的“白色”区域是否消失了一段时间(表示眨眼)。 相反,眼睛长宽比是一种更为优雅的解决方案,它涉及基于眼睛面部轮廓之间的距离之比的非常简单的计算。

参考该博客,这种眨眼检测方法快速,高效且易于实现。

(2)眼睛纵横比 我们可以应用脸部界标检测来定位脸部重要区域,包括眼睛,眉毛,鼻子,耳朵和嘴巴 这也意味着我们可以通过了解特定面部部分的索引来提取特定面部结构: 在眨眼检测方面,我们只对两套面部结构感兴趣:眼睛。 每只眼睛都由6 (x,y)坐标表示,从坐标的左角开始(就像您在看那个人一样),然后沿该区域的其余部分顺时针旋转:

基于此图像,我们应该取消关键点: 这些坐标的宽度和高度之间存在关系。 根据Soukupová和Čech在2016年的论文《使用面部地标进行实时眼睛眨眼检测》的工作,我们可以得出一个反映这种关系的方程,称为眼睛纵横比(EAR):

4.参考文献


[1] 汪明明,林小竹.基于OpenCV人眼定位的人脸检测方法[D].北京石油化工学院.2022(12).

[2] 傅亚煌,黄鸣宇.基于眼动特性的机动车驾驶疲劳系统[J].电脑与信息技术.2022(2).

[3] 王奕直,周凌霄,孔万增.基于Adaboost的疲劳驾驶眨眼检测[D].杭州电子科技大学学报.2022(8).

[4] 张旭,李亚利,陈晨,王生进,丁晓青.嵌入式驾驶员状态检测算法的实现与优化[J].自动化学报.2022(12).

[5] 赵钟.驾驶员疲劳检测方法研究及嵌入式实现[D]. 大连海事大学.2020(6).

[6] 徐淑峰,孙炜,赵峰,张忠.Adaboost人脸检测算法在嵌入式平台上的优化与实现[D].上海交通大学微电子学院.2018(6).

[7] 牛慧萍.基于DSP的人眼状态信息检测系统的研究和设计.[D].沈阳理工大学.2010(3).

[8] 郑玉铎.田杨萌.靳薇.基于Adaboost 和ASM 算法的人眼定位.[J] .北京信息科技大学学报.2013(6).

[9] 郭纯宏.基于嵌入式的人眼信息检测系统研究.[D].沈阳理工大学.2011(3).

[10] 王洪涛.驾驶疲劳测评方法研究及其DSP实现.[D].武汉理工大学.2007(5).

[11] 向本科.基于人眼检测的驾驶员疲劳检测研究.[D].西南大学.2010(5).

[12] 常瑜亮.基于DSP的疲劳驾驶检测系统硬件设计与实现. [D].沈阳理工大学.2010(3).

[13] 李文磊.基于DSP的疲劳驾驶实时监测系统研究.[D] .南京理工大学.2007(6).

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

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

相关文章

Python网络请求库requests的10个基本用法

大家好!今天我们要聊聊Python中非常实用的一个库——requests。这个库让发送HTTP请求变得超级简单。无论你是想抓取网页数据还是测试API接口,requests都能派上大用场。下面我们就一起来看看如何使用requests完成一些常见的任务。 引言 随着互联网技术的…

队列(数据结构)——C语言

目录 1.概念与结构 2.队列的实现 初始化QueueInit 申请新节点BuyNode 入队QueuePush 判断队为空QueueEmpty 出队QueuePop 读取队头数据QueueFront 读取队尾数据QueueBack 元素个数QueueSize 销毁队列QueueDestroy 3.整体代码 (文章中结点和节点是同一个意思) 1.概…

16. Redis异步队列

一、 安装组件 composer require hyperf/async-queue二、 配置文件 位置:config/autoload/async_queue.php如文件不存在 ,可通过 php bin/hyperf.php vendor:publish hyperf/async-queue 命令来发布。return [default => [driver => Hyperf\AsyncQueue\Driver\RedisDr…

Python作业01.

01.体重转换 #体重转换 # 输入描述 try:m int(input("请输入标准体重:(kg)")) # 输出描述n float(m * 2.20462)print("你的体重约等于的磅为:", n) except:print("输入格式错误")计算油耗 # 输入描述 try:n int(inpu…

s 成为回文串的 最少操作次数

你一个字符串 s ,每一次操作你都可以在字符串的任意位置插入任意字符。 请你返回让 s 成为回文串的 最少操作次数 。 「回文串」是正读和反读都相同的字符串。 示例 1: 输入:s "zzazz" 输出:0 解释:字符…

简易万年历制作(for)

#include<stdio.h> int main() { int year0, month0, day0, y0, m0&#xff1b; scanf_s("%d %d", &year,&month); //判断闰年 for(y1900;y<year;y) { if ((y % 4 0 && y % 100 ! 0) || y % 400 0) …

keil兼容C51和ARM,C251

三合一 C51,AEM,C251获取STC32的包 将 C51,AEM,C251安装到一块。 C51,AEM,C251 将三个软件分别下载到不同的文件夹KEIL,MDK,KEIL2里。 然后打开KEIL,MDK,KEIL2文件夹&#xff0c;复制KEIL文件夹里的C51和KEIL2文件夹里的C251的文件夹到MDK文件夹里。 打开KEIL和KEIL2文件夹里…

单链表的经典算法OJ

目录 1.反转链表 2.链表的中间节点 3.移除链表元素 ——————————————————————————————————————————— 正文开始 1.反转链表 typedef struct ListNode ListNode; struct ListNode* reverseList(struct ListNode* head) {//判空if(…

运行kafka查看所有主题Topic报错zookeeper is not a recognized option

执行命令查看&#xff1a;./kafka-topics.sh --list --zookeeper localhost:2181 报错 zookeeper is not a recognized option joptsimple.UnrecognizedOptionException: zookeeper is not a recognized optionat joptsimple.OptionException.unrecognizedOption(OptionExcept…

Qt设置浏览器为父窗口,嵌入播放器窗口

本项目旨在利用Qt框架实现一个创新的用户界面&#xff0c;允许将Qt窗口作为子窗口嵌入到浏览器中&#xff0c;增强用户体验并实现更丰富的交互功能。随着Web技术的不断发展&#xff0c;越来越多的应用程序希望结合桌面应用程序和Web浏览器的优势&#xff0c;以便更好地满足用户…

000010 - Mapreduce框架原理

Mapreduce框架原理 1. InputFormat 数据输入1.1 切片与 MapTask 并行度决定机制1.2 Job 提交流程源码和切片源码详解1.2.1 Job 提交流程源码详解1.2.2 FileInputFormat 切片源码解析&#xff08;input.getSplits(job)&#xff09; 1.3 FileInputFormat 切片机制1.3.1 切片机制1…

@JsonIgnoreProperties做接口对接时使用带来的好处

最近看到有个同事&#xff0c;在代码里面加了JsonIgnoreProperties这个注解&#xff0c;以前还真没有经常去用过&#xff0c;接口对接尤其是跟金蝶、用友等第三方&#xff0c;这个注解在接收数据是非常好用的&#xff1b;接下来带大家一起了解下具体的特性和使用方式 JsonIgno…

二、PyCharm基本设置

PyCharm基本设置 前言一、设置中文汉化二、设置代码字体颜色三、设置鼠标滚轮调整字体大小四、修改 PyCharm 运行内存4.1 方式一4.1 方式二 五、显示 PyCharm 运行时内存六、设置代码模版配置的参数有&#xff1a; 七、PyCharm设置背景图总结 前言 为了让我们的 PyCharm 更好用…

一家射频芯片企业终止,报告期持续亏损,高端产品占比不足

飞骧科技终止原因如下&#xff1a;飞骧科技从事的射频芯片行业如今竞争激烈&#xff0c;飞骧科技的产品主要应用于中低端手机&#xff0c;如摩托罗拉、传音&#xff0c;相比同行业上市公司已经退出的低集成度市场&#xff0c;相关产品展飞骧科技业务比重仍然不低。交易所质疑其…

简述 C# 二维数据集合 List 的创建、遍历、修改、输出

简述 C# 二维数据集合 List 的创建、遍历、修改、输出 1、为什么要使用列表 List2、引入命名空间3、声明一维列表 List4、声明创建一个二维列表 List&#xff0c;数据类型 int5、 简单访问元素6、遍历二维列表&#xff0c;控制台输出7、遍历二维列表&#xff0c;修改数据&#…

【Matlab】基于Prandtl−Ishlinskii的迟滞模型-RLS辨识

PI模型 PI迟滞模型的输出公式&#xff1a; 代码记录 此代码为根据PI模型&#xff0c;已知输入&#xff08;正弦函数幅值为3.5&#xff09;、阈值以及权重值&#xff0c;利用matlab生成迟滞回线。 %% The Prandtl-Ishlinskii Hysteresis Model- %% 20241021 clc;clear; close…

数据结构与算法——Java实现 44.翻转二叉树

目录 226. 翻转二叉树 思路 代码 本地代码测试 不管前方的路有多苦 只要走的方向正确 不管多么崎岖不平 都比站在原地更接近幸福 —— 24.10.21 226. 翻转二叉树 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输…

Unity AnimationClip详解(2)——动画数据的优化

【内存优化】 首先要意识到运行时和编辑时的区别&#xff0c;当运行时和编辑时所需的数据相差不大时&#xff0c;我们用同一套数据结构即可&#xff0c;当两者差异较多或者数据量很大时&#xff0c;需要有各自的数据结构&#xff0c;这意味着在打包或构建时需要将编辑时数据转…

【Linux探索学习】第七弹——Linux的工具(二):Linux下vim编辑器的使用详解

Linux的工具&#xff08;一&#xff09;&#xff1a;【Linux探索学习】第六弹——Linux的工具&#xff08;一&#xff09;&#xff1a;Ubuntu系统下的软件包管理器_ubuntu软件管理器-CSDN博客 前言&#xff1a; 在学习Linux之前&#xff0c;相信大家都或多或少的学习过一些计算…

微信小程序用开发工具在本地真机调试可以正常访问摄像头,发布了授权后却无法访问摄像头,解决方案

今天开发上线了一个拍照的微信小程序&#xff0c;用uniapp的Vue3开发的&#xff0c;调用的camera组件&#xff0c;相关代码如下&#xff1a; <!-- 微信小程序相机组件 --><view v-if"showCamera" class"camera-container"><camera :device…