APP下载

基于嵌入式平台的人脸疲劳检测算法

2017-06-06王凌云张桐瑄王存睿

大连民族大学学报 2017年3期
关键词:嘴部哈欠眼部

周 未,王凌云,张桐瑄,王存睿,吴 旭

(1.大连民族大学 计算机科学与工程学院,辽宁 大连 116605;(2.大连市民族文化数字技术重点实验室,辽宁 大连 116605)

基于嵌入式平台的人脸疲劳检测算法

周 未1,2,王凌云1,2,张桐瑄1,2,王存睿1,2,吴 旭1,2

(1.大连民族大学 计算机科学与工程学院,辽宁 大连 116605;(2.大连市民族文化数字技术重点实验室,辽宁 大连 116605)

提出一种基于眼部和嘴部相结合的人脸疲劳检测算法,利用深度学习对人脸特征点进行定位,并通过眼部特征点计算PERCLOS参数,计算过程中详细讨论了不同特征对于PERCLOS参数提取的精确性,最后用角度特征来计算PERCLOS参数,同时将PERCLOS的时序信号进行频域分析,进而检测眼部代表的疲劳程度。与眼部协同的嘴部也是疲劳的重要指标,详细论述并提出了一种眼部和嘴部的疲劳协同参数。实验结果表明本文提出的方法是有效的,可以定量反映人的疲劳程度。同时将其部署在移动端用于车载疲劳检测和使用手机过程中的疲劳检测。

PERCLOS;疲劳检测;人脸特征

疲劳是由于过渡的体力或脑力劳动引起的一种生理现象,是人体正常的生理活动规律。在医学上,疲劳被定义为人体困顿,倦怠的感觉,是需要休息和放松的信号[1]。瞌睡,眼睛疲劳加上频繁打哈欠,以及精力不集中,都表现出一个人出现了疲劳的特征。在出现疲劳时,人的反映往往减慢,神经活动减弱,交感神经增强等。当人出现疲劳特征时我们可以利用科学的指标来测定实验结果。例如 P70、P80、脑电图算法、头位置测量法、眨眼监测法等。在测试疲劳的时候,有60%的疲劳信息是从眼部得到的,人如果处于疲劳状态的时候眨眼频率会增加,眼皮会逐渐的增加覆盖眼睛的面积,大多数研究成果中判断人的疲劳状态往往都是通过眼睛的生理特征来检测人是否处于疲劳。虽然通过测量眼睛闭合,眼睛运动和眼睛生理特征来检测疲劳比较普遍,如果眼部疲劳检测和嘴部打哈欠疲劳检测结合起来判断疲劳,准确性,可靠性会提高不少。

1 PERCLOS疲劳检测概述

Wierwille[2-3]等人通过研究慢闭眼动作提出了PERCLOS(percentage of eyelid closure over the pupil over time)疲劳检测算法,其中P80标准与疲劳程度的相关性最高[4],该标准被广泛地应用到机器视觉系统中进行疲劳判断。

在长期研究和实践的过程中,目前发现了研究过程中的遇到的问题:

(1) 在实际测量的环境中,PERCLOS比较适用于静态统计指标,它对于动态眨眼的过程刻画不够充分;其次,对于不同的测试者来说这个指标会有不同程度的影响,如果要想精确测量出疲劳的特征,就需要严格控制眼睛闭合开度的阀值,以及检测距离等因素然后通过对这些因素进行考虑和合理的控制,最后再对眼睛的张开程度测量出角度,然而这在实际中是非常难以控制的。

(2) 在实验中,从一系列标准的眨眼状态中采集出四种最稳定的眨眼典型过程,并且利用记录下来的时间求出PERCLOS的值,但是在求PERCLOS值的时候出现了很大的误差,这些误差直接导致最后判断疲劳的情况,而且判断疲劳的时候无法按照既定的标准去对比。在很多研究中PERCLOS方法的疲劳判定阀值存在不同的标准,由表1可以看出通过12种有效的实验利用4种方法都可以测出疲劳,而PERCLOS的P80标准与疲劳Pearson相关系数则可以预测疲劳,郭永彩[5]在研究中PERCLOS的值在15%为疲劳状态,郑培[6]则是PERCLOS的值在40%判定为疲劳状态,而韩相军[7]认为PERCLOS的值大于80%时判定为疲劳状态。李贞[8]采用了PERCLOS方法中的P70标准,认为PERCLOS值达到12%时为疲劳状态,造成这些阀值不同的原因在于对眼睛疲劳程度认知不同,操作PERCLOS方法的细节不同。

表1 PERCLOS与其他测评方法的Pearson相关系数

其中,PERCLOS为眼睛闭合时间占特定时间70%、80%、50%的百分比为标准;脑电图算法为加强研究有限公司的脑电图算法及马克基医生的脑电图算法;头位置测量法为使用监视装置测量头部位置,使用高级点阵传感器测量头部位置;眨眼监测法为使用MTI研究所的警觉监视器,使用IM系统有限公司的眨眼仪。

(3) 当测试者的头部与采集设备之间的距离不断发生变化的情况下,PERCLOS的值将会产生很大的误差,见表2。因为随着物体距离不断的在改变,眼睛角度也会不断改变,因此会导致眼睛角度的测量和时间的统计会受到影响,最终导致PERCLOS的值产生很大波动。但是,如果测试者能静止保持姿势不动的话,眼睛的角度能够准确的度量出来,PERCLOS算法的精度将会大幅度提高。而测试者刻意保持静止姿势,会影响PERCLOS的值,使结果不真实。因此基于P80标准提出了将眼部特征信息度量的精度进行放宽,并着眼于如何去结合 “打哈欠”的嘴部疲劳特征以此提高检测面部疲劳的准确度。

表2 对PERCLOS计算结果

2 眼部疲劳特征的检测

2.1 眨眼过程提取

利用眼部特征点所成的角度来判断眼部状态特征。首先采集一段视频序列得到其眼部状态变化的特征序列,其次从这段特征序列中找到多个最稳定的眼部特征模板。虽然要从事先拍摄的连续多组标准眨眼样本序列中寻找,但眨眼的特征还是会有一定差别,因为所要找的眨眼过程是作为模板使用,因此,尽可能找到标准眨眼序列中最稳定的序列来分别提取所代表清醒和疲劳两种状态的典型眨眼过程,同时能从稳定的序列中提取出两类眨眼过程记录的时间。

在采用PERCLOS方法检测疲劳时改进了获取眼睛部位图像的方法,再利用图像分析和模式识别方法,判断眼睛是否处于闭合状态。如图1以眼角三个特征点位呈90°为标准,当角度从90°变化到72°时定位为眼睛最大睁开到闭合80%瞳孔开度的时间;当角度从72°变化到18°时定义为眼睛最大睁开到闭合20%瞳孔开度所用的时间,利用相同的方法测出从闭合到睁开80%与20%的时间。最终利用公式(1)来获取PERCLOS量,判断疲劳特征状态。

图1 PERCLOS测量原理

P80标准下PERCLOS值f 80计算公式:

(1)

式中,f为眼睛闭合时间占某一特定时间的百分率,即PERCLOS值,t1是眼睛最大睁开到闭合80%瞳孔开度所用时间,t2是眼睛最大睁开到闭合20%瞳孔开度所用的时间,t3是眼睛最大睁开到睁开20%瞳孔开度所用时间。

2.2 眼部定位实验及分析方法

眼睛的闭合情况主要基于眼睛最大与最小睁开状态确定。眼睛在正常状态时会无意识眨动,男性大约每2.8 s眨一次眼,女性大约每4 s眨一次眼,每次眨眼的持续时间在0.3 s到0.4 s之间[9],在清醒状态情况下,眨眼过程中的瞳孔变化速度较快,而在疲劳状态时瞳孔变化速度较慢。

通过对多组疲劳视频模板进行疲劳检测时发现,图3a,3b为不稳定视频模板,图3c,3d为稳定视频模板。图3a,3b测试者的表情状态与面部特征疲劳检测算法检测结果相反,首先通过对图3a,3b视频模板进行反复检测后得出的结果仍然为疲劳状态,这与实际的结果相违背,说明当前检测结果不可靠。其原因是模板面部特征的快速变化和眼间距的大小是影响结果的因素,因此,导致实验结果出现了反差。于是利用眼睛睁开到最大位置时采取对眼角取平均值的方法进行估算,于是得出图3c,3d视频模板的检测结果正确。检测中发现,通过这样的方法在对眨眼过程每一个位置进行采样时,会使得头部移动和眼间距的影响对检测结果的影响较小。

其次,针对图3c,3d筛选出两种分别反映疲劳状态和清醒状态的典型眨眼过程,并进行角度的转换,而转换后的数据表分别如图4、图5。

从图4、图5可以看到,两种眨眼过程角度变化存在不同。图4中当出现疲劳状态时眨眼角度从标准90°直线下降到20°以下,说明眼部的疲劳趋于明显状态。而在图5中眨眼角度虽然略微下降但是没有图4中疲劳状态时眨眼角度变化的明显,而其角度会逐渐趋于平稳而不会再次下降,接下来,需要在不同测试视频上利用数据来说明对应片段上表现为疲劳的差异。当出现一次眨眼情况时就记录一次时间,但PERCLOS值属于后续处理,因此没有将其列在表中。从图4中眼睛变化角度的表现可以看到,图3c一个是高度疲劳状态,其眨眼的频率和眼部特征点角度变化波动大,video4为无疲劳状态,眨眼频率较高以及眼部特征点角度变换稳定。计算PERCLOS疲劳数值,其结果如图6。

图3 视频模板

图4 疲劳状态眨眼过程的角度变化曲线

图5 清醒状态眨眼过程角度变化曲线

图6 PERCLOS增长曲线

从图6中可以发现,当视频中测试者处于清醒状态时,其PERCLOS疲劳数值相对较低,当测试者随着时间的增加疲劳特征也逐渐的明显,PERCLOS疲劳数值也随之增加,说明PERCLOS疲劳数值是能够对疲劳程度进行刻画的。通过实验分析PERCLOS方法应用于头部的转移和偏转有着很好的稳定性,当测试者头部与测设设备的距离拉大的情况下,PERCLOS方法得出的数值将会失去意义。因此,从实验中分析出了,当距离改变时,设备在成像中眼睛的闭合程度与眼部特征点角度也会改变,这对于后面的眼睛闭合统计自然会受到影响。虽然PERCLOS疲劳数值能够反映出疲劳的程度,但将其它表现疲劳的特征契合在一起的话,判断疲劳特征的准确性会有很大的提高。

在眼部疲劳检测实验内容中,为了描述疲劳状态眨眼过程与清醒状态眨眼过程的区别,在实验中使用的是一段连续的视频,实际上还可以考虑将单帧图像检测疲劳加入其中,将差异更大更精细的眼部疲劳特征加以统计,这样能够进一步提高对疲劳状态判断的精度。另外,在实验中描述的方法中实际上是在某种程度上将之前着眼于单帧图像的眼部状态识别,引申到一个眨眼过程的识别,从而将单帧处理方式向序列处理方式进行扩展,从这个角度思考,还需进一步的进行研究。

3 嘴部疲劳特征检测

3.1 嘴角点定位

研究表明,疲劳时人体血液中二氧化碳的含量上升,大脑运作逐步变缓慢[10],打哈欠是疲劳状态的特征之一,不仅可以缓解疲劳,而且能刺激大脑从而让肌肉得到放松。

打哈欠作为反映疲劳的另一种疲劳特征状态,是对眨眼检测疲劳的补充。目前打哈欠检测的研究中,打哈欠的识别多数以嘴部张开程度来判断的,这与眼角度数变化检测方法一样。但如果对嘴部划分不够准确,会导致打哈欠和说话无法区分,降低识别精度。因此这样的测试方法不够准确,Saradadevi[11]利用Haar小波特征进行哈欠识别的精度也只有80%左右。

本文提出的基于序列特征的哈欠过程分类方法,实际上就是一个典型的模式分类过程,可以提高嘴部变化的识别精度[12]。包括区域定位、特征提取、特征选择以及分类四个主要部分。嘴部特征点的定位与眼部特征点定位类似[13-14]。差别在于嘴部的特征处于不同状态时就会出现不同的外表特征,将嘴部图像分成三种类别的话可以减小嘴部图像的外表变化误差。通过实验测出不同角度间距之间所对应的嘴部特征变化。将打哈欠过程同其他两种状态的表现区分出来,本质上是一个序列分类的问题[15]。具体的研究思路也很明确,首先提取单帧图像特征,从而得到序列特征,依靠序列特征完成对哈欠过程的分类,嘴部定位效果对比如图7。

图7 嘴部定位效果对比

3.2 嘴角点定位实验及疲劳判断

在嵌入式平台上针对疲劳视频进行了反复的实验,视频所采用的格式为MP3格式,视频帧宽度为1280,帧高度为720。视频长度为1-2 min,帧图像的特征提取与疲劳判决部分过程,开始检测嘴部特征是否属于三种特征角度的范畴如图8,第一行属于疑似哈欠的角度范围,若超过开合度范畴属于第二行的角度范围,当角度范畴继续增加达到了第三行的开合度范畴基本可以判定为当前是打哈欠状态,若符合前两种角度范畴却不符合第三种范畴的话,系统将角度范畴收缩,做二次判别,从而减少了哈欠的误判率,提高了可靠性。

图8 嘴部定位过程

本文通过实验得出了随着时间的增长,嘴部张开度是区别哈欠深浅的主要判别方法。经过多次的测试,将嘴部张开持续3s左右定义为浅度哈欠,4-5s定义为深度哈欠。在这期间,嘴部轮廓几个特征点所成的角度将会持续扩大,当打哈欠出现这种连续性增长时,如果增长时间超过3s以上时,可以认定出现了打哈欠,并记录一次打哈欠的次数。如果不能出现局部连续性时,并没有达到3s以上的情况,不能作为打哈欠的特征。

只要出现2次以上哈欠就可以根据频率和时间,按照公式(2),在设定哈欠频率的标准为10%情况下,当哈欠特征频率≥10%时(为一次深度哈欠,或多次浅度哈欠),可以完全确认出现了疲劳特征。

(2)

式中,Y为哈欠特征频率,X为哈欠特征次数,T设为30秒。

具体步骤如下。

步骤1:提取单帧图像的人脸;

步骤2:提取嘴部特征点,根据基本公式计算出角度大小,如果角度大于40度并开启记录时间,如果时间超过3秒进入步骤3,没有返回步骤1;

步骤3:统计哈欠特征 Count=Count+1。并根据公式2计算出哈欠特征频率。如果在30秒中内计算的哈欠特征频率超过锁定标准,可以认为当前为疲劳状态。

图9 嘴部特征曲线

从一段疲劳视频中提取到的嘴部特征值曲线图如图9。按照本文检测嘴部特征疲劳的方法分析,在40-150帧之间出现了一次深度哈欠,在250-400帧之间出现了一次浅度哈欠以及在450-550帧也出现了一次浅度哈欠。根据公式2在800帧(30秒左右内)得出疲劳特征频率为为10%,说明能够成功的检测到嘴部疲劳状态。

4 结论

对两类比较新颖的疲劳检测方法进行了结合。将疲劳检测方法移植到嵌入式平台中利用其内置摄像头检测眼部疲劳的同时也能检测到嘴部疲劳,一定程度上提高了疲劳检测效率以及扩展了嵌入式平台的开发前景,首先将眨眼的动态特征引入到疲劳检测中来,并利用PERCLOS算法识别出眼部的的疲劳程度[16-18]。其次通过对嘴部特征的局部连续性来检测打哈欠并区别说话和打哈欠,根据哈欠的特征频率来进行疲劳的判断。虽然改进了嘴部检测方法,但在复杂环境下并不能十分准确的判断是否疲劳,因此下一步的工作就是要进入新的算法来提高实验结果的稳定性。通过结合检测眼部疲劳特征和打哈欠的特征的方法来提高检测疲劳的可靠性,从整体上取得了比较理想的效果。

[1] DAUGMAN J.Uncertainty relation for resolution in space,spatial frequency and orientation Optimized by two-dimensional visual cortical filters[J].Journal of the Optical Society of America A,1985,2(7):1160-1169.1.

[2] WIERWILLE W W,ELLSWORT L A,WREGGIT S S, et al.Research on vehicle-based driver status performance monitoring;development,validation,and refinemen of algorithms for detection of driver drowsiness,DOT HS s 808 247[R].[S.1.]:Office of Crash Avoidance Research National Highway Traffic Safety Administration,1994.

[3] KNIPLING R R,WIERWILLE W W.Vehicle-based drowsy driver detection:current status and future prospect[C]//IVHS America Fourth Annual Meeting,Atlanta,GA,1994.

[4] DINGES D F,MALLIS M M.A final report:evaluation of techniques for ocular measurement as an index of fatigue and as the basis for alertness management DOT HS 808 762[R].[S.1]:National Highway Traffic Safety Administration,1998.

[5] 永彩,李文涛,高潮,基于PERCLOS的驾驶员疲劳检测算法[J],计算机系统应用,2009(8):54-57.

[6] 郑培.机动车驾驶员驾驶疲劳测评方法的研究[D].北京:中国农业大学,2002.

[7] 韩相军.基于DSP的驾驶疲劳实时检测系统研究[D].北京:北京首都师范大学,2006.

[8] 李贞.基于计算机视觉的驾驶员安全驾驶状态监控系统研究[D]西安:西北工业大学,2007.

[9] MITAS A,BUGDOL M,RYGULA A.Computer aid assement of driver’s fatigue during driving based on eye movements analysis[J].Journal of Medical Informatics & Technologies, 2002,12:195-200.

[10] LAL S K L, CRAIG A. A critical review of the psychophusiology of driver fatigue[J]. Biological Psychology, 2001:55(3):173-194.

[11] SARADADEVI M, BAJAJ P. Driver Fatigue Detection Using Mouth and Yawning Analysis[J]. International Journal of Computer Science and Network Secutity(IJCSNS 2008),2008,8(6):183-188.

[12] 李刚,高政.人脸自动识别方法综述[J].计算机应用研究.2003,8:4-9.

[13] 王磊,吴晓娟,巴本冬,等.一种基于视觉的PERCLOS特征提取方法[J].计算机工程与科学,2006,28(6):52-54.

[14] 苑玮琦,袁英.基于PERCLOS的眼睛张开程度检测算法研究[J].微计算机信息.2010,26:46-48.

[15] MITCHELL TOM M,MACHINE L,中译本:机器学习[M].曾华军,张银奎,译.北京:机械工业出版社,2003.

[16] 夏芹,宋义伟,朱学峰.基于PERCLOS的驾驶疲劳监控方法进展[J].自动化技术与应用,2008,11:81-83.

[17] 苑玮琦,滕红艳.眼睛疲劳程度判定方法研究[J].计算机工程与应用,2013,49(17):199-133.

[18] 杜春华.人脸特征点定位与识别的研究[D].上海:上海交通大学,2008.

(责任编辑 王楠楠)

FaceFatigueDetectionAlgorithmBasedonEmbeddedPlatform

ZHOUWei1,2,WANGLing-yun1,2,ZHANGTong-xuan,WANGCun-rui1,2,WUXu1,2

(1.SchoolofComputerScienceandEngineering,DalianMinzuUniversity,DalianLiaoning116605,China; 2.DalianKeyLabofDigitalTechnologyforNationalCulture,DalianMinzuUniversity,DalianLiaoning116605,China)

A face fatigue detection algorithm based on the combination of eye and mouth is proposed. The deep learning method is used to locate the facial feature points and PERCLOS parameters are calculated by the eye feature points. The accuracy of different features for PERCLOS parameter extraction is discussed in detail. Finally, using the angle characteristics to calculate PERCLOS parameters and analyzing the PERCLOS timing signal in frequency domain, the fatigue degree of the eye is detected. The mouth associated with the eye is also an important indicator of fatigue. We discuss and put forward an eye and mouth fatigue coordination parameter. The experimental results show that the proposed method is effective and can quantitatively reflect the degree of human fatigue. It can be deployed in the mobile side for vehicle fatigue testing and mobile phone using fatigue testing.

PERCLOS; fatigue testing; face features

2017-03-28;最后

2017-04-24

塞尔网络下一代互联网技术创新项目(NGII20160612);中央高校基本科研业务费专项资金资助(DC201502100401)。

周未(1991-)男,安徽阜阳人,大连民族大学计算机科学与工程学院硕士研究生,主要从事人脸识别研究。

2096-1383(2017)03-0268-06

TU

A

猜你喜欢

嘴部哈欠眼部
如果哈欠是有颜色的
此人为何杠得如此嚣张?
圆号教学中嘴部教学的重要性及训练方法研究
五彩哈欠
高中素描头像教学中提高嘴部刻画能力的策略探究
动物圈哈欠指南
基于Horn-Schunck光流法的多目标反刍奶牛嘴部自动监测
止不住的哈欠
为什么要做眼部检查
戴眼罩有助消除眼部疲劳