MATLAB疲劳检测的实现

3、定义EAR(eye aspect ratio)计算函数,dlib模块只是帮助我们定位眼睛关键店的位置,后续的计算工作:例如何如判断眼睛闭眼需要我们通过算法去实现。首先疲劳检测的原理其实是通过检测眼部的眨眼动作来判断一个人的疲劳状态,正常在驾驶的时候眼睛是不会发生多次数的闭眼的,当人处于疲劳,犯困的时候,眼睛会不自觉的闭上。进行关键点定位之前要先进行人脸定位,这里也是用dlib包进行检测,在使用关键点检测器对检测到的人脸进行关键点检测。要判断眼睛的状态,首相我们需要定位找到眼睛的位置。
摘要由CSDN通过智能技术生成

MATLAB疲劳检测的实现

疲劳检测在安全驾驶方面是一个很热门的话题,本质上是一个机器视觉的任务。本文章将讲解疲劳检测的实现过程,并使用MATLAB,opencv、dlib库来实现疲劳检测。

首先疲劳检测的原理其实是通过检测眼部的眨眼动作来判断一个人的疲劳状态,正常在驾驶的时候眼睛是不会发生多次数的闭眼的,当人处于疲劳,犯困的时候,眼睛会不自觉的闭上。我们可以通过抓住这一点,利用摄像头来抓取画面,来判断一个人是否是疲劳状态。

要判断眼睛的状态,首相我们需要定位找到眼睛的位置。Dlib模块提供了人脸关键点检测器,可以帮助我们找到人脸的68个关键点的位置,包括眼睛。

在关键点定位的官方文档中,提取68个关键点来表示脸上的部位。其中:

第1个点到第17个点:脸颊;

第18个点到第22个点:右边眉毛;

第23个点到第27个点:左边眉毛;

第28个点到第36个点:鼻子;

第37个点到第42个点:右眼;

第43个点到第48个点:左眼;

第49个点到第68个点:嘴巴。

如下图所示:

因此我们需要用到dlib模块,同时还需要机器视觉库opencv和距离计算模块scipy.spatial(后面会讲述到如何应用)

1、首先导入相关的模块:

from scipy.spatial import distance as dist  import numpy as np  import dlib  import CV2   

2、对脸上的部位进行定义,把检测到的关键点按照顺序定义好,方便后边当作数据的索引调用

FACIAL_LANDMARKS_68_IDXS = dict([  

        ("mouth", (48, 68)),  

        ("right_eyebrow", (17, 22)),  

        ("left_eyebrow", (22, 27)),  

        ("right_eye", (36, 42)),  

        ("left_eye", (42, 48)),  

        ("nose", (27, 36)),  

        ("jaw", (0, 17))  

    

  • 16
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值