司机疲劳驾驶检测系统设计.doc_第1页
司机疲劳驾驶检测系统设计.doc_第2页
司机疲劳驾驶检测系统设计.doc_第3页
司机疲劳驾驶检测系统设计.doc_第4页
司机疲劳驾驶检测系统设计.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

司机疲劳驾驶检测系统设计摘要:随着社会经济的发展,商用长途运输车越来越多,司机为了追求经济效益,经常罔顾交通法的规定疲劳驾驶,而一些私家车也因为各种各样的原因经常铤而走险疲劳驾驶,酿成很多人间惨剧。为了减少减轻司机的精神压力并对疲劳及时提示预警,本论文以计算机视觉技术为主体,设计实用操作简单的疲劳驾驶检测系统,辅助驾驶员安全驾驶。司机疲劳驾驶实时检测系统在实际应用中有很重要的意义。设计了一个利用图像分析的方法,通过测量PERCLOS指标值来进行疲劳判断的该类系统。系统首先对图像进行预处理,然后采用基于YCbCr颜色空间肤色模型进行人脸粗定位,根据人脸特征,逐次进行人眼区域缩小;最后通过对边缘信息进行先验知识结合积分投影的方法进行人眼定位和闭合度测量。考虑到视频图像序列帧与帧之间的相关性,采用线性运动预测的方法对人眼进行跟踪,减少了系统的运算量。实验结果表明系统能实时、准确地反映司机的疲劳状态。关键词:疲劳驾驶 人脸检测肤色检测 交通安全 疲劳判断目录摘要Abstract1.疲劳驾驶检测系统研究背景与意义2.疲劳驾驶检测系统研究与实现2.1国内外疲劳驾驶检测系统研究现状2.1.1国外疲劳驾驶检测系统的研究成果2.1.2国内疲劳驾驶检测系统的研究现状2.2疲劳驾驶检测系统浅析2.3驾驶员疲劳检测系统的研究2.3.1人脸检测2.3.2人眼定位2.3.3疲劳程度的综合判定3.基于人脸特征的列车司机疲劳驾驶检测与识别系统研究3.1研究内容及目标3.1.1基于人脸特征的疲劳驾驶检测与识别算法开发3.1.2疲劳驾驶检测与识别算法OSP移植3.2基于Adaboost算法的人脸检测3.2.1人脸检测技术概述3.2.2Adaboost人脸检测算法3.3基于Adaboost算法的人脸检测软件实现3.3.1.样本训练过程3.3.2人脸检测程序3.4人眼检测与人眼状态分析算法3.4.1基于Adaboost的人眼检测算法3.4.2人眼级联分类器效果分析3.4.3人眼状态分析算法4.基于贝叶斯网络的驾驶疲劳程度识别模型4.1基于贝叶斯网络模型的驾驶疲劳程度识别4.2驾驶疲劳程度识别模型4.2.1驾驶疲劳贝叶斯网络结构4.2.2贝叶斯网络条件概率表的确定4.2.3驾驶疲劳程度贝叶斯网络识别模型4.3模型有效性验证5.基于FPGA的疲劳驾驶检测系统设计5.1疲劳驾驶检测系统总体设计方案5.1.1系统红外光源原理5.1.2系统总体设计5.2系统硬件设计与实现5.2.1系统硬件总体架构5.2.2图像采集电路设计5.2.3主控板设计5.2.4辅助电路设计5.2.5系统硬件电路的物理测试6.基于 NiosII 多核驾驶疲劳检测系统设计6.1系统介绍6.2系统关键模块设计6.2.1图像采集模块设计6.2.2图像处理算法6.2.3图像处理算法硬件加速的实现6.2.4数据存储模块设计7.疲劳驾驶预警系统的研究进展7.1预警系统的组成及工作原理7.2典型的疲劳驾驶预警系统7.3疲劳驾驶预警系统比较7.4发展趋势8.新型多功能驾驶员状态监测系统设计8.1无线脑电信号采集和分析8.1.1情绪预警8.1.2疲劳监测8.1.3突发疾病监测8.2酒精监测9.多源信息融合在驾驶疲劳检测中的应用9.1驾驶疲劳特征9.1.1PERCLOS值的计算9.1.2行驶方向改变与驾驶员反应不一致情况9.1.3方向盘动作状态9.1.4连续驾驶时间9.1.5实际时间参数9.2模糊神经网络疲劳识别9.2.1疲劳度量化9.3智能控制技术在汽车疲劳驾驶监控中的应用研究9.3.1硬件描述结束语参考文献1.研究背景与意义 驾驶疲劳川是指驾驶员由于睡眠不足或长时间持续驾驶造成的反应能力下降,这种下降表现在驾驶员困倦、打磕睡、驾驶操作失误或完全丧失驾驶能力。美国印第安那大学对交通事故原因的调查研究发现85%的事故与驾驶员有关,车辆和环境因素只占15%。驾驶员在事故发生前一瞬间的行为和故障直接导致了事故的发生,这些行为包括知觉的延迟、对环境的决策错误、对危险情况的处理不当等。在所有的驾驶员错误中,最常见的是知觉延迟和决策错误,这些错误会产生注意力不集中、反映迟钝、操作不当等,产生这些错误的根本原因就是驾驶疲劳。 随着我国生活水平的提高,人们的衣食住行等方面有了很大的改善,在交通方面更是有了质的飞跃。四通八达的道路、便捷的交通工具大大地缩短了人与人的距离,其中汽车保有量更是与日俱增,一个家庭拥有两辆以上的小车已经不是什么新鲜的事情。但是,汽车在带给人们方便的同时,随之而来的交通事故也源源不断。据统计,我国交通事故死亡人数己连续10多年居世界第一。我国在滚滚车轮下丧生的人数,短短十几年间己从每年5万多人增长到10多万人,是交通事故死亡人数居世界第二位国家的两倍。其中,驾驶员疲劳造成交通事故的占总数的20%左右,占特大交通事故的40%以上。同样,在国外情况也不容乐观。据美国国家公路交通安全委员会的估计,在美国大约发生56000次与睡眠有关的交通事故,其中约40000人次受伤和1550人死亡。1965年美国俄克拉荷马州收费公路局发表了1953年至1964年2128名机动车驾驶员发生车辆碰撞事故的调查结果:22%的驾驶员打吨驾驶,48%的交通事故归结于疲劳驾驶疲劳。由此可以知道,疲劳驾驶正逐渐成为交通事故的主要原因之一,成为马路上的“第一杀手”,如果我们能积极开展疲劳检测的工作,提醒驾驶者,很大程度上就能预防和减少交通事故的发生,使得公民的出行更加安全。因此,研究出一套疲劳检测的系统对社会和民众都有不可估量的社会意义和经济价值。 一套好的检测系统必须要有成熟而完善的算法。本文对疲劳检测系统的实现方法进行研究,以期提高疲劳检测的速度和准确度。如果能将好的算法应用于疲劳检测系统之中,无疑能更有效的预防驾驶员疲劳驾驶而引起不必要的人员伤亡和经济损失。2. 疲劳驾驶检测系统研究与实现2.1国内外疲劳驾驶检测系统研究现状对疲劳驾驶的研究在国外最早可以追溯到20世纪30年代,但实际上,投入真正研究的却还是从上世纪RO年代美国国会通过的汽车驾驶状态与交通安全之间的关系研究开始的。进入上世纪90年代,疲劳驾驶的科研工作得到了人们更大的重视,取得了一系列卓有成效的成果。2.1.1国外疲劳驾驶检测系统的研究成果 早期的疲劳驾驶测评主要是从医用角度出发,借助医疗器件进行生理特征测量的。疲劳驾驶的实质性的研究工作是从20世纪80年代由美国国会批准交通部研究交通安全和机动车驾驶的关系,并健全汽车安全管理条例开始的。由此把疲劳驾驶的研究提高到了立法高度,保证了开展疲劳驾驶研究的有效性、合法性和持续性。其研究工作大概可以分为两大类:一是研究疲劳磕睡产生的原因和其他诱发因素,寻找能够降低这种危险的方法:二是研制智能报警系统,防止驾驶员磕睡状态下驾驶。20世纪90年代,美国对疲劳驾驶电子装置的研发工作发展的较快。在各国研制的装置中具有代表性的成果有: (1)美国研制的打磕睡驾驶员侦探系统DDDS(The Drowsy Driver DetectionSystem)。采用多普勒雷达和信号处理方法,可获取驾驶员烦躁不安的情绪活动、眨眼频率和持续时间等疲劳数据,用以判断驾驶员是否打磕睡或睡着。该系统可制成体积较小的仪器,安装在驾驶室内驾驶员头顶上方,完全不影响正常的驾驶活动。 (2)美国华盛顿大学通过自行开发的专用照相机、脑电图仪和其他仪器来精确测量头部运动瞳孔直径变化和眨眼频率,用以研究驾驶行为问题。一般情况下入们眼睛闭合的时间在0. 2-0. 3 s之间,驾驶时若眼睛闭合时间达到0. 5秒就很容易发生交通事故。 (3)卡内基梅隆研究所的Copilot装置。研究所的Grace等人采用特制的红外LED装置,根据人的视网膜对不同波长红外光的反射量不同所表现出生理特征,使用850nm和950nm波长的红外光源,在同一时间内得到两幅眼部具有微小差别的图像,然后将这两幅图像进行差分相减,就可以提取出眼部瞳孔的位置和大小。再用PERCLOS法则计算眼睛的闭合程度来判断疲劳的程度。使用此装置能比较准确地定位出人眼然后进行疲劳判断。 (4)2000年1月明尼苏达大学计算机科学与工程系的Nikolaos P.Papanikolopoulos教授成功开发了一套驾驶员眼睛的追踪和定位系统,通过安置在车内的一个CCD摄像头监视驾驶员的脸部,用快速简单的算法确定驾驶员眼睛在脸部图像中的确切位置,追踪多幅图像来监控驾驶员是否驾驶疲劳。同年3月,他对上述系统进行了改进,改用红外线彩色摄像头并加滤波器滤除图像的噪声和非脸部的图像,使搜索脸部图像的次数减少,加快了处理图像的速度。 (5)日本成功研制了电子“清醒带”,固定在驾驶员头部,将其一端的插头插入车内点烟器的插座,装在带子里的半导体温差电偶使平展在前额部位的铝片变凉,使驾驶员睡意消除,精神振作。 (6)日本先锋公司最近开发出防止驾驶员开车打磕睡的系统。它可通过心跳感应器每隔巧秒检测司机的心跳速度,监测司机驾驶员是否打磕睡,在睡意来临巧分钟前提醒司机注意,防止发生事故。先锋公司还研究了通过测量眨眼频率和车体摇晃频率监测司机是否磕睡的系统。 (7)西班牙的防磕睡系统(Anti-Drowsiness System),测量驾驶时手对方向盘的握力,一旦检测到疲劳发生,利用汽车的灯不停的闪烁,提醒周围的交通车辆。 (8)澳大利亚的头部位置测量跟踪系统与沃尔沃合作,通过测量头部位置、闭眼和眨眼评估疲劳驾驶,但是它要求在司机的脸上作一些标记,给司机带来极大的不便。 (9) 2005年,澳大利亚的研究人员们推出了一款眼镜,它可以检测出司机是否已经处于疲劳状态,并及时提出警告。原理是通过红外线传感器监测司机的眼睑活动和眨眼频率,据此判断司机是否己经处于疲劳状态。 (10)转向盘监视系统S. A. M(Steering Attention Monitor),一种监测方向盘非正常运动的传感器系统,当方向盘正常运动时传感器系统不报警,若转向盘4s不运动就会发出报警声直到转向盘继续正常运止。该系统固定在车内录音机旁,转向盘下面的杆上装有一条磁性带,用以监测转向盘的运动。 (11)头部位置测量仪(ASCI Advanced Safety Concepts Inc研制)。传感器设计安装在司机座位上方,每个传感器都能输出司机头部距离传感器的位置,利用三角代数算法就可以计算出头在X, Y, Z三维空间中的位置,也能够实时跟踪头部的位置,同时利用各个时间段头部位置的变化特征,可以表现出司机处于清醒还是磕睡状态。该传感器物理特点基于传感器电极屏蔽之间的电容,通过人这个高导体可以改变电极之间的电容,通过测量电压计算头部与传感器之间的距离。当人进入电容区域时,临近的电容改变同距离之间的关系是,利用3个传感器,就可利用三角代数计算出头的X, Y, Z的坐标。并对司机的头部位置进行实时跟踪,并且根据头部位置的变化规律判定司机是否磕睡,发现点头的动作和磕睡有非常好的相关性。 (12)法国图卢茨西门子汽车公司投资1700万法郎研制的一整套疲劳检测系统。他们在汽车上装上5种传感器:汽车速度传感器(监测汽车是否超速)、脚踏板传感器(监控脚踏板上压力的情况,是否在预定时间内没有压力变化)、方向盘传感器(监测方向盘情况)、车尾CCD传感器(测量汽车和马路上旁侧或中间的白线距离)、眼睛传感器(专门监控眼部的疲劳特征)。这套系统主要是从多方面情况来联合监控驾驶员的情况,运用传感器融合的原理来综合判断驾驶员的情况,在实时性、准确性上有很大的保障。2.1.2国内疲劳驾驶检测系统的研究现状 国内的疲劳驾驶预警系统的研究还处于起步阶段,相对国外来说还比较落后。我国对疲劳驾驶的研究最早始于20世纪60年代,其中主要以高校居多。到目前为止,还没有很成熟的产品问世。目前的检测方法主要有: (1)江苏大学汽车与交通工程学院的葛如海教授等5人设计的一套疲劳监控系统,运用图像差分、灰度直方图等一系列图像处理方法,定位驾驶员眼睛睁开闭合状态,再用PERCLOS指标衡量驾驶员的疲劳状态。 (2)上海交通大学石坚、吴远鹏等人通过在车上安装传感器来测量方向盘、踏板压力等情况间接或许驾驶员的疲劳信息,当踏板或方向盘长时间不动的时候,驾驶员可能有疲劳的迹象,但是这和驾驶员的驾驶经验和习惯有关,准确性不高。 (3)中南大学对驾驶员驾驶时的疲劳检测方法进行了研究,设计出了一套眼睛跟踪系统,可达到实时的跟踪效果,同时研究了疲劳时眼睛的闭眼时间、快眨眼次数、慢眨眼时间和次数的特征模式。 (4)航空医学研究所的俞梦孙、周俞斌等司利用人眼在特定波长的红外光照射下的不同成像特点,设计了适用于全天候的疲劳检测系统。 (5)西南大学的姜德美提取驾驶员驾驶时的反应时间和方向盘转动角度作为BP神经网络模型的输入,来进行仿真验证。 (6)浙江大学正在研究驾驶防磕睡装置,该装置通过实时监测一段时间内驾驶人员眼睛的活动如眼睛的闭合时间、闭合频率等参数,来判断当前驾驶人员的注意力程度,从而识别驾驶员是否疲劳。 (7)中国农业大学车辆与交通工程学院正在进行机动车驾驶员疲劳测评方法的研究,他们使用CCD摄像头来采集图像数据,数据采集到计算机后,先利用高斯肤色模型进行驾驶员人脸定位,然后根据人脸图像的灰度分布检测出眼睛在图像中的具体位置,最后利用模板匹配技术判断出人眼的开闭状态,并计算出眼睛的闭合时间和PERCLOS,当眼睛的持续闭合时间大于3秒,PERCLOS大于80%时,就认为驾驶员处于疲劳驾驶状态,发出警告。 (8)吉林大学的王荣本等与中国业大学郑培等,利用机器视觉的方法对驾驶员的眼睛特征进行实时跟踪从而判断驾驶员的精神状态。 (9)深圳长途汽车公司的周鹏应用人体生理学、现代神经学、电子工程学分析了驾驶员疲劳事故隐患的起因,提出了消除疲劳事故隐患必须消除司机开车时的异常疲劳和大脑麻痹。根据这一思想他研究了佩戴于司机小腿部与手腕部的“司机疲劳事故预防器”。 (10)中国的金吉公司制造了一种像戒指一样的测量装置,利用人的皮肤阻抗的变化,司机磕睡时,通过声音提醒司机当前的状态,由于特异性和准确度不高,误报率和漏报率都很高。 综合国内外的现状来看,能做到实时、有效、简单地检测驾驶员的疲劳情况是目前研究的重点和热点,但是目前市场上还没有非常成熟的产品投入到市场上进行实际的应用,这主要存在着以下的困难:首先产品的投入成本比较高,汽车厂商研制出了较好的预警系统但是却无法很好地进行商业化的推广;其次目前疲劳的判断没有确切的定义,因此在进行疲劳检测的时候可能会出现误判等情况:再者诸如EEG,“清醒带”、监测眼镜等方法的有效性良好,但是由于是接触性的装置,大大影响了驾驶员了自由活动;最后还因为个体和环境的差异(诸如男女性别、近视眼镜、光照情况、路况等)受到不同的影响。 总体看来,驾驶员疲劳检测是个复杂的过程,我国的驾驶疲劳检测的方法同发达国家相比,还存在较大的差距。研究表明,眼睛状态和疲劳有很大的关联性,现阶段随着数码相机和网络摄像头的价格越来越便宜,通过监测驾驶员的眼睛状态来判断驾驶员是否疲劳的技术正逐步成为热点。因此,研究如何利用机器视觉技术、图像处理技术、人脸识别技术PERCLOS疲劳检测方法相结合,开发出一种车载的、非接触式的、实时的员疲劳检测系统是当前的一个研究热点,这就是本课题研究的初衷。2.2疲劳驾驶检测系统浅析经过几十年的研究疲劳检测技术仍远未达到成熟、完善的地步国内外主要研究成果如下(1)利用方向盘内置传感器感应驾驶员对航向纠正的速率若对方向的掌控迟钝则判为疲劳驾驶并发出警报但这个系统并未充分考虑长距直路、路况好的情况。( 2)利用内置摄像头侦测驾驶员眼部状态包括:眼睑、瞳孔变化及眨眼频率等来判断驾驶员是否疲劳。但这个系统并未充分考虑人眼特征差异,比如:眼眼小的人、睡觉睁眼的人戴眼镜的人等。( 3)利用连续驾车时间来判断驾驶员是否疲劳。这种方法很难扼制短暂停车继续驾驶的人。(4)利用后视镜传感器检测车辆是否偏离车道若车辆非线性行驶则判为疲劳驾驶并发出警报。该系统不适合崎岖、颠簸的道路。( 5)利用驾驶员脸部肤色变化来判断是否疲劳驾驶这种方法受光照强度的影响很大。其他如通过检测心跳、血压、明视持久度、能见度、调节时间变动率、闪光融合频率、脑电图、心电图、肌电图等判定疲劳的方法形式单一多信息融合系统随之产生担其准确性、可靠性有待完善。 2.2.1神经传导速度测定方法 疲劳直接反映了神经的传导时间人在疲劳时房使神经传导时间明显延时。所以神经传导速度可作为反应驾驶员是否疲劳驾马史的基本生理参数。 1.感觉神经传导速度测定方法 疲劳早期驾驶员主要是感觉障碍基本无运动障碍和肌肉萎缩问此时测定感觉神经传导速度对于预防疲劳驾驶、避免交通事故的发生具有重要意义。根据如下公式计算出感觉神经传导速度:检测方法如下(以挠神经为例)使用指环电极作为刺激电极,使用表面电极作为记录电极,刺激位置为拇指接近虎口的指关节,记录位置选择手腕挠测或前臂下1 /3a测出刺激点与记录点之间的距离S并测出刺激开始至感觉神经收缩产生动作电位的潜伏期T。 2.运动神经传导速度测定方法 运动神经传导速度检查能直接测定运动神经的传导性。根据刺激点与记录电极之间的距离差及潜伏期间隔来推算该段距离内的运动神经传导速度。 根据如下公式计算出运动神经传导速度: 2.2.2系统设计本系统主要靠检测、计算出的神经传导速度与参考值作比较来判断驾驶员是否疲劳。通过内嵌在方向盘内的电极及腕、肘部的电极来测得神经传导速度的关键参数并传入控制系统,由控制系统通过计算、与参考值进行比较最终对是否疲劳作出裁决厂旦认定疲劳驾驶,便启动声、光报警系统甚至自动刹车系统,以避免交通事故的发生。2.3驾驶员疲劳检测系统的研究 为了减少由于驾驶员疲劳驾驶引起的交通事故,提出驾驶员疲劳状态检测系统的方案。使用33中值滤波去除噪声和光照对图像的影响,通过对AdaBoost算法的强分类器训练算法改进、级联分类器优化实现人脸的快速检测,在检测到的人脸区域,通过积分灰度投影和从粗到细改进的模板匹配方法对人眼进行准确定位;通过PERCLOS、眼睛闭合时间、眼睛眨眼频率、嘴巴张开程度、头部运动的计算,进行驾驶员疲劳程度的综合判定。实验结果表明,该方法准确率高,兼具了良好的实时性和鲁棒性。2.3.1人脸检测 1.图像预处理 由于自然条件下的噪声和光照影响等一些因素,会给人脸图像的处理带来一定的干扰,所以需要找到合适的方法滤除噪声和改善非均匀光照的影响。经实验验证,33中值滤波法可达到很好的预处理效果。 2.改进的 AdaBoost 检测方法 1995 年,Freend 和 Schapire 提出 AdaBoost 算法,ViolaP 和 Jones M 提出的与基于积分图的 Haar-like 特征快速计算算法相结合的 AdaBoost算法,在历史上第一次真正实现目标的实时检测。这个算法的基本思想就是将大量的分类能力一般的弱分类器通过一定方法叠加起来,构成一个分类能力很强的强分类器,且算法不需要任何关于弱分类器性能的先验知识,很容易应用到实际问题中。AdaBoost算法流程如图2所示。 Viola P 和 Jones M 提出的基于 AdaBoost 的快速目标检测方法,虽然得到了广泛的应用,但是该算法还存在很多问题。如:虽然 AdaBoost系统检测速度很高,但是由于AdaBoost 算法本身训练比较耗时,整个系统的训练时间非常惊人。根据文献7,其系统在训练上花费了数周的时间。在分析这些问题的基础之上,本文提出了改进的AdaBoost目标检测算法,极大降低了检查的时间。 (1)强分类器训练改进算法 基于 AdaBoost的快速目标检测算法在计算 Haar-like特征时使用积分图的方式进行了快速计算,根据文献8的统计,2424的搜索窗口虽然有18万的特征,但是过半的矩形特征面积非常小(小于 22),这些特征在实际目标检测的性能很差,使训练的特征不具有很好的泛化能力。本文在进行特征选取的时候将这些小面积矩形特征进行过滤,避免了此类特征的计算,在保证分类器检测率的同时,提高了分类器的训练速度。由AdaBoost训练强分类器的训练算法可以看出,该算法是选择单个特征作为弱分类器,且选择弱分类器的标准是弱分类的检测准确率略大于随机猜测(即略大约0.5),则将该弱分类器保留。但是在训练的过程中,很可能出现非常相似的特征,这类相似的特征对分类器的性能没有提高的作用,而且不利于分类器的泛化能力。 (3)级联检测技术的优化AdaBoost 算法能够完成实时性检测的原因除了通过积分图进行快速特征计算之外,另一个重要原因是该算法在进行检测目标时采用了级联分类器。级联结构分类器如图3所示。在将训练出强分类器串联在一起形成层叠分类器时,应遵循“先重后轻”的分级分类器思想,将由重要特征构成的结构较简单强分类器放在前面。这样可以先排除大量假样本,从而提高检查速度。AdaBoost 算法在进行级联分类器训练的时候,对每一级强分类器都进行了重新训练,训练比较耗时。已经证明:“随着弱分类器数量的增加,通过AdaBoost构建的强分类器的检测率也会不断提高”。本文为了提高训练速度,在对级联分类器训练时,后一级的强分类器会重复利用前一级已经训练好的弱分类器,并在此基础上通过增加弱分类器的数量来提高强分类器的性能。这样可以大大减少强分类器的训练时间。2.3.2人眼定位1.灰度积分投影确定准眼睛区域在准确定位脸部位置后,根据人脸的面部器官的分布,人眼在脸部的上半部,所以首先截取人脸区域是上半部进行处理。人脸图像中眼睛部位的灰度值通常比周围区的灰度值小,利用该特征常使用积分投影的方法来定位眼睛。最为常用的投影函数是积分投影函数。 2.改进的模板匹配精确定位眼睛 模板匹配方法是假设待搜索图像 S 的尺寸为 W H ,模板 T 的尺寸为 M N ,通过一定的算法在大图像(即待搜索图像S)中搜索与模板T具有相近的尺寸、方向和图像的子图,并确定其坐标位置。基于相似度的模板匹配算法以各局部图像作为模板,先在人脸集中手工提取各种状态的眼睛图像作为模板。一幅眼睛图片为一个模板,即一个二维矩阵,利用眼睛模板与人脸图像作相关匹配,匹配函数如下:当模板匹配的相关系数 R(ij) 等于 1的时候,说明搜索子图与模板完全匹配。这只是一个理想值,模板匹配的过程中主要是寻找相关系数的最大值,此时它所对应的搜索子图便是所要寻找的目标子图。显然,用这种公式做图像匹配计算量大、速度慢。可以使用另外一种算法来衡量T和 Sij的误差,其公式为:计算两个图像的向量误差,可以增加计算速度,根据不同的匹配方向选取一个误差阀值 E0,当 E(ij) E0时就停止该点的计算,继续下一点的计算。2.3.3疲劳程度的综合判定 驾驶员疲劳的判定会因错误检查带来不良影响,本文采用 PERCLOS、眼睛闭合时间、眼睛眨眼频率、嘴巴张开程度、头部运动的计算,进行疲劳程度的综合判定,准确、有效地进行驾驶员疲劳的检测。1.PERCLOSPERCLOS(Percentage of eyelid Closure over thepupil overtime)是指眼睛闭合时间占某一特定时间的百分率。PERCLOS 方法有 P70,P80 和 EM 三种判定标准。研究表明P80与疲劳程度间具有最好的相关性。2.嘴巴张开程度嘴巴的状态通常有三种,闭合,说话及打哈欠,在疲劳状态下,人会频繁地打哈欠。在人脸下半部分进行水平灰度投影,观察不同单人图像的水平灰度投影曲线,会发现该区域下半部分的水平灰度投影曲线有一个波谷,即为嘴唇间位置。对人脸下半部分区域二值化,从嘴唇间向上、下计算连通区域(连通区域可以防止鼻孔及胡须对计算带来影响)的像素值,即可得到嘴巴的张开程度。3.眼睛高度 D 及嘴巴高度 H 补偿在上眼睑到下眼睑的垂直距离 D 及上嘴唇到下嘴唇的垂直距离为H时,由于驾驶员头部相对于检测设备有位置移动,因此为了实现驾驶员眼睛高度和嘴巴高度的准确计算,需要修正眼睛、嘴巴与检测设备距离相对变化引起的D及H变化。4. 眼睛闭合时间 眼睛闭合时间,一般用眼睛闭合到睁开所经历的时间来表示。人处于正常清醒状态时,眼睛闭合时间是很短的,会迅速睁开眼。而当疲劳时,眼睛闭合时间会明显变长,因此眼睛闭合时间能直接反映驾驶员的精神状态。本文采用计算从眼睛闭合 D/3 到睁开 D/3 的最大帧数,帧数越多,闭合时间就越长,则疲劳程度就越严重。 5.眼睛眨眼频率 人在疲劳状态下,眨眼频率会比清醒状态下频率高。本文也将其作为一项参数作为疲劳判断的依据。眼睛闭合 D/3 到睁开 D/3 为眨眼一次。累加一段时间内眨眼次数,作为疲劳判断的一项参数。 6.头部运动的疲劳参数 驾驶员在疲劳状态下会出现频繁点头,头部向前倾。本文通过水平灰度积分投影得到眼睛瞳孔、嘴角的水平位置。 d1为瞳孔水平位置到采集图片的上边缘距离,d2为嘴角的水平位置到采集图片的下边缘距离。在驾驶员疲劳出现点头情况,则 d1增大且 d2减小。驾驶员疲劳时,头部向前倾,则 d1增大且 d2增大。点头和头部向前倾可以作为疲劳判断的一项重要的依据。3.基于人脸特征的列车司机疲劳驾驶检测与识别系统研究3.1研究内容及目标 本章的目标是开发一套基于人脸特征识别的非接触式列车司机疲劳驾驶实时检测预警装置。本文的研究内容为:结合列车司机驾驶的特点和规律,利用模式识别与图像处理知识分析列车司机疲劳驾驶时的脸部特征,研究适合于列车运行时驾驶室光照情况复杂多变及高频低幅振动环境下的列车司机疲劳检测和识别算法,并在以DSP数字信号处理芯片为核心的硬件平台上实现检测与识别算法,以达到系统实时检测的性能要求。主要完成以下研究内容:1.实现由摄像头实时捕捉视频数据;2.提出适合列车驾驶室环境的人脸检测算法,使其对振动环境和光照变化有较强的鲁棒性;3.提出人眼检测算法,及判断眼睛睁开/闭合的状态识别分析算法;4.根据眼睛睁开/闭合数据,基于PERCLOS的P80模型,给出列车司机疲劳驾驶的判定算法;5.在以DSP为核心的硬件平台上,将列车司机疲劳驾驶检测与识别算法移植到DSP芯片中,提高算法的检测速度。 本识别系统的开发主要分为两大阶段进行:1.检测与识别算法开发:在PC上进行基于人脸特征的列车司机疲劳检测与识别算法开发。主要完成基于Adaboost算法的人脸与人眼分类器训练,以及人眼状态识别算法开发;2.基于DSP的疲劳检测与识别算法移植:将PC上的非实时疲劳驾驶检测与识别算法移植到基于DSP的高速数据处理嵌入式系统,使算法达到实时检测与识别的要求。3.1.1基于人脸特征的疲劳驾驶检测与识别算法开发本阶段的主要任务是:结合列车司机驾驶的特点和规律,分析列车司机疲劳驾驶时的脸部特征,研究适合于列车运行时驾驶室光照情况复杂多变及高频低幅振动环境下的列车司机疲劳驾驶检测与识别算法。整个检测与识别系统必须准确地检测和定位眼睛,根据查阅的相关技术资料,最终确定本阶段算法开发分为三个步骤进行:l)检测视频中的人脸;2)在人脸区域中定位人眼;3)对人眼状态进行识别,确定其状态,睁开或闭合。采用先检测人脸,再检测人眼的策略,可以减少检测算法的计算量,同时提高人眼检测的准确率。3.1.2疲劳驾驶检测与识别算法OSP移植根据国内外研究人员发表的论文或技术资料显示:采用Adaboost算法开发的人脸检测系统,计算量大,在对视频进行检测时,实时性方面表现不尽理想,而且本系统在人脸与人眼检测阶段均采用Adaboost算法,同时考虑到本系统设备便携式的要求,所以将算法移植到具有高速数据处理性能的DSP嵌入式系统中,提高系统检测与识别速度。 疲劳驾驶检测算法的DSP移植及优化,首先完成基于DSP旧105最小视频输入输出系统程序,然后将疲劳检测算法从PC移植到.DSP系统,并完成移植过程涉及到的相关算法优化及线性汇编优化等工作,使系统达到实时检测与识别的要求。3.2基于Adaboost算法的人脸检测整个疲劳检测系统首先必须准确地检测到人眼位置,我们采用先确定人脸区域,然后在人脸区域内进一步检测、定位人眼的方法,这样可以使得人眼的检测与定位更准确一些。3.2.1人脸检测技术概述 人脸检测采用的方法大致可分为基于统计和基于知识两种类型5。基于统计的方法将人脸图像视为一个多维向量,从而将人脸检测问题转化为多维空间中分布信号的检测问题;而基于知识的方法则利用人脸特征先验知识定义若干规则,建立相应的数学模型,从而将人脸检测问题转化为假设和验证问题,比如利用人脸肤色和几何结构等。 从表2一1可以看出,每种人脸检测方法都有一定的优缺点以及应用场合。基于知识建模的方法,一般对建模的假设条件依赖性强,而基于统计的方法,一般精度较高、鲁棒性强,但运算量大。对于本系统,列车驾驶室光照环境变化迅速,同时带有一定程度的震动,很难保证一个稳定的建模假设环境。例如,列车的光照环境不能保证基于肤色的检测算法要求的光照稳定的建模条件,而列车的震动环境也不能保证基于运动的检测算法要求的背景稳定的建模条件。基于统计的检测方法,通过模式识别的训练过程,提取人脸样本中的大量人脸本质特征,在光照不理想的情况下,即使缺失少部分特征,仍可以正确识别人脸。t一般来说,基于统计的人脸检测方法只需要当前帧图像,对振动环境并不是很敏感,带来的只是少许图像噪声,对算法检测性能影响不大。由于本系统采用高速DSP数字信号处理芯片,在很大程度上解决了基于统计的人脸检测算法计算量大的问题。 从上面的分析,可以看出基于统计的算法对列车复杂多变的光照、振动环境都有较强的适应性。在基于统计的人脸检测算法中,我们最终选择了基于Adaboost算法的人脸检测算法。3.2.2Adaboost人脸检测算法 1.集成学习算法 集成学习中一个关键问题就是弱分类器的集成问题。大部分机器学习算法只是通过单个分类器的生成来对新的样本做出预测,而集成学习则是多个弱分类器的结合,每一个弱分类器都可能是一种传统的机器学习模型。对一个新样本分类,集成分类器把这个新样本交给其多个弱分类器,再把各个弱分类器对新样本的分类结果通过某种方式(比如投票或求均值)组合来得到集成学习的预测结果。Hansen等研究发现,集成学习算法生成的分类器要比参与集成的那些单分类器的准确度高许多。我们也可以说成集成学习的优点是集成分类器的性能比单个弱分类器具有更好的表达能力。在众多的集成学习算法中,Adaboost算法因其有以下优点而被广泛使用:(1)算法速度快;(2)除了训练轮数参数T外,不需要调节任何参数;(3)不需要知道任何关于弱分类器的先验知识;(4)对弱分类器的性能要求不高,只需要比随机猜测性能稍好即可,这种弱分类器在实际情况下很容易获得,从而降低了算法的复杂度,提高了效率;(5)在弱分类器的构成上可以兼容多种方法,这些弱分类器可以是神经网路、决策树、最近邻域分类器、经验规则等;(6)训练数据可以是文本、数字、离散值等,并且Adaboost算法很容易被推广到多类目标的分类问题中去。 2.Adaboost算法Adaboost算法的训练过程是一个样本权重的迭代更新过程。在Adaboost算法中每个样本的权重值表示该样本被错分次数的多少,在每一轮权重更新的过程中,被错分样本的权重会变大,在下一轮循环中算法就会更加关注上一轮被分错的样本。如果一个样本被错分了很多次,那么这个样本的权重就会越来越大,我们就称这样的样本为“困难样本”。通过这样的方式Adaboost算法能够“聚集于”那些困难(更富有信息)的样本上。下面按照集成学习算法的两个关键问题介绍Adaboost算法,首先是Adaboost算法应用于人脸检测的弱分类器Hlike特征,然后介绍Adaboost的集成方法,即由Haar一like特征组成的弱分类器生成强分类器,最终获得级联分类器的方法。 3.3基于Adaboost算法的人脸检测软件实现 Adaboost分类器实现主要分两部分:Haar一like特征的选择过程,即样本训练过程;检测过程,即利用得到的Haar一like特征进行人脸检测。下面分别给出样本训练过程及检测过程的软件逻辑实现。 3.3.1.样本训练过程样本训练过程的主要目的是从过完全的弱特征中获取分类能力较好的少量弱特征,进而生成强分类器和级联分类器。下面详细介绍样本训练过程。在样本训练过程中,首先需要解决的就是人脸样本库的选择及预处理。3.3.2人脸检测程序 人脸检测程序主要是利用基于Adaboost学习算法训练得到的人脸级联分类器,进行实际的人脸检测。人脸检测程序流程包括图像预处理、积分图生成、特征值计算、级联分类器判断等步骤。下面给出级联分类器人脸检测程序的流程图,以及程序关键代码。3.4人眼检测与人眼状态分析算法3.4.1基于Adaboost的人眼检测算法 人眼训练过程需要人眼库,因为没有现成的人眼库,所以只能自己收集人眼样本,建立人眼库。人眼样本,主要裁剪自人脸库样本以及一些互联网下载人脸图片中。样本被统一缩放到20x12像素,样本库共包括1000个人眼样本和1500个非人眼样本3.4.2人眼级联分类器效果分析 利用人眼检测程序进行了大量图片检测,发现人眼检测正确率非常高,只要能够正确定位人脸,人眼检测几乎可以达到100%。经过分析,可以发现,这是由人眼特征决定的。首先,人眼特征简单、变化小,不像人脸特征多、变化大。其次人眼搜索区域小,人眼的搜索区域为先前定位的人脸区域,而人脸搜索区域为整幅图像。特征简单、搜索区域小,导致人眼检测正确率高,基本不会出现漏检和误检。3.4.3人眼状态分析算法人眼状态分析是疲劳状态识别最关键的步骤,也是一个主观的定义过程。人眼状态分析算法可以分为基于统计和基于知识建模两种方法。因为人眼开闭状态连续,状态确定主观,而基于统计的人眼状态分析方法(模板匹配,Fisher法等)固有的离散特点,使得基于统计的方法样本选择难度大,使用灵活性很差,因此本系统优先考虑基于知识建模的方法,该方法最大的特点就是模型参数可调,所以可以通过调节参数,尽量达到PERCLOS的P80模型的要求。最常见的两种基于知识建模的人眼状态分析基本方法是:Hough找圆法和灰度投影法。 1.Hough找圆法 Hough变换是图像处理中从图像中识别几何形状的基本方法之一。Hough变换的基本原理在于利用点与线的对偶性,将原始图像空间给定的曲线通过曲线表达形式变为参数空间的一个点。这样就把原始图像中给定曲线的检测问题转化为寻找参数空间中的峰值问题。 简而言之,Hough变换思想为:比如检测图像中的一条直线,在原始坐标系下的一个点对应了参数坐标系中的一条直线,同样参数坐标系的一条直线对应了原始坐标系下的一个点。原始坐标系下呈现直线的所有点,它们的斜率和截距是相同的,所以它们在参数坐标系下对应于同一个点。这样在将原始坐标系下的各个点投影到参数坐标系下之后,看参数坐标系下有没有聚集点,这样的聚集点就对应了原始坐标系下的直线。 2.灰度投影法灰度投影法基本原理:若人眼睁开,黑色瞳孔未被眼睑遮盖,则其垂直灰度投影在瞳孔位置形成一个波峰。若人眼闭合,黑色瞳孔被眼睑遮盖,则其垂直灰度投影基本呈水平直线。对眼睛部位进行垂直灰度投影,得到其灰度投影图,然后判断投影图是否具有明显的波峰,就可以判定眼睛状态。灰度投影法同样面临Hough找圆法同样的问题,需要图像的质量较高和准确的人眼定位,否则就不能获得明显的波峰,甚至可能出现两个较小波峰的情况,导致灰度均值较大等异常情况,导致状态分析错误。其次灰度投影法需要较复杂的前处理步骤,以消除噪声,才能得到很好的灰度投影图(即明显的单波峰,或小均值呈直线形式)。3.区域灰度特征比较法鉴于上述Hough找圆法、灰度投影法两种基于知识建模方法固有的过分依赖其假设条件,需要精确几何模型、鲁棒性较差的缺点,我们提出了一种区域灰度比较法,即使得眼睛状态分析具有基于知识建模方法的连续性、参数可调性,而且不需要精确的几何模型,同时也使得状态分析具有不错的鲁棒性。4.基于贝叶斯网络的驾驶疲劳程度识别模型4.1基于贝叶斯网络模型的驾驶疲劳程度识别驾驶疲劳作为一个不可直接观测的研究对象,其影响因素非常多且难以定量,各类度量指标对驾驶疲劳的界定又没有统一的标准。因此,判断驾驶疲劳程度是一个非常复杂的系统问题。与酒后驾驶的检测指标不同,所有用来检测驾驶疲劳的指标在获取过程中均会受到不同程度的干扰。目前,还没有一种方法能够对驾驶疲劳程度进行准确无误的检测。因此,使用概率论的方法对驾驶疲劳程度进行识别具有一定的合理性。贝叶斯网络模型的基本思想是:在信息不完备的情况下,通过可观察随机变量(证据变量)推断不可观察随机变量(隐含变量),进行概率推理。利用贝叶斯网络求解驾驶疲劳程度识别的问题可以表述为:在已知疲劳度量指标测定结果的情况下,利用贝叶斯网络方法求解在一定影响因素条件下,疲劳状态处于各种程度(清醒、轻度疲劳、重度疲劳)时的概率。驾驶疲劳贝叶斯网络的构建包括两个主要内容:1)确定网络节点;2)计算节点间的先验概率。其中,网络节点的选择取决于疲劳的各种特征及影响因素,而节点先验概率的确定则依赖于某个特征或因素对判断疲劳程度的可能性。4.2驾驶疲劳程度识别模型4.2.1驾驶疲劳贝叶斯网络结构 驾驶疲劳作为系统的核心,其复杂的影响因素即该系统的输入,在生理、眼动及驾驶绩效等方面表现出来的特征即该系统的输出。 将驾驶疲劳的影响因素分为三类:驾驶环境属性、驾驶人个体属性以及原始疲劳属性。各类影响因素的具体度量指标见图1。其中,温度、天气等变量是驾驶环境变量的父节点,相应的驾驶环境变量是温度、天气等变量的子节点,以此类推。4.2.2贝叶斯网络条件概率表的确定 在建立的驾驶疲劳贝叶斯网络模型中,条件概率分为两类:一类是输入层变量与隐含层变量之间的条件概率,另一类是隐含层变量与输出层变量之间的条件概率。4.2.3驾驶疲劳程度贝叶斯网络识别模型 输入层变量和输出层变量统称为贝叶斯网络中的证据变量。利用贝叶斯网络建立驾驶疲劳程度识别模型的原理是在已知网络中各节点先验概率的前提下,结合证据变量的取值,根据贝叶斯公式计算不同驾驶疲劳程度的后验概率。4.3模型有效性验证 采用模拟驾驶的方法进行实验设计。实验设备包括模拟驾驶仿真实验平台AS1300卡车驾驶模拟系统、多通道生物生理记录仪、摄像机等。同时采用斯坦福嗜睡量表(Stanford SI eepi ness Scale, SSS)对驾驶人的主观疲劳状况进行问卷调查,以了解驾驶过程中驾驶人对疲劳的主观感受。5基于FPGA的疲劳驾驶检测系统设计5.1疲劳驾驶检测系统总体设计方案5.1.1系统红外光源原理主动红外光源理论的内容:人眼视网膜对不同波长红外光的反射率不同,对850nm波长红外光的反射率是90%,对940nm红外光的反射率是40%,红外波长在880士80nm范围之内时,人脸的其他部分对于红外光的反射程度基本一致。这样通过控制这两组LED灯的闪烁频率得到亮瞳孔和暗瞳孔图像,将这两幅图像经过差分获得瞳孔明显的几乎没有背景干扰的以人脸为主体的差分图像,大大简化了整体算法的复杂度。如图2.1所示:获得了差分图像后,对其在水平和垂直方向上进行投影,通过确定人脸的上、下、左、右边界来定位出人脸区域。依据人眼和人脸的固定几何关系来定位出人眼的大致区域,接着在此区域内利用复杂度算法检测到瞳孔。人眼睛睁开时瞳孔面积大,当人闭眼时,瞳孔面积随闭眼程度变化,当完全闭眼时瞳孔面积为0,所以通过统计瞳孔面积可以判断当前采集到图像中驾驶员是睁眼还是闭眼。最后通过统计一段时间内闭眼帧数占总帧数的比例得到眨眼频率进行驾驶员是否疲劳的判断。P80疲劳算法定义了闭眼的标准和疲劳判断的标准。闭眼标准为:眼脸遮住瞳孔的面积超过80%;疲劳标准是:一段时间内闭眼帧数己:总帧数的比例大于40%。5.1.2系统总体设计本系统主要集成了图像采集、存储、算法处理、报警和显示模块,组成了以FPGA为核心控制器的疲劳驾驶检测系统。系统的总体方案图如图2.2所示。 本设计中的图像处理算法都是在FPGA上实现的,算法处理速度达到了视频源25帧每秒的速度,解决了现有疲劳驾驶系统领域普遍存在的难以满足实时性的问题。5.2系统硬件设计与实现5.2.1系统硬件总体架构 整体硬件电路根据功能划分为三部分,完成图像输入功能的图像采集板、完成系统控制、图像存储以及其他功能模块的主控电路板、实现图像数据模拟转数字以及数字转模拟的辅助电路。下面分模块介绍硬件电路的具体实现。5.2.2图像采集电路设计 图像采集板上集成的元器件由图像传感器、外围电路元件和LED灯,设计并不复杂,所以我们设计为双层板。考虑到本系统主要是基于主动红外光源原理,所以图像传感器的选型以及LED灯的布局结构设计对整个系统的功能实现有重要影响。 1.图像采集电路原理图设计 该模块包括两部分:CMOS图像传感器电路和LED电路。 (1)CMOS图像传感器电路:CMOS图像传感器的外围电路主要由控制电路、石英晶振组成,它正常工作所需要的5v电压则主要由主控板提供。 (2)LED电路:本设计用到了两种波长的LED灯:850nm和940nm。其原理图如3.3所示:这两灯的参数是:工作电压为1.5一1.65V,工作电流为5一20mA,发光角度为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论