驾驶员疲劳检测中的嘴部状态研究

2015-01-17 05:47王豪荣葛丽娟
电子设计工程 2015年2期
关键词:嘴部嘴角角点

王豪荣,胡 婷,葛丽娟

(长安大学 信息工程学院,陕西 西安 710064)

随着全球道路交通的快速发展,交通安全事故的发生率也在增加,其中,疲劳驾驶已经成为影响交通安全的重要隐患[1]。国外每年由于驾驶员在驾驶过程中进入睡眠状态而导致的交通事故数量不断增加,而我国每年由于驾驶疲劳导致的交通事故则高达90%,所以建立驾驶员疲劳监控系统是非常必要的。基于驾驶员面部表情的疲劳检测利用摄像头采集人脸图像,通过对驾驶员眼睛和嘴巴的分析来判断驾驶员疲劳状况,具有实时性和比较高的准确率。现在大多的疲劳检测方法是基于驾驶员眼睛的闭合情况,这样对眼睛的精确定位要求非常高,容易造成误判。本文针对人脸面部表情的另一个重要信息集中点嘴部进行研究,分析嘴部在打哈欠和说话时的明显区别,提出了嘴部状态对疲劳驾驶检测的影响。

1 人脸定位

人脸定位是疲劳检测的第一步,它是指在一幅图像或一段视频流中找出人脸部分的过程,包括人脸的大小和位置[2],同时将检测到的人脸部分截取出来,进行后续的处理。人脸的精确定位对于后续检测算法有很大的帮助。由于本算法针对的对象是驾驶员,采集到的图像中只出现驾驶员,所以可以认为是单人脸检测。

在目前的多种人脸检测算法中,AdaBoost算法由于其快速和高精度而被广泛使用。AdaBoost算法是由Freund和Schapire提出的,它是一种迭代算法,核心思想是将对同一组训练集训练出的不同弱分类器集合起来构成一个强分类器。Viola和Jones提出了Haar特征,并将其分为三类:边缘特征、线性特征、中心特征和对角线特征。然后将这些特征进行组合形成了内有白色和黑色两种矩形的特征模板,并以白色矩形的像素和减去黑色矩形的像素和作为该模板的特征值。将特征模板在训练图像子窗口内任意放置,其中一种形态即为一种特征,直到找出所有子窗口的特征为止。

本文采用基于Haar-like特征的AdaBoost人脸检测算法[3]来检测人脸正面图像,同时增加了两个新的模板用来检测倾斜人脸图像(倾斜角度不超过±35)。

图1 倾斜人脸检测Haar-like模板Fig.1 Haar-like template of oblique face detection

选取不同光照条件下,不同实验对象的200幅图片,采用该算法进行人脸检测,实验证明该算法能够准确快速的检测到人脸,有比较高的准确率。下图为部分效果图。

图2 采用AdaBoost分类器精确定位脸部图像效果Fig.2 Face image effects that accurate positioning with AdaBoost classifier

由于驾驶员所处的外部环境比较复杂,在不同的时间和地点光照条件差别非常大[4],而光照对图像有很大的影响,同时在图像的采集过程中可能会有噪声,所以为了提高图像的效果以及后续算法的准确性,需要对图像进行预处理来降低或去除噪声和光照对图像处理的影响。首先对于上面人脸定位后的图像进行尺寸归一化,然后采用中值滤波法来对图像进行降噪处理,采用直方图规定化来达到增强图像的目的。

2 嘴巴定位

2.1 二值化阈值选择

眼睛和嘴巴的形态是驾驶员疲劳判定的一个重要因素,所以准确定位嘴巴的位置是至关重要的。对于上面得到的人脸图像,我们首先要进行二值化,阈值的选择非常重要,直接影响二值图像的效果。

目前,常用的确定阈值的方法主要包括人工选择法和自动阈值选择法两大类。人工选择法主要是分析图像的直方图来确定阈值,不适用于实时系统中,而自动阈值选择法有更好的通用性和鲁棒性,常用的自动阈值选择方法有极小点阈值法,迭代阈值法,最优阈值法,Otsu法。

