基于MATLAB的人眼检测.docx

上传人:b****9 文档编号:23365697 上传时间:2023-05-16 格式:DOCX 页数:40 大小:483.18KB
下载 相关 举报
基于MATLAB的人眼检测.docx_第1页
第1页 / 共40页
基于MATLAB的人眼检测.docx_第2页
第2页 / 共40页
基于MATLAB的人眼检测.docx_第3页
第3页 / 共40页
基于MATLAB的人眼检测.docx_第4页
第4页 / 共40页
基于MATLAB的人眼检测.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

基于MATLAB的人眼检测.docx

《基于MATLAB的人眼检测.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的人眼检测.docx(40页珍藏版)》请在冰豆网上搜索。

基于MATLAB的人眼检测.docx

基于MATLAB的人眼检测

 

摘要

随着汽车工业的不断发展,随之而来的社会问题也愈加严重。

交通事故给人们造成巨大伤害的同时,也给社会带来沉重的负担和影响。

由于疲劳驾驶是引起交通事故的一个主要原因。

因此,研究一种合理有效、实时准确检测驾驶员疲劳驾驶的非接触式车载装置对于减少交通事故,道路安全有重大意义。

本文研究的主要内容包括:

人脸检测、人眼定位、眼睛特征提取和状态识别、疲劳程度的计算等算法的原理及实现。

首先详细阐述了经典的AdaBoost算法,该算法涉及的内容包括Haar-Like特征,弱分类器,级联的AdaBoost分类器等。

然后利用AdaBoost算法进行人脸检测。

虽然AdaBoost算法的检测速度快,误识率低,但是在样本的权重更新过程中,对于分类错误样本中的正、负样本没有加以区分,不利于提高正样本的识别率。

本文提出一种新的权重更新方法,对于分类错误的样本,对判断错误的正样本给更高的权重,使得算法在下一轮迭代时,更加关注对分类错误的正样本的学习,从而提高对正样本(人眼)的检测率。

采用基于最小二乘法对眼部的外轮廓进行椭圆拟合,根据拟合椭圆的参数来判断眼睛的睁闭状态;采用结合PERCLOS和眨眼频率的方法,对疲劳状态进行检测。

关键词:

疲劳检测,AdaBoost,人眼定位,PERCLOS

 

Abstract

Withthedevelopmentoftheautomobileindustrycontinuously,thesocialproblemsaremoreandmoresevere.Thetrafficaccidentsnotonlycausegreatharmtothepeople,butalsobringheavyburdenandeffecttosociety.Becausefatiguedrivingisamajorreasonthatcausedtrafficaccidents.Therefore,researchareasonableandeffectivereal-timeandnon-contactdeviceduetothedetectionofdriverfatiguedrivinghasgreatsignificanceforreducingtrafficaccidentsandraisingroadsafety.

Inthispaper,themainresearchcontentsarefacedetection,eyelocation,eyefeatureextraction,principleandrealizationofthecalculationoffatigue’degree.

Firstly,theclassicalAdaBoostalgorithmisproducedindetail.whichinvolvesHaar-Likefeatures,weakclassifier,cascadeAdaBoostclassifier,etc.Next,faceisdetectedbasedonAdaBoostalgorithm.

AlthoughtheAdaBoostalgorithmwithalowfalsepositiverateisfast,thereisnodistinctionbetweensamplesoferrorclassificationintheprocedureofweightupdating,whichignoreshitrateofpositivesamples.Inthispaper,anewmethodofweightupdatingisproposedtoimprovethehitrateofpositivesamples,whichpaysmoreattentiontopositivesamplesoferrorclassification.Aftertheregionofdriver’seyesisobtained,theellipsefittingalgorithmbasedonleastsquaresmethodisusedtofittheeyecontours,andtheeyestateisidentifiedaccordingtoparametersofellipse.Then,thefatiguestatecouldbedetectedbasedonPERCLOSandblinkfrequency.

Keywords:

fatiguedetection,AdaBoost,eyelocation,PERCLOS

1绪论

