基于landmark的疲劳检测

        经查阅相关文献,疲劳在人体面部表情中表现出大致三个类型:打哈欠(嘴巴张大且相对较长时间保持这一状态)、眨眼(或眼睛微闭,此时眨眼次数增多,且眨眼速度变慢)、点头(瞌睡点头)。

1、首先是检测眨眼,可以通过landmark点的标号直接定位眼睛位置,经实验验证,该一系列的点能够准确定位。下面重点分析一下眼部,68点landmark中可以看到36-41为左眼,42-47为右眼,如下图所示:

68点landmark眼部区域

通过计算37、38、41、40的纵坐标、36、39的横坐标来计算眼睛的睁开度。如:1/2*[(y41+y40)-(y37+y38)]/(x39-x36)通过一个阈值确定眼睛是睁开还是闭上。也可以将这个值与初始的值的比值作为睁开度,根据不同程度来进行比较。睁开度从大到小为进入闭眼期,从小到大为进入睁眼期,计算最长闭眼时间(可用帧数来代替)闭眼次数为进入闭眼、进入睁眼的次数。通过设定单位时间内闭眼次数、闭眼时间的阈值判断人是否已经疲劳了。

2、点头:可利用姿态估计结果(如Pitch的读数)来判断是否点头及点头幅度。

或用鼻尖处30号点的前后移动值(或是方差,方差表示一个单位时间数据的偏离程度,程度越大,则表示发生点头动作的概率越大、点头幅度越大)

3、打哈欠可利用嘴巴处50、52、58、57、57点的距离来判断是否张嘴及张嘴时间,从而确定人是否是在打哈欠,同时这个阈值应当合理,应经过大量实验,能够与正常说话或哼歌区分开来。


附:windows下包下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 基于视觉的疲劳检测可以认为大致分为三个部分,点头,哈欠,眨眼。分别为姿态、嘴部特征、眼部特征。 本文主要介绍哈欠的...
    a微风掠过阅读 3,806评论 0 0
  • ------------------------------------------------------103...
    a微风掠过阅读 967评论 4 1
  • 什么是数组? 数组对象是使用单独的变量名来存储一系列的值。如果你有一组数据(例如:车名字),存在单独变量如下所示:...
    黄太公阅读 389评论 0 0
  • 突然就进入了一种新生活,孩子陪伴的岁月就这样一去不复返。曾经抱怨每天辛苦陪伴,现在应该是我送他去上学的时间,现在就...
    lyy媛媛阅读 206评论 0 3
  • 作者/子起 我策马扬鞭 一直追逐着明天 明天,也许有你。 转身离开 风声贯穿耳膜 任凭一切美好咆哮 手中的剑 不知...
    子起阅读 400评论 0 3