该系统可以检测一个人在开车时是否困倦,如果有的话,可以通过使用语音消息实时提醒他。该系统使用网络摄像头和电话摄像头进行实时数据传输。

01.研究目的

根据国家公路交通安全管理局的数据,每年均涉及疲劳驾驶事故中导致超过1,550人死亡和71,000人受伤,但是实际数字可能要高得多[1]。因此,为了避免这类事故的发生,我们制作了这个系统。它通过检查人的眼睛是否闭合或正在打哈欠来预测眼睛和嘴巴的标志,从而确定一个人是否正处于疲劳驾驶。

主要内容

02.主要内容

该系统的工作可以分为两个部分:

1. 检测或定位面部。

2. 预测检测到的面部中重要区域的地标。

一旦预测出结果,我们仅使用眼睛地标和嘴部地标来确定人的眼睛长宽比(EAR)和嘴部长宽比(MAR),以检查人是否困倦。EAR和MAR的计算如下所示:

from scipy.spatial import distance as dist
def eye_aspect_ratio(eye):# Vertical eye landmarksA = dist.euclidean(eye[1], eye[5])B = dist.euclidean(eye[2], eye[4])# Horizontal eye landmarks C = dist.euclidean(eye[0], eye[3])# The EAR Equation EAR = (A + B) / (2.0 * C)return EARdef mouth_aspect_ratio(mouth): A = dist.euclidean(mouth[13], mouth[19])B = dist.euclidean(mouth[14], mouth[18])C = dist.euclidean(mouth[15], mouth[17])MAR = (A + B + C) / 3.0return MAR

现在,既然有了代码,让我们了解一下代码是如何工作的:

dlib库内部的预训练面部界标检测器用于估计映射到面部面部结构的68-(x,y)坐标的位置[2]。这些68-(x,y)坐标表示脸部的重要区域,例如嘴巴,左眉,右眉,左眼,右眼,鼻子和下巴。其中,我们只需要左眼,右眼和嘴巴的(x,y)坐标:

# Grab the indexes of the facial landamarks for the left and right eye respectively
(lstart, lend) = face_utils.FACIAL_LANDMARKS_IDXS["left_eye"]
(rstart, rend) = face_utils.FACIAL_LANDMARKS_IDXS["right_eye"]
(mstart, mend) = face_utils.FACIAL_LANDMARKS_IDXS["mouth"]

现在,每只眼睛都由一组6-(x,y)坐标表示,该坐标从眼睛的左上角开始(就像您在看那个人一样),然后围绕该区域的其余部分顺时针旋转[3]。:

左上:当眼睛睁开时,眼睛界标的可视化。右上:闭上眼睛时的眼睛地标。底部:绘制随时间变化的眼睛纵横比。眼睛纵横比的下降表示眨眼[3](Soukupová和Čech的图1)。[4]

基于论文Real-Time Eye Blink Detection using Facial Landmarks[5],我们可以得出一个反映这种关系的方程,称为眼睛纵横比(EAR):

眼睛纵横比(EAR)公式。

使用这个概念,我们计算了嘴长宽比:

用68-(x,y)坐标表示人脸

正如我们看到的,嘴由一组20-(x,y)坐标表示。因此,我们已使用坐标62、64、66和68来计算两者之间的距离,方法与EAR计算相同。

结果

在人员困倦或打哈欠时发出警报

另外,为了保留证据,我们保存了让人昏昏欲睡的框架。

框架存储在单独的文件夹中作为证明

该图显示了EAR和MAR随时间的变化

源代码的GitHub链接可在此处获得:https://github.com/fear-the-lord/Drowsiness-Detection

03.参考文献

[1]Drivers are falling asleep behind the wheels. Prevalence of drowsy driving crashes: https://www.nsc.org/road-safety/safety-topics/fatigued-driving

[2]Facial landmarks with dlib, OpenCV and Python: https://www.pyimagesearch.com/2017/04/03/facial-landmarks-dlib-opencv-python/

[3]Eye blink detection with OpenCV, Python, and dlib: https://www.pyimagesearch.com/2017/04/24/eye-blink-detection-opencv-python-dlib/

[4]Drowsiness Detection with OpenCV: https://www.pyimagesearch.com/2017/05/08/drowsiness-detection-opencv/

[5]Real-Time Eye Blink Detection using Facial Landmarks: http://vision.fe.uni-lj.si/cvww2016/proceedings/papers/05.pdf

基于OpenCV的实时睡意检测系统相关推荐

  1. dlib疲劳检测_基于OpenCV的实时睡意检测系统

    该系统可以检测一个人在开车时是否困倦,如果有的话,可以通过使用语音消息实时提醒他.该系统使用网络摄像头和电话摄像头进行实时数据传输. 研究目的 根据国家公路交通安全管理局的数据,每年均涉及疲劳驾驶事故 ...

  2. Python基于OpenCV的实时疲劳检测[源码&演示视频&部署教程]

    1.图片演示 2.视频演示 [项目分享]Python基于OpenCV的实时疲劳检测[源码&演示视频&部署教程]_哔哩哔哩_bilibili 3.检测方法 1)方法 与用于计算眨眼的传统 ...

  3. Python基于OpenCV的异常行为检测系统[源码&部署教程]

    1.项目背景 智能视频监控(Intelligent Video Surveillance , IVS)[1.2·3.4是计算机视觉技术5l在安防领域的应用,实现了由"被动监控"到& ...

  4. Python基于OpenCV监控老鼠蟑螂检测系统[完整源码&部署教程]

    1.视频演示: [项目分享]Python基于OpenCV监控老鼠蟑螂检测系统[完整源码&部署教程]_哔哩哔哩_bilibili 2.图片演示: 3.明厨亮灶: 餐饮企业的厨房卫生状况一直饱受消 ...

  5. 基于Opencv的车距检测系统(源码&教程)

    1.研究背景 对本车前方车辆的识别及距离检测是计算机视觉技术在智能网联汽车中的一个重要内容.要想在错综繁杂的交通环境中实现无人驾驶,对行车环境中其他车辆信息的获取是十分重要的.因此,对本车前方车辆的识 ...

  6. 基于OpenCV监控老鼠蟑螂检测系统[完整源码&部署教程]

    1.视频演示: [项目分享]Python基于OpenCV监控老鼠蟑螂检测系统[完整源码&部署教程]_哔哩哔哩_bilibili 2.图片演示: 3.算法原理: 该博客提出的移动侦测即是根据视频 ...

  7. 实战:使用 PyTorch 和 OpenCV 实现实时目标检测系统

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 一.引言 自动驾驶汽车可能仍然难以理解人类和垃圾桶之间的区别,但这 ...

  8. 使用 PyTorch 和 OpenCV 实现实时目标检测系统

    作者 | 小白 来源 | 小白学视觉 一.引言 自动驾驶汽车可能仍然难以理解人类和垃圾桶之间的区别,但这并没有使最先进的物体检测模型在过去十年中取得的惊人进步相去甚远. 将其与 OpenCV 等库的图 ...

  9. 基于神经网络的目标检测论文之目标检测系统:实时路况检测系统的设计与实现

    第五章 实时路况检测系统的设计与实现 物体识别技术被广泛应用于人们的生产生活中.随着深度学习与云计算的飞速发展,带动了物体识别技术产生质的飞跃.高分辨率图像和检测的实时性要求越来越高. 从本章开始,我 ...

最新文章

  1. nodejs 中间件 反向代理 接口转发
  2. 【星球知识卡片】模型蒸馏的核心技术点有哪些,如何对其进行长期深入学习...
  3. C语言课程设计——学生学籍管理系统
  4. 【转】逆变与协变详解
  5. Linux笔记 -- Pyhton虚拟环境Linux系统基本操作Vim编辑器基本操作
  6. 解微分方程数值解法(理论部分)
  7. 使用ESP8266/ESP8285做一个WIFI中继(WiFi信号放大器)
  8. w ndows无法安装未知设备,Win7安装驱动程序时提示“unknown device(未知设备)”如何解决...
  9. 淘淘商城第75讲——添加商品同步到索引库以及消息机制测试
  10. php后端管,管理后台-后端-PHP篇
  11. nginx证书绑定及二级域名反向代理
  12. Win7 如何修改hosts文件
  13. 蓝牙技术|了解蓝牙LE Audio的Auracast广播音频
  14. ARM嵌入式的定义和开发工具介绍
  15. 九头牛的故事—你就是那个美丽的期待(刘俊平咨询师)
  16. 如何添加51la代码及隐藏统计图标
  17. 教你如何利用php.exe运行php文件
  18. HEARTS, CLUBS, DIAMONDS, SPADES: PLAYERS WHO SUIT MUDS
  19. 兰州城市学院计算机专业在哪个校区,兰州城市学院 代码
  20. 京东强推 995 工作制,中国式变态加班何时休?

热门文章

  1. 如何高效推进ML模型开发和部署?Uber机器学习平台Michelangelo实践
  2. AI 一分钟 | 谷歌发布72量子比特处理器,或将为机器学习应用提供加速;百度已经发起对景驰撤诉,但不会对王劲撤诉
  3. 资源 | Hinton、LeCun、吴恩达......不容错过的15大机器学习课程都在这儿了
  4. 资源 | Yann LeCun最新演讲:大脑是如何高效学习的?(附PPT+视频)
  5. 又双叒有兄弟因为 YYYY-MM-dd 被叫去加班了...
  6. 花式方法搞定不同vlan的主机互通
  7. Spring Validation最佳实践及其实现原理,参数校验没那么简单!
  8. Java分布式 RPC 框架性能大比拼,Dubbo最差?
  9. 2022 AI趋势8大预测!
  10. 图解GPT-2(完整版)!