1.1研究背景及意义

所谓的疲劳驾驶,是指驾驶员在长时间持续驾驶或睡眠不足情况下而造成的反应能力下降,其主要表现在驾驶员困倦、驾驶操作反应迟钝或完全丧失驾驶能力。

因疲劳驾驶而在全球每年导致数以万计的交通事故和大量人员伤亡。

据公安部交通管理局数据,2010年全国共接报道路交通事故3906164起,同比2009年上升35.9%。

其中,涉及人员伤亡的道路交通事故219521起,造成65225人死亡、254075人受伤,直接财产损失9.3亿元。

其中疲劳驾驶被列为超速行驶,酒后驾车之后的第三大引发道路交通事故原因。

引起驾驶员疲劳驾驶的原因除上述的睡眠不足、长时间持续驾驶外,还与工作性质与时间、人的生理周期、酒精以及药物,乃至不同人的生活习惯、身体状况、年龄差异有关;另外,即使驾驶员状态良好或者在注意力高度集中的情况下,如果面对景色单一的高速公路,也容易因公路催眠而产生驾驶疲劳,从而导致自我控制能力减弱、判断迟缓、动作僵硬、视力下降、注意力分散以及视野变窄等不良反应从而发生交通事故疲劳驾驶作为引发道路交通安全事故的重要原因,越来越引起人们的重视。

由此可见,疲劳驾驶是一个比较严峻的问题,主要是由于它的隐蔽性很强,疲劳驾驶的发生很难预测和判定。

因此,当驾驶员刚出现疲劳症状时,如果能发出预警,或者自动降低车速甚至强制其停车休息,则可以有效地加强行车安全,减少由于疲劳驾驶所引起的交通事故,避免因此产生的经济损失和人员伤亡。

在过去的几十年中,国内外专家和学者都在积极研究疲劳驾驶,对疲劳检测的方法也做了各方面的探索,在一定程度上取得了很大的进步,但在实际应用过程中,还存在较多的问题,因此,如何及时有效的检测出驾驶员的疲劳程度,减少因疲劳驾驶而引发的交通事故已经成为当前智能运输系统的研究热点。

为了降低因疲劳驾驶导致的交通事故发生率和人员伤亡数量,降低人为因素导致的交通安全隐患,本文对人眼疲劳值算法进行了研究。

1.2国内外疲劳驾驶研究现状

目前国外的许多国家都对汽车安全方面投入了大量的资金,用来解决交通安全的问题。

许多高校和科研机构也都在该方面进行了大量的研究,并取得了丰硕成果。

日本一家公司利用装置在驾驶员头部上方的传感器来判定司机头部位置。

传感器利用驾驶员头部与其之间的距离计算并跟踪头部在三维空间当中所处的位置,然后依据不同时间下驾驶员头部产生的位移变化判断其是否处于疲劳状态。

利用装置在方向盘上的心跳感应器来检测驾驶员的心跳速度,该系统每隔一段时间检测一次,当司机处于疲劳状态时心跳速度减慢,因此可以简单易行的判断出驾驶员是否处于疲劳状态。

英国科学家为司机研制的防瞌睡报警系统,可以监视司机开车时的眼睛和肌肉运动,大脑活动及心率等,如发现异常,系统能及时发出报警。

美国研制的疲劳检测系统DDDS(TheDrowsyDriverDetectionSystem)。

此系统采用多普勒雷达和复杂的信号处理方法获取驾驶员烦躁不安的情绪活动、眨眼频率和持续时间等疲劳数据,判断驾驶员是否处于瞌睡状态。

该系统可以做成一个比较小的装置,放在驾驶员头顶上方,或头顶前方某个地方,以免影响驾驶员的驾驶。

2005年,澳大利亚的研究人员推出一款眼镜,通过内置于眼镜中的红外线传感器监测司机的眼睑活动和眨眼频率,并据此判断司机是否疲劳。

国内在人脸识别技术和驾驶员疲劳检测的研究方面起步较晚,相关技术还不成熟,同发达国家相比还有很大的差距,但一些高校和研究机构还是投入了大量的精力进行研究,经过几十年的努力,在驾驶疲劳检测方面也取得了一系列的成果。

