APP下载

基于眼睛状态检测的驾驶员疲劳驾驶分析

2015-01-16蒋建国齐美彬

关键词:角点人脸投影

蒋建国, 王 雷, 齐美彬, 詹 曙

(1.合肥工业大学 计算机与信息学院,安徽 合肥 230009;2.安全关键工业测控技术教育部工程研究中心,安徽 合肥 230009)

基于眼睛状态检测的驾驶员疲劳驾驶分析

蒋建国1,2, 王 雷1, 齐美彬1, 詹 曙1

(1.合肥工业大学 计算机与信息学院,安徽 合肥 230009;2.安全关键工业测控技术教育部工程研究中心,安徽 合肥 230009)

利用眼睛的状态对驾驶员疲劳进行分析主要有人眼检测和疲劳判断两大问题。驾驶过程中受到光照、角度及眼睛闭合等因素的影响,传统的人眼检测技术误码率较高,而混合复杂的检测技术实时性较差。针对该问题,文章提出一种适用于驾驶员驾驶过程中的人眼快速定位算法。该方法由粗到细,综合运用基于OpenCV的人脸识别、二值化、改进型灰度积分投影、Susan算子角点提取等技术,并结合PERCLOS(percentage of eyelid closure)方法进行疲劳分析。实验结果表明,该方法对各种驾驶环境下驾驶员眼睛的定位,都能快速地获得较高的精度,疲劳检测正确率较高。

人眼定位;积分投影;Susan算子;疲劳检测;PERCLOS方法

0 引 言

近几年,随着疲劳驾驶导致的交通事故数量日益增加,国内外积极开展疲劳驾驶检测[1]的研究,主要研究结果有以下几类:① 检测驾驶员生理信号(心跳、脑电图等),该方法不仅不易实施,且获得的数据可靠性较低;② 检测车辆参数(方向盘动作、白线位置等),该方法根据公路和汽车质量的不同测试得到的数据准确性变化比较大;③ 检测驾驶员个体特征,大部分研究集中在检测驾驶员个体特征上。眼睛是疲劳最直接和最重要的表现形式,所以基于人眼检测的疲劳驾驶分析成为研究热点。

在基于人眼检测的疲劳驾驶检测系统中,研究的主要内容包括驾驶员眼睛的准确快速定位与跟踪和判别疲劳状态的标准。显然,眼睛检测的准确性和实时性直接影响了疲劳状态的分析结果,目前人眼检测主要的方法[2-3]有基于模板匹配方法、基于灰度投影方法、基于统计方法和基于规则方法。有些则是结合了多种方法的混合技术。针对眼部状态疲劳判断,目前主要方法有眨眼频率法、眼睛闭合时间及瞳孔变化等方法。

驾驶员在驾驶过程中会有光照、人脸角度及眼睛闭合等因素影响,单纯使用某种方法或传统的混合技术无法保证检测的准确性,而综合运用多种方法又会导致响应时间过长,无法实时检测到驾驶员的眼睛状态,导致疲劳判断不准确。

本文在总结前人研究的基础上,提出一种适用于驾驶员眼睛的快速定位方法。该方法由粗到细,在抓取视频帧后直接调用OpenCV进行人脸检测初步确定人脸区域,然后取人脸图像的上半部分进行灰度积分投影来确定人脸中人眼的大概位置,在获得两眼眼球大概位置的基础上画出眼部的大概区域,再对眼部区域使用Susan算子获得两眼的内外眼角点,最终确定眼睛的精确位置,最后使用PERCLOS判断方法进行疲劳分析,具体流程如图1所示。实验结果证明,本文提出的方法实时性好、准确性高。

图1 系统流程

1 人脸检测

基于OpenCV的人脸检测[4]分为训练分类器和利用训练好的分类器进行人脸检测。

本文直接调用OpenCV库中已经训练好的cascade(Haar分类器)检测人脸,检测的基本过程是先将图像灰度化,根据传入参数判断是否进行canny边缘处理(默认不使用),再进行匹配。匹配后收集找出的匹配块,过滤噪声,计算相邻个数,如果超过了规定值就输出结果,否则删去。将匹配分类器放大,同时原图缩小相同倍数进行匹配,直到匹配分类器的大小大于原图,则返回匹配结果。

人脸的初步检测能够得到人脸区域,在给定的范围内搜索嘴、鼻子、眼睛等关键部位的位置,这样既降低了关键部位定位的错误率,同时又减少了搜索的时间。

2 眼睛粗定位

眼睛在脸部区域呈现的特点有:① 位于人脸区域的上半部分;② 在眉毛与鼻子的之间,离眉毛的距离小于与鼻孔的距离;③ 两眼对称于人脸的对称轴。根据以上特点,对眼睛进行定位,在检测到人脸的基础上缩小定位范围,直接取脸部区域图的上半部分进行研究。

