【最终版】防疲劳驾驶的图像处理预警系统(方案书)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

序号:

编码:

2010年“丁颖杯”课外学术科技作品竞赛

方案书

作品名称:防疲劳驾驶的图像处理报警系统

学院名称:工程学院

申报者姓名

(集体名称):蓝江林、薛昆南、严沛权、汤永亨、程英杰、

邱德鸿

类别:

□自然科学类学术论文

□哲学社会科学类社会调查报告和学术论文

科技发明制作A类

□科技发明制作B类

防疲劳驾驶的图像处理预警系统

摘要

随着社会经济的发展,机动车辆与日俱增,由驾驶疲劳引起的交通问题越来越受到人们的关注。因此,为减少疲劳驾驶而引起的交通事故和保障人们的人身安全,研究有效的方法来实时检测驾驶员的疲劳状态是非常必要和具有重要意义的。

尽管目前已有一些简单的防疲劳驾驶的检测方法,但是具有非接触式的、实时性的、高灵敏度和可靠性防疲劳驾驶的监测方法至今在国内尚未得到很好的解决。

本文主要研究了疲劳驾驶的预警问题。本文针对疲劳驾驶检测技术的难点,提出防疲劳驾驶图像处理预警系统的合理性能指标(友好性、实时性、可靠性、鲁棒性);根据系统的性能指标确定疲劳驾驶检测方法、图像处理器和图像处理算法的最优方案,此方案是基于DSP的具有非接触性、实时性等特点防疲劳驾驶数字图像预警系统;最后,介绍系统的实现原理与功能。

本设计是通过在视频中使用Kalman法对人脸进行自动跟踪,找出眼部图像,然后利用DSP进行一系列图像处理,最后得到眼睛的二值化图像,从而判断出眼睛开合状态或眨眼频率。根据采集的数据,结合PERCLOS法来判断驾驶员是否出现疲倦,并在出现疲倦特征的时候做出警告。如果在多次警告后驾驶员的精神状态依然没有改善的情况下,系统会自动降低车速,并通过汽车后窗上的电子屏以文字“疲劳驾驶,正在减速,请您留意”提示,以保证行车安全。同时,系统还会持续地发出警告,直到驾驶员重新复位系统。而且,该系统还具有行车记录功能,每秒钟都会把当前行车的部分数据,如当前时间、车速、驾驶员眨眼次数、精神状况等记录下来。

本文的亮点在于:所设计的系统具有非接触性,实时性等特点,而且具有行车记录功能,且汽车后窗上用电子屏显示提醒后面的司机,共同注意疲劳驾驶,很人性化。

关键词:疲劳驾驶人脸自动跟踪疲劳判断 DSP 预警系统

目录

1前言 (1)

1.1 背景及意义 (1)

1.2 疲劳驾驶检测技术的研究难点 (2)

1.3 本作品较为突出的难题 (2)

2 功能与指标. (2)

2.1 功能介绍 (2)

2.2 指标介绍 (3)

2.2.1 性能指标 (3)

2.3.2 指标介绍 (3)

3 方案论证及其选择 (3)

3.1 防疲劳驾驶检测方法的方案论证 (3)

3.2 图像处理器方案论证 (4)

3.3 图像处理算法方案论证 (5)

4 防疲劳驾驶的数字图像预警系统的设计 (5)

4.1系统基本框架 (5)

4.2硬件结构 (6)

4.3软件结构 (7)

5 人脸检测 (8)

5.1 肤色建模 (8)

5.2 肤色模型的选择与建立 (8)

5.3 肤色相似度分割 (11)

5.4 阈值的选取及二值化 (11)

5.5 肤色区域的验证 (12)

6 基于卡尔曼(Kalman)滤波的人脸区域跟踪 (13)

7 人眼定位 (14)

7.1 人眼粗略定位 (14)

7.2 人眼精确定位 (15)

8 驾驶疲劳判定 (15)

8.1 PERCLOS的测量原理 (15)

8.1.1 PERCLOS测量模型 (15)

8.1.3 PERCLOS方法的三种标准 (16)

8.1 PERCLOS与眨眼频率相结合的疲劳分析 (16)

9 单片机控制部分 (16)

9.1 电路原理图 (17)

9.2 实现功能及工作流程 (19)

10 总结与展望 (19)

11 参考文献 (21)

12 附录 (22)

1 前言

