基于MATLAB的人眼开度识别
目前,随着人们生活水平的提高,各国人民汽车保有量也越来越多,伴随而来的是交通事故也在不断增多。研究表明,疲劳驾驶是造成交通事故日益严重的重要原因。开展驾驶员疲劳检测和预警的研究工作,有着十分重要的现实意义。
本文研究的主要内容包括:人脸检测、人眼定位、眼睛特征提取和状态识别、疲劳程度的计算等算法的原理及实现。
研究旨在协助驾驶员提高行车安全, 减少疲劳驾驶带来的隐患。检测汽车驾驶员的唤
醒状态, 若得到疲劳信息, 则发出警报。边缘检测算法, 边界跟踪算法以及人眼定位算法以实现对驾驶员的监测; 设计中定义眼睛闭合度的参数, 衡量所采集到的眼睛图像的纵横之比, 使系统对不同的人或同一个人的不同状态进行测量, 保证实际应用价值。
关键词:驾驶安全;边缘检测算法;Hough变换;人眼定位算法;闭合度参数
目录
第1章 绪论
我国已经成为世界汽车生产和制造大国,道路车辆的不断增加道路基础设施不断增强,但是随之而来的问题也日益严重,比如交通事故,噪声大气污染等。汽车行驶的安全性由于关乎人民生命安全,所以日益受到各国政府以及研究机构的重视。从宏观上来说,安全是任何交通出行方式所必须考虑的最重要因素。从 1899 年发生的第一次车祸到现在为止,世界上死于交通安全事故的人数已经达到惊人的 2000 多万人。我国人口众多,出行情况复杂,行人,自行车,机动车等人员和交通工具多变,这就造成了我们的道路交通事故发生频率也是世界上最高的,重大恶性交通事故死亡人数也是连年处于世界最高的位置。
历年的数据显示,从2004年我国发生交通事故的567753起、2005年的450254起、2006年的278781起、2007年的327209起、2008年的265204起、2009年的238351起、2010年219521起、2011年210812起、……,呈下降趋势。每年的死亡人数也成下降趋势,从2004年的9.4万余人、2005年的9.8万余人、2006年的8.9万余人、2007年的8.1万余人、2008年7.3万余人、2009年的6.7万余人、2010年6.5万余人…..,虽然成下降趋势但是仍然保持较高数字。
尽管交通事故发生的次数及引起的损失在逐年减少,但伤亡人数却一直居高不下,国家和人民的财产损失数目更是触目惊心。据统计,我国是交通事故中死亡人数最多的国家,且连续数年来一直居世界首位。交通事故分析原因表明:目前,疲劳驾驶、酒后驾驶以及超速驾驶是引发交通事故的最主要原因。其中由疲劳驾驶引发的交通事故占总数的20%左右,占特大交通事故的40%以上,可以说疲劳已成为安全行车的大敌。目前,疲劳驾驶检测的方法很多,主要包括检测驾驶员生理参数,如脑电图、心电图、肌肉状况等;检测驾驶员的行为特征,如眼皮的运动、头部运动、眼睛开闭状态等;检测交通工具的行为特征,如车速车辆行驶的轨迹是否偏离车道等。
生理学研究表明,一般情况下,当驾驶员精神饱满时,一分钟的眨眼次数为三四次,最多十几次,而当驾驶员处于疲劳状态时,眼睛的眨动次数会明显增加。同时,眼睛的眨动次数还受各种心理状态的影响,如愤感、惶恐等。驾驶员在繁华街道上行驶时眨眼次数要少于高速公路,当驾驶员疲劳到一定程度时眨眼次数会大大增加,而且驾驶员紧张的情绪也会增加眨眼次数,因此眼睛是判断驾驶员疲劳度最重要的依据,通过对驾驶员眼睛开闭状态的识别可以较准确的判断出驾驶员是否疲劳,同时实时性也比较高,容易实现。尽管目前疲劳驾驶检测系统正在向多参数检测,多信息融合系统发展,但眼睛的变化在众多识别参数中始终占据着最重要的地位,因此提高眼睛的识别准确率和快速的跟踪眼睛对发展疲劳驾驶检测系统具有重大的作用。
目前眼睛的识别方法基本上分为两类:一是基于被动图像处理的传统方法,此方法主要包括基于模板的方法、基于外观的方法和基于特征的方法。二是基于主动红外的方法。传统的被动图像处理方法主要是通过探测眼部与脸部其他部位的外观或形状差异来实现的,受外界光照条件的影响很大,而且在夜间不可以识别,所以目前主要的研究方法是基于主动红外的方法。
目前国外的许多国家都对汽车安全方面投入了大量的资金,用来解决交通安全的问题。许多高校和科研机构也都在该方面进行了大量的研究,并得了丰硕成果。进入 21 世纪后,计算机视觉和集成电路技术的发展给驾驶疲劳检测的研究拓宽了空间,之进入了黄金时期。下面介绍几种国外的典型试验产品。
脑电图(EEG)信号检测:澳大利亚 University of Sydney 健康研究中心在采集了不同驾驶员的脑电图信号之后,利用人工神经网络对其进行处理,主要是提取不同波段不同脑电图的典型特征并对其进行分类,并由此来判断驾驶员是否疲劳。另外,为了准确、快速的得到脑电图信号,Tran 等人利用集中趋势测量法所定义的二阶差分结构和采样熵对采集的脑电图信号进行非线性分析和处理,从而判断驾驶员是否处于疲劳状态。新西兰研究人员发明的监控报警器用于监控驾驶员在驾驶过程中脑电波以及眼睛的活动情况,可以测定驾驶员是否处于疲劳状态以及驾驶员的脑意识是否出现停顿,必要时会自动向驾驶员发出警报。日本 canon KK 提供的作为脑电波连接刺激发生器的防瞌睡装置安置于被检者头部,当由脑电波检测确定被检者处于瞌睡状态时,即发出语音报警。
心电图(ECG)信号检测:Calcagnini 等人发现心电图信号的几个典型特征在驾驶员疲劳和清醒时有着明显的不同,比如高频能量、低频能量、超低频能量及低频能量/高频能量的比率等等,利用心电图可以判断驾驶员是否疲劳。另外,韩国 Jeong等人同样在采集驾驶员的心电图信号之后,分析驾驶员的心率变化情况进而来判断驾驶员是否疲劳。日本先锋公司(Pioneer)于 1994 年研究并开发出了一款防止驾驶员开车时打瞌睡的系统。该系统设计如下,当驾驶员转动方向盘的时候会握住一个纸状心跳感应器,该感应器通过检测心跳速度的变化来确定驾驶员是否疲劳或者瞌睡,一旦认定驾驶员有睡意,则提前 15min 以改变音乐节奏等方式提醒驾驶员注意。丰田汽车公司(Toyota Motor Corporation)也发明了一款防瞌睡装置,该装置通过心搏传感器来判断驾驶员是有瞌睡,一旦确认驾驶员有睡意,则采用震动驾驶员座椅的方式来唤醒驾驶员,该装置成本低,结构也比较简单,并且容易实现。但是因为每个驾驶员在处于不同状况时,心率变化也不一样,很难形成统一的规律来判定,因此,基于心电信号来监测疲劳的方法更多的是个辅助方法。
PERCLOS参数检测:Wierwille 等人于 1994 年针对驾驶员的眼睛闭合程度在驾驶模拟器上进行了一系列实验,实验结果表明,在单位时间内(一般为 1min 或者 30s)眼睛的闭合时间可以在一定程度上反映驾驶员的疲劳状态。在这基础上,卡内基梅隆大学(Carnegie Mellon University)经过反复实验,提出了“PERCLOS”作为检测驾驶员是否疲劳的指标参数,即单位时间内(一般为 1min 或者 30s)眼睛闭合 80%左右的时间所占比例,并设计了疲劳检测装置。
我国的驾驶疲劳研究起步较晚,到目前为止,还没有很成熟的产品问世。这方面的研究主要以高校居多,目前的检测方法主要有:上海交通大学的杨渝书、姚振强、焦昆等人模拟驾驶员疲劳条件下,通过采集驾驶员的疲劳时心电图,肌电图来进行的数据分析,评估驾驶员的疲劳状况;中南大学对驾驶员驾驶时的疲劳检测方法进行了研究,设计出了一套眼睛跟踪系统,可达到实时的跟踪效果,同时研究了疲劳时眼睛的闭眼时间、快眨眼次数、慢眨眼时间和次数的特征模式。国防科技大学的吴沫等将驾驶员-汽车-道路作为一个闭环系统,利用计算机视觉的方法研究出一个车辆跑偏预警系统,分析了驾驶员的行为与车辆运动之间的关系;另外吉林大学的施树明对驾驶员的嘴巴进行了深入研究,通过 Fisher分类器提取其特征作为神经网络的输入,分析驾驶员的正常行为、说话、疲劳等特征。上海交通大学的石坚等人也采用神经网络的方法,与其之前所不同的是,他们采集的驾驶员驾驶时方向盘、踏板作为输入特征。总体看来,驾驶员疲劳检测是个复杂的过程,我国的驾驶疲劳检测的方同发达国家相比,还存在较大的差距。研究表明,眼睛状态和疲劳有很大的关联性,现阶段随着数码相机和网络摄像头的价格越来越便宜,通过监测驾驶员的眼睛状态来判断驾驶员是否疲劳的技术正逐步成为热点。
本文从图像处理的角度出发,研究了图像中的面部识别,人眼定位,人眼开度状态识别,基于已测人眼状态进行疲劳检测以上几个方面进行研究。
图像中的面部识别。首先通过摄像头获取一幅带人脸的图像,对图像进行处理,利用中值滤波的方法对获取的图像去噪,在对滤波后的图像灰度化,利用图像网络处理识别出人脸区域,图像网络处理识别人脸是一种常见的人脸识别方法是对人脸图像中的一些像素值进行分析得出图像中人脸区域。
人眼的定位。面部识别的部分已经检测出了人脸,在检测的人脸上划分眼睛的大致区域,对该区域进行积分投影之后可以精确地定位眼睛的位置。然后利用边缘检测算法和Hough变换找到眼睛的位置。
人眼开度状态识别。判断一个人是否处于疲劳状态,计算检测到的人眼的在横向和纵向上的实际所占像素值,计算眼睛的纵横比,这个比值对同一个人的睁眼或闭眼状态来说是相对固定的。但不同的人在这个值上都有一个共同点即眼睛闭合时值偏小( 小于0. 3) , 由此做出的判断适用于大多数的人。
疲劳的判断。由于摄像头获取的图像是一帧一帧获取的,对获取的图像的所有帧进行相同的处理之后,判断眼睛的开闭状态在所有的图像之中所占的百分比,与在眼睛疲劳情况下眼睛开闭状态的百分比进行比较判断是否处于疲劳状态。
第一章是绪论部分,介绍了本课题的背景和研究的意义,分析了目前驾驶疲劳检测研究的现状,然后给出了本文研究的内容。
第二章为相关人脸特征和图像处理技术的介绍,针对人脸的生物特征以及去噪、二值化等问题进行详细论述。
第三章是人脸识别方法,简介了目前运用比较多的人脸识别算法,和国内外人脸识别的研究成果与现状,还有本次题目所用的图像网络分割检测这种基本的人脸识别算法。
第四章是眼睛的定位算法,介绍了一些常用的眼睛定位算法,分析了其中的一些不足的地方,然后介绍了Hough变换的基本原理,已经通过Hough变换检测眼睛的具体实验结果。
第五章是总结和前景展望。
文章主要任务是对人脸信息进行处理, 研究之前对于人脸的特征表达与特征特性进行简要的分析与论述是很有必要的。此外, 本文所做研究主要针对彩色图象, 采用的算法主要在二值化图象中进行, 因而图像的去噪以及二值化算法的选择对于检测的准确性也有着重要的影响, 本章将分别针对人脸的生物特征以及去噪、二值化等问题进行详细论述。
人体头部各部分的比例通常称为“三庭五眼”。从发际到眉毛, 从眉毛到鼻尖, 从鼻尖到下巴, 这三部分是相等的, 即所谓的“三庭”。从正面看, 脸部最宽的地方为五只眼的宽度, 即为“五眼”。如图2-1所示, 其中a为三庭b为五眼:
a b
图2-1 三庭五眼示意图
此外, 眉弓的宽度为四个眼睛的宽度;眉弓至下颚底1/2处为鼻尖, 鼻底长度为脸部块面长度的一半(从鼻根到下颌处)鼻中隔与人中相连;耳底与鼻底齐平,眉毛的最高点可以用来确定耳的高度;口部周围组织的长度为鼻底到下颌处的2/3;口宽等于两瞳孔之间的距离, 等于下颚的最大宽度;齿槽弓的宽度为两个瞳孔之间的距离;整个耳部位于眉上部和鼻底引出的两条水平线之间。
人脸部轮廓有很大差别, 无法使用统一的数学模型量化其特征, 虽然椭圆模型可以识别一些人脸, 但是也只占人脸总数的一小部分。为了简化标定方法, 参考传统方法的优点, 我们认为有必要加入脸形信息, 虽然这很有难度。但是, 人的脸型并不是没有规律可循的, 我国古代画论中有“相之大概, 不外八格” 之说。所谓“八格” 就是田、国、由、用、目、风、甲和申八种形格,依次如图2-2所示。
图2-2 八种脸型
图2-3 人脸语义规则
如图一所示, 人脸主要由以下几个器官构成, 而且每个器官都有其严格的位置、距离、器官之间也存在着严格意义上的逻辑关系。
在人的脸部首先具有五官中的眉、眼、鼻、嘴。在脸部的中停位置左右各有左眼、左眉和右眼、右眉, 在中停的中间区域, 两眼以下区域有鼻, 在下停的中间位置, 鼻子的下方有嘴, 而且在下停位置我们可以检测到下巴的曲线。
这种语义结构严格的表示了人脸信息和其他信息的差别, 可以帮助我们快速的标定人脸的相关数据, 使我们低耗费的达成目标。本文主要针对眼睛, 下面简要介绍眼睛的主要特征。
眼睛是一个直径23mm大约的球状体, 是人观察客观事物的视觉器官。平常接收到的外界信息中约有80%来自视觉。眼睛主要由屈光调节系统和视觉感受系统组成。眼睛就如同一部全自动照相机, 由角膜、瞳孔、房水、晶状体、玻璃体和睫状肌等组成的屈光系统相当于照相机的镜头, 起聚焦成像的作用。眼内的视网膜和大脑的视觉皮质中枢等则相当于照相机的感光底片和电脑控制系统。
在正面视图中, 人眼所呈现的主要是角膜、巩膜、瞳孔、虹膜等特征。角膜是接受信息的最前哨入口。角膜是眼球前部的透明部分, 光线经此射入眼球。角膜稍呈椭圆形, 略向前突。横径为11.5-12mm, 垂直径约10.5-11mm。周边厚约1mm, 中央为0.6mm。角膜前的一层泪液膜有防止角膜干燥、保持角膜平化和光学特性的作用。巩膜为致密的胶原纤维结构, 不透明, 呈乳白色, 质地坚韧, 俗称“眼白”。虹膜呈圆环形, 位于晶体前, 由辐射状褶皱, 表面含不平的隐窝。不同种族的人的虹膜颜色不同。中央有一个2.5mm-4mm的圆孔, 即瞳孔。
图象预处理是进行图象研究的重要一步, 其主要目的是消除图象中的无关信息恢复有用的真实信息, 增强有关信息的可检测性和最大限度的简化数据, 从而改进特征抽取、图象分割、匹配和识别的可靠性。常规的预处理过程主要有数字化、几何变换、归一化、平滑和增强等操作。
数字化:一幅原始照片的灰度值是空间变量位置的连续值的连续函数。在MxN点阵上对照片灰度采样并加以量化,可以得到计算机能够处理的数字图象。为了使数字图象能够重建原来的图象, 对于M、N值的大小有一定的要求。在接受装置的空间和灰度分辨能力范围内,M、N的数值越大, 重建图象的质量就越好。当取样周期等于或者小于原始图象中最小细节周期一半时, 重建图象的频谱等于原始图象的频谱, 因此重建图象和原始图象可以完全相同。由于M、N的乘积决定一幅图象在计算机中的存储量, 因此在存储量一定的条件下需要根据图象的不同性质选择合适的M、N的值, 以获取最好的处理效果。
几何变换:用于改正图象采集系统的系统误差和仪器位置的随机误差所进行的变换。对于卫星图象的系统误差, 如地球自转、扫描镜速度和地图投影等因素所造成的畸变, 可以用模型表示, 并通过几何变换来消除。随机误差如飞行器姿态和高度变化引起的误差, 难以用模型表示出来, 所以一般是在系统误差被纠正后, 通过把被观测的图和已知正确几何位置的图相比较, 用图中一定数量的地面控制点解双变量多项式函数组而达到变换的目的。
归一化:使图象的某些特征在给定变换下具有不变性质的一种图象标准形式。图象的某些性质, 例如物体的面积和周长, 本来对于坐标旋转来说就具有不变的性质。在一般的情况下, 某些因素或变换对图象一些性质的影响可通过归一化处理得到消除和减弱, 从而可以被选作测量图象的依据。例如对于光照不可控的遥控图片, 灰度直方图的归一化对于图象分析是十分必要的。灰度归一化、几何归一化和变换归一化是获取图象不变性质的三种归一化方法。
平滑:消除图象中随机噪声的技术。对于平滑技术的基本要求是在消去噪声的同时不使图象轮廓或者线条变得模糊不清。常用的平滑方法有中值法、局部求平均法和近邻平均法。局部区域大小可是固定的, 也可以是逐点随灰度值大小变化的,有时应用空间频率域带通滤波方法。
增强:对图象中的信号有选择的加强和抑制, 以改善图象的视觉效果, 或者将图象转变为更适合于机器处理的形式, 以便于数据抽取或识别。例如一个图象增强系统可以通过高通滤波器来突出图象的轮廓线, 从而使机器能够测量轮廓线的形状和周长。图象增强技术有多种方法, 反差展宽、对数变换、密度分层和直方图均衡等都可以用于改变图象灰度和突出细节。实际应用时往往需要用不同的方法反复进行实验才能得到满意的效果。
针对本文所做研究的实际情况, 首先介绍滤波去噪以及光线补偿等问题。数字图象中往往存在各种类型的噪声。产生噪声的途径可以有几种, 与生成图象的方法相关。如:
如果图象使用照片扫描得到的, 则胶卷上的灰尘是噪声源。胶卷损坏、扫描操作中都可以引起噪声。
如果图象直接来源于数字设备, 则获取数据的设备可以引起噪声。
图象数据的电子传输可以引起噪声。
采用不同的方法对于不同类型的噪声具有更好的效果。本文通过介绍几种线性和非线性方法简单介绍一下噪声的清除。
1 线性噪声的清除
由于增加到图象中的噪声具有空间解相关性, 通常比普通图象成分具有更高的空间频率频谱。因此对于噪声清除, 简单的低通滤波器是很有效的。现在考虑噪声清除的卷积和傅立叶定义域的方法。
(1)空间域处理
一幅空间滤波后的输出图象
, 可以根据下面的关系, 使用
的脉冲响应阵列
, 通过输入图象的离散卷积来形成:
(2-1)
其中C=(L+1)/2。为了进行噪声清除,H应该是低通形式的, 具有所有的正元素。下面列出了几个低通形式的普通3x3个像素的脉冲响应阵列。
掩模1:
(2-2)
掩模2:
(2-3)
掩模3:
(2-4)
这些称为噪声清除掩模的阵列被标准化为单位加权, 以使噪声清除过程不会在处理后的图象中引入幅值偏差。
同态滤波
当一幅图象受到倍增的噪声或者干扰的影响时, 同态滤波对于图象增强是一个很有用的方法。同态滤波是一种在频域中同时将图象亮度范围进行压缩和将图象对比度增强的方法。一幅图象
可以用它的照明分量
与反射分量
的乘积来表示, 即
(2-5)
由于这两个函数的傅立叶变换是不可分的, 即
(2-6)
对式一两边取自然对数:
(2-7)
再对上式取傅立叶变换,得:
(2-8)
假设用一个滤波器函数
来处理
,可以得到:
(2-9)
逆变换到空域, 得:
(2-10)
可见增强后的图象是有对应的照明分量和反射分量两部分叠加而成。对式(2-10)两边取指数, 可得:
(2-11)
以上的图象增强过程如图2-4所示。这种方法是以一类系统得特殊情况为基础的,通常称它为同态图象增强法, 而
称为同态滤波函数, 它可以分别作用于照明分量和反射分量上。
图2-4 同态滤波图
一般照明分量可以用缓慢的空间变化表示。而反射分量在不同物体的交界处是急剧变化的。这使图象对傅立叶变换中的低频部分对应照明分量, 而高频部分对应反射分量。
2 非线性噪声消除
对于具有连续噪声的图象, 前面所描述的线性处理方法进行起来比较好, 比如加法均匀或者高斯分布的噪声。然而, 它们对于脉冲类的噪声则提供了太多的平滑。非线性方法通常可以在噪声平滑和图象细节保留之间取得更好的平衡,下面将提供几种非线性的方法。
(1)分离像素
将每一个像素与它的八个相邻像素的平均值进行比较, 如果差别大于某些闭值级别, 这个像素将判定为噪声, 并且以它邻近像素的平均值来代替它。可以使用下面的脉冲响应阵列, 通过观察图象的卷积对这八个相邻像素的平均值进行计算:
(2-12)
分离像素运算可以直接扩展到更大的窗口。
(2)中值滤波器
中间值滤波是一种非线性信号处理方法, 对于抑制图象中的噪声非常有用。在一维形式时, 中间值滤波器包含一个包围有奇数数量像素的可调节窗口, 这个窗口的中心像素被窗口像素的中间值所代替。N为奇数的离散数列的中间值元素是:有(N-1)/2个元素的值小于或者等于这个元素的值, 并且有(N-1)/2一个元素的值大于或者等于这个元素的值的那个元素。例如:如果一个窗口内像素的值是0.1、0.2、0.9、0.4、0.5, 那么中心像素应该被0.1、0.2、0.4、0.5、0.9这个排序后数列的中间值0.4所取代。这个例子中, 如果值0.9是这个单调增加数列的噪声毛刺, 使用中间值滤波器将得到一个显著的改善。在另一方面, 值0.9可能表示一个带宽较宽传感器的有效信号脉冲, 所以所生成的图象可能受到分辨率的损失。因此在某些情况下中间值滤波器可以提供噪声抑制, 而在另外一些情况下它可能导致信号抑制。
(3)维纳滤波
从噪声中提取信号波形的各种估计方法中,维纳(Wiener)滤波是一种最基本的方法,适用于需要从噪声中分离出的有用信号是整个信号(波形),而不只是它的几个参量。维纳滤波器的优点是适应面较广,无论平稳随机过程是连续的还是离散的,是标量的还是向量的,都可应用。对某些问题,还可求出滤波器传递函数的显式解,并进而采用由简单的物理元件组成的网络构成维纳滤波器。维纳滤波器的缺点是,要求得到半无限时间区间内的全部观察数据的条件很难满足,同时它也不能用于噪声为非平稳的随机过程的情况,对于向量情况应用也不方便。因此,维纳滤波在实际问题中应用不多。
维纳函数采用的算法是首先估计出像素的局部矩阵和方差:
(2-13)
(2-14)
其中
是图象中每个像素
的的邻域。然后对每一个像素利用维纳滤波器估计出其灰度值:
(2-15)
其中,
是图象噪声的方差。维纳函数提供的自适应滤波通常比线性滤波的效果好, 它比相应的线性滤波器具有更好的选择性, 可以更好的保存图象的边缘和高频细节信息。另外, 使用起来非常方便, 维纳函数同时计算出滤波器的参数,并对图象进行滤波计算, 而且维纳函数并不比线性滤波器需要更多的时间。
(4)伪中值滤波器
中间值滤波器的计算强度是比较大的, 运算数量随着窗口的增大按照指数规律增加。后有人提出了计算上比较简单的伪中间值滤波器, 它具有中间值滤波器的很多性质。
设{
}表示元素
,
,.....,
的数列,这个数列的中间值是:
(2-16)
式中
(2-17)
(2-18)
在运算上, 将
个元素的数列分解为
个元素的子数列, 每一个子数列都相对于它前面的子数列右移一个元素, 并且进行适当的
和
运算。如要说明的那样,
和
算子自身是比较有用的算子。应该注意到, 对于流水线式的计算, 有可能将
和
函数递归的从长数列分解为具有2和3的滑动函数。
一维或者二维形式的
算子对于清除明亮的脉冲噪声是有用的, 但是对于清除较暗的脉冲噪声效果较小或者没有效果。相反地, 一维或者二维形式的
算子对于清除较暗的脉冲噪声是有用的, 但是对于清除明亮的脉冲噪声效果较差。
(5)小波噪声的消除
小波变换具有良好的时域局部化性质, 为解决去噪中存在的保护信号局部性和抑制噪声之间的矛盾提供了有力的工具。在数学上, 小波去噪问题的本质是一个函数逼近问题, 即如何在由小波母函数伸缩和平移版本所展成的函数空间中,根据提出的衡量准则, 寻找对原信号的最佳逼近, 以完成原信号和噪声信号的区分。小波去噪可以描述为:
(2-19)
(2-20)
(2-21)
其中,
代表最优解,
为原信号,
为噪声信号。由此可见, 小波去噪方法也就是寻找从实际信号空间到小波函数空间的最佳映射, 以便得到原信号的最佳恢复。
从信号学上分析, 小波去噪是一个信号滤波的问题, 而且尽管在很大程度上小波去噪可以看成是低通滤波, 但是由于去噪后还能成功保留图象特征, 所以在这一点上又由于传统的低通滤波器。
综合以上分析, 结合本研究的实际情况, 由于同态滤波器不仅能够很好的完成滤出噪声的任务, 而且其具有补偿亮度, 消除图象中亮暗不均的问题, 增强暗区的图象细节同时又不损失亮区的图象细节, 这无疑对于后续研究有着极大的帮助。因而本文在后面研究中多次用到同态滤波算法对图象进行预处理, 实验效果较为理想。
本文所做研究, 大部分都是基于二值图象进行的, 选择一个好的二值化算法无疑对于检测的准确度有着巨大的影响, 本小节重点介绍了几种常见的二值化选择算法, 并对其进行详细比较分析。
图象分割的经典方法是基于灰度阈值的分割方法,它通过设置闭值,把像素点按灰度级分若干类,从而实现图象分割,把一幅灰度图象转换成二值图象是阈值分割的最简单形式,设原始图象为
,首先以一定准则在
中找出一个灰度值t作为闭值, 将图象分割成两部分, 即把大于等于该阈值的像素点的值置成1,小于该阈值的像素点的值置成0。阈值运算后的图象为二值图象
如下:
(2-22)
上式中全局阈值T的选择直接影响分割效果。通常可以通过分析灰度直方图来确定它的值, 最常用的方法是利用灰度直方图求双峰或多峰, 选择两峰之间谷底处的灰度值作为阈值。
1 人工选择
基于灰度阈值的分割方法, 其关键是如何合理的选择阈值。人工选择阈值是通过人眼的观察, 应用人对图象的认识, 在分析图象直方图的基础上, 人工选出合适的阈值。也可以在人工选出阈值后, 根据分割效果, 不断地交互操作, 从而选择出最佳的阈值。
2 自动阈值
虽然人工法可以选出令人满意的阈值, 但是在无人介入的情况下自动选取阈值是大部分应用的基本要求, 自动阈值法通常使用灰度直方图来分析图象中灰度值的分布, 结合特定的应用领域知识来选取最合适的阈值。
(1)迭代阈值法
基本思想是开始时选择一个阈值作为初始估计值, 然后按照某种策略不断的改进这一估计值, 直到满足给定的准则为止。在迭代过程中, 关键之处在于选择什么样的阈值改进。好的阈值改进有两个特征一是能够快速收敛,二是在每一个迭代过程中, 新产生阈值优于上一次的特征。具体算法:
选择图象灰度的中值作为初始阈值
。
利用闭值兀把图象分割成两个区域:
和
, 用下式计算区域和凡的灰度均值
和
。
(2-23)
计算出
和
后, 用下式计算出新的阈值
:
(2-24)
重复步骤2-3, 直到
和
的差小于某个给定值。
(2)Otsu法选择阈值(大津法)
Otsu法是一种使类间方差最大的自动确定阈值的方法, 该方法具有简单,处理速度快等特点, 是一种常用的阈值选取方法。其基本思想如下设图象像素数为
, 灰度范围为
,对应灰度级i的像素数为
,几率为:
(2-25)
(2-26)
把图象中的像素按灰度值用T分成两类
和
,
由灰度值在
之间的像素组成,
由灰度值在
之间的像素组成,对于灰度分布几率,整幅图象的均值为:
(2-27)
则
和
的均值为:
(2-28)
(2-29)
其中:
由上面三式可得:
(2-30)
类间方差定义为:
(2-31)
联立可求得:
(2-32)
让在
范围内依次取值, 使
最大的T值即为Otsu的最佳阈值。
(3)最小误差选择法
最小误差阈值选择法通常以图象中的灰度为模式特征, 假设各模式的灰度是独立同分布的随机变量, 并假设图象中待分割的模式服从一定的概率分布, 则可以得到满足最小误差分类准则的分割阈值。假设图象中只有目标和背景两种模式,先验概率分别是
和
,均值为
和
, 如图2-5所示:
设目标的像素点数占图象总像素点数的百分比为
,背景像素点占
,混合概率密度为:
(2-33)
当选定阈值T时,目标像素点错划为背景像素点的概率为:
(2-34)
把背景像素点错划为目标像素点的概率为:
(2-35)
则总错误率为:
(2-36)
最佳阈值就是使总错误概率最小的阈值,将式(2-34)对T求导, 并令其为零得:
(2-37)
对于正态分布
(2-38)
(2-39)
上面三式联立并取对数得:
(2-40)
当
时,
(2-41)
当
时,
(2-42)
可见当图象中目标和背景像素灰度呈正态分布, 并且标准差相等, 目标和背景的像素比例相等, 则最佳分割阈值就是目标和背景像素灰度均值的平均。
在本文所作研究中, 主要是对光照情况较为均匀的图象进行处理, 然后在二值化图的基础上实施进一步的检测。因而二值化的好坏直接影响整个研究的精度。经过对各种二值化算法的比较和大量的试验, 本文选用迭代式阈值选择算法。
首先, 从算法的复杂程度来分析, 较之其它几种自动阈值选择算法, 迭代式算法更为简洁, 运行起来更方便。而且也较为容易理解, 实施起来可操作性较强。另外, 从实验效果来讲, 在图象光线得到一定处理的情况下几种算法都能较好的满足试验的要求。但是相比较而言, 迭代式算法每次选择的阈值都要优于上次, 这样可以依据具体的情况设置给定值, 直到达到实验要求为止, 方法比较灵活。
综上所述, 在满足要求的情况下, 选择算法相对简单的迭代式阈值方法进行二值化处理取得了不错的结果。
人脸区域分割的主要目的是在目标图象中检测出人脸, 以便基于分割出的人脸实施人脸识别或者脸部重要特征的检测与定位。
人脸区域分割作为人脸信息处理技术的第一步, 对于整个人脸信息研究有着极其重要的作用。本节从目前进展以及存在的问题两个方面来对人脸区域分割展开论述。
当前出现的人脸区域分割算法主要集中在肤色分割这一领域, 通过在图象中分割肤色区域来找到人脸。肤色检测是在图象中选取对应于人体皮肤象素的过程。近年来对图象中肤色区域分割的研究日趋活跃, 与人有关的各种机器视觉系统中, 肤色检测技术正得到越来越多的应用, 具有巨大的市场潜力。目前比较典型的应用包括人脸检测与识别、表情识别、手势识别、基于部分内容的图象与视频检索, 新的人机接口技术、肌体检测和黄色图片过滤等方面。
目前的人脸区域分割主要依赖于肤色在某些特定色彩空间中聚类性较好这一特点展开。众多研究表明不同人的肤色在色度上很接近只是在亮度上差异较大。这也就促使研究者们不断寻找一种手段使得图象的色度信息和亮度信息分离。最后集中在了色彩空间转换上, 因为某些色彩空间能够很好的分离色度和亮度信息。
色彩空间又叫做色域,是表示颜色的一种数学方法,人们用他来指定和产生颜色, 使颜色形象化。实际就是各种色彩的集合, 色彩的种类越多, 色彩空间越大,能够表现的色彩范围越广。对于具体的图象设备而言, 其色彩空间就是它所能表现的色彩的总合。颜色空间中的颜色通常使用代表三个参数的三维坐标来指定,这些参数描述的是在颜色空间中的位置。常见的颜色空间模型包括:
、
、
、
、
以及
模型。一定程度上
和
模型都能够实现亮度和色度的分离, 但是考虑到以下几点, 目前用于人脸肤色分割的模型主要是
。
的优点有:具有与人类视觉感知过程相类似的构成原理;不仅具有能够将亮度和色度分离的优点, 而且其计算过程和空间坐标表示形式比较简单;肤色的聚类特性较好。
利用肤色分割进行人脸区域分割的方法由来己久, 而且取得了很大的进展,但是仍然存在很多难以解决的问题。
对于光线不均匀的图片, 很难得到理想的分割结果。由于光线的问题很容易使得脸部肤色亮度不均匀, 这也就难以按照肤色模型的标准来实施检测。比如利用
空间实施分割的时候, 大量实验表明, 在光线不均的情况下很容易将高亮度区域的肤色检测为非肤色, 而在低光区域很容易将非肤色检测为肤色。可以说光线问题是制约肤色分割最大的瓶颈, 尽管研究者们提出了各种方法对光线进行补偿, 但效果并不理想。
对于亮度均匀但背景色彩和肤色非常接近的图片, 也很难实施有效地检测。肤色分割主要是利用了皮肤的颜色, 一旦背景中存在和皮肤颜色接近且轮廓相似的物体, 这类方法很难作出辨别。
在一幅目标图象中, 很难保证只存在一个人脸区域, 也可能会出现其它的肤色区域, 比如肩膀、手臂等。如何正确区分肤色分割所分离出来的这些区域也是个很大的难题。
对于脸部佩戴一定饰物的情况, 比如眼镜、胡须等的情况, 由于这些物体的存在而使得脸部肤色不连贯也会给检测带来难度。
由于肤色分割方法的一些缺陷,这次题目采用的是基于图像网络分析来进行人脸识别一定程度能解决以上存在的一些问题,在识别了面部的大致区域之后为下面的人眼识别做出铺垫。
对于基本的目标图像而言,由于背景的辅助程度的不同,用肤色识别的方法很有可能在识别的过程中把一些背景当做面部来进行识别了。在对图像进行分析的过程中,将目标图像进行网络分割,对分割之后的图像的小方块首先进行去噪灰度化的常规预处理之后,对预处理之后的分割的小块图像分别进行人脸识别,判断该小块图像是否是位于人脸部位。将识别的小方块整合就是整个的人脸识别的区域。而且如果存在误差的情况下对眼睛的图像判断率相对较高。步骤如下:
第一步:利用前面一章已经介绍的中值滤波算法对图像进行基本的预处理,使得图像的基本属性满足课题的具体要求。然后利用二值化对所得图像进行处理,在二值化的图像中进行进一步的操作。
第二步:对图像进行小块分割,这次题目我对目标图像进行的是10x10的分割。讲图像分割成100个小方块,对于不同的图像,可以进行不同的小方块分割以适应题目的需要。然后对每个小方块的像素进行检测,对黑色像素的比例进行统计,对满足面部识别的小方块进行标记,然后进行列变换和行变换,对后来的小方块进行相同的检测,最后把满足需求的小方块进行整合,即为人脸的识别区域。
图3-1是具体识别的结果:
a b c d
图3-1 实验结果
其中,a列图是原始图像;b列是对图像进行网络分割之后;c列是对原始图像二值化之后所得图像;d列是识别出的人脸大致区域。可以看出识别的准确度还是比较高的。
本章的人脸检测算法是一种比较基础的算法,利用对原始图像进行网络处理,把原始图像分成10x10的小方块,对每个小方块进行中值滤波,然后对滤波后的图像进行二值处理得到二值图,对每个二值图的小方块进行黑色像素检测,如果黑色像素比例满足信息,那么判断该方块属于人脸区域,依次一个一个的检测所有的小方块,把检测出的人脸识别出来。实验表明,该方法能较为有效地识别出人脸区域。
作为人脸部特征鲜明, 位置独特的区域, 眼睛的检测对于人脸信息的处理具有重要的意义, 不仅可以提高识别和检测的速度, 而且能够降低识别算法的复杂度。在脸部器官定位方面, 只要人眼被精确定位, 则眉毛、鼻子、嘴巴等其它特征就可以通过潜在的分布关系比较准确地进行定位。眼睛的定位还可以使人脸较好的归一化, 预处理的效果也更加明显。另外, 眼睛在感情以及辅助语言交流里发挥着巨大的作用。
在过去的十几年中, 针对眼睛的检测已经得到了较多的研究, 提出了众多的检测方法。分析近年来比较典型且效果较理想的算法, 可以将人眼检测方法分为常光源下的人眼检测和特种光源下的人眼检测两大类。本文详细分析了当前的主要研究方法, 并对其优缺点进行了剖析, 最后对人眼检测中存在的问题以及发展前景进行了总结。
常光源下的人眼检测主要是指在通常的光源下, 如自然光、普通人造光源等, 对人脸中的人眼进行检测。因为方便、廉价等因素, 这成为人眼检测研究中的主要探索领域, 而且它也为特种光源下的人脸检测提供了基本的检测方法。本章从模板匹配、统计、知识规则等三个方面来分析讨论常光源下的人眼检测方法。
基于模板匹配的方法:
灰度投影法:灰度投影法是指对人脸灰度图象进行水平和垂直方向的投影, 分别统计出两个方向上的灰度值和, 找出特定的变化点, 而后根据先验知识将不同方向上的变化点位置相结合, 即得到人眼的位置。也有人利用水平和竖直两个方向上的梯度信息来代替原始灰度值, 以减小光照条件的影响。当前基于灰度投影算法来定位眼睛的方法已经得到了较为广泛应用, 且算法得到了很大改进和完善。最为常用的投影函数是积分投影函数,可以通过对积分投影函数值的分析提取图象中的特征。早期的研究中直接采用水平和垂直方向投影来定位眼睛,研究表明单纯依据灰度投影来定位眼睛虽然定位速度快, 但波峰波谷的分布对于不同人脸和姿态变化非常敏感,另外,投影图中干扰噪声太大, 曲线不规则, 很难在此基础上直接找到特征点 , 因此只能大致的找到眼睛区域, 不能实现精确定位, 很难满足研究需要。因此把灰度投影与其他算法结合起来进行眼睛检测成为新的研究选择。
几何特征模板法:眼睛在人脸中具有较为明显的个体特征以及分布特征。对于大多数人来说,眼睛的位置以及两眼之间的距离相对于人脸而言是一个相关常数。另外,双眼的对称性,眼睛和其它脸部特征的相对位置,以及眼球的形状等都可以作为依据用来实施人眼检测。早期的研究中提出了一种二维可变形模板法,用两条抛物线和一个球形表示眼睛。该模板的初始位置对定位结果有很大影响, 而且能量函数优化过程收敛缓慢, 耗时长, 能量函数中各种权值通过经验设定, 难以保证最优。后来又提出了改进的眼睛可变形模板。提出了一种新的边缘检测算法找到眼睛的四个边缘点左右眼角及瞳孔与上下眼眶的交点, 依次为依据确定模板的初始参数。实验表明,这种模型在准确率上有了较大提高, 但仍然难以克服算法复杂, 检测速度慢, 另外仅对正面或近似正面人脸图象中的眼睛和嘴巴等外形比较规则的器官特征提取效果较好。在此基础上,又提出了一种基于三维可变形模板的眼睛特征提取算法, 利用人脸姿态估计策略来估测人脸的垂直旋转方向, 然后利用三维可变形模板匹配技术来提取眼睛的精确特征。
基于统计的方法:
基于统计的方法一般是通过对大量目标样本和非目标样本进行训练学习得到一组模型参数, 然后基于模型构建分类器或者滤波器来检测目标。在过去的一段时间中, 基于统计的方法被广泛应用于人脸检测与识别技术中, 通过训练大量的人脸和非人脸样本, 建立分类器, 在输入图象中分类出人脸图象, 实践表明这种方法具有较高的准确度, 近年来随着人眼检测研究的不断发展, 基于统计的方法也越来越多地得到了应用。神经网络在基于统计的研究方法中占有较大的比重, 它也逐渐被应用于眼睛检测中。早期,采用神经网络和眼睛的微特性来定位人脸部特征。该算法将搜索窗口的像素作为神经网络的输入, 如果该窗口包含眼睛图象, 则神经网络的输出较大。后来又提出了基于灰度信息和瞳孔滤波器的方法, 首先在图象中检测人脸区域从而得到人眼检测框, 然后通过对投影直方图的分析进行人眼粗检测, 找到人眼候选点后利用BP神经网络构造的瞳孔滤波器进行精确的定位。人的眼睛大小各异, 但是瞳孔的大小相差不是很大。通过Adaboost算法进行人脸检测, 实验统计, Adaboost检测器输出的图象统一到80x80大小后, 瞳孔基本上是5x5的大小, 因此设定神经网络的结构为:输入层为25个节点, 输入值与输入图象的每个象素值一一对应;隐层取经验值9个节点, 输出层为一个节点, 输出值越接近则表明与瞳孔就越相近1, 反之,越靠近0表明与瞳孔的差别越大。输入层与隐层全连接, 隐层与输出层全连接。训练好的神经网络作为瞳孔滤波器来精确定位眼睛。
基于知识的方法:
基于知识的方法也被称之为基于规则的方法, 其指导思想如下:确定图象的应用环境, 总结特定条件下可用于人眼检测的知识如轮廓信息, 色彩信息, 位置信息等, 把它们归纳成指导人眼检测的规则。先用直方图闭值法将图象二值化, 根据其中黑色区域的面积、形状和相对位置等几何特征确定瞳孔位置, 最后通过边缘跟踪依次找到上眼眶、眼角和下眼眶。还有一种类似的方法,将图象二值化后, 计算出黑色区域的有效面积、质心、外接矩形、圆性质和添实度等几何特征, 依据经验标准筛去一部分黑色区域, 并将余下的区域作陪对筛选, 从而得到双眼位置, 此算法简单易行, 但容易受到光照和噪声的影响。在实施人眼检测的过程中, 首先利用了大量有关于肤色和眼睛区域亮度的先验知识, 设定了多个闭值来分离皮肤及眼睛区域, 然后再利用均值投影函数(MPF)和方差投影函数(VPF)来实施最后的定位。由于采用了大量的先验知识, 使得该法的通用性受到了限制, 尤其对于脸部肤色较深的个体, 准确率不高。此类方法与前述基于几何模板的方法有很大区别, 虽然都利用到一些人眼的几何性质, 但前者利用表现出来的几何性质建立了通用性更好的模板来实施匹配, 而基于知识的方法则是直接利用这些几何性质实施检测, 通用性要差一些。目前, 由于先验知识有很大的局限性, 单独用来进行人眼检测的研究己经不多,更多的是用来作为约束条件来辅助检测 。
特种光源下的人眼检测方法是指依靠较为特殊的光源照射人脸, 然后利用目标所呈现出的图象信息进行检测, 该方法对外部设备依赖较多, 使用有所不便。当前, 需要对眼睛状态进行实时跟踪检测的应用越来越多, 如驾驶员疲劳检测中, 较有潜力和可行的一种方法就是通过安装在车内的一个摄像头来监视驾驶员的脸部, 用计算机确定驾驶员脸部位置和其他脸部特征, 通过追踪多幅正面脸部特征图象和多幅侧面脸部特征图象来估算驾驶员是否驾驶疲劳。也可以用红外线彩色摄像头并使用滤波器滤除图象中的噪声和非脸部的图象, 加快系统处理图象的速度, 采用灰度模式匹配方法追踪输入图象序列来搜寻并确定眼睛区域, 然后用同样的模式匹配方法来确定眼睛是处于睁开状态还是闭合状态。研究表明采用近红外光源来照射眼部时, 因为瞳孔对红外线的反射性低,而虹膜对红外线的反射性较高, 这样会造成影象中瞳孔与虹膜的亮度差异变大,而虹膜与眼白之间的亮度差异变小, 此特性可用于检测瞳孔位置。借助特殊光源来检测眼睛在准确度上有了很大的提高, 制约其发展的主要问题首先是光源的稳定性, 其次是人脸的姿态。
Hough变换是图像处理中从图像中识别几何形状的基本方法之一。Hough变换的基本原理在于利用点与线的对偶性,将原始图像空间的给定的曲线通过曲线表达形式变为参数空间的一个点。这样就把原始图像中给定曲线的检测问题转化为将图像空间内具有一定关系的像元进行聚类,寻找能把这些像元用某一解析形式联系起来的参数空间累积对应点,换句话说,也就是寻找参数空间中的峰值问题。
平面中任意一条直线可以用极坐标方程方程来表示,即可以用
和
两个参数确定下来,对于图像空间任意点
,其函数关系如4-1所示:
(4-1)
其中,
为原点到直线的距离(即原点到直线的垂直线的长度),
确定了直线的方向(即原点到直线的垂直线与x轴方向的夹角)。数字图像处理中我们在图像空间
和Hough空间
面对的都是离散量。因此,每个像素点都能投影到参数空间中的一些点上。如果对于同一直线
上的n个点进行上述变换,则原图像空间n个点在参数空间中对应地得到n条正弦曲线,并且这些曲线相交于同一点,它同样具有以上的两个性质。因此图像空间中共线的点与参数空间中共点的线存在对应关系,只要找出参数空间中共点的曲线,就能确定图像空间中的曲线。
Hough变换最早应用在直线检测上,大量试验表明其对各种噪声、形变、边缘断续甚至区域残缺都具有很好的鲁棒性和适应性。直线的Hough变换是一个两参数的参数空间,推而广之,其它常见曲线也存在对应的参数空间。在坐标平面上确定一个圆需要三个参数——圆的半径、圆心的x轴坐标和y轴坐标,因此圆的Hough变换是一个以圆的半径和圆心坐标为参数的三维空间。
已知圆的一般方程为:
(4-2)
式中:
为圆心,r为圆的半径。
如果将式(4-2)未知数反转,
当做常量,而把
当做未知数,那么式(4-2)就是一个圆锥的方程。即是,过
平面上固定点的所有圆的
对应于参数空间中的一个三维锥面。这样,检测
平面上的圆的问题就转换到检测
参数空间上三维锥面的交点。图像平面的方程转化为参数平面上的示意图如图4-1所示。
图4-1 圆的参数空间表示
上述方法的算法复杂度太高,假设要检测100×100分辨率的小图像,我们就至少需要100×100×100大小的参数空间。直接用参数空间投票的方法计算复杂、资源需求大,处理时间长。在大噪声和具有复杂图像背景的情况下,大量的无用的点也会参与投票,使算法性能大大降低,甚至影响到检测结果。本文针对检测实时性要求高的特点,提出了一种快速Hough圆检测算法,能较好的满足检测实时性的要求。
a)基于
空间累加的圆心检测算法
Hough圆检测的核心思想就是:垂直于圆边界点的垂线最终会通过圆心。因此,如果沿圆的边缘画出每个边界点的垂线,就会在圆心上得到一个“亮点”(也就是众多垂线重叠的最厉害的地方)。在这里定义一个参数空间
空间,圆的边缘点对应的垂线就变成了
空间中的线段,如图4-2所示。
图4-2
空间中的边缘垂线段
线段表达式如式(4-3)所示:
(4-3)
式中,
,
,其中
。
定义了圆半径的范围,
空间矩阵用A表示,
表达了边缘的强度。
上述变换会在圆心处形成很亮的“亮点”。但是实验表明,这种方法对目标圆的圆度要求非常严格,如果目标圆只是一个近似圆的椭圆形,那么这个“亮点”就会迅速扩散开从而形不成可以检测到的区域。因此有必要采取方法使“亮点”区域集中,本文采用Mexican hat滤波器使“亮点”区域尽量集中。 由于图像上可能存在若干个目标圆,目标圆的圆心——“亮点”区域在数学上可描述为
空间的局部极大值,在这里采用一种基于最小距离原则的递归算法来找到所有的局部极大值,这样就可以检测出所有可能的圆心。
严格地说,对于不同的边界点形成的
空间线段不能一视同仁。例如,大圆相对小圆来说就具有更多的边界点,如果按照相同的标准来累加,大圆的圆心就会比小圆亮很多。因此,必须给
空间的线段强度加一个约束。
(4-4)
每个边缘点都倾向于将选票投给距离它最近的圆心,这样以致不会将错误的选票投到很远的地方,引起图像其他区域的计算。
b)基于r空间累加的半径计算方法
将圆心定位之后,接下来就要找圆的半径了。这要通过以半径为坐标的一维参数空间累加来实现。简单来说,对于区间
上的每个半径r,它的总投票值R(r)就是以r为半径的圆上所有边缘点P的边缘强度E(P)之和。
(4-5)
对这个方法在两个方面进行了优化。首先,上述方法更倾向于检测大圆,因此同前面一样,将边缘强度E(P)增加一个约束1/r,使上述方法对不同大小的圆都合适。其次,上述方法将所有处于半径r处的边缘点都计算在内,忽视了这些点的垂线并非都指向目标圆心;因而我们定义一个范围对这些点进行筛选,定义
为边缘点与圆心连线的角度,对于所有处于半径r处的边缘点,我们只考虑垂线角度在
范围内的点,这样就能极大减小假边缘点的影响。在仿真实验中,我们通常采用
或
。
计算完r空间之后,我们对其进行阈值化就能找到可能的半径了。阈值的选取需要有先验知识,如果目标圆只有一个,那么只需要选取r空间的极大值就能找到这个圆;如果目标圆是多个,那么阈值的选取与最后获得的圆的个数之间就需要进行试验了。
前面已经介绍了Hough变换的基本原理和方法,下面是对目标图像进行Hough变换人眼检测的实验结果。
a b c
图4-3 实验结果图
图中a为二值化图像,b为通过图像网络分割检测检测出的人脸图像,c为对人脸图像进行Hough变换之后检测到的眼睛图像。可以发现实验所得的结果满足目的需要。
4.4 疲劳的判断
文章前面已经提出了具体的眼睛检测方法,在对摄像头采集到的眼睛在横向和纵向上的实际所占像素值Contour_X、Contour_Y。计算p= Contour_Y/Contour_X, 即眼睛的纵横比, 这个比值对同一个人的睁眼或闭眼状态来说是相对固定的。但不同的人在这个值上都有一个共同点即眼睛闭合时值偏小( p< 0. 3) , 由此做出的判断适用于大多数的人。
具体方法是首先计算眼睛纵向和横向所占像素值,然后计算像素纵横比与已经设定好的阀值(譬如设定值为0.3)进行比较判断当前是否疲劳。然后进行下一帧的疲劳判断。
具体流程图如图4-4:
图4-4 疲劳状态判定流程
实验的某一结果如图4-5所示:
a 开度P=0.428>0.3 b 开度P=0.217<0.3 c 开度P=0.461>0.3
图4-5 实验开度检测部分图片
当实验中所测帧数里面,闭眼状态的帧数大于总帧数的40%,就能判定已经处于疲劳状态。故以此为依据来进行一段视频流进行取帧的检测结果。
实验中去了两组50帧的图像具体数值记录与表4-6:
上图中a检测开度小于设定的阀值,故其为睁开的状态,b检测的开度大于设定的阀值,故其测试为闭合的状态。
表4-6 实验分组结果记录
实验分组 | 闭合帧数 | 未闭合帧数 | 闭合帧数百分比 | 未闭合帧数百分比 | 检测结果 |
第一组 | 31 | 19 | 62% | 38% | 疲劳 |
第二组 | 24 | 26 | 48% | 52% | 疲劳 |
第三组 | 16 | 34 | 32% | 68% | 非疲劳 |
由实验结果可以分析得到,第一组实验闭合状态所占帧数62%大于限定值40%故判断其为疲劳状态;第二组实验闭合状态占总实验数据的48%故也处于疲劳状态;第三组实验中闭合状态帧数占总帧数的32%小于限定值40%故此实验者处于非疲劳状态。
本文首先在一幅目标图象中判定人脸的大致位置,分割出的人脸区域内进行眼睛和的检测与定位。对眼睛检测之后,判断其横向和纵向像素值,计算横纵像素值之比,然后得出此时眼睛的开闭状态。通过开闭状态在一些列帧图像中的比例,判断是否处于疲劳状态。
人脸区域检测:利用中值滤波增强图象对比度, 改善光照影响, 然后利用两次利用迭代式阈值选择算法, 对图象进行处理。本文人脸检测算法是一种比较基础的算法,利用对原始图像进行网络处理,把原始图像分成10x10的小方块,对每个小方块进行中值滤波,然后对滤波后的图像进行二值处理得到二值图,对每个二值图的小方块进行黑色像素检测,如果黑色像素比例满足设定,那么判断该方块属于人脸区域,依次一个一个的检测所有的小方块,把检测出的人脸识别出来。实验表明,该方法能较为有效地识别出人脸区域。
眼睛的检测与疲劳判定:通过Hough变换检测圆,对已经测得的人脸图像进行人眼检测。计算检测到的人眼的在横向和纵向上的实际所占像素值,计算眼睛的纵横比,这个比值对同一个人的睁眼或闭眼状态来说是相对固定的。但不同的人在这个值上都有一个共同点即眼睛闭合时值偏小( 小于0. 3) , 由此做出的判断适用于大多数的人。在对一些列图像进行处理判断睁眼闭眼的状态之后,计算出闭眼和睁眼状态在其中所占有的比例,根据闭眼状态的比例判断出是否处于疲劳状态。
虽然本算法在一定程度上能够较好地实现人脸的检测以及人脸特征的检测与定位, 但是在通用性上仍然有所欠缺, 主要是针对一些光照条件很差, 且有很多噪声点的目标人脸检测精度不高, 另外对于有遮挡物, 例如配戴眼镜, 胡须明显的情况检测情况不理想。这无疑会制约研究的实用性。
本文所做研究主要针对静态人脸, 而对于像驾驶员疲劳检测, 人脸识别这样的具体应用场合, 都需要采集动态的人脸图象, 然后在此基础上进行特征点的跟踪与定位。因而在接下来的研究中, 将逐步面向动态人脸序列进行研究。最后, 对于多人脸图象, 也要有所突破。基本而言, 对于单人脸图象检测难度相对较低, 而对于多人脸图象则要考虑的因素更多, 诸如人脸之间的遮挡, 近景中的人脸和远景中的人脸等情况。
希望在以后的研究生学习阶段在图像处理方面取得一定的成果。
-
- 刘保柱,苏彦华,张宏林. MATLAB 7.0从入门到精通[M]. 北京:人民邮电出版社,2010
- 姜华. 基于模式识别的驾驶员疲劳状态检测系统研究[D]. 哈尔滨工业大学硕士学位论文,2011
- 曹永. 驾驶员眼睛开闭状态计算机图像识别技术开发[D]. 青岛大学硕士学位论文,2011
- 梁涛,张志文. 基于OpenCV的视频图像人眼跟踪方法的研究[J]. 科学技术与工程,2013,13(5):881~884
- 傅亚煌,黄鸣宇. 基于眼动特征的机动车驾驶疲劳系统[J]. 电脑与信息技术,2013,21(1):90~96
- 张欧平,丁志刚,彭娟春. 组合型人眼识别方法及其应用[J]. 计算机工程, 2011,37(9):223~225
- 陶亮,庄镇泉.复杂背景下人眼自动定位[J].计算机辅助设计
与图形学学报,2003(1):15-1.
[8] 韩玉昌.眼动仪和眼动实验法的发展历程[J].心理科学,2000
(4).
[9] 荆其诚.国外眼动的应用研究[J].心理科学通讯,1964:1:30.
[10] RatliffFA,RiggsLA.Involuntarymotionsoftheeyeduringmonocular
fixation,JournalofExperimentalPsychology,1950,40(6):687.
[11] DodgeR.ClineTS.Theanglevelocityofeyemovements[J].Psycholo2
gicalReview,1901(8):145-157.
[12] JuddCH,SteeleWM.Psychologicalmonographs[J].1905,7(1).
[13] ShackelB.Noteonmobileeyeviewpointrecording[J].Journalofthe
OpticalSocietyofAmerica,1960,50(8):763.
[14] John G. Proakis, Masoud Salehi, Gerhard Bauch a, Liu Shutang translation. Modern communication systems (MATLAB version) [M]. Xi'an: Xi'an Jiaotong University Press, 2005
[15]Ching,Eugene Lai A Simple and Effective Real-time Eyes Detection Human Detection Without TrainingProcedure 2006
[16] Federal. Motor carrier safety Administration. Research and Technology Program Driver
Alertness and. Fatigue Focus Area Summery[EB/OL]. http://www.fmcsa.dot.gov/saftyprogs/
research. driver fatigue.htm, 2004
[17] NHTSA. Drowsy Driver and Automobile Crashes Report[EB/OL].http: //www.nhlbi.nih.gov/
health/prof/sleep/drsy drv. htm,1998
[18] Luis M. Bergasa. Real-Time System for Monitoring Driver Vigilance[J]. IEEE Transactions
on intelligent transportation systems, 2006, 7(1): 63-70
[19] Fletcher A, Dawson D. Field-based validations of a work-related fatigue model based on
hours of work[J]. Transportation Research Part F, 2001, 4: 75-88
[20] Singh S, Jamesl. Investigating driver fatigue in truck methodology[J]. Transportation
Research Part F: Traffic psychology and Behavior, 2006, 9(1): 65-76
[21] 李智. 基于视频图像的人脸疲劳状态检测技术研究[D]. 湖南: 国防科学技术大学, 2010
[22] 胡世锋. 基于眼部特征的疲劳驾驶实时检测算法研究[D]. 上海: 上海师范大学, 2010
[23] 周玉彬, 俞梦孙. 疲劳驾驶检测方法的研究[J]. 医疗卫生设备, 2003, 10(6): 25-28
[24] 钱录庆. 日本发明防止驾驶员打瞌睡系统[J]. 南方农机, 2004, (5): 46
[25] Gerry E. Warning system for fatigued drivers nearing reality with new eye data[J]. Science
Daily Magazine, 1999, (7): 25-30
[26] Nikolaos P. Vision-based detection of driver fatigue[EB/OL]. IEEE International Conference
on Intelligent Transportation, http://citeseerx.ist.psu.edu/showciting;jsessionid=C8DF969C
C248E86D4A86B038902729C0?cid=4203615
[27] 刘志强. 驾驶员疲劳监测方法[J]. 农业机械学报, 2006, 37(4): 210-217
[28] Ellen M A, Grace R, Steinfeld A. A User-Centered Drowsy-Driver Detection and Warning
System[C]. Proceedings of the 2003 conference on Designing for user experiences, 2003: 1-4
[29] 沈宇明, 陈钧. 汽车碰撞事故伤害分析与智能化安全气囊[J]. 汽车运输, 2001: 43-44
[30] 石坚, 吴远鹏, 卓斌. 汽车驾驶员主动安全性因素的辨识与分析[J]. 上海交通大学学报,
2000, 34(4): 441-444