APP下载

基于面部行为分析的驾驶员疲劳检测方法

2018-01-18,,,,,

计算机工程 2018年1期
关键词:嘴部人脸眼部

, ,, , ,

(1.天津工业大学 a.电子与信息工程学院; b.计算机科学与软件学院,天津 300387;2.天津市光电检测技术与系统重点实验室,天津 300387)

0 概述

近年来道路交通事故频发,严重威胁到人们的生命财产安全和社会的发展。美国国家统计和分析中心的报告[1]表明,疲劳驾驶是引发交通事故的重要原因之一,在交通事故发生前,如果驾驶员的反应可以提前0.5 s,则能够避免60%交通事故。因此,驾驶员疲劳检测技术的研究对于预防交通事故有着重要的意义。

作为一种非常重要的生物特征,人脸包含了丰富的信息,比如性别、身份、表情等。基于视觉的驾驶员面部检测是疲劳检测的首要步骤。针对人脸检测,国内外学者提出了各种各样的检测方法。文献[2-3]首先对原始图像进行色彩转换等预处理,然后对预处理后的图像进行肤色检测排除背景区域,最后使用Adaboost或中线定位法实现人脸检测。文献[4]设计了自适应更新参数的方法建立肤色检测模型,结合人脸的相似度信息和灰度信息提高了肤色检测的准确性,然后利用Adaboost对检测得到的区域进行分类得到最终的人脸区域。文献[5]提出一种结合Adaboost与 Clifford 代数矢量积性质的人脸检测方法,首先使用Adaboost检测出人脸感兴趣区域,然后使用基于知识的方法对感兴趣区域进行筛选,最后使用Clifford 代数降低误检率。但是在实际应用中,上述方法容易受驾驶员姿态变化、遮挡等因素的影响,在复杂环境下检测效果不佳,鲁棒性差。

在基于视觉的驾驶员疲劳检测系统应用中,眨眼频率以及打哈欠状态是疲劳检测的重要指标。因此,眼睛和嘴部的状态检测是疲劳检测中的关键问题,但是由于光照变化、佩戴眼镜等情况,使得眼睛状态识别的难度大大增加。

眼睛状态的检测方法有很多种,如文献[6]采用模板匹配方法判断眼睛状态,由于虹膜在眼睑中位置不固定,易产生误检。采用多模板匹配,检测效率低实时性差。文献[7]采用眼睛虹膜区域灰度投影曲线判断眼睛状态,在虹膜信息完善时,有较好的检测效果,但是对光照要求较高,适用的场景少。文献[8]在人脸检测的基础上,根据眼白在YCbCr空间良好的聚类性,建立高斯眼白分割模型,利用眼白面积作为眼睛开闭指标。该算法复杂度低,但对光照变化敏感。文献[9]在红外条件下,根据眼角角度及上下眼睑间的高度在平面坐标上的分布特征对眼睛状态进行分类。文献[10]使用基于LBP与SVM结合的眼睛开闭检测方法,该方法有较高的检测率,但是对驾驶员佩戴墨镜及姿态变化有一定的局限性,鲁棒性差。传统的分类器需要针对每种情况人为地选取合适的特征,特征选取的合适与否,成为制约分类器效果的关键因素。而CNN能够自适应提取特征,避免了人工特征选取过程,且对特征有更好的表达能力,打破了图像识别领域[11]中“先提取特征,后模式识别”的框架。

本文提出一种基于面部行为分析的驾驶员疲劳检测方法。使用红外采集设备对面部图像进行采集,通过结合AdaBoost与KCF算法进行人脸检测跟踪;采用级联回归方法定位关键点,提取眼睛和嘴部区域;运用CNN进行眼部和嘴部状态识别,计算疲劳参数进行疲劳检测。

1 人脸检测与跟踪

由于基于AdaBoost的人脸检测算法在驾驶员姿态变化、光照变化及遮挡等情况下的检测效果不佳,鲁棒性较差,因此需要结合跟踪算法增加系统对人脸姿态变化、遮挡等情况的鲁棒性。KCF跟踪算法[12]在循环结构检测跟踪算法[13]的基础上使用HOG特征替代之前方法中的灰度值特征,结合循环矩阵及其在傅里叶变换时的特性实现快速实时的跟踪。该算法对于光照变化、遮挡、姿态变化、非刚性形变、背景杂乱等跟踪效果良好。因此,本文采用基于KCF的跟踪算法进行驾驶员面部跟踪,结合人脸检测算法提高检测的效率,减少误检情况。

