一、疲劳驾驶特征提取
眼睛闭合的频率和持续时间在某种程度上可以反映疲劳的状态。卡内基梅隆研究所经过反复试验和论证,提出了度量疲劳的物理PERCLOS。PERCLOS定义为一定时间内眼睛的闭合程度,它已经成为度量疲劳状态的一种科学有效的方法。当一定时间间隔内眼睛闭合所占的时间比例超过15%时即认为是疲劳状态。PERCLOS方法通过眼睛闭合所占的时间比例进行疲劳驾驶的判定。但是,眼睛的大小因人而异,眼睛的面积因受所在场景和头部运动的影响也是动态变化的,眼睛的睁开程度是相对于自身的最大睁开状态而言的。当然,时间可以转换为视频帧数,在判断眼睛的状态特征时我们使用的是类PERCLOS的方法。
目前,PERCLO方法有三种判断疲劳的不同准则,分别E准则、P70准则、P80准则。其具体含义如下:
EM准则:瞳孔被眼睑覆盖超50%的面积,则认为眼睛是闭合的;
P70准则:瞳孔被眼睑覆盖超70%的面积,则认为眼睛是闭合的;
P80准则:瞳孔被眼睑覆盖超过80%的面积,则认为眼睛是闭合的。
本文考虑到,当人注意力特别集中或处在沉思状态时可能也会有眼睑覆盖瞳孔超过50%甚至70%的可能,所以系统采用的是P80准则。
统计表明,人在一分钟之内要眨十次左右的眼睛,每次需要0.30.4秒左右,两次眨眼之间的间隔约为2.84.0秒。然而,由于管制员工作性质的不同,需要其在工作中注意力高度集中,所以眨眼次数略少,约5~10次。眼睛闭合的频率以及闭合时间的长短与疲劳有密切联系,如果连续监测到管制员的PERCLOS>30%且平均闭眼时长>0.25s,就判定管制员处于疲劳状态,并发出报警。图1为PERCLOS的原理曲线图:
如图1所示,t0—t5为一个闭眼周期,t0-t1为完全睁眼到睁眼80%的时间t1-t2为睁眼80%到睁眼20%的时间,t3-t4为睁眼20%到睁眼80%所需时间,t4~t5为睁眼80%到完全睁眼所需时间。那么,这一周期内的
闭眼时长
类似的,我们可以推导在实验时长为1~2min内的PERCLOS值及平均闭眼时长,设在实验时长 T内有n个闭眼周期,且第k个闭眼周期内眼睑覆盖瞳孔的比例超过80%的,k时间为Tk ,(k<n )那么我们可以得出:
平均闭眼时长
当平均闭眼时长t超过了选定的阈值,则判定为疲劳驾驶.
二、疲劳驾驶检测算法对眼睛状态的检测流程如下:
(1)实时抓帧获得 YUV 格式监控图像;
(2)用人脸模型在图像中匹配人脸区域;
(3)通过模型中眼睛的相对位置,确定监控图像中眼睛的位置;
(4)对眼睛区域二值化处理,并利用显示器 Gamma 和直方图均衡化增强图像对比度;
(5)建立睁眼和闭眼状态时的眼部灰度一维直方图标准H(open)、H(close),H=[h{x1,f(x1)},……,h{xn,f(xn)}],其中,h为直方图中的矩阵,x1~xn为n个级别灰度,f(xi)为该灰度级别所出现的频率;
(6)算出当前图像的一维直方图分别与睁眼状态标准直方图的差值和S1;算出当前图像的一维直方图与闭眼状态标准直方图的差值和S2。其中S=∑[fnow(xi)-fstandard(xi)];
(7)比较S1和S2,S1<S2即为睁眼,S2<S1即为闭眼。
(8)计算1.1中所述的PERCLOS 值和平均闭眼时长t;
(9)通过获得的PERCLOS 值和平均闭眼时长判定疲劳程度。图2为疲劳驾驶识别流程: