APP下载

基于眼口状态的疲劳检测系统*

2018-09-27刘小双方志军高永彬张祥祥

传感器与微系统 2018年10期
关键词:人眼嘴巴人脸

刘小双, 方志军, 刘 翔, 高永彬, 张祥祥

(上海工程技术大学 电子电气工程学院,上海 201600)

0 引 言

我国每年有超过20 %的交通事故是由疲劳驾驶造成的,研究一个实时准确的疲劳检测系统,具有非常重要的意义。基于计算机视觉的疲劳检测方法[7~9]是一种非侵入式的检测方法,与侵入式的检测方法[6]相比,其对驾驶员的影响更小,更安全有效。本文的疲劳检测是在常见光下进行,相比于传统的红外图像的状态检测[2],属于一种更安全的被动方式。为了检测眼口的状态,很多方法都依靠传统的分类器和特征,例如AdaBoost分类器[3],以及支持向量机(support vector machine,SVM)分类器[4],在这些方法中是否选取了适当的特征是影响实验结果的关键因素,本文采用深度卷积神经网络可以自适应提取特征,有更好的表征能力。

1 人脸检测和特征点定位

本文使用的检测和定位方法是Zhang K P等人[1]提出的多任务级联神经网络(multi-task convolutional neural networks,MTCNN)的检测定位算法。该方法主要优点在于通过3个级联网络同时实现人脸检测和特征点定位,速度快,且定位精度能够满足疲劳检测系统的要求。室外驾驶光线变化很大,通过在面光、背光、侧光3种不同光照以及不同姿势的检测与定位实验,结果表明该方法能够克服一定程度的光照影响。

2 提取眼睛和嘴巴区域图像

2.1 人脸归一化

为了准确的提取人眼与嘴巴区域图像,需要将检测出的不同姿态、不同尺度大小的人脸图像归一化到同一位置尺度,需要进行二维仿射变换,对定位的图像进行平移、缩放、旋转等一系列变换。

(1)

矩阵的简写形式为U=Kh,U为平均人脸的5点坐标值矩阵,K为通过人脸定位后的5点特征点坐标矩阵,h为仿射变换矩阵,可利用最小二乘法求出线性方程的解为h=(KTK)-1KTU。

图1为将检测定位出的不同姿态,不同尺度大小的人脸图像归一化到同一位置、同一尺寸大小的图像,并截取固定尺寸的人眼和嘴巴区域图像。

图1 人脸归一化

2.2 眼口区域提取

对归一化后的人脸图像,以人眼特征点为中心提取32×32的人眼区域,并以两嘴角为边界截取60×50的嘴巴区域。图2为提取结果示意。

图2 眼口区域提取示意

3 眼口状态识别

本文主要通过卷积神经网络分别对人眼和嘴巴的睁闭状态进行识别。考虑到识别的速度与准确率,本文使用了快速简单的3层网络结构,使用了3个卷积层,每个卷积层连接1个池化层, Relu层用于增加非线性约束,为了防止过拟合,网络中增加了dropout层。在眼口的状态识别过程中,使用同一个网络分别训练出2个模型识别眼睛与嘴巴的状态。图3为网络结构示意。

4 驾驶员疲劳状态检测

本文通过计算眼睑闭合率(percentage of eyelid closure,PERCLOS)和嘴巴的动作频率2个参数判定驾驶员是否处于疲劳状态。

4.1 基于眼部状态的疲劳检测

由于在连续的图像序列中,没有时间刻度,但每秒读取的图像帧数固定,因此可由帧数代替时间刻度计算PERCLOS值,其定义为

(2)

式中nc为特定时间内闭眼总帧数,Nt为特定时间内的总帧数。通过计算特定时间内闭眼帧数与总帧数的比值计算PERCLOS的值,当驾驶员的PERCLOS值比正常情况下高时,可通过眼睛的状态判断驾驶员处于疲劳状态。

4.2 基于嘴部状态的疲劳检测

