当前位置:首页 > 科技  > 软件

基于 OpenCV 的实时睡意检测系统

来源: 责编: 时间:2024-09-10 09:51:16 34观看
导读该系统可以检测一个人在开车时是否困倦,如果有的话,可以通过使用语音消息实时提醒他。该系统使用网络摄像头和电话摄像头进行实时数据传输。研究目的根据国家公路交通安全管理局的数据,每年均涉及疲劳驾驶事故中导致超过

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

MYV28资讯网——每日最新资讯28at.com

研究目的

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

主要内容

该系统的工作可以分为两个部分:MYV28资讯网——每日最新资讯28at.com

  • 检测或定位面部。
  • 预测检测到的面部中重要区域的地标。

一旦预测出结果,我们仅使用眼睛地标和嘴部地标来确定人的眼睛长宽比(EAR)和嘴部长宽比(MAR),以检查人是否困倦。EAR和MAR的计算如下所示:MYV28资讯网——每日最新资讯28at.com

from scipy.spatial import distance as dist def eye_aspect_ratio(eye):  # Vertical eye landmarks  A = 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.0  return MAR

现在,既然有了代码,让我们了解一下代码是如何工作的:MYV28资讯网——每日最新资讯28at.com

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

# 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]。:MYV28资讯网——每日最新资讯28at.com

MYV28资讯网——每日最新资讯28at.com

左上:当眼睛睁开时,眼睛界标的可视化。右上:闭上眼睛时的眼睛地标。底部:绘制随时间变化的眼睛纵横比。眼睛纵横比的下降表示眨眼[3](Soukupová和Čech的图1)。[4]MYV28资讯网——每日最新资讯28at.com

基于论文Real-Time Eye Blink Detection using Facial Landmarks[5],我们可以得出一个反映这种关系的方程,称为眼睛纵横比(EAR):MYV28资讯网——每日最新资讯28at.com

MYV28资讯网——每日最新资讯28at.com

眼睛纵横比(EAR)公式。MYV28资讯网——每日最新资讯28at.com

使用这个概念,我们计算了嘴长宽比:MYV28资讯网——每日最新资讯28at.com

MYV28资讯网——每日最新资讯28at.com

用68-(x,y)坐标表示人脸MYV28资讯网——每日最新资讯28at.com

正如我们看到的,嘴由一组20-(x,y)坐标表示。因此,我们已使用坐标62、64、66和68来计算两者之间的距离,方法与EAR计算相同。MYV28资讯网——每日最新资讯28at.com

结果:MYV28资讯网——每日最新资讯28at.com

MYV28资讯网——每日最新资讯28at.com

在人员困倦或打哈欠时发出警报MYV28资讯网——每日最新资讯28at.com

另外,为了保留证据,我们保存了让人昏昏欲睡的框架。MYV28资讯网——每日最新资讯28at.com

MYV28资讯网——每日最新资讯28at.com

框架存储在单独的文件夹中作为证明:MYV28资讯网——每日最新资讯28at.com

MYV28资讯网——每日最新资讯28at.com

该图显示了EAR和MAR随时间的变化MYV28资讯网——每日最新资讯28at.com

源代码的GitHub链接可在此处获得:https://github.com/fear-the-lord/Drowsiness-DetectionMYV28资讯网——每日最新资讯28at.com

参考文献

  • [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

本文链接:http://www.28at.com/showinfo-26-112797-0.html基于 OpenCV 的实时睡意检测系统

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 十个 Python 列表和索引结合的高级搜索技术

下一篇: 京东、淘宝等 62 款 App 完成个人信息收集使用合规整改

标签:
  • 热门焦点
  • 小米降噪蓝牙耳机Necklace分享:听一首歌 读懂一个故事

    小米降噪蓝牙耳机Necklace分享:听一首歌 读懂一个故事

    在今天下午的小米Civi 2新品发布会上,小米还带来了一款新的降噪蓝牙耳机Necklace,我们也在发布结束的第一时间给大家带来这款耳机的简单分享。现在大家能见到最多的蓝牙耳机
  • 消息称迪士尼要拍真人版《魔发奇缘》:女主可能也找黑人演员

    消息称迪士尼要拍真人版《魔发奇缘》:女主可能也找黑人演员

    8月5日消息,迪士尼确实有点忙,忙着将不少动画改成真人版,继《美人鱼》后,真人版《白雪公主》、《魔发奇缘》也在路上了。据外媒消息称,迪士尼将打造真人版
  • 六大权益!华为8月服务日开启:手机免费贴膜、维修免人工费

    六大权益!华为8月服务日开启:手机免费贴膜、维修免人工费

    8月5日消息,一年一度的华为开发者大会2023(Together)日前在松山湖拉开帷幕,与此同时,华为8月服务日也式开启,到店可享六大专属权益。华为用户可在华为商城Ap
  • 三言两语说透柯里化和反柯里化

    三言两语说透柯里化和反柯里化

    JavaScript中的柯里化(Currying)和反柯里化(Uncurrying)是两种很有用的技术,可以帮助我们写出更加优雅、泛用的函数。本文将首先介绍柯里化和反柯里化的概念、实现原理和应用
  • 三万字盘点 Spring 九大核心基础功能

    三万字盘点 Spring 九大核心基础功能

    大家好,我是三友~~今天来跟大家聊一聊Spring的9大核心基础功能。话不多说,先上目录:图片友情提示,本文过长,建议收藏,嘿嘿嘿!一、资源管理资源管理是Spring的一个核心的基础功能,不
  • 虚拟键盘 API 的妙用

    虚拟键盘 API 的妙用

    你是否在遇到过这样的问题:移动设备上有一个固定元素,当激活虚拟键盘时,该元素被隐藏在了键盘下方?多年来,这一直是 Web 上的默认行为,在本文中,我们将探讨这个问题、为什么会发生
  • WebRTC.Net库开发进阶,教你实现屏幕共享和多路复用!

    WebRTC.Net库开发进阶,教你实现屏幕共享和多路复用!

    WebRTC.Net库:让你的应用更亲民友好,实现视频通话无痛接入! 除了基本用法外,还有一些进阶用法可以更好地利用该库。自定义 STUN/TURN 服务器配置WebRTC.Net 默认使用 Google 的
  • ESG的面子与里子

    ESG的面子与里子

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之三伏大幕拉起,各地高温预警不绝,但处于厄尔尼诺大“烤”之下的除了众生,还有各大企业发布的ESG报告。ESG是“环境保
  • 三星显示已开始为AR设备研发硅基LED微显示屏

    三星显示已开始为AR设备研发硅基LED微显示屏

    7月18日消息,据外媒报道,随着苹果首款头显产品Vision Pro在6月份正式推出,AR/VR/MR等头显产品也就将成为各大公司下一个重要的竞争领域,对显示屏这一关
Top