初始化部分

  1. 加载hog人脸检测器
  2. 加载关键点检测器
  3. 初始化Percols算法类

相机拍摄流程

  1. 打开本地摄像机cp
  2. 循环本地摄像镜头的帧
    1. 在视频帧中找出人脸部位
    2. 在脸部中检测人脸的关键点
    3. 在关键点中找出人眼的关键点
    4. 通过人眼关键点找出人眼的长宽比ear
    5. 通过ear来检测人眼的眨眼并并push到percols算法类中
    6. 通过算法获取使用者是否疲倦
    7. 画出人脸关键点
    8. 画出相关的信息
    9. 程序界面中键入英文q即可退出

整体算法流程图

Percols算法类

通过一个队列维护当前需要检测的时间内的眼睛长宽比,来判定是否疲倦

参数:

ratio:percols的参数,0.8为比较好的经验值

frameRate:视频的帧率

second: 需要检测的视频的时长

push()函数

输入参数:eyeStatus(bool) 眼睛的状态,眼睛长宽比小于2.5为False,大于2.5为True

isTired()函数

输入参数:无

输出:bool 是否疲倦