2.1 图像二值化

要将眼部特征点从人脸图像分割出来,首先要对图像二值化处理。图像二值化最关键的是选取阈值,国内外学者对图像二值化[5]进行了广泛的研究,并提出了双峰直方图阈值分割法、最大熵阈值分割法、模糊聚类分析法等阈值选取方法。本文采用最大类间方差阈值分割法,又叫大津法。其基本思路是把图像直方图用某一灰度值分割成背景和目标2类,分别计算这2类的像素点和灰度平均值,然后计算它们的类间方差。背景和目标之间的类间方差越大,说明构成图像的两部分的差别越大,该灰度值就作为图像二值化处理的阈值。

设图像I(x,y),图像的大小为M×N,前景(即目标)和背景的分割阈值记作T,图像中像素的灰度值小于阈值T的像素个数记作N1;像素灰度大于阈值T的像素个数记作N2。属于前景的像素点数占整幅图像的比例记为ω1,其平均灰度为μ1;背景像素点数占整幅图像的比例为ω2,其平均灰度为μ2。图像的总平均灰度记为μ,类间方差记为g。则有:

采用遍历的方法得到使类间方差最大的阈值T。

二值化后人脸的特征点如头发、眉毛、眼睛、鼻子、嘴巴等被明显地分割出来,如图2所示。

图2 图像二值化

2.2 基于灰度积分投影的眼睛粗定位

积分投影是自动定位特征时常用的一种技术[6]。设G(x,y)表示图像在(x,y)处的灰度值,在图像[y1,y2]区域的水平积分投影表示为:

对人脸上半部分的图像水平和垂直积分投影如图3所示。

图3 水平和垂直积分投影分布示意图

由图3可以看出,由于在水平方向得到的垂直灰度积分投影几乎没有其他区域的影响,其分布图基本呈现出一致的规律,基于对人脸的先验知识,波谷自下而上分别对应眼睛、眉毛和头发的区域。将积分投影图进行归一化后得到积分投影曲线设定阈值,找出波谷点,显然,最下面的波谷对应着眼睛的大致水平位置(即纵坐标y)。

要确定人眼的垂直位置(横坐标),如果直接对上述矩形框进行垂直灰度投影,则不能取得很好的效果,这是由于当头发部分的灰度比重占据较大部分时,积分灰度投影曲线不规则,没有明显的波谷出现,无法从曲线中提取出有效信息,从而导致无法正确判断人眼的位置。当人眼闭合时,如果眉毛区域被头发遮盖或占据较小比重时,积分投影曲线则完全表示头发区域的灰度投影,与眼睛位置无关[7]。

本文提出一种改进型方法,设由图3得到的眼睛垂直坐标为y,在人脸图像上取一个以y为中心,高度为h的条形区域,h的选取以所选取部分不包含眉毛、头发为宜,根据水平灰度积分投影曲线分析可知,2个波谷所对应的区域即为眼睛和眉毛间的区域,则h取2个波谷之间的距离。本文对条形区域作垂直积分投影,投影图像如图4所示。

图4 改进型水平积分投影分布示意图

由图4可以看出,人脸中心对称轴两侧出现2个最小值点,分别对应于左、右眼的垂直位置。因此从垂直积分投影曲线中心向左、右搜索最小值,即可得到眼睛中心的横坐标,从而确定眼睛的大致位置。根据人脸图像的先验知识,每只眼睛的宽度δ最多占人脸宽度的1/3,由此可知,以积分投影求得的坐标分别为左、右眼睛的中心,矩形框的高度为h,宽度为δ的区域即为所求人眼的区域。

3 眼睛精确定位

在获取驾驶员左、右眼的大致区域后,为了降低区域内非眼睛部分对后续疲劳判别的影响,需对眼睛进行进一步精确定位[8-9]。对此,本文在粗定的区域内使用Susan算子获得两眼内外眼角的点位置,最终确定两眼的准确区域。

Susan算子原理如图5所示,用一个半径为r的圆形模板在图像上移动,若模板内的像素灰度与模板中心的像素(被称为核)灰度值小于一定的阈值t,则认为该点与核具有相同的灰度,满足该条件的像素组成的区域n称为吸收同值核区(univalue segment assimilating nucleus,USAN),即

由此可知,USAN面积n越小,则边缘强度R越大,g为阈值,直观理解为USAN的最大值,若n超过该值,则认为不存在边缘。

图5 Susan算子原理图

由Susan算子原理可知,当模板的中心位于角点处时,USAN的值最小(图5a所示),由此利用该原理可获得眼部区域的眼角位置。具体步骤如下:

