基于DSP的改进疲劳驾驶检测系统

2014-07-25 07:45廖亚风何小海
网络安全与数据管理 2014年5期
关键词:人眼投影灰度

向 飞,廖亚风,何小海

(四川大学 电子信息学院图像信息研究所,四川 成都 610064)

随着近年来我国汽车数量的快速增长,交通事故的发生变得愈加频繁。而疲劳驾驶往往是造成这些事故的主要因素,因此对防范疲劳驾驶的研究引起了众多学者和机构的广泛重视。研究车载的疲劳驾驶检测系统,实现对驾驶员疲劳状态的监控,在保障驾驶员安全驾驶方面有重要的应用价值和实际意义。

在各种疲劳检测系统中,基于人眼参数的疲劳检测由于其准确率高、受主观因素影响小以及非接触的优点获得了广泛的应用。其检测原理为驾驶员眼睛闭合频率与疲劳程度的相关性,如何准确地定位人眼是该类系统研究的主要问题。目前常用的人眼定位方法有模板匹配法、霍夫变换法以及灰度投影法等[1]。

模板匹配法[2]事先选取人眼的模板,通过在图像中进行匹配来定位人眼。但其准确度十分依赖选取的模板,且定位过程中需要匹配左右两只人眼,计算量较大、实时性差。霍夫变换法[3]提取待检测图像的边缘,用霍夫曼的圆检测法定位人眼。该方法要求边缘提取具有较好的效果,并且图像中的眼球具有明显的圆形特征。这意味着对原图进行大量的预处理,并且当人眼闭合或半闭合时检测率降低。灰度投影法[4]对人脸图像的灰度值进行投影统计,再根据极值点的位置定位人眼。该方法计算量小、运算速度快,但是容易受到眉毛部分的影响。

本文设计了基于TMS320DM642图像处理硬件平台的车载疲劳驾驶检测系统。为了尽量提高系统的实时性、保证驾驶员的驾驶安全,系统采用实时性最好的灰度投影法进行人眼的定位,并在此基础上针对灰度投影法的不足进行了改进。整个疲劳驾驶检测系统实现了对驾驶员疲劳程度的检测,并且有较高的准确率和实时性,具有很好的实用性。

1 系统硬件平台

本系统硬件平台采用DSP芯片TMS320DM642作为核心处理器,外设模块包括视频解码与编码模块、SDRAM内存模块、时钟模块、电源与复位模块等。视频解码模块采用1片SAA7113,将摄像机采集的模拟视频信号解码为 BT656(YCbCr 4:2:2)格式的复合视频信号, 分辨率为720×576。 视频编码模块采用1片SAA7105,将视频口2输出的疲劳检测后的图像信号编码为模拟视频信号。SDRAM模块采用2片MT48C4M32芯片,总空间大小为32 MB。系统通过模拟摄像头采集视频,经由 SAA7113解码送入 DM642的视频口 0,然后将视频数据经由 EMIF(External Memory Interface)搬移到SDRAM中进行处理[6],最后将处理好的视频数据送入视频口2,由SAA7105芯片编码为模拟信号后输出到监视器显示。硬件平台结构如图1所示。

图1 硬件平台结构框图

2 疲劳检测算法的研究

如何提高人眼定位的准确率是疲劳检测的主要研究内容,常用的人眼定位方法有:模板匹配法、霍夫变换法以及灰度投影法等。其中模板匹配法和霍夫变换法定位精度高,但是运算量较大,难以实时检测驾驶员的疲劳程度。灰度投影法算法简单、运算速度快,较为适合本文的实时疲劳检测。根据上述分析,本文采用实时性最好的灰度投影法来定位人眼,并针对常用的灰度投影法进行了改进。针对积分投影算法精度不高和易受眉毛部分干扰的问题,采用了基于人眼特征的改进混合投影算法来实现人眼的准确定位。

疲劳检测主要流程为:肤色分割、人眼定位、疲劳检测。首先在YCbCr空间进行肤色分割,得到人脸肤色区域,并根据人脸“三庭五眼”的特征框定出人眼检测区域;之后在灰度图像的待检测区域内采用改进混合投影算法进行人眼定位,最后对驾驶员的疲劳状态做出判断。算法流程如图2所示。

