目录
随着汽车工业的不断发展,随之而来的社会问题也愈加严重。交通事故给人们造成巨大伤害的同时,也给社会带来沉重的负担和影响。由于疲劳驾驶是引起交通事故的一个主要原因。因此,研究一种合理有效、实时准确检测驾驶员疲劳驾驶的非接触式车载装置对于减少交通事故,道路安全有重大意义。
本文研究的主要内容包括:人脸检测、人眼定位、眼睛特征提取和状态识别、疲劳程度的计算等算法的原理及实现。
首先详细阐述了经典的 AdaBoost 算法,该算法涉及的内容包括 Haar-Like 特征,弱分类器,级联的 AdaBoost 分类器等。然后利用 AdaBoost 算法进行人脸检测。
虽然 AdaBoost 算法的检测速度快,误识率低,但是在样本的权重更新过程中,对于分类错误样本中的正、负样本没有加以区分,不利于提高正样本的识别率。本文提出一种新的权重更新方法,对于分类错误的样本,对判断错误的正样本给更高的权重,使得算法在下一轮迭代时,更加关注对分类错误的正样本的学习,从而提高对正样本(人眼)的检测率。采用基于最小二乘法对眼部的外轮廓进行椭圆拟合,根据拟合椭圆的参数来判断眼睛的睁闭状态;采用结合 PERCLOS 和眨眼频率的方法,对疲劳状态进行检测。
关键词:疲劳检测,AdaBoost,人眼定位,PERCLOS
Abstract
With the development of the automobile industry continuously, the social problems are more and more severe. The traffic accidents not only cause great harm to the people,but also bring heavy burden and effect to society. Because fatigue driving is a major reason that caused traffic accidents. Therefore, research a reasonable and effective real-time and non-contact device due to the detection of driver fatigue driving has great significance for reducing traffic accidents and raising road safety.
In this paper, the main research contents are face detection, eye location, eye feature extraction, principle and realization of the calculation of fatigue’ degree.
Firstly, the classical AdaBoost algorithm is produced in detail. which involves Haar-Like features, weak classifier,cascade AdaBoost classifier, etc. Next, face is detected based on AdaBoost algorithm.
Although the AdaBoost algorithm with a low false positive rate is fast, there is no distinction between samples of error classification in the procedure of weight updating,which ignores hit rate of positive samples. In this paper, a new method of weight updating is proposed to improve the hit rate of positive samples, which pays more attention to positive samples of error classification.After the region of driver’s eyes is obtained, the ellipse fitting algorithm based on least squares method is used to fit the eye contours, and the eye state is identified according to parameters of ellipse. Then, the fatigue state could be detected based on PERCLOS and blink frequency.
Keywords: fatigue detection, AdaBoost, eye location, PERCLOS
1.1 研究背景及意义
所谓的疲劳驾驶,是指驾驶员在长时间持续驾驶或睡眠不足情况下而造成的反应能力下降,其主要表现在驾驶员困倦、驾驶操作反应迟钝或完全丧失驾驶能力。因疲劳驾驶而在全球每年导致数以万计的交通事故和大量人员伤亡。据公安部交通管理局数据,2010年全国共接报道路交通事故3906164起,同比2009年上升35.9%。其中,涉及人员伤亡的道路交通事故219521起,造成65225人死亡、254075人受伤,直接财产损失9.3亿元。其中疲劳驾驶被列为超速行驶,酒后驾车之后的第三大引发道路交通事故原因。引起驾驶员疲劳驾驶的原因除上述的睡眠不足、长时间持续驾驶外,还与工作性质与时间、人的生理周期、酒精以及药物,乃至不同人的生活习惯、身体状况、年龄差异有关;另外,即使驾驶员状态良好或者在注意力高度集中的情况下,如果面对景色单一的高速公路,也容易因公路催眠而产生驾驶疲劳,从而导致自我控制能力减弱、判断迟缓、动作僵硬、视力下降、注意力分散以及视野变窄等不良反应从而发生交通事故疲劳驾驶作为引发道路交通安全事故的重要原因,越来越引起人们的重视。
由此可见,疲劳驾驶是一个比较严峻的问题,主要是由于它的隐蔽性很强,疲劳驾驶的发生很难预测和判定。因此,当驾驶员刚出现疲劳症状时,如果能发出预警,或者自动降低车速甚至强制其停车休息,则可以有效地加强行车安全,减少由于疲劳驾驶所引起的交通事故,避免因此产生的经济损失和人员伤亡。在过去的几十年中,国内外专家和学者都在积极研究疲劳驾驶,对疲劳检测的方法也做了各方面的探索,在一定程度上取得了很大的进步,但在实际应用过程中,还存在较多的问题,因此,如何及时有效的检测出驾驶员的疲劳程度,减少因疲劳驾驶而引发的交通事故已经成为当前智能运输系统的研究热点。为了降低因疲劳驾驶导致的交通事故发生率和人员伤亡数量,降低人为因素导致的交通安全隐患,本文对人眼疲劳值算法进行了研究。
目前国外的许多国家都对汽车安全方面投入了大量的资金,用来解决交通安全的问题。许多高校和科研机构也都在该方面进行了大量的研究,并取得了丰硕成果。
日本一家公司利用装置在驾驶员头部上方的传感器来判定司机头部位置。传感器利用驾驶员头部与其之间的距离计算并跟踪头部在三维空间当中所处的位置,然后依据不同时间下驾驶员头部产生的位移变化判断其是否处于疲劳状态。利用装置在方向盘上的心跳感应器来检测驾驶员的心跳速度,该系统每隔一段时间检测一次,当司机处于疲劳状态时心跳速度减慢,因此可以简单易行的判断出驾驶员是否处于疲劳状态。
英国科学家为司机研制的防瞌睡报警系统,可以监视司机开车时的眼睛和肌肉运动,大脑活动及心率等,如发现异常,系统能及时发出报警。
美国研制的疲劳检测系统 DDDS(The Drowsy Driver DetectionSystem)。此系统采用多普勒雷达和复杂的信号处理方法获取驾驶员烦躁不安的情绪活动、眨眼频率和持续时间等疲劳数据,判断驾驶员是否处于瞌睡状态。该系统可以做成一个比较小的装置,放在驾驶员头顶上方,或头顶前方某个地方,以免影响驾驶员的驾驶。
2005年,澳大利亚的研究人员推出一款眼镜,通过内置于眼镜中的红外线传感器监测司机的眼睑活动和眨眼频率,并据此判断司机是否疲劳。
国内在人脸识别技术和驾驶员疲劳检测的研究方面起步较晚,相关技术还不成熟,同发达国家相比还有很大的差距,但一些高校和研究机构还是投入了大量的精力进行研究,经过几十年的努力,在驾驶疲劳检测方面也取得了一系列的成果。江苏大学也在研究 PERCLOS 算法的基础上,设计出一套系统,该系统使用波长为 850/950mm的红外图像仪及差分图像仪作为图像采集器,由于利用红外光源成像,排除了环境光源的干扰,提高了装置的适用性,满足各种驾驶情况下对驾驶员状态的监测要求,同时可以得到关于关键部位(眼部)的差分图像,提高了系统的实时处理能力,有一定的实用价值。
本文主要研究了人脸检测和人眼定位基础上的疲劳驾驶检测方法,重点研究了快速的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.1基于图像的人脸检测方法
基于图像的人脸检测一般不考虑图像的先验知识,不需要对图像进行特征提取和处理,直接将图像作为系统的输入,利用一般的模式识别算法进行训练,将样本图像分类为人脸类和非人脸类,而后将训练得到的人脸类和待检测区域进行匹配,进行人脸检测。常见的基于图像的人脸检测方法有线性子空间法、神经网络法、统计法等。
1.线性子空间方法
可以将人脸图像看成处于整幅图像的一个子空间中。通常用神经学的方法表示子空间,也可以用诸如主元分析以及线性判定分析等方法来表示。
2.神经网络方法
神经网络方法是解决模式识别问题的重要方法,也经常被用来解决人脸识别问题。其通过训练过程中样本进行自学习,具有一定的自适应性和鲁棒性,避免了特征提取的环节,节省了运算时间。
3.统计法
除以上两类统计方法外。还有基于贝叶斯决策方法的人脸检测和基于支撑矢量机方法的人脸检测方法。
2.1.2基于特征的人脸检测方法