疲劳驾驶是当今交通安全的重要隐患之一。驾驶人在疲劳时,其对周围环境的感知能力、形势判断能力和对车辆的操控能力都有不同程度的下降,因此很容易发生交通事故。统计数据表明,在2007 年至2008 年我国直接由疲劳驾驶导致的死亡人数分别占机动车驾驶人交通肇事总死亡人数的11.35% 、10.91% 和12.5%]1[,大约每年有9000 人死于疲劳驾驶。因此,研究开发高性能的驾驶人疲劳状态实时监测及预警技术,对改善我国交通安全状况意义重大。

在智能化技术迅猛发展的今天,汽车驾驶也在朝着智能化、安全化的方向发展,对驾驶员的疲劳状态的检测已成为汽车智能辅助驾驶的关键技术。

1.1 背景及意义

随着社会经济的发展, 机动车辆与日俱增,随之而来的行车安全问题越来越受到人们关注。根据美国印第安那大学对交通事故原因的调查研究发现:85%的事故与驾驶员有关,车辆和环境因素只占15%]2[。同时有资料表明,高速公路发生的交通事故中,有50%以上是由于长时间疲劳驾驶或所见目标单调使司机注意力不集中、甚至打瞌睡等原因造成的。驾驶员在事故发生前一瞬间的行为故障直接导致了事故的发生,这些行为包括知觉的延迟、对环境的决策错误、对危险情况的处理不当等。在所有的驾驶员错误中,最常见的是知觉错误和决策错误,这些错误会产生注意力不集中、反应迟钝、操作不当等,产生这些错误的根本原因是疲劳驾驶。如图1给出了驾驶疲劳导致错误的驾驶行为操作,进一步导致交通事故的示意过程。

疲劳驾驶是指驾驶员由于睡眠不足或长时间持续驾驶造成的反应能力下降,这种下降表现在驾驶员困倦、打瞌睡、驾驶操作失误,警觉能力下降或甚至完全丧失驾驶能力,从而让交通安全事故发生的机会大大增加。驾驶疲劳反映在生理和心理两个方面,生理反应包括神经系统的功能、血液和眼睛的变化;心里反应包括反应时间延长、注意力分散、动作不协调。

图1 驾驶疲劳导致错误的驾驶行为操作分类图

要降低交通意外的发生,最重要的一个途径就是防止驾驶员疲劳驾驶。而要防止疲劳驾驶,最重要的一点是要时刻监测着驾驶员的精神状况。因此,如何检测驾驶员的精神状态并实时发出疲劳预警信号及采取相应的措施,已成为疲劳驾驶问题的重要举措。

1.2 疲劳驾驶检测技术的研究难点

疲劳驾驶检测技术的难点主要表现在:车祸往往发生在一瞬间,要避免交通事故,需要迅速、准确、及时地对处于疲劳驾驶状态的司机发出警告,因此,疲劳驾驶报警装置应具有很好的实时性;由于大部分监测传感器为接触性的,在行车过程中会造成驾驶员不适或影响驾驶员操作,因此,检测驾驶员的精神状况,最好是用非接触式检测方法;另外,性能良好的疲劳报警装置应具有很高的灵敏度、可靠性以及良好的性价比。所以,软件方面,如何改进已有的疲劳检测方法,在保证监测结果准确性的同时提高算法的运算速度是目前所要解决的主要问题。硬件方面则需要对装置的性价比和硬件速度等方面进行改进。

1.3 本作品较为突出的难题

(1)人脸的自动跟踪

本作品所介绍的防止疲劳驾驶测试系统是以车速作为触发的。当车速低于70km/h时,系统处于休眠模式,不会对人眼进行监测。当车速超过这个阀值时,系统就会进入检测模式,开始对驾驶员的精神状态进行监视。驾驶员的脸不可能一直保持在同一个位置,所以监视时如何自动找到跟踪人脸便是疲劳检测的首要解决的问题。初步确定可利用Kalman自动跟踪人脸。

(2)人眼开合状态的检测判别

眼睛在脸部的相对位置基本能找出眼睛的位置,但系统要有普遍适用性,所以对于不同驾驶员的眼睛来说,根据相关文献,用模式识别的话分类得到的结果起伏比较大,稳定性不好,所以要找到稳定性好的识别方法。同时检测速度要快,因为眨眼时间很短,容易漏判。所以也要求检测判别要快。

(3)汽车自动减速

当几次声音预警提示后,驾驶员精神状态仍未改善的话,系统进入车速自动控制模式。通过控制模块将车速自动减慢到60km/h。减速要做到及时,而且不能减到低于60km/h,因为高速公路上车速最低为60km/h,再低容易出交通事故。

2 系统功能与指标

2.1 功能介绍

本设计是通过在视频中对人脸进行自动跟踪,找出眼部图像,然后利用DSP进行一系列图像处理,最后得到眼睛的二值化图像,从而判断出眼睛开合状态。根据采集的数据判断出驾驶员是否出现疲倦,并在出现疲倦特征的时候做出警告。警告是高音量的声音提醒,以便驾驶员听到。打瞌睡报警反应时间是2-3秒(高速路2秒,市区路3秒),报警次数为3次长声,其他情况(如看后视镜时间过长)报警反应时间是5-7秒,报警次数为3次短声,如果在多次警告后驾驶员的精神状态依然没有改善的情况下,系统会自动降低车速,并通过汽车后窗上的电子屏以文字“疲劳驾驶,正在减速,请您留意”提示,以保证行车安全。同时,系统还会持续地发出警告,直到驾驶员重新复位系统。

另外,本系统还有防止驾驶员开车的时候左顾右盼的功能,当摄像头在一定时间(设为3秒)内追踪不到人脸,即认为是驾驶员头部没有正对着前方,这时系统也会给予相应的声音提示报警,直到驾驶员头部重新正对着前方。

最后,该系统还具有行车记录功能,每秒钟都会把当前行车的部分数据,如当前时间、

车速、驾驶员眨眼次数、精神状况等记录下来。相当于汽车的“黑匣子”。

2.2 指标介绍

2.2.1 性能指标

1)友好性:安装灵活方便,非接触,不影响驾驶员的注意力,使驾驶员易于接受;

2)实时性:交通工具一般具有较高的行驶速度,检测系统必须快速检测驾驶员的疲劳状态,

并及时发出警告才可能避免交通事故发生;

3)可靠性:具有高准确率和低虚报警率的系统才能达到提高驾驶安全性的目的;