(1)利用圆形模板遍历图像,计算每点处的USAN值。

(2)设置一阈值g,一般取值为nmax/4,进行阈值化,得到角点响应。

(3)使用非极大值抑制来寻找角点。

(4)计算USAN区域的重心,然后计算重心和模板中心的距离,如果距离较小则不是正确的角点。

(5)判断USAN区域的重心和模板中心的连线所经过的像素是否属于USAN区域的像素,如果属于,则该模板中心的点即为角点。

在角点检测中,有以下2种类型的阈值:阈值t,用来约束角点的数量;阈值g,用来约束角点的质量。当然,一个阈值不能完全做到只影响质量或数量,只是会有一个侧重点。例如,g值减小,则USAN会更加侧重于检测到更加“尖锐”的角点;而当t减小时,会检测到更多的角点。所以,阈值t可以在不影响角点质量的情况下,控制检测到的角点的数量。在大多数情况下,设t为25比较合适,如果图像的对比度比较低,可以修改t值以适应变化。

用以上算法获得的两眼眼部区域的角点如图6、图7所示,通过寻找角点之间的最大距离来最终确定眼部区域的左右精确位置,两眼内外眼角点的距离即为眼部区域的宽度β,高度为h。

图6 t=25 s时眼部区域Susan算子角点提取结果

图7 g=n max/2时眼部区域Susan算子角点提取结果

4 PERCLOS疲劳检测

PERCLOS(percentage of eyelid closure)为眼睛闭合程度超过某一阈值的时间占总时间的百分比。

PERCLOS原理示意图如图8所示。

图8 PERCLOS原理示意图

图8中,t1为眼睛完全睁开到闭合20%的时间;t2为眼睛完全睁开到闭合80%的时间;t3为眼睛完全睁开到下一次睁开20%的时间;t4为眼睛完全睁开到下一次睁开80%的时间。通过测量t1~t4,可计算出PERCLOS的值f80:

图8是以眼睑遮住瞳孔的面积超过80%的时间比率为判别标准的,即P80标准,大量实验表明P80与驾驶疲劳的相关性最好,故本文选用P80作为判别标准。

PERCLOS是对一次眼睛的闭合过程进行判断,但在视频序列的检测中,一般以帧为单位,所以P80的计算公式可以转化为:

判断眼睛闭合超过某一阈值目前常用的方法主要有利用检测眼睛矩形框的高度、宽高比2种方式[10-12],但上述2种方式有以下缺点:① 眼睛矩形框的精确度要求较高,从而导致眼睛检测阶段的算法过于复杂,实时性受到一定影响;② 直接设定某个阈值来判断,只能针对某个驾驶员判断,不具备鲁棒性。

本文提出利用眼部区域的黑色像素个数的变化关系来判断眼睛闭合,进一步计算PERCLOS的值。同时,针对不同的驾驶员和驾驶环境,本方法在判别前进行了目标样本的训练学习,具体过程如下:

(1)建立一个样本空间N,空间含有100帧眼部区域的图片,每帧图片分别有左、右2个眼部区域。

(7)定义每30帧为一个检测周期,根据上述步骤求出每个周期的f,并与f80进行比较,若f>f80,则说明驾驶员处于疲劳状态,反之则为正常驾驶。

5 实验结果分析

本实验用3组驾驶员开车的视频进行实验,3组视频分别是在晴天、阴天和夜间驾驶的条件下拍摄的,部分实验结果如图9所示。另外对每组图像进行检测统计,结果见表1所列。

图9 驾驶员眼睛检测结果

结合实验数据和现场模拟综合分析,利用OpenCV检测人脸能够取得很好的效果,但遭遇强光照射、人脸角度变化过大、夜间红外图像噪声较大等因素时,易造成误判或无法检测。在眼睛粗定位阶段,造成错误判断的原因主要有:① 人脸旋转角度过大;② 随着光线强度减弱,图像二值化效果变差。在眼睛粗定位准确的情况下,通过Susan算子精确定位眼睛的准确率高达99%,造成错误的原因主要是眼部区域噪点较多,边缘不够清晰。

另外,采用本文的方法整个眼睛检测的时间最多需要260 ms,对于疲劳检测系统来说,能够准确地抓取到眼睛的各种状态,避免漏判误判。

通过与其他方法[11-13]比较,本文提出的方法疲劳检测正确率提高了4%,系统检测总时间缩短了70 ms,且本文提出的基于PERCLOS的判断方法算法简单、实时性好,有较好的鲁棒性。

表1 实验统计结果

6 结束语