基于面部行为分析的驾驶员疲劳检测方法框图如图1所示。

图1 基于面部行为分析的驾驶员疲劳检测方法框图

2 眼部和嘴部区域提取

面部关键区域检测是基于视觉特征疲劳检测方法中的重要部分,为基于人脸图像分析的方法提供了丰富的信息,在疲劳检测等领域有着重要的应用。

2.1 基于级联回归的人脸特征点检测

基于级联回归的特征点检测通过使用一系列弱回归器拟合复杂的非线性的关系,学习回归函数直接映射到检测结果。级联回归的方法定位速度快、检测精度高,本文选用基于级联回归的人脸特征点检测[14]。级联回归模型将T个回归器通过级联的方法组合,通过不断拟合进行残差配准,其过程如下:

(1)

(2)

2.2 眼部和嘴部区域的提取方法

本文采用基于级联回归的方法对面部关键点进行检测,根据特征点的位置进行眼部和嘴部区域的提取,如图2所示。

图2 基于人脸特征点的眼睛和嘴部区域提取

采用此方法可以同时提取眼睛和嘴部的区域,提取规则如下:

(3)

其中,X_e、Y_e、X_m、Y_m分别为特征点检测中眼部和嘴部的宽、高,W_e、H_e、W_m及H_m分别为提取眼部和嘴部区域的宽、高。

3 基于CNN的眼部和嘴部状态识别

CNN直接以二维图像作为输入,自动学习图像特征及数据内部的隐含关系,避免了对图像进行复杂的预处理,具有位移、缩放和扭曲不变性的优点。CNN的网络结构包括卷积层、降采样层和全连接层。图3为本文使用的SR-Net网络。

图3 SR-Net网络结构

3.1 卷积层

卷积层是CNN的核心结构。CNN采用局部连接和权值共享的方式,提取图像不同位置中的局部特征,对于某个神经元来说,其提取的局部特征是不同特征图中的相同位置[15]。其中每个卷积层含有多个特征平面,通过卷积核对上一层图像进行卷积,加上偏置得到当前层的特征图。不同的卷积核通过“滑动窗口”的方式提取输入图像不同位置的特征。通过网络的训练,卷积核可提取出某些有意义的特征。

3.2 降采样层

降采样层一般在卷积层之后,对卷积层生成的特征图进行降维,在减小计算复杂度的同时可以保持特征不变。降采样分为平均降采样、最大值采样和随机采样[16]。CNN中最常用的是最大值采样,其中心思想是先将图像分割成相互没有交集的矩形区域,然后用每个区域的最大特征表示降采样之后的卷积特征。

3.3 全连接层

全连接层上的每一个神经元均与上一层特征图中的所有神经元互相连接。与卷积层局部连接方式相比,全连接层的全连接方式会产生更多的网络参数。通过之前的卷积层和降采样层已经降低了特征维数,大大减小了全连接层的计算量。该层神经元的输出如下:

hW,b(x)=f(WTx+b)

(4)

其中,x为神经元的输入,hW,b(x)为神经元的输出,W为连接权重,b为偏置,f(·)为激活函数。

4 疲劳检测

当驾驶员疲劳时,会出现眨眼频率降低、眨眼次数减少、打哈欠等现象。仅依靠眼睛的状态判断疲劳存在一定的局限性,因此本文在基于CNN的状态识别结果的基础上,通过获取驾驶员的眼睛、嘴部状态计算PERCLOS、BlinkFreq、打哈欠等参数作为驾驶员疲劳判断的标准,基于CNN的眼睛状态的识别结果如图4所示,其中,0.0代表闭眼,1.0代表睁眼。

图4 眼睛睁开程度识别结果

1)PERCLOS参数

计算单位时间内眼睛闭合状态的总帧数n与单位时间内总帧数N的比值,即PERCLOS值[17],计算公式如下:

(5)

2)BlinkFreq参数

