张丽雯, 杨艳芳, 齐美彬, 蒋建国
(1.合肥工业大学 计算机与信息学院,安徽 合肥 230009;2.合肥工业大学 电子科学与应用物理学院,安徽 合肥 230009)
随着经济发展和人们生活条件的提高,机动车辆快速增加,但是机动车辆造成的交通事故随之增加。大量研究发现,疲劳驾驶影响交通安全的程度最大。因此,需要对驾驶员疲劳状态进行监测,一旦监测到疲劳就及时采取措施让驾驶员停止驾驶,有效地保证行车安全,目前监测驾驶疲劳的方法[1]基本分为主观和客观2大类。由于人与人之间差异较大,所以主观性检测不易成为通用的疲劳检测标准,因此在各个领域采用较多的是客观疲劳检测方法。其中基于眼睛闭合状态和嘴部状态等驾驶人行为特征的客观疲劳检测方法,由于具有非侵入式和可直接检测的特点,成为目前研究热点。
本文采用基于眼睛和嘴唇2个面部特征的疲劳判决方式。有的人疲劳时会直接进入较长时间闭眼状态,但是有的人则首先频繁地打呵欠,如果得不到休息,疲劳程度加深后才会闭眼。因此可先根据嘴唇开合度判断司机是否频繁打呵欠,若是就直接判为疲劳,否则继续判断眼睛闭合状态以判断司机是否疲劳驾驶。
由于检测疲劳驾驶的基础是面部特征,所以为了减小搜索范围,首先做人脸检测,然后在人脸区域内搜索嘴唇和眼睛并判断它们的状态,最后判断司机是否疲劳驾驶。
研究发现人的肤色具有聚类性[2],利用这个特性检测人脸很容易将背景分离出去。首先通过统计方法确定肤色的具体范围,判别图像中每一点的像素值是否在该范围之内。若在就是肤色,否则就是非肤色。
该模型的困难之处在于如何确定阈值,其阈值选择不当可能会使肤色检测正确率下降,效果不是很好。
在除去亮度的二维色度平面上,肤色的区域分布比较集中,这与高斯分布[3-4]有些相似,因此可以用二维高斯分布来表达肤色分布。
计算图像中每个点为肤色的概率,从而得到这个图像的一个肤色概率图,这样就可以看出有哪些肤色点,这就是高斯模型检测肤色。二维高斯型函数为:
P(Cb,Cr)=exp[-0.5(x-M)TC-1(x-M)],其中,x为图像点像素在YCbCr空间的值,x=[Cb,Cr]T;M为肤色在YCbCr空间的均值,M=E(x);C为协方差矩阵,C=E((x-M)(x-M)T);P(Cb,Cr)是点(Cb,Cr)为肤色点的概率。
将图像各点的色度代入高斯函数,求得各个P(Cb,Cr)值,然后进行归一化处理,即Pi(Cb,Cr)/maxPi(Cb,Cr),用这个商作为图像中点为肤色点的概率。将归一化的相似度值乘255,就得到肤色相似度图,从这个图中可以直观地看到图像中点为肤色点的概率大小。高斯模型比区域模型能更好地表示肤色分布,相对而言,它的肤色检测正确率也较高。
对人脸的相似度图进行二值化分割,将人脸区域和背景分离开。利用形态学运算,以去除噪声,修补图像内部的断裂和空洞,最后利用人脸特征先验知识得到人脸区域。人脸检测各阶段的结果如图1所示。
图1 人脸检测各个过程图
人打呵欠时从表面看表现最明显的是嘴部,检测嘴部状态可以先检测嘴唇区域,之后确定嘴唇边界,进而确定嘴部开合状态及张开持续时间,这样就可以确定是否在打呵欠。为了检测嘴唇边界,本文采用唇色特征与脸部灰度特征相结合的方式。先用唇色聚类性确定嘴唇大致范围,之后在该范围内寻找亮度分量较低的区域,从而精确定位嘴唇。
检测嘴唇普遍使用彩色图像中唇色检测[5]方法,然而唇色和肤色有一部分是重叠的,因而依靠唇色聚类性检测嘴唇,有一部分肤色区域也会被划入唇色区域,而嘴角的唇色部分比较少,容易被形态学运算去除。唇色检测结果如图2所示。图2a为通过唇色聚类性检测嘴唇所得到的结果,其中白色部分为检测出的唇色区域。图2b和图2c中白色方框为划定的嘴唇区域,可以看出最终检测出的嘴唇边界不是很准确。
图2 唇色检测结果图
为了在此基础上精确定位嘴唇,本文将脸部图像的亮度分量取出来进行二值化,由大津阈值法确定二值化的阈值。人脸二值化灰度图像及嘴唇最终检测结果,如图3所示。二值化后的灰度图像中除了深色背景和头发,人的脸部中只有眼睛、鼻孔和嘴部为黑色,如图3a所示。此时若直接用灰度图检测嘴唇,则黑色的背景干扰很大,不易去除。从图3b和图3c可以看出,由唇色检测法大致划定嘴的区域中只有可能出现的黑色区域是鼻孔。由于鼻孔面积很小,而且和嘴部黑色区域没有连接,采用积分投影很容易区分。因此,可以先用唇色聚类性检测嘴唇以去除黑色背景和头发的干扰,大致确定嘴唇范围。然后检测划定的嘴唇范围左、右两边是否有黑色像素,以排除嘴角没有包括其中。若漏检,则增大划定嘴唇的方框,划定的嘴唇范围中用积分投影确定嘴唇边界,进而确定嘴部状态以判断驾驶员是否打呵欠。
图3 人脸二值化灰度图像及嘴唇最终检测结果
除了打呵欠,人说话、笑和哭时也会张开嘴,因此仅凭嘴张开不能判断人是否在打呵欠。但是打呵欠时嘴张开的幅度很大,而且嘴角向中间靠拢,因此划定嘴唇的外接矩形上、下高度与左、右宽度的比值要大。图4所示为采集的3个人的嘴部图像,其中,图4a是人说话时图像,图4b是同一个人打呵欠时嘴张开过程中的图像,图4c是打呵欠嘴完全张开的图像。每幅图像中白色方框是标记嘴部区域。
图4 不同人说话和打呵欠时嘴图像
从这些图可以看出,人打呵欠时嘴部边界框的高度大于宽度的1/2。虽然有时候人说话时嘴也会张开很大,但是持续时间很短。如果测得嘴部边界框的高度持续大于宽度1/2的时间超过3 s,说明司机在打呵欠。打呵欠的原因是很多的,偶尔打呵欠与疲劳关系不大,但是如果频繁打呵欠就可以说明司机疲劳。实验结果显示,如果1 min内测得打呵欠帧数与总帧数比值超过10%,说明人打呵欠频繁,应该报警提醒司机。
本文利用人脸的灰度特征定位人眼,首先在人脸灰度图像中提取五官边缘,得到二值化图。然后对图中连通区域进行判断,并利用先验知识构建人眼区域规则集,结合重心模板[6]寻找眼睛对。一般重心坐标公式[7]为:
由于是在二值化后的图中计算重心点,所以重心点坐标公式简化为:
把重心坐标作为种子点进行眼睛的区域生长,将种子点八邻域内点的灰度值与种子点灰度值差小于标准值的像素点,视为与种子点性质相似的点,并成为新的种子点,继续区域生长[8],直到所有种子点八邻域内没有一个符合标准的像素点,则停止生长,结果如图5a所示。然后利用形态学运算进行去噪,并对图像进行修复得到眼睛轮廓,如图5b所示。
图5 眼睛检测各个过程图
检测到眼睛轮廓后就可以计算眼睛的闭合度,并判断司机是否疲劳。司机疲劳时会闭眼睛,实验证明眼睛瞳孔被眼皮遮挡超过80%与疲劳相关性最大。连续采样10 s,并求出这段时间内司机每次闭眼过程中瞳孔被遮挡面积超过80%的时间T。若T与10 s比值超过40%,可以判断为司机疲劳。有时候司机疲劳时会长时间闭眼睛,因此,若测得司机眼睛持续闭合超过2 s,也判断司机在疲劳驾驶。
(1)利用肤色聚类性检测人脸。若检测到人脸,则启动卡尔曼滤波进行跟踪,否则继续检测。
(2)利用唇色特征和脸部灰度特征相结合划定嘴唇边界,若嘴部边界框的高度大于宽度的1/2,且持续超过3 s,判为打呵欠;若1 min内打呵欠帧数与总帧数之比超过10%,判为疲劳,则转到步骤(4),否则执行步骤(3)。
(3)在人脸二值化灰度图像中,利用人脸五官结构先验知识及区域生长得到眼睛轮廓,检测到眼睛瞳孔被眼皮遮挡超过80%,开始计时10 s。若在该段时间内检测到这种状态持续超过2 s,则判为疲劳,并转到步骤(4);否则计算10 s内司机每次闭眼过程中瞳孔被遮挡面积超过80%的时间T。若T与10 s比值超过40%,判为疲劳,并转到步骤(4);否则转到步骤(1)执行。
(4)报警输出。
选择3位学生作为受测人员,根据测试所需的技术指标,3位学生分别接受了测试,结果证明系统能够达到要求,统计后的实际数据结果见表1所列。
表1 实验结果
本文讨论了基于面部特征的疲劳驾驶检测的方法,具有非接触性及抗干扰性强的优点。人脸检测效果较好,在此基础上眼睛定位效率高。嘴唇由粗及细的定位方法提高了检测效果,由实验结果可以看出,该疲劳检测方法准确率较高。
[1]Hsu R L,Abdel-Mottaleb M,Jain A K.Face detection in color images[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2002,24(5):696-706.
[2]Grace V E,Byrne J,Legrand M,et al.A machione vision based drowsy driver detection system for heaby vehicles[C]//Proceedings of the Ocular Measures of Driver Alertness Conference,1999:75-86.
[3]蒋建国,陈晓蕊,齐美彬.基于肤色模型和Bayes特征的人脸检测方法[C]//全国第18届计算机技术与应用(CACIS)学术会议论文集.合肥:中国科学技术大学出版社,2007:1175-1180.
[4]苑玮琦,贾 琦.基于DM6437的驾驶员疲劳检测系统[J].仪表技术与传感器,2010(5):51-55.
[5]张志文,沈海斌.基于色度分布差异性的唇部检测算法[J].浙江大学学报:工学版,2008,42(8):1355-1359.
[6]吴从中,贺 伟,汤润森,等.光照自适应的疲劳驾驶检测系统[J].电子测量与仪器学报,2012,26(1):60-66.
[7]蒋建国,刘 扬,詹 曙,等.灰度视频序列中驾驶员疲劳实时监测方法[J].合肥工业大学学报:自然科学版,2008,31(9):1424-1427,1442.
[8]刘 扬.基于DM642的疲劳驾驶实时检测系统研究与实现[D].合肥:合肥工业大学,2007.