基于实时检测眼睛状态的一种安全驾驶方法
2019-11-12冀翀晓吕青李何
冀翀晓 吕青 李何
摘 要: 为预防及减少机动车驾驶过程中交通事故的发生,提出一种基于实时检测眼睛状态的安全驾驶方法。首先,在机动车驾驶空间安装并初始化摄像头,获取驾驶员的实时视频,然后采用基于肤色的人脸识别算法保留感兴趣区域(ROI),再用Viola?Jones算法眼睛分类器进行眼睛检测,最后对图像进行直方图均衡化以及中值滤波,利用Hough变换的圆形检测技术实现虹膜检测以完成眼睛的实时状态检测。实验结果表明,该方法能成功检测眼睛状态,检测准确率为99%,Kappa一致性为95.3%,具有较高的实时性。
关键词: 机动车驾驶; 眼睛检测; 图像预处理; 虹膜检测; Viola?Jones算法; 实时状态
中图分类号: TN911.23?34; TP391.4 文献标识码: A 文章编号: 1004?373X(2019)20?0133?06
A safe driving method based on real?time detection of eyes condition
JI Chongxiao, L? Qing, LI He
(College of Electrical and Power Engineering, Taiyuan University of Technology, Taiyuan 030024, China)
Abstract: A safe driving method based on real?time detection of eye state is proposed to prevent and reduce the occurrence of traffic accidents in the course of motor vehicle driving. Firstly, the camera is installed in motor vehicle driving space and initialized to obtain the real?time video of the driver, the region?of?interest (ROI) is reserved by means of the face recognition algorithm based on cuticolor, and then the eyes are detected by the eyes classifier of Viola?Jones algorithm. Finally, histogram equalization and median filtering are adopted for the image, the iris detection is realized by using Hough transformational circular measurement technique to complete the real?time detection of eyes condition. The experimental results show that the method can successfully detect the eyes condition, and has higher real?time performance than other methods, whose the detection accuracy is 99% and the Kappa consistency is 95.3%.
Keywords: motor vehicle driving; eye detection; image preprocessing; iris detection; Viola?Jones algorithm; real?time status
0 引 言
在机动车驾驶的众多安全问题中,驾驶疲劳因素已居前三,我国的疲劳驾驶事故死亡人数占全球的20%,交通事故的频发不仅威胁着人的生命,还伴随着大量的经济损失[1]。设计一套能在驾驶员昏昏欲睡时发出警示的安全驾驶系统有着非常重要的意义。在现有研究中,文献[2]提出了一种基于眼睛状态的驾驶员睡意实时检测方法。它使用Viola?Jones(VJ)算法进行驾驶员面部检测以及利用人脸的几何特性进行眼睛定位,然后对图像进行边缘检测,利用圆形Hough变换(CHT)技术完成虹膜检测。该方法中,因为CHT技术高度依赖于边缘检测结果,因此在低对比度图像以及有噪图像中会因为边缘点的丢失而降低识别效率。
基于上述已有方法,本文对实时检测驾驶员的眼睛状态方法进行了改进。首先,在本文方法中, 先用基于肤色的人脸检测算法保留人脸,即留取感兴趣区域(ROI),节省时间,提高运算速度,并且在下一步利用Viola?Jones算法时可以直接使用眼睛分类器训练快速确定双眼区域;其次,检测虹膜时,对CHT技术给出的输入不是传统的边缘检测图像,而是直方图均衡化以及中值滤波后的灰度图像,防止由于边缘点丢失而降低识别率。采用直方图均衡化的方法,提高了图像的全局对比度,而且使具有相近灰度且占有大量像素点区域的灰度范围展宽。施加中值滤波可以保留边缘信息,并去除图像中的噪声[3?5]。实验结果证明,本文改进方法有效地提高了识别效率。相应的算法流程图如图1所示。
1) 视频采集:在机动车驾驶环境安装并初始化摄像头,获取汽车驾驶员的实时视频。从视频中提取帧并将这些帧存储为图像;
2) 人脸人眼检测:使用基于肤色的人脸检测算法从整个帧图像中检测驾驶员的脸部区域,并对脸部区域裁剪,再用VJ算法眼睛训练器从脸部图像中检测驾驶员的眼睛,裁剪眼睛区域;
3) 分心检测:如果在实时视频中没有检测到人脸区域,或者檢测到人脸而没有检测到眼睛区域,这就意味着驾驶员没有直视前方或者分心;
4) 睡意检测:从检测到的眼睛区域,如果用CHT技术能检测到虹膜,那么眼睛是睁着的,否则眼睛是闭着的,表示司机已经昏昏欲睡;
5) 发出警告:司机分心或者昏昏欲睡时,发出警告。
图1 算法流程图
1 图像预处理
对于摄像头采集到的实时视频,首先提取帧图像并存储。基于实时检测眼睛状态的安全驾驶辅助系统主要是依据检测到的人眼进行判断,所以先进行人脸检测,在人脸检测的基础上进一步进行眼部区域检测,最后只对眼睛区域进行裁剪以减少信息冗余及计算。
1.1 基于肤色检测脸部区域
本文驾驶环境简单,背景较为单一,而且最终的研究对象是眼睛区域,前期人脸检测的主要目的是裁剪图片以去除冗余信息,提高计算速度。所以选取不需要进行离线训练、运算速度最快的基于肤色的人脸检测算法。
人的皮肤有其独有的特征性,皮肤的颜色在颜色空间的基色中,只占据一定的范围,算出这个范围的值,就能把皮肤从背景中过滤出来[6]。经过试验,在普通的RGB空间,肤色的判别阈值为1.0<[RB]<1.3;特别地,当肤色与背景色对比度较低时,将R,G,B值转换为H(色度)、S(饱和度)、I(亮度)值,转换公式如下:
将HSI空间的肤色判别阈值设为5.75 1) 得出图像的R,G,B值及H,S,I值,并算出[RB]值; 2) 将肤色判别阈值范围之内的像素点置1,其余像素点为0,图像二值化显示; 3) 计算二值图像面积,设置人脸面积最小阈值[Smin],本文设为27,删除小于此值的面积区域; 4) 裁掉二值图像中四周全为0的多余区域,另外,一般检测到的区域包括脖子部分,所以,裁剪时图像下方多裁掉本应留取区域的0.3,即为人脸区域; 5) 最终人脸区域在原图中标定框出并裁剪。图2 基于肤色检测人脸
1.2 VJ算法检测眼睛区域
Viola?Jones算法于2001年在IEEE国际计算机视觉与模式识别会议(CVPR)上提出,用于检测全景式正面面部区域,该方法的优点是对不同肤色的人群,有一定旋转角度的人脸以及光照变化都有较强的鲁棒性,检测率高[7]。由于驾驶员在正常驾驶时,采集到的脸部应该是直视前方的,如果检测不到人眼,证明驾驶员已经分心驾驶。VJ算法主要包含以下几个重要部分。
1.2.1 Haar特征提取
Haar特征[8]是用于寻找基于像素强度的简单矩形特征,它反映了局部区域之间的相对明暗关系,能够为识别对象的区分提供有效的信息。图3为常见Haar特征。
图3 Haar特征
图4 眼睛区域的Haar特征匹配图
1.2.2 创建积分图像
计算Haar特征时需要对矩形区域的所有像素求和,如果遍历所有像素再求和,这个运算将非常大,所有VJ算法采用一种新的数据结构求像素和,即创建Integral image(积分图像)[9]。对于图像中的任何一点积分图像值等于位于该点左上角的所有像素之和,计算公式为:
图5 积分图像计算
1.2.3 Adaboost分类训练
AdaBoost可以同时进行特征选择与分类器训练,利用弱分类器i进行线性组合,构成一个强分类器[10]。在本文方法中,收集相关特征的子集,形成一个有效的分类器,对眼睛区域的检测来说是必要的。“弱”分类器变“强”分类器的公式为:
图6 Adaboost算法示意图
1.2.4 级联分类器
在检测眼睛时,通常眼睛只占人脸图像的一部分区域,如果将所有区域遍历所有特征,运算量将会非常巨大。所以为了节省运算时间,应该把更多的检测放在潜在的正样本区域上,由此引入了级联分类器。级联分类器先用少量特征将大部分的消极区域剔除,后面再利用复杂的特征将非积极区域剔除。例如,检测眼睛时先利用图3的A特征,再利用C特征进行检测,误检率也会降低。
基于VJ算法检测眼睛的结果如图7所示。另外,将检测出来的眼睛区域从脸上裁出来,为下一步虹膜检测的运算节省时间,提供便利。
图7 基于VJ算法的眼睛检测结果
2 虹膜检测
从上述处理结果中每个帧检测到的眼睛区域状态,如果虹膜被检测到,那么眼睛是睁开的,驾驶员正常驾驶,否则眼睛是闭合的,驾驶员已经昏昏欲睡。由于正常睁眼的虹膜近似圆的形状,所以采用霍夫变换检测圆(CHT)的方法,传统的CHT技术输入为边缘检测图像[11],但是正是由于传统的CHT技术高度依赖于边缘检测结果,从而降低了识别低对比度图像以及由于边缘点丢失而产生噪声的图像的效率。本文方法中对CHT技术给出的输入图像是经过直方图均衡以及中值滤波的图像。采用直方图均衡化的方法,提高了图像的全局对比度,而且使具有相近灰度且占有大量像素点区域的灰度范围展宽。施加中值滤波可以保留边缘信息,并去除图像中的噪声。
2.1 直方图均衡化以及图像滤波
2.1.1 直方图均衡化
灰度直方图表示每个灰度级在图像中的占有率,图像对比度是通过灰度级范围来度量的。如果图像总体较暗,那么直方图中低灰度级一边比较集中,反之,高灰度级一边比较集中。直方图均衡化就是对图像进行非线性拉伸,重新分配像素值,把图像从比较集中的灰度范围变成全部灰度范围内的均匀分布,以此来增强图像的对比度,使图像更清晰[12]。图8显示眼睛区域灰度图和其直方图以直方图均衡化之后的灰度图和其直方图。
图8 直方图均衡化前后图像及直方图
由图可见,直方图均衡化之后许多像素被映射到比较暗的区域,较亮的灰度分布更加广泛,比原图像更加清晰。
2.1.2 图像滤波
在获取驾驶图像的过程中,由于光照变化、摄像头自身设备以及传输介质的影响,获取到的数字图像往往会受到多种噪声的污染,所以图像滤波必不可少。常用的滤波算子包括平均算子、高斯平均和中值算子。
平均算子可以去除大量噪声,但是使特征边界模糊;高斯平均保留更多特征,但与原图相比,几乎没有去噪;中值算子可以抑制噪声,也能得到清晰的边界特征[13]。图9显示了原图和三种滤波方法处理后的图像。结果与上述相符。所以本文采用中值滤波方式滤波。
2.2 圆形霍夫变换检测虹膜
霍夫变换(Hough Transform,HT)是一种在图像中定位形状的技术,常用来提取图像中的直线、圆和椭圆,它利用了一种投票的方法收集证据以此完成图像到累加器空間的映射,这种映射是基于目标形状的[14]。由于正常睁眼时的虹膜形状近似圆形,所以利用其提取圆的方法来定位虹膜,检测眼睛的状态。
图9 原图和三种滤波图
图10中,图10a)表示将要识别的圆,1,2,3为圆上边缘点,图10b)表示每个边缘点以相同半径画圆作为第一组投票圆,再以其他半径画圆为其他组投票圆,在图10c)中以三维方式显示。在收集所有的边缘点证据后,与原图中圆的半径相同的一组投票圆相交的点达到累加器空间的最大值,此时该点对应的参数即为原始图像中圆的参数,即图10c)中点A的参数。利用基于圆形霍夫变换检测虹膜的结果如图11所示。
3 实验结果及评价
3.1 评价方法
本文评价方法中,将眼睛睁着且系统判断为眼睛睁着的(即检测到虹膜)记为OO,将眼睛闭着且系统判断为眼睛闭着的(即没有检测到虹膜)记为CC,将眼睛睁着但系统判断为眼睛闭着的记为OC,将眼睛闭着但系统判断为眼睛睁着的记为CO。虹膜检测实例如图12所示(图片为CAS?PEAL数据库中截取)。
采用混淆矩阵、正确分类率(CCR)、平均检测时间(t)以及Kappa统计量[15]评价该方法。特别地,评价一个方法是否有效,正确率不能说明全部的问题,Kappa统计量是反映实际与理论两种结果一致性程度高低的系数,用来检验本文方法的有效性。计算公式如下:
3.2 实验设置及结果
本文实验所用计算机配置为:Intel[?] Core i7 7700k CPU(主频大小为4.2 GHz),内存大小为8 GB;实验中采用的软件环境为Matlab R2016b,在64位Windows 10平台下进行测试。
此次实验自行拍摄20名志愿者的驾驶视频,所有帧图像作为总体,随机选取每名志愿者的10张图像作为样本(共200张),大小均为1 080×1 080。部分样本如图13所示,部分检测结果如图14所示。
图14中,第1,2个人在专心驾驶,检测结果也成功检测到了脸、眼、虹膜,与人们的认知一致;第3个人在低头驾驶,没有注视前方,检测结果中未能检测到两只眼睛及虹膜,这与人们的认知也一致;第4个人已经昏昏欲睡,同样没有成功检测到她的眼睛和虹膜,与认知结果一致。
由表1可知,本文方法比现有方法的准确率高0.025;Kappa统计量比现有方法大0.11;每帧的平均运算时间比现有方法快0.053 s。
本文方法的优点在于利用基于肤色的人脸识别算法提高了运行速度,利用基于Viola?Jones算法的眼睛检测器提高了眼睛识别的准确率,每一步的ROI区域裁剪避免了复杂信息的冗余,使用直方图均衡与中值滤波图像作为霍夫圆检测的输入,提高了全局对比度,减少了图像噪声。实验结果表明,本文方法能有效检测驾驶员眼睛的状态,且性能较好。
4 结 语
本文提出了一种实时检测眼睛状态的安全驾驶方法。该方法以虹膜检测为最终目标,通过肤色的特定阈值识别人脸,再利用眼睛的共性特征生成的眼睛分类器识别眼睛,最后利用直方图均衡化和中值滤波图像作为圆形霍夫变换的输入成功检测虹膜。实验结果与人们的认知基本一致,准确率较高,实时性较强,有助于减少驾驶员因疲劳或分心驾驶而引起的交通事故,对改善道路安全有一定的研究意义。
注:本文通讯作者为李何。
参考文献
[1] 吕雪霜.基于图像分析的疲劳驾驶专利技术综述[J].中国科技信息,2018(17):17?19.
L? Xueshuang. Review of patent technology for fatigue driving based on image analysis [J]. China science and technology information, 2018(17): 17?19.
[2] CHERABIT N. Circular hough transform for iris localization [J]. Journal of computer science and technology, 2012, 2(5): 114?121.
[3] HICHRI S, NAKKACH H, BENZARTI F, et al. Monitoring of driver′s drowsiness based on eyes state analysis [C]// Third International Conference on Automation, Control, Engineering and Computer Science. Hammamet: [s.n.], 2016: 779?783.
[4] 黄窈蕙.智能驾驶汽车视觉图像处理技术[J].公路交通科技,2018(8):323?326.
HUANG Yaohui. Visual image processing technology for intelligent driving car [J]. Highway communications technology, 2018(8): 323?326.
[5] 王罡,骈俊生.一种基于人脸检测的人眼特征定位方法[J].阜阳师范学院学报(自然科学版),2010,27(1):37?39.
WANG Gang, PIAN Junsheng. A novel method of eye features location based on face detection [J]. Journal of Fuyang Teachers College (Natural science edition), 2010, 27(1): 37?39.
[6] 李燕,王玲.基于肤色和Haar方差特征的人脸检测[J].计算机工程与科学,2015,37(1):146?151.
LI Yan, WANG Ling. Face detection based on skin color and haar variance feature [J]. Computer engineering and science, 2015, 37(1): 146?151.
[7] AL?ANIZY G J, NORDIN M J, RAZOOQ M M. Automatic driver drowsiness detection using haar algorithm and support vector machine techniques [J]. Asian journal of applied sciences, 2015, 8(2): 149?157.
[8] Peter Harrington. Machine learning in action [M].李锐,李鹏,曲亚东,等译.北京:人民邮电出版社,2013:117?122.
HARRINGTON P. Machine learning in action [M]. Translated by LI Rui, LI Peng, QU Yadong, et al. Beijing: People's Post and Telecommunications Press, 2013: 117?122.
[9] DAHIPHALE V E, SATHYANARAYANA R. Real?Time Computer vision system for continuous face detection and tracking [J]. International journal of computer applications, 2015, 122(18): 1?5.
[10] 王科俊,邹国锋,傅桂霞,等.一种快速眼睛定位与人脸平面旋转校正方法[J].计算机辅助设计与图形学学报,2013,25(6):865?873.
WANG Kejun, ZOU Guofeng, FU Guixia, et al. A fast eye location and face plane rotation correction method [J]. Journal of computer?aided design and graphics, 2013, 25(6): 865?873.
[11] CHAUDHARI M, SONDUR S, VANJARE G. A review on face detection and study of viola Jones method [J]. Journal of Computer trend, 2015, 25(1): 54?61.
[12] ALIOUA N, AMINE A, RZIZA M, et al. Eye state analysis using iris detection based on circular hough transform [C]// 2011 International Conference on Multimedia Computing and Systems. Ouarzazate: IEEE, 2011: 1?5.
[13] PODDER M S, ROY M S. Drivers drowsiness detection using eye status to improve the road safety [J]. International journal of innovative research in computer and communication engineering, 2013, 1(7): 1490?1497.
[14] HAN W, YANG Y, HUANG G B, et al. Driver drowsiness detection based on novel eye openness recognition method and unsupervised feature learning [C]// IEEE International Conference on Systems, Man, and Cybernetics. Kowloon: IEEE, 2015: 1470?1475.
[15] 郭轶斌,郭威,秦宇辰,等.基于Kappa系数的一致性检验及其软件实现[J].中国卫生统计,2016,33(1):169?170.
GUO Yibin, GUO Wei, QIN Yuchen, et al. Consistency test based on kappa coefficient and its software implementation [J]. China health statistics, 2016, 33(1): 169?170.