在正常情况下眨眼频率为每分钟15次~30次,每次眨眼时间为 0.25 s~0.3 s。若驾驶员在一段时间内的眨眼频率过低,那么驾驶员的状态有可能处于疲劳。

根据图4中检测结果进行统计,当眼睛状态值由1变到0时,即认为眼睛眨动次数增加一次,以此类推,统计当前检测时间内所有的眨眼次数,即可得到眨眼频率,计算公式如下:

(6)

其中,n为当前检测时间内所有的眨眼次数,tframe为处理每帧的时间,N为当前统计时间内的总帧数。

3)打哈欠参数

人们疲劳时往往伴随着频繁地打哈欠。打哈欠是一个较长的过程且嘴巴张开幅度较大。当嘴巴张开持续一段时间后,可判定为打哈欠状态。打哈欠参数的定义如下:

fMopen=n/N

(7)

其中,n为统计时间内嘴巴张开状态的总帧数,N为统计时间内的总帧数。当驾驶员打哈欠时,fMopen达到最大值。

5 实验结果与分析

5.1 红外视频采集系统

红外光可以克服佩戴墨镜对驾驶员眼睛的遮挡问题且能满足夜间使用的需求。本文的图像采集系统使用MV-VD130SM型号的维视相机,选用主动红外光源(850 nm)进行补光照明。同时采用850 nm的窄带滤光片,在减少其他波长光线干扰的同时,可以穿透墨镜,获取红外光谱下的眼睛图像。

5.2 实验平台和数据集

实验环境为VS2012+Opencv2.4.9,Windows 7操作系统Intel(R)Core(TM)i7-6700HQ,CPUs(2.60 GHz),内存8 GB。

通过红外采集系统采集20位测试者的红外视频序列作为数据集,其中包括10名男性测试者和10名女性测试者。采集每位测试者在不佩戴墨镜、佩戴近视镜、佩戴夜视镜及佩戴墨镜4种情况下的视频。以27 frame/s的帧率采集每种情况下的视频,共采集了160段长度约为30 s的视频,且视频图像大小为720像素×480像素。

5.3 实验结果

5.3.1 眼部和嘴部区域检测结果

为了检验本文眼部和嘴部区域提取算法的有效性,对IRF数据集下的视频序列进行定位实验,计算眼部和嘴部的定位准确率。本文取每个测试人员每种情况下的20张图片进行实验。部分测试人员的检测结果如图5所示,统计结果如表1所示。由实验结果可知,本文提出的眼部和嘴部区域定位算法有较高的准确率。

图5 部分检测结果

定位区域样本个数定位准确数定位准确率/%眼部1600155597.2嘴部1600154596.6

5.3.2 眼部和嘴部状态识别

从嘴部和眼部提取的区域中选取20 000张图片作为实验训练样本,其中睁眼图片7 000张、闭眼图片5 000张、张嘴图片4 000张以及闭嘴图片4 000张。训练时将正负样本灰度化,并归一化至36×28大小。部分样本如图6所示。

图6 眼睛嘴巴部分训练样本

为验证本文提出的眼部和嘴部状态识别方法的准确性,使用SR-Net对是否佩戴眼镜情况下的不同数据集进行测试验证。表2为眼睛状态测试结果,表3为嘴巴状态的测试结果。

表2 眼睛状态测试结果

表3 嘴巴状态测试结果

由实验结果可知,该网络对不同环境下的眼睛和嘴巴的状态有较高的识别率,但佩戴眼镜的状态识别率要低于其他情况,这主要是由于镜片反光对一部分图片的识别造成干扰,将一部分闭眼图片识别为睁眼状态。

将表2中眼睛状态测试结果的平均识别率与基于高斯眼白模型(Sclera Gaussian model)的状态识别方法[8]、基于多信息融合的眼睛状态识别方法[9]、基于Gabor和SVM的眼睛状态识别方法[18]、基于颜色相关的AdaBoost眼睛状态识别方法[19]进行对比,结果如表4所示。

表4 不同眼睛状态识别算法的识别结果 %

5.3.3 疲劳检测

为验证本文算法的准确率及速度,对红外视频采集系统获取的9个视频进行测试,其中包含6 844帧大小为320像素×240像素的图像。本文算法处理一帧图片各模块的平均耗时如表5所示。