由于嘴巴位置位于人脸的下半部,如果对整个人脸做二值化,眉毛和眼睛等灰度较深的地方对嘴巴的影响较大,难以完整的提取嘴巴部分的轮廓,所以本文将人脸分为上下两部分,对下半部分采用迭代阈值法[5]进行二值化,从而得到嘴巴的完整信息。该方法的主要算法步骤为:

1)求出图像的最大灰度值Zmax和最小灰度值Zmin,初始阈值 T0设为(Zmax+Zmin)/2;

2)Ti将图象分割为前景和背景,分别求出两者的平均灰度值Z O和Z B

3)求出新阈值 Ti+1=(Z O+Z B)/2;

4)若TK=TK+1,则所得即为阈值;否则转 2),迭代计算,直到满足终止条件为止。

2.2 嘴角确定

对于经过阈值分割得到的下半部分二值图像,在人脸的下半部分嘴巴部分灰度较深,并且是比较连贯的区域,首先利用膨胀腐蚀等形态学运算去除鼻孔以及噪声点。由Adaboost算法得到的人脸图像为正面人脸图,所以嘴巴的位置位于人脸下半部分的中间,利用最小外接矩形表示出嘴巴的轮廓。

图3 下半部人脸图像处理Fig.3 Lower face image processing

要得到精确地嘴巴位置,就要找到嘴角,本文采用Harris角点检测算法寻找嘴角。角点没有明确的数学定义,一般认为角点是图像亮度变化剧烈的点或图像边缘曲线上曲率有极大值的点[6]。Harris算子是一种基于图像灰度的角点检测方法,当某一点向任一方向发生小小偏移时灰度都发生很大变化,则说明该点为角点[7]。具体通过计算像素点所在位置的梯度变化来检测角点,若某像素点在x方向与y方向的梯度的绝对值均比较大,则认为该像素点为角点。结合嘴角的特点,本文检测嘴巴区域的灰度图,该区域亮度变化剧烈的点是嘴角。Harris角点检测算法为:

1)用高斯函数代替二值窗口函数,对不同的像素赋予不同的权重从而减少噪声的影响。

2)计算自相关矩阵M为:

3)计算角点响应:

其中,Ix、Iy和 IxIy分别为灰度图像(x,y)处像素点在 x,y方向的偏导数以及二阶混合偏导数;det M为矩阵M的行列式;trace M为矩阵M的迹。根据经验为0.04~0.06。在判断是否为角点时,首先需要设置一个阈值,当R大于该阈值时则认为该点为角点,文本结合嘴角的特点,取R最大的两个角点为嘴角。

2.3 倾斜嘴部矫正

找出嘴角的位置后,为了计算嘴巴的张开度,需要求出嘴巴张开的高度和宽度,首先将两个嘴角连起来,如果两个嘴角处于同一水平高度,那么嘴巴的高度为最小外接矩形的高度,宽度为两个嘴角的距离。当两个嘴角处于不同的高度,即嘴巴是倾斜的,要找到嘴巴的高度和宽度,必须先矫正嘴巴。

矩形ABCD为嘴部最小外接矩形,a和b分别为矩形的长和高,m1和m2分别为两个嘴角。对于嘴部倾斜的情况,在嘴部倾斜角度为θ时,嘴巴的宽度应该为两个嘴角的距离,而嘴巴的高度则为b/cosθ。

图4 倾斜嘴部示意图Fig.4 Sketch map of the oblique mouth

图5 倾斜嘴部矫正Fig.5 Correction of oblique mouth

3 基于嘴部动作的驾驶员疲劳检测方法

嘴部作为人脸面部信息的一个重要集中点,在驾驶员感觉疲劳时,嘴部会有打哈欠的表现,所以我们可以将驾驶员嘴部动作的持续时间作为疲劳判断的依据。

1)计算嘴巴张开度

式中,Hi为嘴巴张开的高度,Wi为嘴巴的宽度。根据统计,驾驶员在不说话,说话和打哈欠3种情况下的嘴巴张开度是不一样的:驾驶员不说话时,嘴部张开度介于0.1~0.3之间;说话时,嘴巴连续忽闭忽张且每次持续时间较短;打哈欠时,嘴部的张开度较大,一般情况下大于0.7,且持续时间较长。