图2 疲劳检测算法流程

2.1 基于YCbCr空间的肤色分割

本文首先根据人类肤色在YCbCr颜色空间的聚类性,根据各像素的Cb和Cr值将原始图像二值化为肤色区域和非肤色区域。之后根据二值图像和人脸“三庭五眼”的特征,在原始图像的亮度分量中标记出人脸区域和去除了眉毛的人眼检测区域。后续定位只在人眼检测区域内进行,在降低运算量的同时提高了定位的准确率。图3分别为原始图像、肤色分割后的二值图像、框定的人脸区域、以及人眼检测区域。

图3 确定人眼检测区域

2.2 人眼定位

2.2.1 基于人眼特征的改进混合投影算法

传统的灰度投影算法大多采用积分投影实现,该方法根据人眼区域内像素的灰度明显低于其他区域的特性,分别在水平和垂直方向上统计各行和各列像素灰度的均值,并找出均值最小的行和列作为人眼中心位置的水平和垂直坐标,实现人眼中心位置的定位。并进一步以该位置为中心,分别向上下和左右方向查找各自均值的极大值,从而完成人眼上下和左右边界的定位。由于该方法只考虑了灰度的均值变化,因此当某一区域内的灰度均值相同时,无论该区域内各像素点的灰度呈何种分布都无法进行区分[7]。因此人眼定位精度不高且定位结果容易受到眉毛部分的干扰,导致定位不准确。

经分析可知,灰度图像中人眼区域的像素具有其特有的灰度分布特征。在水平投影方向,人眼区域的灰度值变化很剧烈,灰度的方差值很大,且越靠近人眼中心越大。而眉毛附近像素的灰度值变化却较平稳,灰度方差较小,使得人眼和眉毛具有很明显的差异。同时,在垂直投影方向,人眼区域的像素也有相同的分布特性。因此本文采用一种混合投影算法定位人眼,即采用均值函数和方差函数的加权值作为人眼的定位函数,实现对灰度总体分布和局部变化的同时反映。混合投影函数如下:

σ(x)、H(x)和 σ(y)、H(y)分别为垂直和水平方向上归一化后的灰度方差和均值[7]。

进一步分析可知,该混合投影函数无论是在水平还是垂直方向上,积分项和方差项所占的权重均相同,不具有真实人眼的灰度分布特征。人眼区域的灰度在水平方向上变化明显,具有很强的方差特征;而在垂直方向上变化相对平稳,均值特征更为明显。因此本文分别对水平投影和垂直投影中的积分项和方差项赋予不同的权重,水平混合投影增大方差项σ(y)的权重,而垂直混合投影则增大积分项H(y)的权重。经过多次反复试验,发现当采用式(3)和式(4)的权值时,人眼定位的效果最好。故最后确定的改进投影函数如式(3)、(4)所示。

2.2.2 人眼定位步骤

人眼检测区域主要包含人眼和眉毛部分,其中眉毛会对人眼的定位产生影响。由于人眼的水平投影具有很大方差,和眉毛有明显区别。故先水平投影确定人眼上下边界后,再在该边界内垂直投影确定人眼左右边界,以减小眉毛对人眼左右边界定位的影响,实现人眼的准确定位。由于在行车过程中驾驶员会不停转动头部,会出现只能检测到一只人眼的情况。因此本文只检测更接近画面中心的一只人眼,根据双眼状态的一致性,另外一只人眼也应该具有相同的睁闭状态,这样既提高了检测准确率,也降低了运算量。

具体步骤如下:

(1)计算框定的人脸区域左边界到人眼检测区域左边界距离Ll,以及人脸区域右边界到人眼检测区域右边的距离Lr。若Ll≤Lr,则说明驾驶员头部向左转动,此时右眼更接近画面中心,后续步骤中只定位右眼。反之,则定位左眼。

(2)在人眼检测区域内进行水平投影,查找投影最大值出现的行,该行即为人眼垂直中心位置。再从该位置分别向上和向下查找投影极小值出现的行,得到人眼的上下边界 Eyeup、Eyedown。

(3)在人眼上下边界内的人眼检测区域中进行垂直投影,得到人眼的水平中心位置和左右边界Eyel和Eyer,完成人眼的定位。