表5 疲劳检测算法各模块的平均耗时 ms

从表5的检测结果可以看出,人脸检测与跟踪是算法的主要耗时模块,眼睛和嘴部区域提取、状态识别及疲劳判断等模块均有较高的检测速率,能够满足疲劳检测系统实时性的要求。

当驾驶员疲劳时,眨眼速度会变慢,眨眼频率会降低,并伴随着打哈欠。文献[20]给出了2个阈值(0.075和0.15),把驾驶员疲劳的状态分成3个部分:清醒,疑似疲劳,昏昏欲睡。但是也有其他的研究表明,当PERCLOS值小于0.4时驾驶员处于清醒的状态,大于0.4时驾驶员则处于疲劳的状态。由于不同的疲劳判定方法中眼睛的闭合程度不完全相同,因此会出现不同的疲劳判断阈值。

本文通过前面部分完成了人脸检测与跟踪、眼部和嘴部区域提取及眼睛和嘴巴状态的识别工作,通过统计多名测试人员处于正常状态及疲劳状态下的视频序列,计算相应的PERCLOS值,统计结果如图7所示,其中data1视频中驾驶员处于清醒状态,其他视频中驾驶员均伴有不同程度的疲劳。

图7 PERCLOS测试结果

通过统计实验结果发现,当驾驶员处于正常状态时大部分PERCLOS值都小于疲劳时的数值,由于部分的误检或者光照的影响PERCLOS的值会略微增加,但是PERCLOS值都在0.2以内。当PERCLOS大于0.2时已经出现疲劳现象,为了减少误判的情况,将PERCLOS的阈值设置为tp1=0.25,当PERCLOS值小于0.25,结合眨眼频率和打哈欠的参数进行疲劳判定。

本文将打哈欠参数作为判定疲劳的辅助条件,通过统计嘴巴张开程度,确定打哈欠参数合适的阈值,图8为部分测试结果。其中,data1~data5都存在打哈欠的行为,data6为普通情况下的嘴巴状态。

图8 嘴部张开程度检测结果

由图8可知,data6所示在正常情况驾驶员嘴巴基本处于闭合状态,fMopen的值都比较低,但是由于驾驶员有时说话时嘴巴有大幅度张开,也会影响打哈欠数值的计算。当驾驶员出现打哈欠现象时打哈欠参数基本都明显大于正常状态时的数值,本文选取tm=0.2作为fMopen打哈欠现象的阈值。

为了验证本文方法的准确性,通过采集测试人员模拟清醒状态及疲劳状态的视频,包括佩戴眼镜及不佩戴眼镜的情况。首先通过人工统计测试视频中疲劳发生的次数,然后通过本文的疲劳检测系统对测试视频进行检测,最后对检测结果进行统计,实验结果如表6所示。

表6 疲劳实验检测结果

从表6可以看出,本文的疲劳检测算法在有无佩戴眼镜的情况下均有较高的检测准确率。但是因为佩戴眼镜时镜片反光等情况会影响人脸特征点检测,使得眼部和嘴部区域提取及识别产生误检,相对于无眼镜的情况下准确率稍低。

6 结束语

本文使用基于级联回归的人脸关键点检测方法进行眼睛和嘴巴区域图像的提取,并采用基于CNN的方法进行眼部和嘴部状态的识别,在此基础上计算PERCLOS、眨眼频率和打哈欠等参数进行疲劳判断。实验结果表明,本文方法具有较快的检测速率和准确性,对眼睛及嘴部状态识别具有较高的准确性和鲁棒性,尤其在佩戴眼镜的情况下识别率明显提升,能够准确检测疲劳。本文算法只对眼睛和嘴巴的张合2种状态进行分类识别,在实际检测过程中也存在中间状态,这对疲劳的判断也有十分重要的意义,因此对中间状态的识别是下一步要研究的工作。

[1] NOBE S A,WAG F Y.An Overview of Recent Develop-ments in Automated Lateral and Longitudinal Vehicle Controls[C]//Proceedings of IEEE International Conference on Systems,Man,and Cybernetics.Washington D.C.,USA:IEEE Press,2001:3447-3452.