江苏大学也在研究PERCLOS算法的基础上,设计出一套系统,该系统使用波长为850/950mm的红外图像仪及差分图像仪作为图像采集器,由于利用红外光源成像,排除了环境光源的干扰,提高了装置的适用性,满足各种驾驶情况下对驾驶员状态的监测要求,同时可以得到关于关键部位(眼部)的差分图像,提高了系统的实时处理能力,有一定的实用价值。

1.3本文的主要研究内容及组织结构

本文主要研究了人脸检测和人眼定位基础上的疲劳驾驶检测方法,重点研究了快速的Adaboost人脸检测算法,Mean-shift眼睛跟踪算法,主要目的是在经典的人脸检测和定位算法的基础上寻求一种改进的算法从而提高疲劳驾驶检测的实时性和准确性。

具体工作如下:

(1)研究并实现了对于静态图像和视频流中快速的人脸检测定位的问题。

采用经典的Adaboost算法实现了人脸的快速检测定位,该方法对于单个图像的检测率非常高且耗时很少,满足疲劳驾驶检测对于实时性的要求。

(2)研究并实现了基于Mean-shift算法的人眼实时跟踪方法。

通过在人脸检测基础上眼睛粗定位的基础上,用灰度和颜色分布来表示人眼,将颜色的直方图作为特征,实现了人眼轮廓的快速的实时跟踪定位。

(3)研究实现了眼睛特征提取和状态识别的算法,通过对人眼内外角点分别进行检测定位和对人眼上眼睑中间点的定位,拟合上眼睑的轮廓曲线,利用上眼险与人眼内外眼角点连线之间的距离实现了对眼睛状态的量化分析。

(4)结合PERCLOS标准和泛眼频率实现对疲劳状态的判决。

本文共分为六章:

第1章:

主要介绍了疲劳驾驶检测课题的研究背景和研究现状以及发展趋势和难点问题。

第2章:

对经典的Adaboost人脸检测方法进行详细阐述,并利用该方法实现快速的人脸检测定位,并介绍利用其进行疲劳驾驶检测。

第3章:

首先介绍了常见人眼定位方法,分析了各自的优缺点,再具体阐述了AdaBoost算法采用的Haar-Like矩形特征,然后分析了AdaBoost算法的一些不足,给出了改进方案,最后提出采用人脸检测—人眼定位的双层AdaBoost分类器进行人眼检测。

第4章:

研究实现了眼睛特征的提取和状态的识别。

第5章:

人眼状态的识别和疲劳判定模块,利用PERCLOS和眨眼频率对驾驶员进行最终的疲劳判定,达到对疲劳驾驶的预警提示。

第6章:

对本文进行了总结与展望,对本文所做的工作进行总结。

2人脸检测与定位技术

对于人眼疲劳检测的研究,首先要检测到人脸,在此基础上提取眼睛的状态参数作为特征信息来实现。

因此疲劳驾驶检测基础是人脸以及人眼的检测定位,人脸检测旳方法有很多,使用特定的硬件设备,采用红外照明,可以直接检测出睛孔的准确位置,从而定位出眼睛,进行后续的测量;其次可以先通过检测出人脸,减小图像中的搜索范围,再对检测的人脸区域进行搜索,找出眼睛的位置。

前一种利用硬件定位虹膜的方法,一旦眼睛识别失误,系统将不能运行,而后一种方法,只要准确的检测出人脸,就可以定位人眼的位置。

本文采用先检测出人脸的位置,然后在人脸区域进行眼睛定位的方案。

2.1人脸检测与定位技术概述

人脸检测是指在不同的背景条件中检测出人脸的所在,并将其从背景中分割出来,确定出其位置。

此过程主要受光照、噪声、头部摆动以及其他外部条件的影响。

人脸检测是我们进行疲劳驾驶检测的第一步也是基础,只有准确的检测定位出图像中人脸的准确位置,才能进行后面的工作。