4)鲁棒性:检测系统必须适应各种工作环境和条件,比如说系统要具有全天候工作的性能。

2.2.2 指标介绍

1) 当车速低于70km/h 时,人脸跟踪系统不启动;当车速超过这个阀值时,系统就会进入检

测模式;

2) 当驾驶员眼睛持续闭合2秒且PERCLOS >0.4,发出一次警告;

3) 当驾驶员在一分钟内眨眼次数超过20次,发出一次警告;

4) 当一分钟内眨眼帧率

,发出一次警告; 5) 当警告次数累积到8次,而驾驶员没有对系统进行复位,系统就会自动控制模式,直到

车速低于60km/h 为止,以保证驾驶员的安全。

3 方案论证及其选择

科学评价方案是科学决策的前提,在方案论证时应根据设定的科学指标的来对方案进行客观、公正、合理的全面评价,并从中选取最优方案。

本文从疲劳驾驶检测方法、图像处理器、图像处理软件这三方面分别进行方案论证,并以上面设定的系统性能指标为标准,最后得到最优方案。其示意图如下图3所示:

图2 方案论证及选择

3.1 疲劳驾驶检测方法的方案论证

目前,疲劳驾驶的检测方法有很多,各自具有自己的优点和缺点,按照检测原理的不同,可以将驾驶疲劳方法划分为三类。通过对比分析各类检测方法,根据疲劳驾驶检测系统的要求,从中选择合理科学的检测方法。

方案一: 基于交通工具行为特征的检测方法

这种方法通过直接监视车辆行驶状况,比如行驶速度、车辆行驶轨迹是否偏离轨道等,

0g g

来检测驾驶员的注意力集中状态。虽然这些监控技术是非干扰性的,但是他们视车型,驾驶员经验,路面状况而不同。而且,这些技术需要大量的时间去分析驾驶员的行为,因此,无法准确检测疲劳状况。

此检测方法的优点:非接触;缺点:这些参数与交通状况及车辆的类型有关,难于制定一个统一的标准,而且实时性不够强。

方案二:基于驾驶员生理参数的检测方法

主要是从医学角度出发,借助一些医疗设备对驾驶员的部分生理指标(如:脑电波形、心电波形、肌电波形、眼电波形等)进行检测,通过对这些生理指标的变化过程进行分析来确定驾驶员的疲劳程度。其中主流的生理测量方法是使用脑电仪、心电图、肌电图等。通过安装在方向盘上的探测装置来感知脉搏跳动,利用软件实时进行分析,检测驾驶员出现的疲劳状态,并通过各种装置向驾驶员发出警告。

此检测方法的优点:生理学的方法最具有说服力;缺点:实时测量具有较高难度,有身体接触,对驾驶员的正常操作造成干扰,实用性不强。

方案三:基于驾驶员行为特征的检测方法

从人体疲劳特征的研究结果来看,疲劳驾驶的典型反应包括:眼帘的频繁眨动;瞳孔逐渐变小,甚至闭合;哈欠增多;头部前倾或后仰;方向盘微调,驾车左右摇摆;反应能力下降等。从刚才提到的各种疲劳驾驶典型反应来看,监测瞳孔变化的难度很大,监测头部运动状况,方向盘微调等又很难用一个量化的标准去衡量。而监测眼睛眨动状态比较容易跟踪,眨动次数和眼睛闭合情况也可以清晰地监测出来。因此,通过监测眼睛状态来判断驾驶员是否处于疲劳状态这种方法,相对来说是最有效直观的。

此检测方法的优点:非接触,效率高,直观;缺点:图像处理数据量大。

方案选择及其理由:综上所述,方案三最适用于检测驾驶员的精神状况。随着数字图像处理技术的发展,可以利用图像处理技术来实时监控驾驶员精神状况,而不影响驾驶员的操作。只需通过摄像头持续不断地检测和捕捉驾驶员的眼睛,结合图像处理器提取其特征信息并进行处理,可以较为有效地分析出驾驶员的精神状态。

3.2 图像处理器方案论证

由疲劳驾驶检测方法的论证可知,我们采用了基于驾驶员行为特征的测量方法,也就是采用数字图像处理技术来检测驾驶员的精神状态。以下我们进行图像处理器的方案论证:

方案一:使用ARM和嵌入式操作系统来实现

使用ARM和嵌入式操作系统来实现.虽然ARM的速度比较快,达到将近500Mhz,但是由于用于图像处理的算法比较复杂,浮点运算比较多,而大部分ARM处理器没有硬件浮点运算器,浮点运算靠的是软件,这样会对系统的实时性造成很大的影响。

优点:运算速度快;

缺点:不善于浮点运算,实时性不够。

方案二:使用PC机

PC机的运算能力足够快,内存空间也足够大,符合图像处理对要求。而且在PC平台上,有不少关于图像处理和视觉识别方面的函数库可以去调用,这样子可以大大地减轻了开发难度。

优点:运算速度快,开发容易;

缺点:难以安装到汽车上。

方案三:使用DSP(数字信号处理器)

DSP由于具备硬件浮点运算器,速度能大大提高,DSP在图像处理方面相当强大,但DSP 的开发难度相对比较大,成本较高。有些在计算机平台上的关于视觉识别的函数库可以要移植到DSP上,可以减少开发时间。

优点:浮点运算强,实时性强,能将计算机平台上的视觉识别函数库移植到DSP上;

缺点:开发难度大。

?方案选择及其理由:综合从开发时间和实时性这两方面考虑,我们结合方案二和方案三

