张孙俊 祝凯 李伟莎 孙曰俊
摘要:眼部状态的检测被认为是目前最准确可靠的疲劳状态检测方法,快速、准确地进行眼部定位和状态识别是疲劳检测的关键。本文基于眼部特征的人体疲劳检测方法,主要包括:人脸眼部定位、眼部特征提取以及根据PERCLOS 的 P80 标准进行疲劳检测,最终开发了一套疲劳程度检测软件系统,具有一定的理论意义和较好的应用价值。
关键词:眼部特征;疲劳检测;眼睛纵横比;PERCLOS
1 前言
疲劳检测是一门多学科融合的综合技术,包含了生命科学、计算机科学、传感器技术、人工智能技术等,一直是国内外研究的热点问题。交通事故也已被公认为当今世界危害人类生命安全的第一大公害, “过劳死”、“疲劳驾驶”等时有发生。研究人体疲劳及其监测很有必要。基于眼部特征的疲劳检测技术可在人体疲劳时发出预警,避免不必要的人身伤害。本文的主要目的是利用已有的摄像头资源,采用快速、准确的算法,开发符合人体疲劳检测要求的软件。
2 方法
快速、准确的特点地进行眼部定位和状态识别是疲劳检测的关键,本文使用判断疲劳程度的PERCLOS 标准和抓取眨眼特征的EAR算法。
2.1 眼部特征提取的原理
Soukupová等人在其2016年的论文“Real-Time Eye Blink Detection using Facial Landmarks”中提出眼睛纵横比(EAR)的概念,它基于眼睛的特征点之间的距离比例作为张开度指标。图1中的6个特征点p1至p6是人脸特征点中对应眼睛的6个特征点。每只眼睛由6个(x,y)坐标表示,基于这个描述,我们可以导出EAR的方程。
根据PERCLOS的P80标准内容有:其定义为单位时间内(一般取1分钟或者30秒)眼睛闭合80%的时间,则认为发生了疲劳。只需测出t1~t4的值,就能计算出PERCLOS 的值f。
t1是眼睛由睁开到闭合到眼睛最大开度80%的时刻;t2是眼睛由睁开到闭合到眼睛最大开度20%的时刻;t3是眼睛从闭合到睁开到眼睛最大开度20%的时刻;t4是眼睛从闭合到睁开到眼睛最大开度80%的时刻。
2.2 算法實现
(1)数据采集。利用opencv库调用摄像头,实时抓拍驾驶室的人脸活动范围画面。
(2)预处理。利用dlib库进行人脸识别,把图片的范围锁定到人脸的区域。
(3)抓取眼部特征。基于人脸定位的68个点,提取眼部的12个定位点。
(4)眼部处理。计算EAR,判断是否眨眼,如果眨眼,则进入下一个疲劳识别环节。
(5)疲劳识别。根据PERCLOS算法判断是否疲劳。
(6)判断疲劳。通过疲劳的判断来选择:若被检测不疲劳,则继续检测;反之,则发出警告。
(7)疲劳处理。发现人体疲劳时,发出警告声提醒,直到采取关闭或接收提示之后,不再发声。
(8)检测结束。关闭检测系统。若还想继续进行疲劳检测,可重启程序。
3 结果分析
基于算法开发了相应软件,其运行效果如图2。界面左侧展示了张开度,右侧是实时监测的画面,底部是一些功能按钮。可以通过摄像头检测人脸和眼部特征进行疲劳检测,如果处于疲劳状态则标签显示红色。
图3是眼睛开度动态图分析,横坐标是“时间序列”,纵坐标是眼睛开度EAR的值。检测过程可出现如下情况:
(1)正常情况:蓝线部分为正常状态下的EAR,浮动变化不大,可作为判断眨眼的基准值。
(2)眨眼情况:明显低于正常的水平的60%可视为眨眼,眨眼的频率也是作为疲劳的一个依据。
(3)检测不到的情况:由于环境的光线会产生检测不到人眼的情况,此时EAR为0。
(4)异常情况:人为睁大眼睛或眯眼都视为异常,根据闭眼或眯眼时间的长短来判断是否为疲劳。
4 结论
本文实现了基于人眼特征的疲劳识别,结合目前流行的算法形成了一个可运行的软件。算法还有很大的进步空间,可继续完善并结合嵌入式硬件应用于实际场景中。
参考文献
[1]唐广发, 张会林. 人眼疲劳预测技术的研究[J]. 计算机工程与应用, 2016, 52(9):213-218.
[2]李响, 谭南林, 李国正,等. 基于 Zernike 矩的人眼定位与状态识别[J]. 电子测量与仪器学报, 2015(3):390-398.
[3]李洪研,赵学敏. 基于人眼 PERCLOS 特征的列车驾驶员疲劳检测系统[J].中国铁路,2012( 12) : 32-35.
作者信息
1.张孙俊,1997年08月生,青岛理工大学在读本科生。
2.祝 凯,1988年4月生,青岛理工大学信息与控制工程学院讲师。
3.李伟莎,1999年9月生,青岛理工大学在读本科生。
4.孙曰俊,1998年6月生。青岛理工大学在读本科生。