而在实际生活中人脸检测常用于门禁系统、图像检索、人机交互等方面。

人脸检测的基础是建立人脸模型,先遍历所有的待检测区域后与所建立的人脸模型的进行匹配,之后得到可能存在人脸的区域。

目前主要的人脸检测方法可以分为两大类,基于图像的人脸检测方法以及基于特征的人脸检测方法。

前者属于一般的模式识别问题,将待检测图像作为人脸检测的输入,不需要对图像进行特征提取以及处理,直接进行训练后将样本分为人脸和非人脸两种类别,而后进行人脸检测:

后一种方法需要提取人脸的各种特种,例如肤色信息、人脸的轮廓结构、表情信息等,这一种方法是大部分人脸检测所采用的方法,采用经典的模式识别算法来实现。

2.1.1基于图像的人脸检测方法

基于图像的人脸检测一般不考虑图像的先验知识,不需要对图像进行特征提取和处理,直接将图像作为系统的输入,利用一般的模式识别算法进行训练,将样本图像分类为人脸类和非人脸类,而后将训练得到的人脸类和待检测区域进行匹配,进行人脸检测。

常见的基于图像的人脸检测方法有线性子空间法、神经网络法、统计法等。

1.线性子空间方法

可以将人脸图像看成处于整幅图像的一个子空间中。

通常用神经学的方法表示子空间,也可以用诸如主元分析以及线性判定分析等方法来表示。

2.神经网络方法

神经网络方法是解决模式识别问题的重要方法,也经常被用来解决人脸识别问题。

其通过训练过程中样本进行自学习,具有一定的自适应性和鲁棒性,避免了特征提取的环节,节省了运算时间。

3.统计法

除以上两类统计方法外。

还有基于贝叶斯决策方法的人脸检测和基于支撑矢量机方法的人脸检测方法。

2.1.2基于特征的人脸检测方法

1.特征分析的方法

常见的有两种方法,其一将单个人脸特征的相对位置作为基础,进行序列特征搜索;其二利用各种常见的人脸模型将人脸特征分类,建立不同的群类。

例如,特征搜索法和构象分析法就属于这种方法。

2.利用活动模型的方法

所谓的活动模型是指模型本身是一种真实的身体特征。

活动模型同局部特征相互作用,最终逐渐的将形成所要检测特征的形状。

当前常用的活动模型主要有:

Snake模型点的分布模型以及变形模型它就会同局部特征相互作用,利用活动模型解决人脸定位问题是近年来比较流行的方法。

3.底层分析的方法

底层分析主要指对图像的边界、灰度、颜色、尺寸等信息进行分析比较,得到所需要的检测特征。

由于基于特征的人脸检测一般都考虑图像的先验知识,基于图像边界的检测方法通过结合人脸图像尺寸的先验知识,对边界进行处理,提取角点及其边缘点,舍去那些突起的点,对整个图像进行搜寻后进行匹配确认。

观察一个人的脸部图像,会发现眼睛、眉毛、嘴唇等处的灰度变化较之脸部的其他地方灰度要小。

利用这样的性质,可以通过基于灰度信息的方法进行人脸检测,如通过水平方向和垂直方向的积分投影来定位眼睛和眉毛的位置,进行眼睛的检测以及定位。

2.2Adaboost算法介绍

分类是模式识别检测的关键,人们都希望研究出精度很高的机器学习算法。

机器学习算法可以粗略的分为强学习算法和弱学习算法。

强学习算法准确率很高,但是往往结构复杂,计算开销很大,与算法本身的质量相比,成本过于庞大,难以在实际生活中得到广泛的应用;弱学习算法结构简单,但准确率不高,仅比随机猜测略好。

一个自然的想法就是能否将弱学习器“提升”或“集成”为强学习器呢?

Schapire最初提出的Boosting算法就是在这种思想下建立和发展的。

Boosting算法是一种基于简单有效分类策略的机器学习方法,是集成学习的核心内容和研究热点。