对采集的信息进行处理,从而更高效率地对驾驶员的精神状况进行实时判别。

?使用PC机,能减少开发时间;将计算机平台上关于视觉识别的函数库移植到DSP上,减

少DSP开发的难度;利用DSP浮点运算强的特点,增强疲劳检测判别模块的实时性。3.3 图像处理算法方案论证

方案一:

采用模式识别的方式在图像中寻找眼睛的位置,然后使用Gabor滤波器的特征提取算法,即将Gabor滤波器与眼睛图像进行卷积,提取特征矢量:Gabor特征。然后,对高维空间中的Gabor特征通过特征选择和压缩的方法投影到低维空间中。再与训练好的人眼数据进行比较,采用k均值距离分类器进行分类,从而判断出眼睛的开合度。

方案二:

采用模式识别的方式在图像中先找出人脸的位置,并对人脸进行追踪,在归一化后的人脸图中根据眼睛在脸部的相对位置,基本能找出眼睛的位置。再对眼睛图像进行一系列的图像处理,最后通过处理得到的二值化图像判断眼睛的开合度。

由于人脸在整个图像中所占的比例比较大,追踪起来比较容易,检测的准确率相对比较高。而通常驾驶员在驾驶的过程中头部摆动的角度都比较小的,根据眼睛在脸部的相对位置,基本能找出眼睛的位置。然而用模式识别找眼睛的话,对眼睛的样本要求比较严格,而且在测试过程中发现,对于不同测试者的眼睛,分类所得的结果起伏比较大,稳定性没有二值化处理的好。再次,Gabor特征提取的速度比较慢,而眨眼的时间却很短,容易漏判。

4 防疲劳驾驶的数字图像预警系统的设计

本章主要介绍防疲劳驾驶的数字图像预警系统整体设计框架,概要介绍系统的硬件整体结构以及软件整体结构。本文将在第五、六、七章分别对系统的各部分进行详细阐述。

4.1 系统基本框架

疲劳驾驶预警系统的设计框图如下图2所示:

图3 系统基本框架

系统主要由图像采集、图像处理和报警控制模块构成。基本工作原理是:先由CCD采集连续的模拟信号,并经过图像采集模块中的A/D转换,变成数字图像信号,然后再由图像处理模块DSP处理器对数字图像信号进行运行处理,主要包括图像预处理(光照补偿、中值滤

波、肤色特征检测、去除假脸)、图像分割、人脸特征提取、识别等算法的实现,然后根据检测出来的眼睛闭合时间、半开半闭的持续时间和眨眼频率和PERCLOS等线索判断驾驶员疲劳状态,并通过输出模块报警及执行相应的操作。本文主要是研究在DSP上实现的工作,并借助计算机辅助,减少开发时间。

4.2 硬件结构

基于DSP的防疲劳驾驶的数字图像预警系统构成框架如下图3所示:

图4 数字图像预警系统构成框架

一个完整的防疲劳驾驶的数字图像预警系统,应具备图像信号的采集功能、图像数据存储、对图像的处理和分析功能、对视频图像进行实时显示的功能。因此,一个基于DSP的防疲劳驾驶的数字图像预警系统可由以下五个部分构成:视频图像的采集、各种同步逻辑控制、视频图像的分析和处理、结果的显示、报警及控制车速模块和电源。以下对这五个部分进行说明:

(1)图像采集

图像采集是将CCD摄像机采集到的人脸和眼睛图像,经过高精度的A/D转换后得到的数字人脸和眼睛图像。

(2)可编程逻辑器

可编程逻辑器包括FLASH、SDRAM和CF卡三部分。FLASH存储器具有可在系统进行带电擦写,掉电后信息不丢失的功能,用它来保存系统自启动代码以及系统程序代码。SDRAM 存储器的存取速度较高,用它来存放系统运行时的代码以及临时数据图像。CF卡接在EMIF 的CE2空间,用来存储原始图像数据和识别结果。

(3)图像分析和处理

从开发时间和实时性这两方面考虑,本作品结合PC机和DSP对采集的信息进行处理,从而更高效率地对驾驶员的精神状况进行实时判别。PC机使用,能减少开发时间;将计算机平台上关于视觉识别的函数库移植到DSP上,减少DSP开发的难度;利用DSP浮点运算强的特点,增强疲劳检测判别模块的实时性。

数字多媒体处理器TM320DM642(参数及功能详见附录)属于TI公司C6000系列,是一款新型高性能的DSP,它是整个眼睛检测和疲劳识别系统的核心。它的任务是对得到的数字眼睛图像进行处理和识别,将处理的数据存入数据存储器,将识别的结果送到LCD显示器进行显示。

(4)图像显示、报警及车速控制

图像显示部分采用LCD。报警器采用扬声器输出。DSP通过与车体连接的速度控制通道控制汽车速度。

(5)电源

电源在系统的硬件部分中占有重要的地位,它将影响到整机能否可靠运转。其中,要着重考虑以下两点:第一、要有一套保证DSP芯片内核的I/O能同时上电的解决方案,这样避免对芯片造成损害。本系统采用D型边沿触发器来开关电源输出,很好的解决了这个问题;第二、在高速电路板中,开关的电磁辐射和线路噪音会干扰期间的实际工作电压,而DSP芯片一般要求工作电压偏差不超过5%,否则,长时间工作在非正常工作电压易缩短芯片寿命,甚至烧毁。因此,本系统中特别设计了电源监控电路来实时监控电压。

