图像采集、显示部分使用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显示结果为下图,基本符合测试图像。