人脸识别之疲劳检测(一)基本实现

时间:2024-04-10 21:49:52

图像采集、显示部分使用OpenCV

使用Openface 2 detect landmarks

face detect 用的MTCNN,论文地址:https://arxiv.org/abs/1604.02878v1            

github地址:https://github.com/kpzhang93/MTCNN_face_detection_alignment

训练完的model直接加载即可,该方法需要一定的上下文,单帧图像landmarks测试效果不好。

dlib检测出共68个landmarks,和libfacedetect landmarks数量相同,多于SSD的32个特征点,可在嵌入式embedded and mobile设备上实时运行,

其中眼睛部分共6个特征点(单眼),能检测出睁眼、闭眼状态(利用纵横比加权计算),通过PERCLOS计算判段是否疲劳。可检测出眼球凝视状态和凝视方位,具体效果有待测试,个人感觉特征点偏少。

该方法使用了Openface的最新版本,github地址:

https://github.com/TadasBaltrusaitis/OpenFace

眼睛部分少于Eye tracking的18个特征点(单眼),Eye tracking 在眼球有三个特征点,tracking gaze感觉更靠谱些,具体效果未测试。

下附Openface 2检测效果,使用红外摄像头的睁闭眼效果,在70fp时有次较长时间闭眼,100fp眨眼,首尾图像晃动较为厉害Landmarks不准,

取第50-100fp图像做的calibrate(下图20-70),前30fp图像人脸不在摄像头内已舍弃,直线以上判断为睁眼,以下判断为闭眼,阈值暂定为0.8。python显示结果为下图,基本符合测试图像。

 

人脸识别之疲劳检测(一)基本实现