4.3 软件结构

DSP在接收到采集的原始图像后,将调用疲劳检测程序进行处理。采用了模式识别的方式、由粗到精的策略检测人脸的特征,由于没有红外照明的“亮点”效应,在整幅图像中直接检测眼睛特征难度较大。所以在本系统中,先检测出驾驶员脸部区域,然后再两部区域中分析眼睛特征,并根据驾驶员脸部运动的特点,采用了基于Kalman滤波的人脸跟踪方法,进一步提高了驾驶员脸部区域的检测速度。最后通过处理得到的二值化图像判断眼睛的开合度,根据检测出来的眼睛闭合时间和眨眼频率等线索判断驾驶员疲劳状态。当连续多帧不能正常检测出眼睛的状态时,系统能够自动重新初始化,开始新的检测周期。

疲劳检测模块是本文主要内容,包括以下四个步骤:

(1)对采集的图像进行预处理,包括光照补偿、中值滤波等;

(2)对补偿后的图像通过肤色特征检测、去除假脸、定位人脸,并采用Kalman预测跟踪;(3)通过人脸检测算法得到的眼睛的睁闭程度,计算眼睛状态特征,包括眼睛闭合时间,眨眼频率和PERCLOS等,并对比个参数与疲劳度的相关关系;

(4)若判断为疲劳状态,传出相应报警信号并进行相应车速控制,并处理下一帧图像。

疲劳检测流程图如下:

图5 疲劳检测流程图

5 人脸检测

本系统采取由大到小、有整体到局部的方案进行人眼的搜索。如果整张图像作为人眼状态识别的输入,由于背景太多,使得识别中的有用信息太少,会使人眼状态的识别错误率大大增大。因此,需要对图像进行检测判断,先找到人眼的准确位置,在进行分割和预处理,最后加以人眼的状态识别。如果找不到正确的人脸位置,后续的疲劳识别便无法进行,故人脸的获取是后续工作开展的前提。

肤色信息是人脸的一个重要特征信息,该信息不受面部表情、角度等细节的影响,具有

很高的稳定性,而且肤色能够与大部分的背景颜色相区别,此外肤色检测的运算量较低,执行效率高,因此用肤色信息来实现人脸检测和定位,具有很高的鲁棒性和实用性。

故本节内容可分为人脸定位和人眼定位。人脸定位:利用肤色在YcbCr 颜色空间中的聚

类特性,通过高斯拟合肤色,得到肤色区域,然后通过滤波,标记最大连通图的方法选定人脸区域。

5.1 肤色建模

用数学表达式明确规定肤色范围是一种简单的肤色建模方法。规定肤色范围虽然快捷,

但要取得好的效果需要解决2个问题:

1)如何选择合适的颜色空间;

2)怎么样确定规则中的参数。选择颜色空间不仅要考虑肤色样本在颜色空间中的聚集程度,

还要注意在该空间的色域。因为有些颜色空间的色域没有规则边界。

高斯分布模型

高斯密度函数估计是一种参数化建模。可以用单峰高斯模型SGM 或混合高斯模型GMM 。

1)单峰高斯模型

这种方法是假设肤色分布服从单峰高斯分布。它主要通过统计分析,预测高斯分布的参

数,其中参数确定常用的方法有EM 算法,Maximum-Likelihood 或通过统计直接求得彩色空间中每一分量的均值与方差。采用这种方法也分为两步:首先选择方法确定模型的参数(即均值和方差);其次利用该模型来判别新的像素或区域是否为肤色。

2)混合高斯模型

由于具有不同种族的肤色直方图并不完全满足单峰高斯分布,通过研究可以采用多峰的

高斯分布来精确表示。因此,提出了混合高斯模型,如下式所示:

1()()(|)m

i i i p x P p x ωω==∑

其中,()p x 为肤色像素在彩色空间中的混合概率密度:(|)i p x ω为分量的概率密度;()i P ω为分量的先验概率;1,2,

,i m =为混合密度的分量个数。该模型表明肤色的每个像素密度都

属于概率密度的混合体。 5.2 肤色模型的选择与建立

在色彩空间中不同色调的物体聚类在各自不同的色带中,由此可以利用色彩信息在图像中快速地检测出相应的目标。在用于人脸检测的图像中,脸部所在的肤色区域通常总是与图

像的其他部分在颜色上存在差异,能从色度信息上很好区分开,进而从图像中分割出来。

目前应用最广的色彩空间有RGB格式、HIS格式和YcbCr格式。综合考虑RGB格式、HIS格式以及YcbCr格式色彩空间不同特点,选用YcbCr色彩空间来建立肤色模型,原因在于通过大量肤色聚类实验发现色彩空间下,肤色的亮度分量Y与Cb,Cr相对无关,通过对CbCr的二维子空间操作,可以得到使用的肤色聚类模型。相对于传统的肤色模型,此方法能适合各种不同肤色特征,受光影响更小,具有较强的鲁棒性。

YcbCr色彩空间具有如下优点:

1)YcbCr色彩格式具有与人类视觉感知过程相类似的构成原理;

2)YcbCr色彩格式被广泛应用到电视显示等领域中,也是许多视频压缩编码,如MPEG、JPEG 等标准中普遍采用的颜色格式;

3)YcbCr色彩格式具有与HIS等其它色彩格式相类似的将色彩空间中的亮度分量解出来的优点;

