眨眼检测算法有很多种,但准确率都有很大提高空间。此摘录几种简单的判断方法:

一:基于阀值的

http://www.cpe.ku.ac.th/~jeab/papers/chinnawat_JCSSE2009.pdf

当眼完全闭上时、需要更高的阀值才能找到一个联通区(media blur后)

二:简单逻辑判断法

https://github.com/madhurjain/TrackNoseBlinkEye/blob/master/TrackNoseBlinkEye/TrackNoseBlinkEye.cpp

说简单点就是判断眼中心在不在当前联通区内

/*        Eye blink code goes here & checks for bounding rectsto determine whether eye is blinked or not.*/
int is_blink(CvSeq* comp, int num, CvRect window, CvRect eye)
{if (comp == 0 || num != 1)return 0;CvRect r1 = cvBoundingRect(comp, 1);/* component is within the search window */if (r1.x < window.x)return 0;if (r1.y < window.y)return 0;if (r1.x + r1.width > window.x + window.width)        return 0;if (r1.y + r1.height > window.y + window.height)return 0;/* get the centroid of eye */CvPoint pt = cvPoint(eye.x + eye.width/2 ,eye.y + eye.height/2 );/* component is located at the eye's centroid */if (pt.x <= r1.x || pt.x >= r1.x + r1.width)return 0;if (pt.y <= r1.y || pt.y >= r1.y + r1.height)return 0;return 1;
}

个人依据经验做的算法如下

                //特征:眼睁开时图形似矩形、闭眼时似三角形。/**Trianglelikely  Highly开  图形似矩形  眼高闭  似高三角形    眼低openEyeLikely = max ((up and down value/2 )* high)f(x) = max(openEyeLikely)归一化处理:高度归一化处理:Highly = float(brightCount)/rowMean.rows; 开眼时为1,闭眼时实验数据为0.3左右rectangleLikely归一化处理: rectangleLikely  =  (up + down)/2 / middle.  开眼时接尽1, 闭眼小于0.5openEyeLikely = rectangleLikely * Highly ;*/

其实、眨点有很多特点:下眼皮很少移动、是上眼皮向下眨。由此可以做很一个眨眼周期的估计,上眼皮在一个周期内会跳动一次。

实际情况下会有很多其它问题

一:很难捕捉到真正close eye的瞬间。

二:眨眼会有拖影。

这些情况都难以解决,只能说慢点眨点吧,太快了处理不过来。

eye blink detect眨眼检测算法相关推荐

  1. 人脸眨眼检测:Real-Time Eye Blink Detection using Facial Landmarks

    Real-Time Eye Blink Detection using Facial Landmarks 使用面部关键点进行实时眨眼检测 摘要: 本文提出了一种检测标准摄像机视频序列中眨眼的实时算法. ...

  2. python dlib学习(十一):眨眼检测

    前言 我们要使用opencv和dlib实现在视频流中实时检测和计数眨眼次数. 参考论文:Real-Time Eye Blink Detection using Facial Landmarks 作者在 ...

  3. 3皮卡丘眨眼代码_眨眼检测调研以及活体检测应用

    眨眼作为一种无意识的生物特征,一般健康人眨眼间隔2s至10s,眼睛闭合持续时间100ms至400ms.利用健康人的眨眼频率特点,主要应用于疲劳检测和活体检测等两个场景.对于疲劳检测场景,疲劳特点是频繁 ...

  4. 基于人眼纵横比计算的人眼闭合检测算法

    基于人眼纵横比计算的人眼闭合检测算法 原理 实验 源代码 结语 原理 PDlib是基于现代C++的通用多平台框架,在机器学习和图像处理领域提供了一系列相关功能 它在人脸检测中,将人脸视为可分的68个数 ...

  5. OpenCV4.x图像处理实例-疲劳检测(基于眼睛纵横比,Eye Aspect Radio,EAR)

    疲劳检测(基于眼睛纵横比(Eye Aspect Radio,EAR)) 1.EAR介绍 Soukupová 和 Čech's 于2016 在论文中提出一种基于脸部特点实时眨眼检测, Real-Time ...

  6. idea自动捕获_Smilefie:如何通过检测微笑来自动捕获自拍

    idea自动捕获 by Rishav Agarwal 通过里沙夫·阿加瓦尔 Smilefie:如何通过检测微笑来自动捕获自拍 (Smilefie: how you can auto-capture s ...

  7. 【自动驾驶】基于面部Fatigue检测的技术报告

    [自动驾驶]基于面部Fatigue检测的技术报告 文章目录 [自动驾驶]基于面部Fatigue检测的技术报告 关于疲劳驾驶检测研究主要有哪几个方向 基于面部的疲劳检测研究的发展现状 共搜集43篇论文 ...

  8. Nintendo NES Zapper的工作方式以及为什么在HDTV上不起作用

    Just because your old Nintendo Entertainment System is alive and well doesn't mean it can play nice ...

  9. dlib疲劳检测_基于OpenCV的实时睡意检测系统

    该系统可以检测一个人在开车时是否困倦,如果有的话,可以通过使用语音消息实时提醒他.该系统使用网络摄像头和电话摄像头进行实时数据传输. 研究目的 根据国家公路交通安全管理局的数据,每年均涉及疲劳驾驶事故 ...

最新文章

  1. 怎么使用CAD编辑器来打开图纸中的所有图层
  2. 2011软件设计大赛
  3. 财经法规税收征收管理法律制度练习题一
  4. oracle命令窗口粘贴,Oracle数据库中的Copy命令
  5. java 反射 本类_Java 反射 Class类
  6. 如何用C++做一个简单的QQ整人程序
  7. Java List retainAll 记录坑
  8. 【老生谈算法】matlabBOOST电路的设计与仿真——BOOST电路
  9. 基于struts2的个人信息管理系统(一)
  10. 矩阵键盘控制拉闭幕式流水灯
  11. “小糊涂“为何携手”无穷小”飞进大学校园
  12. 中央台“互联网时代”纪录片分集要点
  13. 《一年学完mit计算机课程》,用了这种学习方法,他一年学完了33门MIT计算机课程...
  14. 双 JK 触发器 74LS112 逻辑功能。真值表_数字电路学习笔记(十一):时序逻辑...
  15. AE PR模板基本图形预设素材包动态字幕文字标题排版动画预设效果
  16. express的sendfile与send方法
  17. 春季瘦身燃烧脂肪14种妙法
  18. Raid和mdadm命令
  19. 软件测试有哪些常用的测试方法?
  20. linux 测试cpu工具,给centos安装cpu监测工具

热门文章

  1. ETABS二次开发python实现——GetVersion(获得版本号)
  2. 放弃那些没用的资料吧!最新C/C++学习线路总结
  3. 【教程】基于resnet的中草药识别小程序_python_CNN图像识别
  4. 微众银行严强:如何构建区块链可信应用的点线面体
  5. Activiti工作流视频教程-基于Activiti5工作流实战企业协同OA办公系统
  6. 招聘一周 | 腾讯天衍实验室、美团、京东、香港大学等12家单位招聘汇总
  7. 英语四六级提分救命技巧(一)之 长篇阅读
  8. XCP实战系列介绍03-英飞凌TC3xx芯片Overlay概述及开发过程介绍
  9. Hive(一)如何搭建Hive?(Hive入门教程)
  10. 位运算中的按位与(),按位或(|),按位异或(^)