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

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

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

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

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

研究目的

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

主要内容

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

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

一旦预测出结果,我们仅使用眼睛地标和嘴部地标来确定人的眼睛长宽比(EAR)和嘴部长宽比(MAR),以检查人是否困倦。EAR和MAR的计算如下所示:Wyo28资讯网——每日最新资讯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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

源代码的GitHub链接可在此处获得:https://github.com/fear-the-lord/Drowsiness-DetectionWyo28资讯网——每日最新资讯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 完成个人信息收集使用合规整改

标签:
  • 热门焦点
  • 一加Ace2 Pro官宣:普及16G内存 引领24G

    一加官方今天继续为本月发布的新机一加Ace2 Pro带来预热,公布了内存方面的信息。“淘汰 8GB ,12GB 起步,16GB 普及,24GB 引领,还有呢?#一加Ace2Pro#,2023 年 8 月,敬请期待。”同时
  • K60至尊版狂暴引擎2.0加持:超177万跑分斩获性能第一

    Redmi的后性能时代战略发布会今天下午如期举办,在本次发布会上,Redmi公布了多项关于和联发科的深度合作,以及新机K60 Ultra在软件和硬件方面的特性,例如:“K60 至尊版,双芯旗舰
  • 2023年Q2用户偏好榜:12+256G版本成新主流

    3月份的性能榜、性价比榜和好评榜之后,就要轮到2023年的第二季度偏好榜了,上半年的新机潮已经过去,最明显的肯定就是大内存和存储的机型了,另外部分中端机也取消了屏幕塑料支架
  • Raft算法:保障分布式系统共识的稳健之道

    1. 什么是Raft算法?Raft 是英文”Reliable、Replicated、Redundant、And Fault-Tolerant”(“可靠、可复制、可冗余、可容错”)的首字母缩写。Raft算法是一种用于在分布式系统
  • 只需五步,使用start.spring.io快速入门Spring编程

    步骤1打开https://start.spring.io/,按照屏幕截图中的内容创建项目,添加 Spring Web 依赖项,并单击“生成”按钮下载 .zip 文件,为下一步做准备。请在进入步骤2之前进行解压。图
  • Temu起诉SHEIN,跨境电商战事升级

    来源 | 伯虎财经(bohuFN)作者 | 陈平安日前据外媒报道,拼多多旗下跨境电商平台Temu正对竞争对手SHEIN提起新诉讼,诉状称Shein“利用市场支配力量强迫服装厂商与之签订独家
  • 自律,给不了Keep自由!

    来源 | 互联网品牌官作者 | 李大为编排 | 又耳 审核 | 谷晓辉自律能不能给用户自由暂时不好说,但大概率不能给Keep自由。近日,全球最大的在线健身平台Keep正式登陆港交所,努力
  • 消息称小米汽车开始筛选交付中心:需至少120个车位

    IT之家 7 月 7 日消息,日前,有微博简介为“汽车行业从业者、长三角一体化拥护者”的微博用户 @长三角行健者 发文表示,据经销商集团反馈,小米汽车目前
  • 世界人工智能大会国际日开幕式活动在世博展览馆开启

    30日上午,世界人工智能大会国际日开幕式活动在世博展览馆开启,聚集国际城市代表、重量级院士专家、国际创新企业代表,共同打造人工智能交流平台。上海市副市
Top