4)相比HIS等其它一些色彩格式,YcbCr色彩格式的计算过程和空间坐标表示形式比较简单;5)实验表明在YcbCr空间肤色的聚类特性比较好。

YcbCr色彩空间的这些特点在人脸检测的肤色分割中具有较高的使用价值。在本文中,选用YcbCr色彩空间作为肤色分布统计的映射空间,根据人脸肤色在该空间的统计分布特性提出一种基于相似度的人脸检测方法。

肤色样本选择合适与否将直接决定着人脸检测的工作效果。为了准确统计出人脸区域的肤色聚类特征,选取了各种彩色人脸图片作为人脸肤色样本的采集源,其中包括了不同光照、性别、年龄和人中(主要以黄种人、白种人和印第安人为主,如下图所示)以使统计的肤色分布更具有代表性。

图6 不同人种肤色在CbCr空间的分布

图6表明:不同亮度的人脸肤色在YcbCr彩色空间中,在忽略亮度分量影响情况下,其

色度分量Cb 和Cr 的分布趋于一致,而且集中在一个较小的区域里,本文将采样的道德肤色样本中的每个肤色像素点的R,G,B 值转换到YcbCr 色彩空间,得到每个肤色像素点的色度值(Cb ,Cr )。并且CbCr 区域分布如下图所示。

图7 肤色像素在CbCr 区域的分布

从图7可以得出结论:肤色像素在CbCr 空间上具有较好的聚类性,并且符合二维高斯分布,采用YcbCr 色彩空间可以不用考虑不同的肤色对肤色模型CbCr 中的聚合。

由于通过采样达到的是离散的点,如果直接通过像素Cb ,Cr 的值来判断是否为肤色像素

是不现实的,故需要通过数学的方法建立一个模型得到1个函数,输入为1个像素的Cb ,Cr 值,输出为该像素是肤色像素的概率或者直接设置阈值输出判断。下面确定二维高斯模型G (m ,C )中的位置参数,具体计算公式如下:

1

1

2,2,(,)11[()()]i i r

b r r b b T

r b N

r r i N

b b i C C C T C C C m C C C C N C C N C E x m x m σσσσ=====??=--=??????

∑∑ X 是每个像素点的色度向量;第一个分量是Cr ;第二个分量是Cb ;m 和C 分别是统计出

来的均值和方差。然后通过实验求出均值和方差,得到的肤色分布高斯模型如下:

图8 肤色分布的高斯模型

5.3 肤色相似度分割

根据以建立的肤色模型,计算人脸图像中所有像素点颜色与肤色的可能性大小,即相似度大小,其取值范围为[0,1],相似度计算公式如下所示:

1(,)exp[0.5()()]T r b P C C x m C x m -=---

其中[,]T

r b x C C =为像素点在CbCr 空间中的向量。

计算完毕后,对所求的每个P (Cb ,Cr )值进行归一化处理,即将每个P (Cb ,Cr )值除

以该图像中最大的P (Cb ,Cr )值,这样就使得各像素的相似度的值在[0,1]之间,并且是肤色区域亮度更加突出。该值越大,表示属于肤色的可能性也越大,反之越小。 5.4 阈值的选取及二值化

在完成肤色相似度分割之后,接下来进行二值化。二值化阈值的选取非常关键。目前国

内为学者针对这一课题进行了广泛深入的研究和大量实验,提出了各种各样的阈值处理技术,包括全局阈值、自适应阈值、最佳阈值等。本文主要通过自适应阈值法,将相似度图像进一步转化为二值图,其中0,1分别表示非肤色区域和肤色区域。

由于真正的肤色像素相比于非肤色像素往往拥有更高的亮度,所以可以设定一个阈值,当该点像素的相似度高于这个阈值,则认为该点为肤色像素并置1;若低于该阈值则置0。但由于不同的图片中人的肤色是不相同的,而且不同人种的肤色有一定的差异,如果阈值取得太大,许多皮肤区域将无法检出,造成漏检;若阈值取得太小,肤色的数量就会增加,并有部分非肤色像素加入,起不到排除非肤色点的作用。故在设定阈值时需要对每一张不同的图片计算出自适应阈值,该阈值应该能够最优地区分肤色与非肤色像素。

在本文采用的方法是让阈值从0.65开始减少,每次减少0.1,直到0.05为止,并记录下每次阈值变化时属于肤色像素数量的变化,然后找出属于肤色像素数量变化最小时的那个阈值作为最优阈值,如得到在从0.45减少到0.35区间时肤色像素数量增加最少,则优化后的阈值为0.40。阈值分割比较结果如下图所示:

图9 阈值分割比较

从图(c )得到的二值图中可以看出,由于阈值选取较低,导致除了肤色外,还有大量的

其他非肤色区域也被检测出来,误检率较高;而在图(d)中,由于阈值选取时比最有阈值高,致使面部部分肤色没有被完全检测出来,导致误检率增大。但经过自适应分割后的二值图(e),能很好的将肤色和背景分离,准确率得到提高。

5.5 肤色区域的验证

在对肤色区域进行一系列处理后,得到了一系列的候选区域。由于在背景中可能存在很多和人脸肤色相近或相同的区域被误判为人脸区域,因此需要进一步根据一些先验知识对这些候选区域进行判别优化,剔除那些明显不是人脸的区域。

对肤色区域的形状、密集度等几何特征加以考虑,可以得到较为满意的效果。

具体的判别规则如下:

