眨眼作为一种无意识的生物特征,一般健康人眨眼间隔2s至10s,眼睛闭合持续时间100ms至400ms。利用健康人的眨眼频率特点,主要应用于疲劳检测和活体检测等两个场景。对于疲劳检测场景,疲劳特点是频繁眨眼(眨眼间隔变短)和长时间闭眼(眼睑闭合时间变长),算法实现主要是利用疲劳特点做文章。对于活体检测场景,对于纸质打印以及手机照片等静态人脸图像是不会有眨眼动作的,关注点是有没有眨眼动作,本人关注的是门禁机场景,对实时性要求更高。
对眨眼检测论文大致按照时间脉络做了下调研。
Eye blink based fatigue detection for prevention of computer vision syndrome()
思路:利用光流法获取眼睛运动,提取眼睛主要的垂直运动分析眨眼情况,文中总结特意提到了其方法满足实时性,眨眼分析关注的是眨眼频率(眨眼间隔、眨眼持续时间),因为是用来分析疲劳。有个前提条件是人脸相对较大
Eyeblink-based Anti-Spoofing in Face Recognition from a Generic Webcamera()Blinking-Based Live Face Detection Using Conditional Random Fields()
思路:这两篇文章来自同一个团队,采用无方向的随机场框架推断眼睛的闭合度从而判断眼睛闭合,细节比较繁琐兴趣的可以自己看论文。
Robust eyelid tracking for fatigue detection()
思路:用一对参数化抛物曲线对眼睛形状建模,在每帧中通过眼睛最大化似然方式拟合眼睛形状模型,从而获得眼睛形状。两种典型的疲劳特点是频繁眨眼和长时间闭眼。
Automatic Eye State Recognition and Closed-eye Photo Correction ()
思路:通过人脸检测和特征点提取的方法获得归一化的眼睛图像,然后通过adaboost训练的open eye分类器判断眼睛是否睁开。如果判断为闭合,对闭合人眼采用PCA generative model的方式替换成打开的人眼
Eye blink detection using variance of motion vectors()
思路:分析眼睛区域的垂直运动向量的方差判断眼睛的闭合。具体流程是通过Viola-Jones方法(haar特征、adaboost分类器、cascade方法)获取人脸和眼睛区域,然后将人眼分为3*3的网格,对网格点利用KLT方式进行跟踪,然后得到每个跟踪点的运动向量进行方差计算。
Real-Time Eye Blink Detection using Facial Landmarks()
思路:该方法以face landmarks为基础(ps:随着facial landmarks对光照变化和距离的鲁棒性变好,该方法也越来越通用)定义了EAR(Eye Aspect Ratio),对当前帧以及前后各6帧检测到的EAR组成一个13维特征向量,送到一个SVM中来进行分类,判断是否有眨眼动作。文中实验证明比简单的使用EAR 阈值鲁棒性更好,因为单纯的阈值可能会因为面部表情,face landmarks的波动产生眨眼的误检。
In Ictu Oculi: Exposing AI Generated Fake Face Videos by Detecting Eye Blinking()
/danmohaha/WIFS_In_Ictu_Oculi
思路:提到deepfack训练数据缺乏闭眼数据,所以仿真视频人不是眨眼这一特点,通过检测眨眼方式来找出仿真视频破绽。具体实现流程是通过face landmark方式crop眼睛区域,然后通过CNN+LSTM的方式利用时域和空域特征,判断视频序列是否有眨眼。
PS:对于上述论文打包放在百度盘。
链接:/s/14UQ6mW7ShfjYzLhtKPmXjQ
提取码:af4z
调研工作粗浅做完了。对于活体检测门禁机场景,计划将眨眼检测放置在系统中如下位置,优点是降低了spoof人脸数据的FAR,缺点是降低live人脸数据的通过率。眨眼检测的实时性、对光照变化的鲁棒性和距离的鲁棒性都比较重要。如果眨眼漏检的话,真人就通不过了。
Real-Time Eye Blink Detection using Facial Landmarks这篇论文的方法,对于当前的系统有天然的优势,实时性能满足,EAR对距离也不敏感,另外EAR阈值设定在0.15,眨眼基本上不会漏检(后续有需要可以增加adaboost训练的open eye分类器提升准确性),目前唯一隐患是门禁机通过时间的用户体验需要实测。
论文解读
/hongbin_xu/article/details/79033116
/articles/336184
对应github
/m3rc3n4ry/Eye-blink-detection
/mans-men/eye-blink-detection-demo
/dilawar/eye-blink-detector(依赖框出人眼位置)
Dlib提取人脸特征点(68点,opencv画图)
/zmdsjtu/article/details/52422847
Dlib 人脸Landmark检测速度优化
/hnsywangxin/article/details/80213501
目前已经实现了上述方法,效果如下
如果觉得《3皮卡丘眨眼代码_眨眼检测调研以及活体检测应用》对你有帮助,请点赞、收藏,并留下你的观点哦!