[2] 李明瑞,傅 明,曹 敦.基于肤色检测的AdaBoost人脸检测算法改进[J].计算机工程,2012,38(19):147-150.

[3] 刘在英,朱琳玲,杨 平.基于肤色模型和中线定位的人脸检测算法[J].计算机工程,2013,39(1):200-203.

[4] 刘春生,常发亮,陈振学,等.改进的高斯肤色模型及其在人脸检测中的应用[J].仪器仪表学报,2012,33(5):1117-1121.

[5] 杨晋吉,李荣兵.基于Adaboost与Clifford代数的人脸检测[J].计算机工程,2013,39(9):214-217.

[6] LEE B G,JUNG S J,CHUNG W Y.Real-time Physiological and Vision Monitoring of Vehicle Driver for Non-intrusive Drowsiness Detection[J].IET Com-munications,2011,5(17):2461-2469.

[7] OMIDYEGANEH M,JAVADTALAB A,SHIRMOHAMMADI S.Intelligent Driver Drowsiness Detection Through Fusion of Yawning and Eye Closure[C]//Proceedings of IEEE International Conference on Virtual Environments Human-computer Interfaces & Measurement Systems.Ottawa,Canada:IEEE Press,2011:18-23.

[8] 旷文腾,毛宽诚,黄家才,等.基于高斯眼白模型的疲劳驾驶检测[J].中国图象图形学报,2016,21(11):1515-1522.

[9] 赵 文,张 意,张卫华,等.基于红外图像的眼睛开闭检测方法[J].计算机工程与设计,2015,36(2):436-440.

[10] 姚 胜,李晓华,张卫华,等.基于LBP的眼睛开闭检测方法[J].计算机应用研究,2015,32(6):1897-1901.

[11] LECUN Y,BOSER B,DENKER J S,et al.Backpro-pagation Applied to Handwritten Zip Code Recogni-tion[J].Neural Computation,1989,1(4):541-551.

[12] HENRIQUES J F,CASEIRO R,MARTINS P,et al.High-speed Tracking with Kernelized Correlation Filters[J].IEEE Transactions on Pattern Analysis & Machine Intelligence,2015,37(3):583-596.

[13] HENRIQUES J F,RUI C,MARTINS P,et al.Exploiting the Circulant Structure of Tracking-by-detection with Kernels[C]//Proceedings of ECCV’12.Roma,Italy:[s.n.],2012:702-715.

[14] 邓健康.基于级联回归模型的人脸配准研究[D].南京:南京信息工程大学,2015.

[15] CUN Y L,HAN C,WANG C,et al.The Application of A Convolution Neural Network on Face and License Plate Detection[C]//Proceedings of the 18th International Conference on Pattern Recognition.Washington D.C.,USA:IEEE Press,2006:552-555.

[16] ZEILER M D,FERGUS R.Stochastic Pooling for Regularization of Deep Convolutional Neural Networks[J].Computer Science,2012,7575 (1):702-715.

[17] 吴康华.基于PERCLOS的驾驶疲劳检测系统设计[D].杭州:浙江大学,2008.

[18] JAVIER F M.Driver Drowsiness Warning System Using Visual Information for Both Diurnal and Nocturnal Illumination Conditions[J].EURASIP Journal on Advances in Signal Processing,2010(1):1-19.

[19] WANG H,ZHOU L B,YING Y.A Novel Approach for Real Time Eye State Detection in Fatigue Awareness System[C]//Proceedings of International Conference on Robotics Automation and Mechatronics.New Yrok,USA:ACM Press,2010:528-532.

[20] KNIPLING R R,WIERWILLE W W.Vehicle-based Drowsy Driver Detection:Current Status and Future Prospects[C]//Proceedings of IVHS’94.Atlanta,USA:[s.n.],1994:1-24.

猜你喜欢

嘴部人脸眼部
有特点的人脸
一起学画人脸
此人为何杠得如此嚣张?
圆号教学中嘴部教学的重要性及训练方法研究
高中素描头像教学中提高嘴部刻画能力的策略探究
三国漫——人脸解锁
基于Horn-Schunck光流法的多目标反刍奶牛嘴部自动监测
为什么要做眼部检查
戴眼罩有助消除眼部疲劳
如何消除用电脑后的眼部疲劳