视频演示如下:(正常眨眼是不影响的)
利用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所写的项目和内部进行归纳的。
该项目的总体是这样的:
项目运行结果如下:
UI界面:
当到达设定的疲劳阈值后,便会出现“SLEEP!!!"疲劳提示:
同时也可以通过本地视频文件进行检测。