2)嘴部张开持续时间

式中,n为嘴巴张开的帧数,t为每帧的时间。根据医学数据统计显示,人说话时每0.3 s~0.5 s发出一个音节,而打哈欠时嘴部张开持续时间为4~5 s,当驾驶员张嘴持续时间长且嘴部张开度大于0.7时,可以判断驾驶员在打哈欠。

3)嘴部打哈欠频率

式中,N为打哈欠次数,T为单位时间。在进行疲劳判定前需要先设定嘴部动作频率阈值Fm,本文设Fm为1次/分。

4 结束语

文中研究了疲劳驾驶检测[8]中的人脸嘴部状态。首先通过人脸定位算法找出人脸部分,然后对人脸的下半部分使用阈值迭代法进行二值化,从而得到较完整的嘴部区域,通过最小外接矩形定位嘴巴区域,利用Harris角点检测算法检测嘴角,并且对倾斜嘴部进行矫正,测量嘴巴的高度和宽度,从而得到嘴巴的张开度,通过嘴巴张开度以及持续时间来判断嘴部状态,以嘴部动作频率作为疲劳检测的一个判定依据。本过程已经在Matlab7.0中进行编程实现,有较快的速度和较高的效率。

[1]沈永增,刘小磊.眼部疲劳状态检测算法的研究与实现[J].计算机应用与软件,2011,28(3):106-109.SHEN Yong-zeng,LIU Xiao-lei.Research and implementation of eye fatigue state detection algorithm[J].Computer applications and software,2011,28(3):106-109.

[2]王志良,孟秀艳.人脸工程学[M].北京:机械工程出版社,2008.

[3]Viola P,Jones M.Rapid Object Detection Using a Boosted Cascade of Simple Features[C]//Proc.of IEEE Conf.on Computer Visionand Pattern Recognition.Kauai, Hawaii,USA:[s.n.],2001.

[4]李智,谢剑斌,陈章永,等.依据Adaboost的红外视频图像疲劳检测算法[J].计算机工程与应用,2012,34(5):107-111.LI Zhi,XIE Jian-bin,CHEN Zhang-yong,et al.The infrared video image fatigue detection algorithm Based on Adaboost[J].Computer Engineering and Applications,2012,34 (5):107-111.

[5]严曲,赵跃龙.一种基于迭代阈值法的身份证图像二值化算法研究[J].计算机测量与控制,2005,13(6):595-597.YANQu,ZHAOYao-long.A study of twovaluealgorithmabout ID card image based on the iterative threshold method[J].Computer Measurement and Control,2005,13(6):595-597.

[6]赵文彬,张艳宁.角点检测技术综述[J].计算机应用研究,2006,23(10):17-19.ZHAO Wen-bin,ZHANG Yan-ning.Review of corner detection technology[J].Computer Research and Application,2006,23(10):17-19.

[7]陈白帆,蔡自兴.基于尺度空间理论的Harris角点检测[J].中南大学学报:自然科学版,2005,36(5):751-754.CHEN Bai-fan,CAI Zi-xing.Harris corner detection based on scale space theory[J].Journal of Central South University:Natural Science Edition,2005,36(5):751-754.

[8]Wang Q,Yang J,Ren M,et al.Driver Fatigue DetectionA Survey[C]//Proc of the 6th World Congress on Intelligent Control and Automation,2006:8587-8591.

猜你喜欢
嘴部嘴角角点
此人为何杠得如此嚣张?
圆号教学中嘴部教学的重要性及训练方法研究
小心,“烂嘴角”并不一定是缺乏维生素
白嘴角马的背篓
高中素描头像教学中提高嘴部刻画能力的策略探究
基于FAST角点检测算法上对Y型与X型角点的检测
基于Horn-Schunck光流法的多目标反刍奶牛嘴部自动监测
基于边缘的角点分类和描述算法
提升下垂的嘴角 淡化法令纹
基于圆环模板的改进Harris角点检测算法