Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测!
文件大小:80M
操作系统:Windows10旗舰版
开发工具:Python3.8、OpenCV4.5、dlib
开发语言:.py
简要概述:
疲劳检测
原理
因为人在疲倦时大概会产生两种状态: 眨眼:正常人的眼睛每分钟大约要眨动10-15次,
每次眨眼大概0.2-0.4秒,如果疲倦时眨眼次数会增多,速度也会变慢。打哈欠:此时嘴
会长大而且会保持一定的状态。因此检测人是否疲劳可以从眼睛的开合度,眨眼频率,以
及嘴巴张合程度来判断一个人是否疲劳。
检测工具
dlib :一个很经典的用于图像处理的开源库,shape_predictor_68_face_landmarks.dat是一个用于人脸68个关键点检测的dat模型库,使用这个模型库可以很方便地进行人脸检测,并进行简单的应用。
代码思路
第一步:使用dlib.get_frontal_face_detector() 获得脸部位置检测器
第二步:使用dlib.shape_predictor获得脸部特征位置检测器
第三步:分别获取左右眼面部标志的索引
第四步:打开cv2 本地摄像头
第五步:从视频流进行循环,读取图片,并对图片做维度扩大,并进灰度化
第六步:使用detector(gray, 0) 进行脸部位置检测
第七步:循环脸部位置信息,使用predictor(gray, rect)获得脸部特征位置的信息
第八步:将脸部特征信息转换为数组array的格式
第九步:提取左眼和右眼坐标
第十步:构造函数计算左右眼的EAR值,使用平均值作为最终的EAR
第十一步:使用cv2.convexHull获得凸包位置,使用drawContours画出轮廓位置进行画图操作
第十二步:进行画图操作,用矩形框标注人脸
第十三步:分别计算左眼和右眼的评分求平均作为最终的评分,如果小于阈值,则加1,如果连续3次都小于阈值,则表示进行了一次眨眼活动
第十四步:进行画图操作,68个特征点标识
第十五步:进行画图操作,同时使用cv2.putText将眨眼次数进行显示
第十六步:统计总眨眼次数大于50次屏幕显示睡着。
np.linalg.norm: 0.284s
dist.euclidean: 0.596s
所以看出np.linalg.norm()函数的运算速度要比dist.euclidean()快一点。所以用前者
来测量眼睛和嘴巴的欧氏距离。演示视频:
后续就可以实现疲劳之后的一些警示!还是很有用的,疲劳驾驶就像酒驾,实在累了找个服务区休息两个小时,都好的多,希望各大车主们都能平安出行!
近期有很多朋友通过私信咨询有关Python学习问题。为便于交流,点击蓝色自己加入讨论解答资源基地
Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测!相关推荐
- Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测
点击查看:Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测 文件大小:80M 操作系统:Windows10旗舰版 开发工具:Python3.8.OpenCV4.5.dlib 开发语言:.py ...
- python + dlib 实现简单疲劳驾驶检测
引言 本文章实现的疲劳驾驶功能比较单一,仅对眼部进行一个眨眼阈值的检测,并没有对人脸其它部位(瞌睡会点头.嘴部微张等)进行检测,需要在疲劳驾驶这个方向上深究的hxd可以自己对代码进行迭代更新. 这篇文 ...
- 毕设 深度学习疲劳驾驶检测 opencv python
文章目录 0 前言 1 课题背景 2 实现目标 3 当前市面上疲劳驾驶检测的方法 4 相关数据集 5 基于头部姿态的驾驶疲劳检测 5.1 如何确定疲劳状态 5.2 算法步骤 5.3 打瞌睡判断 6 基 ...
- python疲劳检测代码_【君奉天|开发日记】疲劳驾驶检测
我之前写的关于DuerOS开发日记: 今天看了2017百度世界大会上李彦宏董事长介绍了百度的疲劳驾驶检测,正好我之前阿德里安·罗斯布鲁克的文章中介绍了利用Facial landmarks + drow ...
- 基于YOLOv5的疲劳驾驶检测系统(Python+清新界面+数据集)
摘要:基于YOLOv5的疲劳驾驶检测系统使用深度学习技术检测常见驾驶图片.视频和实时视频中的疲劳行为,识别其闭眼.打哈欠等结果并记录和保存,以防止交通事故发生.本文详细介绍疲劳驾驶检测系统实现原理的同 ...
- 基于MATLAB人脸检测的汽车疲劳驾驶检测
课题介绍 疲劳驾驶导致汽车交通事故逐年增加,为了提升驾车的安全性,需对驾驶员疲劳状态实时监测并及时提醒. 为了提高疲劳驾驶判断效率及准确率,本文运用Viola-Jones 框架特征矩阵进行人脸预判断: ...
- python+opencv+dlib实现人脸检测与表情识别
python+opencv+dlib实现人脸检测与表情识别 一,dlib简单介绍:Dlib包含广泛的机器学习算法.所有的设计都是高度模块化的,快速执行,并且通过一个干净而现代的C ++ API,使用起 ...
- 基于脑电功率的疲劳驾驶检测研究_kaic
基于脑电功率的疲劳驾驶检测研究 摘 要 在道路交通安全领域,疲劳驾驶是一种常见的交通安全隐患.现有数据统计,全球每年有大约21%的重大交通事故与疲劳驾驶有关,疲劳驾驶成为了诱发交通事故的主要原因之一 ...
- 疲劳驾驶检测系统的研究
MATLAB疲劳驾驶检测系统 摘要:随着我国生活水平的提高,在交通方面有了质的飞跃,其中汽车保有量更是与日俱增.但是,随之而来的交通事故也源源不 断.据统计,我国交通事故死亡人数己连续10多年居世界第 ...
最新文章
- Android UI 统一修改Button控件的样式,以及其它系统控件的默认样式
- 优化javaScript代码,提高执行效率
- linux看测试环境版本,最新版 EOS 在 Ubuntu 18.04.1 LTS 环境上的安装测试教程
- php时间区间,优化显示
- c语言字符数组的应用编程,C语言基础(一)
- SegmentFault D-Day 2016 年度总结报告
- 【图像去噪】基于matlab中值+均值+Lee+Kuan图像滤波【含Matlab源码 1179期】
- 图文并茂搭建STM32开发环境
- 电脑扬声器安装程序(UNKNOW)
- 同一块芯片,同时使用多个SOCKET工作,应该注意什么问题?
- 办公室网络还能这么搭建?从入门到精通,看这里
- Linux下查找指定日期的文件
- 26丨案例:手把手带你理解TPS趋势分析*
- C++ 三维空间的点(继承)
- Java之国际化操作
- 【CC】| 创建三维模型教程
- 微信公众号查询账户余额等
- Python 写文件中文乱码问题
- 网络游戏外挂制作(3)-1
- 【Java游戏开发合集】毕业设计(附源码+资料+课件)
热门文章
- 阿里云短信发送接口直接HTTP请求调用
- 三维空间无人机均匀分布——球体包围
- A deep-learning framework for multi-levelpeptide–protein interaction prediction文章梳理
- 详解Unity中的粒子系统Particle System (七)
- mongo-java 实现使用and拼接多个or查询条件
- 周报格式(sohu)
- wifipineapple外接网卡上网
- logx求x怎么用计算机,logx(logx等于什么)
- 编辑器开发(一):准备工作,百度ueditor移入项目当中
- python去掉最高分和最低分怎么算平均分_去掉最高分和最低分算平均分并进行排名...