Boosting是推助、提升的过程,它是将一系列比随机猜测略好的弱分类器加权组合为强分类器的算法。

Boosting这种特性受到了越来越多学者的重视,成为图像处理等领域的研究热点之一。

AdaBoost算法最早起源于Schapire在1990年提出的Boosting算法,它是一种能够提高任意给定学习算法准确率的方法。

AdaBoost算法的基本思想是利用大量的分类能力一般的弱分类器(WeakerClassifier)通过一定的方法叠加(Boost)起来,构成一个分类能力很强的强分类器(StageClassifier),再将若干个强分类器串联成为级联分类器(ClassifierCascade)完成目标的搜索检测。

本文就是利用AdaBoost算法将由Haar-Like特征生成的弱分类器叠加成为强分类器,再将强分类器串联成为级联分类器,进行人眼检测。

在众多的Boosting算法中,AdaBoost算法因其有以下优点而被广泛使用:

(1)算法速度快;

(2)不需要知道任何关于弱分类器的先验知识;

(3)对弱分类器的性能要求不高,只需要比随机猜测性能稍好即可,这种弱分类器在实际情况下很容易获得,从而降低了算法的复杂度,提高了效率;

(4)在弱分类器的构成上可以兼容多种方法,这些弱分类器可以是神经网络、决策树、最近邻域分类器、经验规则等;

(5)训练数据可以是文本、数字、离散值等,并且AdaBoost算法很容易被推广到多类目标的分类问题中去。

2.2.1AdaBoost算法描述

根据假设第i个训练样本在第t次迭代时分布权重为

,初始化时所有权重归一化

=1/m,m为样本数,然后调用弱学习算法进行T轮迭代,在每一轮的迭代中,弱学习算法的目标就是根据训练样本的权重

产生一个弱分类器

最简单的情况就是二值分类问题,即

分类器性能的好坏由

其误差率决定。

(2.1)

每次迭代后按训练结果更新样本的分布,对训练误判的样本赋予较大的权重,也就是让学习算法在后续的学习过程中关注于这些分类困难的样本,再对重新分布的训练集进行学习。

T次训练结束后,AdaBoost算法得到一系列弱分类器

…,

并给每个弱分类器赋予一个权重

…,

表示该弱分类器的重要性。

AdaBoost算法是一种迭代方法,它是通过改变数据分布来实现的。

它根据每轮训练中每个样本的分类是否正确,以及上轮的总体分类准确率,来确定每个样本的权重,然后将每次训练得到的分类器融合起来,作为最后的决策分类器。

在AdaBoost算法中,每一个训练样本都被赋予一个权重,表明它被某个弱分类器选入训练集的概率。

如果某个样本没有被正确的分类,那么在构造下一个训练集时,它被选中的概率就会增加;相反,如果某个样本已经被正确的分类,那么在构造下一个训练集时,它被选中的概率就会降低。

通过这样的方式,AdaBoost算法能够“聚焦于”那些较困难的样本上。

在具体的实现时,最初令每个样本的权重都相等,对于第t次迭代操作,就根据这些权重来选取样本,进而训练分类器

然后就根据这个分类器,来提高被它错分的那些样本的权重,并降低被正确分类的样本权重。

然后,权重更新后的样本集被用来训练下一个分类器

整个训练过程如此循环下去。

理论证明:

若每个弱分类器的分类能力比随机猜测好,那么当弱分类器的个数趋向于无穷时,强分类器的错误率将趋近于零。

对于二值分类问题,已知训练样本集(

),…,(

),

待分类样本有k个简单矩形特征,表示为

其中

对于第i个样本

,它的特征为

…,

,对每一个输入特征

有一个简单的二值弱类器。

第j个特征的弱分类器由一个阈值

、一个特征

和指示不等式方向的偏置

构成

(2.2)

可以看到,一个较低的阈值可以产生一个高检测率的分类器,但它的误识率也相应很高;相反,较高的阈值可以产生一个低检测率、低误识率的分类器。

AdaBoost算法构建强分类器的具体过程如下:

(1)对所有样本初始化权重。

(2.3)