针对疲劳驾驶检测系统误码率较高,响应时间较慢的问题,本文提出一种快速定位驾驶员眼睛的方法,结合实验数据,该方法特别考虑了头发、光照等因素给眼睛定位带来的影响,提出了改进的积分投影方法,并利用Susan算子精确定位眼睛,较大地提高了检测的准确率。此外,本方法由粗到细,逐步缩小图像检测范围,极大缩短了后续检测的时间,有利于进一步对眼睛的跟踪检测。在疲劳检测阶段,提出利用眼部区域黑色像素的变化关系来判别疲劳,不仅降低了对眼睛定位的精确程度,减少了眼睛定位的时间,而且判断准确率有所提高。从整体来看,该算法是一种驾驶员疲劳检测的可行方法。不足之处在夜间行驶情况下,人眼检测误码率还较高,同时算法流程还需要进一步优化,以便缩短运行时间。后续研究过程中,将在提高眼晴定位准确性的基础上,进一步缩短检测时间,并结合相关硬件仿真、现场测试来提高其实用性能。

[1]李志春,何 仁,林谋有,等.驾驶员疲劳检测技术的研究现状及发展趋势[J].农机化研究,2006(5):197-199.

[2]徐 来,周德龙.人脸检测技术的方法研究[J].计算机系统应用,2010,19(6):226-232.

[3]Chellappa R,Wilson C L,Sirohey S.Human and machine recognition of faces:a survey[J].Proceedings of the IEEE,1995,83(5):705-740.

[4]陶颖军.基于OpenCV的人脸识别应用[J].计算机系统应用,2012,21(3):220-223.

[5]朱军民,黄 磊,刘昌平.图像二值化方法比较[C]//第八届全国汉字识别学术会议论文集,2002:110-115.

[6]冯建强,刘文波,于盛林.基于灰度积分投影的人眼定位[J].计算机仿真,2005,22(4):75-78.

[7]章 玲,蒋建国,齐美彬.一种微分与积分投影相结合的眼睛定位方法[J].合肥工业大学学报:自然科学版,2006,29(2):182-185.

[8]Lam K M,Yan H.Locating and extracting the eye in human face images[J].Pattern Recognition,1996,29 (5):771-779.

[9]顾 华,苏光大,杜 成.人脸的眼角自动定位[J].红外与激光工程,2004,33(4):375-379.

[10]蒋建国,刘 扬,詹 曙,等.灰度视频序列中驾驶员疲劳实时检测方法[J].合肥工业大学学报:自然科学版,2008,31(9):1424-1427,1442.

[11]张淑凤.基于多个疲劳参数的驾驶员疲劳检测[D].合肥:合肥工业大学,2009.

[12]刘 扬.基于DM642的疲劳驾驶实时监测系统研究与实现[D].合肥:合肥工业大学,2007.

[13]Cho G.Real time driver safety system[D].Bowling Green:Western Kentucky University,2009,1442.

Detection of fatigue driving based on eye state

JIANG Jian-guo1,2, WANG Lei1, QI Mei-bin1, ZHAN Shu1
(1.School of Computer and Information,Hefei University of Technology,Hefei 230009,China;2.Engineering Research Center of Safety Critical Industrial Measurement and Control Technology of Ministry of Education,Hefei 230009,China)

There are two main points in analyzing the state of the driver fatigue based on driver’s eye state,i.e.eye detection and fatigue judgment.Because of the interfering factors like light,angle,percentage of eyelid closure(PERCLOS)during the driving process,the bit error rate of traditional eye detection scheme is relatively high while the complicate integrated method presents low instantaneity.With this regard,a new algorithm of fast eye location in the course of driving is proposed,which integrates face recognition technology of OpenCV,binarization,improved gray-level integration projection,Susan operator corner extraction and other techniques.And the fatigue analysis is done based on the PERCLOS method.The experimental results show higher precision of the proposed method in locating drivers’eyes under any given driving condition and higher correctness rate of driver fatigue detection.

eye location;integration projection;Susan operator;fatigue detection;percentage of eyelid closure Percentage of eyelid closure(PERCLOS)method

TP391.41

A

1003-5060(2015)02-0175-06

10.3969/j.issn.1003-5060.2015.02.008

2014-01-20

安徽省科技攻关计划“科技强警”专项资助项目(1306042023)

蒋建国(1955-),男,安徽黄山人,合肥工业大学教授,博士生导师;

齐美彬(1969-),男,安徽东至人,博士,合肥工业大学教授,硕士生导师.

(责任编辑 闫杏丽)

猜你喜欢

角点人脸投影
有特点的人脸
一起学画人脸
解变分不等式的一种二次投影算法
基于最大相关熵的簇稀疏仿射投影算法
找投影
找投影
三国漫——人脸解锁
基于FAST角点检测算法上对Y型与X型角点的检测
基于边缘的角点分类和描述算法
基于圆环模板的改进Harris角点检测算法