视频演示如下:(正常眨眼是不影响的)

利用Python基于OpenCV、dlib特征完成疲劳视频

2021.2.7更新

        刚刚了解到Python有些API可以实现播放音频,我尝试了一下,用pygame模块来实习效果还是可以的。上个月添加了winsound来进行警报功能,现在也可以自定义音乐进行声音提醒了。
        pygame播放音乐demo

import pygame
import time

pygame.mixer.init()

track = pygame.mixer.music.load('./warning.mp3')

pygame.mixer.music.play()

time.sleep(5)	# 播放的时间

pygame.mixer.music.stop()

         注意的是音乐播放摄像头检测会卡帧,所以设置的声音不宜太长。



2021.1.15更新

感谢评论区"greet_Xbin"老哥的指导,对眨眼、打哈欠以及点头次数的设定确实不算是疲劳的评判标准,于是我进行了以下修改:

(1)眼部通过EAR的阈值进行判断是否闭眼,并对闭眼进行计数,如果持续超过设定的闭眼次数此时则进行提醒。
(2)根据之前嘴部、头部设置的两个阈值分别为长宽比和闪烁阈值同样进行标准判定,设置计数器判定,持续超过阈值次数则进行警报。
(3)加入winsound模块,可以实时反馈疲劳状态并进行声音警报提醒,不过我没有把打哈欠设置声音警报。



本博客是基于cungudafa所写的项目和内部进行归纳的。


该项目的总体是这样的:

视觉处理——疲劳检测_C
视觉处理——疲劳检测_C_02

项目运行结果如下:


UI界面:

视觉处理——疲劳检测_C_03

视觉处理——疲劳检测_C_04

视觉处理——疲劳检测_C_05
当到达设定的疲劳阈值后,便会出现“SLEEP!!!"疲劳提示:

视觉处理——疲劳检测_C_06


同时也可以通过本地视频文件进行检测。