1.2 相关工作
D’Orazio等人提出一种在全局图像中寻找眼部位置的眼部检测算法,他假设虹膜总是比巩膜要暗,并在Hough变换及几何约束条件下,眼部候选区域便可确定。随后,这些候选区域被传送至神经网络被归为张开和闭合状态。这个方法的主要缺陷是:只有当眼部可见时才可使用,而且在变化的光线下,该方法发挥缺乏鲁棒性。Horng等人研发出一种基于HIS空间的肤色模型进行脸部检测,眼部定位及动态模板匹配。通过眼球颜色信息,该系统可识别并计算眼睛状态,睡着或清醒。如果眼睛闭合超过连续5帧,则判断司机瞌睡。Brandt等人提出一种监控司机疲劳和走神的系统。他使用Viola & Jones算法检测人脸,通过光流动(optical flow)算法计算出司机的状态。Ji等人推出了一种基于NIR光源和立体视觉的疲劳检测系统。该系统可以根据瞳孔明亮效应(bright pupil effect),通过采用图像差的方法为眼睛定位。随后系统统计睁闭眼的时间来构建两个疲劳指标:perclos(眼部闭合时间比例)以及AECS(平均闭眼速率)。Bergasa等人也开发出一种基于红外光的非介入式系统,该系统通过FSM(有限状态机)和包括perclos在内的751个参数对司机的疲劳程度进行分级。
1.3 本文工作
虽然基于perclos的人眼状态检测对司机进行疲劳监控是一种日益完善的无干扰的监控手段,但该方法在夜间操作有很大的局限性,尽管可以凭借红外LED光源来弥补,但据研究表明,LED光源在白天有日光的环境下发挥比夜间逊色不少,这样的话,在阴天车内光线较昏暗的情况下,RGB摄像头很难准确地捕捉人脸的位置并对其进行监控。再者,本文采用的眼部运动观测法虽然能够一定程度上判断眼睛的状态,但许多情况下,司机眼睛尽管没有闭合却依然没有集中足够的注意力,比如司机被窗外的事物所吸引,于是,我们所选用的方法必须同时兼顾到疲劳和注意力两方面,换言之,就是要能够同时判断眼睛的闭合程度及其朝向(同人脸朝向)。本文我们将阐述一种基于Kinect的疲劳驾驶预警方法。而之所以选择Kinect也正是因为它同时具有普通的RGB摄像头和深度摄像头。Kinect是微软在2010年推出的一款xbox360体感周边外设。主要由一个RGB摄像头,两个深度摄像头和4个麦克风组成。Kinect 体感游戏在Xbox 360 上获得很好的评价,2011年6月微软推出了Kinect for Windows SDK Beta,又在今年年初推出了Beta2,可让使用C++、C#或VisualBasic语言搭配MicrosoftVisualStudio2010工具的程序设计师轻易开发使用,从而使将Kinect技术应用于解决如医疗与教育等领域的社会问题的想法成为可能。Kinect的深度测量是基于Primesense公司的光编码技术,且周围环境的光线并不会对该技术造成影响。我们采用RGB摄像头在白天车内光线明亮时来监控司机的面部特征,其中主要是双眼的特征,这一部分主要参考了王欢,王琼,任明武,赵春霞,杨静宇老师的”一种实用的基于眼睛状态识别的驾驶员疲劳检测方法”;同时我们采用了Lu Xia, Chia-Chih Chen and J. K. Aggaxrwal的human detection using depth information中提到的头部定位方法,并自主提出了基于二值图像投影的喉部定位的方法,并根据骨架模型进行了头部姿态分析,同时利用深度图检测头部区域可以减少人脸检测和人眼检测的计算量,提高了识别率。
2 方法概述
本章为本文所采用的方法做一个概述,总结如上图。首先我们在第三章使用Chamfer距离匹配法结合3D半球模型在预处理后的深度图像中找到头部位置。第四章采用现成的眼部检测方法判断驾驶员是否处在疲劳状态。第五章首先介绍了一种基于二值图像投影的喉部定位方法,再根据喉部点和头部点之间的相对位置判断头部的姿态,从而判定司机是否在打瞌睡。并在每章最后一节给出实验结果和分析。最后总结并明确未来的工作方向。 基于Kinect的疲劳驾驶预警(2):http://www.751com.cn/tongxin/lunwen_7607.html