与驾驶员不断说话相比,打哈欠时嘴巴张开的持续时间较长,据此判断驾驶员是在打呵欠还是在说话。当检测到驾驶员在打哈欠时,则认为驾驶员可能处于疲劳状态,再根据单位时间内打哈欠的频率判断疲劳程度。医学数据显示,正常情况下,人在打哈欠时,嘴部持续张开时间为4~5 s。由于在连续的图像序列中,没有时间刻度,但是每秒读取的图像帧数固定,因此,可以根据连续时间内嘴巴张开的帧数判断是否是打哈欠,进而得到固定时间(T)内打哈欠的次数(n)。本文使用的嘴巴动作频率公式为fY=n/T。

4.3 双参数疲劳状态检测

通过检测眼口状态,分别采用PERCLOS和嘴部动作频率2个参数共同判断驾驶员的疲劳状态,即

P=w1fP+w2fY,w1+w2=1

(3)

式中P为疲劳度,w1,w2为权重。根据实验选取合适的权重值和疲劳度阈值,当P大于阈值时,驾驶员处于疲劳状态。

5 实验与结果分析

5.1 实验平台

测试采用Visual Studio 2013软件,Win7系统:Intel(R)Core(TM)i7—6700HQ,CPUs(3.40 GHz),内存32 GB。

5.2 训练使用的数据

为了能够克服一定的光照影响,增强网络的鲁棒性训练数据所用的人眼与嘴巴区域图像必须采集包含不同强度光照的图像。部分训练数据的眼口图像如图4所示。

图4 不同光照下的图像

5.3 实验结果与分析

训练眼口状态识别模型后,为了测试该网络模型的性能,采集了3段视频数据(视频总帧数分别为652,1 103,1 037),获行相应的睁闭眼状态检测和张闭嘴状态识别准确率为:95.86 %,92.94 %;95.1 %,93.11 %;96.91 %,94.12 %。

采集4段大小为320×240的视频帧进行实时性测试,测得获取人眼区域(含检测定位)、人眼状态识别、嘴巴状态识别、总耗时分别为:1#视频:23.41,6.57,6.02,40.94 ms;2#视频:24.50,7.10,6.34,42.97 ms;3#视频:23.12,7.09,6.76,41.52 ms;4#视频:23.42,6.51,7.08,41.17 ms。可以看出,该方法的实时性较好,满足实际要求。

5.4 疲劳检测系统测试

驾驶员疲劳状态时的PERCLOS值会比正常情况下高,同时驾驶员也可能伴随打哈欠,通过多组实验分析,设定各参数阈值,在模拟驾驶环境中对4组实验对象进行疲劳状态检测,分别采用单参数和双参数作为判断依据,权重w1=4/5,w2=1/5。从表1中第3组和第4组实验中可以看出双参数的方法更可靠,能够准确实时地对驾驶员的疲劳状态进行检测。

表1 疲劳状态检测实验结果

图5为对4位驾驶员在连续时间段内通过双参数进行实时疲劳检测的结果,从图中可以看出,3位驾驶者在疲劳状态下的P值明显高于正常驾驶时的值。

图5 PERCLOS结果

图6为疲劳检测系统截取的部分帧数,系统在进行疲劳检测过程中会实时进行人脸检测与特征点定位,提取眼口区域图像进行识别,并计算当前帧的疲劳度P值与嘴部运动频率,并实时检测驾驶员的疲劳状态。

图6 疲劳检测系统示意

6 结 论

提出一种基于眼口状态的疲劳检测系统,实验结果表明:该系统能够满足实际应用的要求,能够实时准确地对驾驶员的疲劳状况进行预测。

猜你喜欢

人眼嘴巴人脸
有特点的人脸
一起学画人脸
嘴巴嘟嘟
嘴巴不见了
人眼X光
人眼为什么能看到虚像
好好的嘴巴
三国漫——人脸解锁
闪瞎人眼的,还有唇
看人,星光璀璨缭人眼