来源:小白学视觉
作者:努比
该系统可以检测一个人在开车时是否困倦,如果有的话,可以通过使用语音消息实时提醒他。该系统使用网络摄像头和电话摄像头进行实时数据传输。
01.研究目的
根据国家公路交通安全管理局的数据,每年均涉及疲劳驾驶事故中导致超过1,550人死亡和71,000人受伤,但是实际数字可能要高得多[1]。因此,为了避免这类事故的发生,我们制作了这个系统。它通过检查人的眼睛是否闭合或正在打哈欠来预测眼睛和嘴巴的标志,从而确定一个人是否正处于疲劳驾驶。
主要内容
02.主要内容
该系统的工作可以分为两个部分:
1. 检测或定位面部。
2. 预测检测到的面部中重要区域的地标。
一旦预测出结果,我们仅使用眼睛地标和嘴部地标来确定人的眼睛长宽比(EAR)和嘴部长宽比(MAR),以检查人是否困倦。EAR和MAR的计算如下所示:
from scipy.spatial import distance as dist
现在,既然有了代码,让我们了解一下代码是如何工作的:
dlib库内部的预训练面部界标检测器用于估计映射到面部面部结构的68-(x,y)坐标的位置[2]。这些68-(x,y)坐标表示脸部的重要区域,例如嘴巴,左眉,右眉,左眼,右眼,鼻子和下巴。其中,我们只需要左眼,右眼和嘴巴的(x,y)坐标:
# Grab the indexes of the facial landamarks for the left and right eye respectively
现在,每只眼睛都由一组6-(x,y)坐标表示,该坐标从眼睛的左上角开始(就像您在看那个人一样),然后围绕该区域的其余部分顺时针旋转[3]。:
使用这个概念,我们计算了嘴长宽比:
用68-(x,y)坐标表示人脸
正如我们看到的,嘴由一组20-(x,y)坐标表示。因此,我们已使用坐标62、64、66和68来计算两者之间的距离,方法与EAR计算相同。
结果
该图显示了EAR和MAR随时间的变化
源代码的GitHub链接可在此处获得:https://github.com/fear-the-l...
03.参考文献
[1]Drivers are falling asleep behind the wheels. Prevalence of drowsy driving crashes: https://www.nsc.org/road-safe...
[2]Facial landmarks with dlib, OpenCV and Python: https://www.pyimagesearch.com...
[3]Eye blink detection with OpenCV, Python, and dlib: https://www.pyimagesearch.com...
[4]Drowsiness Detection with OpenCV: https://www.pyimagesearch.com...
[5]Real-Time Eye Blink Detection using Facial Landmarks: http://vision.fe.uni-lj.si/cv...
声明:转载请说明出处
推荐专栏文章
- 【CUDA学习笔记】第一篇:一个基本的CUDA C程序(附配置方法和安装包下载方式)
- 【最强模型之道】AWS Auto-Aug:通过Weight共享改进自动数据增广,打造最高精度单模型
- 开源|全球最大最干净的人脸公开数据集Glint360K
更多嵌入式AI算法部署等请关注[极术嵌入式AI专栏]