1)噪声规则:若目标区域的宽度小于20,高度小于30,则删除该区域(一般来说,人脸在图像中应占有一定比例);

2) 形状规则:若目标区域的外接矩形高宽之比ratio不在规定的阈值范围(0.8~2.5)内时,则删除该区域。

一般来说,人脸的高宽比大约为1,考虑到人姿态各异,为了防止漏选,规定这个比例的下限为0.8,ratio<0.8的所有待检区域将被滤除。另一方面,人脸高宽比也应当规定一个上限。这是因为在实际中存在一些情况,待检区域中含有人脸,但是图像的高宽比高出了人脸正常高宽比的范围。如人由于颈部及其以下皮肤区域有所暴露,在这种情况下通过肤色分割得到的待检区域高宽比超出了正常范围。因此必须考虑这种特殊情况,给出一个更宽的高宽比上限2.5。通过形状规则的使用,就可以排除一些不规则但和颜色接近的物体,同时也可以排除一些人体的其他非人脸区域,如弯曲的四肢等。

3) 占有率规则:若目标区域的密集度C小于45%,则删除该区域(人脸区域一般近似为椭圆)。

人脸验证的算法框图如图10所示,通过上述判别准则,非人脸区域得到了过滤,对干扰区域实现了较为满意的排除,能排除大部分非人脸的候选区域,进一步提高了检测的正确率。

图10 人脸验证框图

图11 人脸几何特征验证图

利用YcbCr 色彩空间建立肤色模型更接近人对彩色的认识和理解,进行肤色判断也更为

方便和有效,还可以有效地将亮度和色度进行分离,也非常适合将肤色区域从图像背景中分割出来。

6 基于卡尔曼(Kalman )滤波的人脸区域跟踪

如果从采集的每一帧中检测监视员脸部区域,很显然会降低系统的实时性。根据视频图

像的特点,利用相邻两帧图像的相关性,采用跟踪的方法可以明显的提高驾驶员脸部区域检测的速度。如果存在遮挡或者光线变化比较大的情况,可能丢失目标。根据驾驶员行车时面部运动的特点,在连续两帧图像中人脸一般不会有显著地位置变化,即人脸的运动是线性的。因此可以采用基于Kalman 滤波的跟踪法从当前帧预测出下一帧中脸部的位置。

Kalman 滤波器就是一个对动态系统的状态序列进行线性最小方差估计的算法,通过以动

态的状态方程和观测方程来描述系统,它可以任意一点作为起点开始检测,采用递归滤波的方法计算。具有计算量小、可实时计算的特点。利用Kalman 滤波器来预测运动目标的状态,实现对运动目标的实时跟踪。

Kalman 滤波主要包括状态方程和观测方程:

数学模型为:

系统的状态方程:

观测方程:k+1k k X AX +W =

其中:A 为系统状态矩阵; 为系统噪声矩阵;H 为系统观测矩阵; 为系统观测噪声

矩阵。

系统噪音和观测噪音是不相关的零均值高斯白噪声。根据 去估计 称为Kalman 滤波,

通过 估计 称为Kalman 预测。通过Kalman 滤波来更新系统的当前状态 ,

通过Kalman 预测来估计系统的未来状态 。

设目标的运动状态参数为某一时刻目标的位置和速度。在跟踪过程中,由于相邻的两帧图像时间间

隔较短,目标运动状态变化比较小,可以假设目标在单位时间间隔内匀速运动。

定义状态向量()k k T k k k x y X x ,y ,v ,v =

k+1k k X AX +W =k W k V 12k Z ,Z Z Λk X 12k Z ,Z Z Λk+1X k X k+1X

预测状态向量()k k T '''''k k k x y X x ,y ,v ,v =

其中: k k k k x y x ,y ,v ,v 分别表示目标k 时刻在x 轴和y 轴上的位置和速度;k k ''''k k x

y x ,y ,v ,v 分别表示Kalman 滤波器预测的目标位置和速度。

状态转移矩阵10T 0010T A=00100

001?? ? ? ? ??? 观测矩阵1000H=0100??

??? 在跟踪中使用Kalman 滤波器估计目标状态可以分为3 个阶段,分别为滤波初始化、状态估计和状

态更新[7]

: 1) 初始状态向量 中的分量 为初始搜索窗口的中心位置, 分量取零;

2)进行Kalman 预测,然后用预测状态向量'k x 中的()'

'k k x ,y 为中心设定搜索区域,在该区域内进行

色彩信息匹配,并将匹配后的中心位置作为测量值 ; 3)最后以 为输入参数进行Kalman 滤波,更新滤波器状态。

Kalman 滤波只是预测了目标搜索区域的中心,实际的搜索范围是该点的一个邻域,起始阶段的预测

应适当扩大搜索的范围,再逐渐缩小搜索域到最小值,以保证能够正确搜索到目标。

7 人眼定位

定位人眼采取由粗到精的定位方法,即先定位人眼大概区域,然后缩小范围精确定位人眼。另外,考虑到眨眼是双眼同时闭合张开,因此只需要检测一只眼睛。这样即缩小了检测面积,提高了处理速度;又可以解决驾驶时头部倾斜而引起眼睛位于不同水平面的问题;还可以解决司机驾驶时头部偏转,一只眼睛在侧面被挡住的难题。

7.1 人眼粗略定位

准确定位人脸后,根据面部器官分布,人眼在脸部的上半部,可以很简单的确定一个大概区域,这个区域不要求很准确,只要包含人眼即可。在这个区域内,除了双眼和眉毛,可能含有小部分头发。