(2)经过T轮迭代训练,挑选出T个弱分类器组成强分类器。

(3)最后得到的强分类器为

(2.4)

其中

为弱分类器的投票加权重。

以上过程的意义可以简单的表述为:

每一轮迭代过程在当前的概率分布上找到一个具有最小错误率的简单分类器,然后调整概率分布,增大当前简单分类器分类错误的样本的概率值,降低当前简单分类器分类正确的样本的概率值,以突出分类错误的样本,使下一次迭代更加针对“困难”的样本,使得那些被错分的样本到进一步重视,后面训练得到的新的简单分类器就会更加强化对这些分类错误样本的训练,这样经过多次迭代之后,产生的每一个新分类器基本上可以解决已有分类器不能很好分类的样本。

从而得到一个弱分类器序列,每个弱分类器赋予一个权重,分类效果好的相应权重就大。

T轮迭代后,最终的强分类器采用带权重的投票法产生。

图2.1给出了T轮AdaBoost算法的流程图。

 

N

Y

 

图2.1AdaBoost算法流程图

 

2.3AdaBoost算法分类器

由AdaBoost算法的收敛性能分析可以看出,通过增加AdaBoost算法中迭代次数T可以使得最终强分类器的分类误差尽量的小。

然而,随着T值的增加,强分类器中所包含的弱分类器的数目也不断增加,就使得检测过程中的计算量增加。

例如利用一个具有数百个弱分类器组成的强分类器进行检测的时候,需用所有的弱分类器对图像的每一个子窗口都检测,这大大的降低了检测的效率,因而很难达到实时应用目的。

为了减少计算时间,提高检测效率,可以构造分层的分类器,其主要思想是:

设计一个规模小的、效率高的、逐步渐进的分类器,使得该分类器在搜索过程中能拒绝大多数的负样本。

这种设计是逐级提高检测精度,前面几级使用的特征数目较少,结构较简单,主要进行非目标的排除,后面的弱分类器特征数目越来越多,检测精度越来越高,由于需要检测的子窗口越来越少,从而能够显著地提高检测的速度,以满足实时系统的要求。

2.3.1分类器级联策略

一个典型的Adaboost训练算法可以被简单的看成是对特征进行贪心选择的过程。

一个简单的boosting问题包含了非常多的弱分类器,这些弱分类器通过加权投票被组合在一起,经过T次迭代后,获得了T个最佳弱分类器,当这个强分类器对一幅图像待检测时,相当于让构成该强分类器的所有弱分类器投票,再对投票结果按照弱分类器的错误率加权求和,将投票加权求和的结果与平均投票结果比较得出最终的结果。

 

图2.2多分类器级联结构

2.3.2级联分类器误差分析

由级联分类形式和构造过程可看到,对于一个已经训练好的级联分类器,它的误识率是:

(2.5)

检测率是:

(2.6)

N为分类器的层数,

是每层分类器的误识率,

是每层分类器的检测率。

由以上两个公式可以看出,整体的检测率和误识率可以通过设定多层分类器的各个阶段的检测率和误识率来达到。

比如最终检测率0.9可以用10层,每层的检测率为0.99的分类器得到0.9≈

每层的检测率相当容易达到。

而每一层的检测率和误识率在该层分类器的学习过程中达到,如果该层分类器不能够排除足够的反例,则增加分类器的个数并重新进行分类器的学习直到达到要求为止。

同时可以发现,如果增加级联的层数,虽然能够减小误识率,但是相应的检测率也会降低,使得许多正样本被错误剔除,而且还会增加检测的时间,因此不可能无限的增加级联分类器的层数。

另外,由式(2.2)可以看出,适当的降低阈值能够提高检测率,但同时仍然会增大误识率,因此无论是增加级联分类器的层数还是降低阈值,都无法同时提高检测率而又降低误识率。

这也是制约AdaBoost算法在疲劳检测系统中应用的一个重要问题。

针对这个问题,将会在第3章中进一步讨论。

 

3人眼定位技术

在第1章中讲到,采用

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1