实验过程中采用基于人眼特征的改进混合投影算法分别对多个角度的人脸进行了人眼定位,并与积分投影定位和传统混合投影定位进行了结果对比,结果如图4所示。实验结果表明:由于只对灰度总体分布进行统计,使得传统的积分投影定位容易受到眉毛的干扰,甚至将眉毛误检测为人眼;而传统的混合投影由于没有考虑人眼区域特有的灰度分布特征,使得对于人眼边界的定位精度不高;而本文所采用的投影算法能够更加准确地对人眼各边界进行定位。

图4 三种不同定位方法定位人眼结果

2.3 疲劳检测

本文采用PERCLOS算法来判断驾驶员的疲劳程度[8]。PERCLOS即单位时间内人眼闭合时间所占百分比,在本文中的计算公式为:

本文定义人眼区域的上下边界之差Eyeup-Eyedown即为人眼高度eyeH,当eyeH小于1/5最大值时认为人眼闭合。设定为每隔100帧计算一次PERCLOS值,当PERCLOS值大于0.4时判断驾驶员处于疲劳状态。

3 疲劳检测结果与分析

本文在实验室环境下分别对包括作者在内的4名测试者进行了疲劳检测。测试中,每名测试者分别处于清醒状态和模拟疲劳状态,如图5、图6所示。测试者在清醒状态下保持正常的眨眼频率,在模拟疲劳状态时减慢眨眼频率。在测试过程中,测试者实际闭眼200次,程序实时统计PERCLOS值和人眼闭合次数,计算一次PERCLOS值的间隔设定为100帧。检测效果如表1所示。

图5 清醒状态检测效果

图6 模拟疲劳状态检测效果

表1 疲劳检测结果统计表

实验表明当测试者处于清醒状态时,系统检测出的PERCLOS值均小于0.4,当测试者处于模拟疲劳状态时,PERCLOS值均大于0.4,在两种状态下均未出现错检情况。实验中本系统疲劳检测帧率为21.8帧/s,而传统积分投影为22.3帧/s。测试结果表明本系统能够准确地判断驾驶员的疲劳状态,且具有很好的实时性,能够满足车载疲劳驾驶检测的需求。

针对车载疲劳驾驶检测的应用,本文设计了基于TMS320DM642的驾驶员疲劳驾驶检测系统。首先在YC bCr色彩空间进行肤色分割并框定出人眼检测区域,再采用基于人眼特征的改进混合投影算法定位人眼,最后根据定位出的人眼的高度检测驾驶员的疲劳状态。实验表明该系统检测准确率高、实时性好,具有较高的实用价值。

[1]孙晓玲,侯德文,储凡静.人脸识别中的眼睛定位方法[J].计算机技术与发展,2008,18(10):46-48.

[2]王江波,李绍文.基于 Adaboost算法和模板匹配的人眼定位[J].计算机测量与控制,2012,20(5):1347-1349.

[3]刘念,苏杭,郭纯宏.基于Hough变换圆检测的人眼定位方 法 改 进[J].计 算 机 工 程 与 设 计 ,2011,32(4):1359-1362.

[4]刘纪红,李中帆.基于视频的人眼跟踪方法研究[J].小型微型计算机系统,2012,33(9).

[5]JAIN A K, HSU R L, MOHAMED A M.Face Detection in Color Images[J].IEEE Transactions on Pattern Analysis and Machine Intelligence, 2002, 24(5):696-705.

[6]王跃宗,刘京会.TMS320DM642 DSP应用系统开发与设计[M].北京:人民邮电出版社,2009.

[7]耿新,周志华,陈世福.基于混合投影函数的眼睛定位[J].软件学报,2003,14(8):1394-1400.

[8]WIERWILLE W.Research on vehicle based driver status/performance monitoring: development, validation, and refinement of algorithms for detection of driver drowsiness[R].Washington, DC: National Highway Traffic Safety Administration,1994.

猜你喜欢
人眼投影灰度
采用改进导重法的拓扑结构灰度单元过滤技术
解变分不等式的一种二次投影算法
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
基于最大相关熵的簇稀疏仿射投影算法
人眼X光
找投影
找投影
人眼为什么能看到虚像
基于最大加权投影求解的彩色图像灰度化对比度保留算法
闪瞎人眼的,还有唇