在灰度变化突变处进行微分,将产生高值,将其绝对值累加,则灰度变化越大的那一行,累

积值越大。在数学上可用灰度的导数来表示变化,而在数字图像中应用差分代替导数运算。计算公式如下:

2

1(,)(,)(1,)

(,)h x h h x f x y f x y f x y D f x y =--=∑

(,)f x y 为得到的人脸区域的灰度图像,它与RGB 色彩空间的转换公式为:

0.29990.5870.114f R G B

=?+?+?0X 00x ,y 00x y v ,v ()

k k Z(k)=x ,y Z(k)

通过大量实验发现,在眼睛处导数变化值和的绝对值最大,通过此方法可粗略判断人眼所

在线的位置。

7.2 人眼精确定位

由以下公式计算得到特征图,以突出眼部特征。

其中,EyeMap 是眼睛特征图,2()Cb ,2

()Cr ,/Cb Cr 都归一化到[0,255]之间,Cr 是由 求反得到

。在得到图 后,设定阀值T ,将 图小于阀值T 的值设为0,这一步可视为一个简单的滤波去掉非眼部特征的干扰。得到 滤波后,结合

人眼粗定位结果,从左到右搜索,按比例定义相对于人脸区域一定大小的框,当框进的 滤波图的值的和最大时,记为人眼。 8 驾驶疲劳判定

在疲劳引发事故之前,驾驶员眨眼行为提前发生变化,眨眼频率会增加,眼皮覆盖眼睛的百分比也会增加。因此,通过检测眼睛闭合、眼睛运动和眼睛生理特征来监视驾驶疲劳是很适宜的方法。

有效地测量驾驶疲劳,就需要解决测量的方法,建立一个能够预测驾驶疲劳进程的数学模型,以便能有效地监控驾驶疲劳的情况。

8.1 PERCLOS 的测量原理

驾驶员眼睛闭合的时间越长,疲劳程度就越严重。因此通过测量眼睛闭合时间的长短就能够确定疲劳的程度。眼睛闭合又有70%、80%和EM 这三种标准,其中80%这个标准与疲劳驾驶程度相关性最好。

8.1.1 PERCLOS 测量模型]3[

PERCLOS 是Percentage of Eyelid Closure Over the Pupil Over Time 的缩写,即:眼睛闭合

时间占某一特定时间的百分率。

大量实验证明PERCLOS 方法是准确率最高的检测方法,是被美国公路交通安全局

(NHTSA )惟一认可的疲劳驾驶检测方法]4[。

图12 PERCLOS 测量模型 {}

22()()/EyeMap Cb Cr Cb Cr =++Cr (255)Cr -EyeMap EyeMap EyeMap EyeMap

通过测量出14~t t 就能计算出PERCLOS 的值:

3241

100%t t PERCLOS t t -=?- 当PERCLOS 大于某个阈值T (这里取40%),且眼睛闭合时间持续2秒,就认为被检测对象处于疲劳状态。

PERCLOS 代表眼睛闭合时间的百分率; 是眼睛最大瞳孔闭合到80%瞳孔所用时间;

是眼睛80%瞳孔闭合到20%瞳孔所用时间; 是眼睛最大瞳孔闭合到20%瞳孔睁开所用时间; 是眼睛最大瞳孔睁开到80%瞳孔所用时间。

8.1.2 PERCLOS 方法的三种标准

PERCLOS 方法有P70,P80,EYEMEA(EM)三种判定标准。

P70:指眼睑遮住瞳孔的面积,即眼睛闭合面积超过70%以上的在一定时间内所占的时间比例; P80: 指眼睛闭合面积80%以上的在一定时间内所占的时间比例,该指标是最常用的; EM :指眼睛闭合速度百分比的均方值。

而由以前的研究可知PERCLOS 的P80与驾驶疲劳程度的相关性最好,所以本文采用P80的标准。

8.2 PERCLOS 与眨眼频率相结合的疲劳分析

因为使用PERCLOS 来检测驾驶员是否疲劳是短时间的检测,不一定能够准确反映以后时间的精神状况,因此还需要进一步来改良疲劳检测模型。

大多数人在疲劳状态下会表现出眨眼皮率变快的现象,因此我们将眨眼频率与PERCLOS 相结合,参与疲劳判断。

在正常情况下,人的眼睛在一分钟内眨眼10~15次。如果在一分钟内眨眼高于20次,则认为疲劳驾驶;如果眨眼频率过低,则存在驾驶员困倦(闭眼时间长)。第一种情况可以通过计算眨眼频率来判断,第二种情况可以通过连续检测到的闭眼状态的帧数来判断。

下面我们定义了疲劳帧率g 和疲劳频率f : (1)疲劳帧率g 指一分钟内眼睛闭合的帧数与总帧数的比率。

100%g =?眼睛闭合帧数总帧数

假若视频播放的帧率为30帧/秒。总帧数在本系统中为60秒内视频流的帧数,即1800

帧.关于疲劳帧率的临界值将通过模拟实验来取得,这里假设为

。 (2)疲劳频率f 指一分钟内眨眼次数。

9 单片机控制部分

防疲劳驾驶的数字图像预警系统中结果的显示、报警及控制车速模块是由单片机控制部分实现的。

其整体框图如图13所示:

1t 2t 3t 4

t 0g

相关文档
最新文档