人眼识别在疲劳检测中的应用

2010-08-30 06:10
科技传播 2010年22期
关键词:阀值二值人眼

马 驰

北京航空航天大学软件学院,北京 100083

0 引言

目前,人眼检测的具体方法很多,常用的有:积分投影法、灰度模板法、基于Hough变换方法、红外辅助检测等方法。Hough变换的方法在实时检测的环境中,目标图像序列中眼睛的大小会因人的头部前后和侧向运动而发生变化,参数搜索范围无法实时更新。很多人眼检测的方法都是首先进行人脸检测,本文根据驾驶室中背景简单,驾驶员头部动作较少等特点,提出一种直接进行人眼定位的方法。这种方法在适用范围、准确率等方面有了明显改善。

1 算法描述

1.1 定位眼睛

第一步是初始化。根据差值图像(由每一幅图像和前一幅图像的差值阀值形成)建立二值图像。此二值图像表明了这两幅图像之间运动的区域。一个3×3星型卷绕的核心被滤过在一个开始的形态学操作中,这样做可以消去大量的噪音和因为照明变化带来的自然颤动、Camera的移动和背景的移动。这个形态学操作会产生更少和更大的关联组件(眨眼发生时),这对下一步的准确性和效率很关键。在恢复结果的二值图像的关联组件数目后,我们要实施一个递归的标定过程。组件数目的理想数字是两个(左眼和右眼),如果有其他的运动产生,则会产生多得多的关联组件。这时系统会放弃当前得到的二值差分图像,等待着下一次眨眼再进行操作以保持定位眼睛的效率和准确性。

人眼具有一定的特征,例如宽度、长度和长宽比都有一定的范围。根据每个组件的宽度、高度、和组件对在水平和竖直方向上的距离进行判断,以去除不可能的组件。大量实验得出的数据用于得出最有可能的代表眼睛的组件对。

第二步是创建模板。如果前一个阶段只有一对组件通过了过滤器,那表明我们很有可能成功的得到了眼睛对。如果是这样的话,我们选择其中比较大的来创建模板。因为模板的大小和选中的组件的大小是成比例的。我们选择大的组件是为了得到更多的亮度信息,这样可以得到更准确的追踪和相关数。因为系统会追踪用户睁着的眼睛,因此在眼睛被定位的时刻创建模板是错误的,因为这时用户眨眼了。因此,一旦我们确定眼睛被定位了,计时器就应启动。几帧过后(时间由眨眼过后重新睁开的时间调整),模板被创建。因此,初始化时,假设用户过一段时间就以正常的速度眨眼。我们不需要任何的离线模板,并且在线模板的创建完全独立于任何原来在系统中可能已创建的模板。

1.2 眼睛追踪

我们需要用到模板匹配,因为用户可能会有轻微的移动。追踪需要用到一个标准相关系数。相关系数需要使用下面的公式在每一帧中计算。

F(x,y)是当前帧中点(x,y)的亮度,fu,v是当前搜索区域中帧的平均值。T(x,y)是模板图像中点(x,y)的亮度,t是模板图像的平均值。由公式得到的相关系数在-1到1之间,表明了图像的每一点与模板的相似度。0附近表明相似度很低,1附件表明相似度很高。这个方法的好处是其不太受周围照明情况变化的影响。结果区域表明这种眼睛追踪和眨眼检测在很暗或者很亮的情况下也同样有效。

这种方法需要大量的计算,并且每秒执行30次,因此这种方法限制在眼睛附近很小的区域内。

1.3 眨眼检测

第四步是眨眼检测。眨眼检测和对眨眼周期的观察只依赖于对上一步中相关数观察的结果。例如,眼睛闭上的时候,相关数下降,睁开时,上升。眼睛睁开的时候相关数一般为0.85~1.0,闭上的时候一般为0.5~0.55。我们要特别注意相关数低于0.45的情况,这一般表明把眼睛跟丢了。这种情况下,必须要重新初始化和跟踪。有研究表明:当相关数低于睁眼的阀值时,一个计时器便被启动,当相关数保持低于这个阀值并且高于需要重新初始化的阀值一定帧数目的图像时,此眨眼便会被设定为驾驶员疲劳的标志,便会对驾驶员作出警告。研究表明,一般情况下,人眼闭合时间在0.2s~0.3s之间,如果在驾驶时眼睛闭合时间达到0.5s~3s时,则很容易出现事故[3],因此系统中将上文中判断是否疲劳的图像帧数设为10帧。 将系统判断疲劳的阀值定为0.5s。

2 实验

为验证上述系统的效果,我们需要在不同时间、光照条件、距离、面部表情、面部细节(戴眼镜与否、睁闭眼)、脸部朝向等条件下进行验证。实验共有五人参与,在各种条件下进行测试,共进行1023次测试,37次判断失败,大多是由于这种方法戴眼镜的时候有时因为屏幕的反光无法定位,成功率为96.3%。本系统与cam的距离在1到2英尺之间,并且能在三次自然眨眼之内定位人眼。本系统在各种照明下准确性都一样高。当cam摆放在头部下方时,比较准确。当摆放在头部上方比较远时,这时的角度比较大,眨眼检测不再准确。这是由用户眨眼时所引起的相关数的少量变化引起的。因为这时cam只能看到眼睑。因此,放置cam的时候,最大化睁眼和闭眼时角度的差值对眨眼检测是有利的。

3 结论

从实验结果可以看出,文中提出的眼睛定位、眼睛追踪和疲劳检测方法是有效的,其效果是令人满意的。该算法不同于以往通过定位人脸来定位人眼的方法,减少了计算量,提高了速度和准确率。但是,这些算法仅是在实验室进行了测试,与成功的产品还有一段距离,因此这些方法在可靠性和实用性方面还有待进一步研究。

[1]S A.Nobe,EY.Wang.An overview of recent developments in automated lateral and longitudinal vehicle controls[c].IEEE International Conference on SMC.2001,5:3447-3452.

[2]Qiang Ji and Xiaojie Yang.Real-Time Eye, Gaze, and Face Pose Tracking for Monitoring Driver Vigilance[J]. Real-Time Imaging 8,2002:357-377.

[3]成二康.眼睛状态参数图像检测及其在瞌睡监测中的应用[D],2009-06-01.

[4]张利伟.基于视觉的驾驶疲劳实时检测系统研究[D],2009-05-01.

猜你喜欢
阀值二值人眼
混沌伪随机二值序列的性能分析方法研究综述
支持CNN与LSTM的二值权重神经网络芯片
光敏传感器控制方法及使用其的灭蚊器
人眼X光
人眼为什么能看到虚像
基于二值形态学算子的轨道图像分割新算法
基于小波分析理论的桥梁监测信号去噪研究
激光多普勒测速系统自适应阀值检测算法
基于曲率局部二值模式的深度图像手势特征提取
闪瞎人眼的,还有唇