电子信息工程基于图像处理的疲劳驾驶预警系统设计与实现_第1页
电子信息工程基于图像处理的疲劳驾驶预警系统设计与实现_第2页
电子信息工程基于图像处理的疲劳驾驶预警系统设计与实现_第3页
电子信息工程基于图像处理的疲劳驾驶预警系统设计与实现_第4页
电子信息工程基于图像处理的疲劳驾驶预警系统设计与实现_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、广东东软学院本科毕业设计(论文)基于图像处理的疲劳驾驶预警系统设计与实现 Design and implementation of fatigue driving early warning system based on image processing 中文摘要在科学技术与经济的不断发展中,人们的生活水平也在大幅度的提高,但是,机动车辆的普及带来了交通肇事率居高不下。在有关机构的调查中显示,有接近五分之一的交通事故是因为驾驶员的疲劳驾驶而发生的,因此,对于疲劳驾驶的严重性我们应该加以重视。驾驶人员长期未休息时会出现视线模糊、动作呆板、精力不集中等现象。驾驶员在疲劳驾驶的时候,会分成三种情况

2、,有轻度、中度、重度。这些情况会极大可能的导致交通事故的发生,因此,要想减少我国的交通事故的发生,首先应该从疲劳驾驶入手。虽然我国道路交通法明确对疲劳驾驶进行界定和出具处罚条例但疲劳驾驶仍屡禁不止,因此防止司乘人员疲劳驾驶进行随车检测特别关键,现在市场上的疲劳驾驶预警系统应用还没普及,更多的因素是准确率和低成本的问题。 本文是对于识别率问题和成本问题进行研究的,首先通过明确本论文研究方向和目的,并对目前已有的疲劳驾驶预警系统进行研究和分析,在搭建方案本文首先进行图像采集和处理研究,利用基于HOG特征训练和Opencv对人脸进行检测和特征点定位,并对识别到的人脸特征进行识别,用 PERCLOS

3、算法对人眼的疲劳程度进行判定达到初步预警的效果。关键词:图像识别 Opencv 疲劳驾驶 PERCLOS算法 ABSTRACTWith the continuous development of science, technology and economy, peoples living standards are also greatly improved. However, the popularity of motor vehicles has brought a high traffic accident rate. According to the investigation of

4、 relevant organizations, nearly one fifth of traffic accidents are caused by drivers fatigue driving. Therefore, we should pay attention to the severity of fatigue driving. When the driver does not rest for a long time, peoper will have blurred vision, inflexible movement and lack of concentration.

5、When the driver is tired driving, it can be divided into three situations, mild, moderate and severe. These situations will lead to the occurrence of traffic accidents. Therefore, in order to reduce the occurrence of traffic accidents in our country, we should start with fatigue driving. Although ou

6、r countrys road traffic law clearly defines fatigue driving and issues punishment regulations, but fatigue driving is still prohibited for many times, so it is very important to prevent drivers and passengers from fatigue driving to carry out on-board detection. Now, the application of fatigue drivi

7、ng early warning system in the market has not been popularized, and more factors are the problem of accuracy and low cost.In this paper, the problem of recognition rate and cost is studied. Firstly, the research direction and purpose of this paper are defined, and the existing fatigue driving early

8、warning system is studied and analyzed. In the construction scheme, firstly, the image acquisition and processing research is carried out, and the face detection and feature point location are carried out by using the Hog feature training and Opencv, and the recognized face is also analyzed Features

9、 are identified, and PERCLOS algorithm is used to determine the fatigue degree of human eyes to achieve the preliminary warning effect.Keywords:Image Identification Opencv Fatigue Driving PERCLOS Algorithm目录第一章绪论11.1 研究背景和意义11.2 国内外研究现状11.2.1 对疲劳驾驶背景下交通事故发生的研究11.2.2 对疲劳驾驶背景下减少交通事故发生的对策研究21.3 研究内容2第二

10、章图像处理理论和检测方法研究42.1 图像预处理42.1.1 增强图像对比度42.1.2 图像去噪42.2 图像分割与特征提取52.2.1 图像分割52.2.2 特征提取62.3 疲劳驾驶监测方法研究82.3.1 常见定位方法描述与比较82.3.2 眼部特征描述与分析92.3.3 疲劳度判定方法描述与比较92.3.4 评价指标10第三章系统方案设计113.1 整体方案设计113.2 硬件方案选择113.3 软件环境搭建133.3.1 Python开发语言介绍133.3.2 Opencv介绍133.3.3 第三方库介绍13第四章 系统的实现与验证154.1 软件环境搭建过程154.1.1 在树莓

11、派上拓展文件系统154.1.2 在树莓派上搭设软件环境154.2 人脸识别及眼睛定位164.2.1 人脸识别174.2.2 眼睛识别184.3 疲劳检测设计194.4 检测过程及结果20第五章 总结与展望23参考文献24致 谢26广东东软学院本科毕业设计(论文)第一章 绪论1.1 研究背景和意义从汽车发明到现在有一百多年的历史了,在这一百多年里,汽车随着科技的发展变得越来越先进,同时也给人们的生活带来了便利,缩短了人与人的距离。与此同时,也存在一些问题,那就是因为人为失误从而导致交通事故发生的问题,其中因为疲劳驾驶引发的交通事故的比率也在不断上升,占所有交通事故的五分之一以上。当人们处在疲劳状

12、态时,他们不能很好地控制车辆,身体各个机能的调动效率明显下降,且反应速度也明显下降。驾驶员出现疲劳后,不会立即发生交通事故,但是我们要在这个空档期对驾驶员进行及时的提醒,才能有效的避免事故的发生。因此,在驾驶员驾驶汽车出现疲劳时,如果有类似预警装置对驾驶员进行及时的提醒,从而降低驾驶员驾车的危险。所以,这类预警系统的研发对司机的安全有着重要意义。1-3。经过多年的发展,有各式各样的疲劳识别预警装置被发明,但是这些疲劳识别预警装置并没有有效解决汽车方面上驾驶员的疲劳驾驶问题,并且应该在汽车领域的疲劳驾驶预警装置也少之又少。其中主要的因素有:一是更多的驾驶员不是长途驾驶,而是短时驾驶,因此不容易出

13、现疲劳,对于短途的驾驶员来说,安装此类装置是可有可无的事情。二是市面上此类装置的成本比较高,普通的驾驶员认为没有必要消费此类装置,而且市面上的此类装置识别率不高,也无法保证驾驶员的行车安全。根据以上说的情况,如果有一种疲劳预警装置,它的识别率高且成本低,这才能在汽车领域中得到普及应用。对于驾驶员舒适度的考虑,我们应该首先不考虑一些与驾驶员身体有直接接触的装置。在对各种方案进行筛选后,本文选用的是基于图像处理的的PERCLOS准则和眨眼频率相结合的方案进行疲劳驾驶识别。4-6。1.2 国内外研究现状由于疲劳驾驶对交通事故的产生有重大影响,所以相关的研究比较多,综合起来主要是对疲劳驾驶背景下来减少

14、交通事故的发生进行了论述。1.2.1 对疲劳驾驶背景下交通事故发生的研究我国对驾驶员安全的监控技术研究的起步算是比较晚的,因此,目前已有的装置中在算法效率不够高、疲劳识别不够准确、且实时性和鲁棒性还有待进一步提高7, 8。在曾刚的疲劳驾驶预警系统应用研究一文中指出:科学技术和经济的快速发展,激发了人们对美好生活的向往,则会想法设法的去提高生活水平,进而促进了汽车数量的快速增长。汽车的增长有利有弊,其中的弊端之一就是因为人们疏忽或无意识的错误操作引发的人为性的交通事故,而这些人为性的交通事故中驾驶员的疲劳驾驶是最主要的因素之一。所以,研发一种识别率高且成本低,且能在汽车领域得到普遍应用的疲劳预警

15、装置,是保证驾驶员安全的重要途经。在金璐的机遇与挑战论三网融合对电视发展的影响一文中指出:疲劳驾驶成为当今社会交通事故的主要因素之一后,我们应该要加强对驾驶员的疲劳检测识别9-11。迄今为止,有各式各样的疲劳驾驶检测方法,但要考虑这些检测方法对驾驶员的干扰,我们往往要选择一些不需要与驾驶员身体有直接接触的检测装置。在根据各式各样的装置利与弊进行挑选后,本文选用的是基于图像处理的眨眼频率和PERCLOS准则相结合的方案进行疲劳驾驶识别。1.2.2 对疲劳驾驶背景下减少交通事故发生的对策研究在曾刚的疲劳驾驶预警系统应用研究一书中指出,在人脸图像定位上,采用的是AdaBoost算法与Haar特征相结

16、合,对人脸图像进行定位;在人脸定位的实时性上,采用的是Camshift算法与AdaBoost算法相结合。在人眼部分,也同样采用Haar特征和AdaBoost算法对人眼进行定位。与此同时,将椭圆拟合和投影法相结合,加强了对闭式人眼的识别率,最后采用PERCLOS算法对人眼疲劳的状态进行检测。付永庆的基于眼球运动速率检测的疲劳预警系统研究一文中表示:是采用眼球运动的速率方法对驾驶员的眼睛进行实时识别12-14。实验结果表明,上文采用的基于眼球运动速率的疲劳预警方案具有实时性和准确性。金璐的机遇与挑战论三网融合对电视发展的影响中指出了司机在行车过程中总是会出现疲劳特征状态,所以该方案是通过司机在行车

17、过程中眼睛部分的PERCLOS值和眨眼频率来识别司机的状态。根据实验结果显示,改良后的算法很大程度上减少了运算的复杂性,且精度上有着大幅度的提高。基本可以实现疲劳驾驶识别进程中对实时性和准确度的条件。因此,本文提出的疲劳驾驶检测装置对减少交通事故有可研究的价值。15-17。从以上研究材料可以看出,我们可利用PERCLOS算法对人眼的疲劳程序进行判定驾驶员是否为疲劳驾驶。 1.3 研究内容本文研究疲劳识别装置涉及到框架搭建与构思、软硬件结合构建、图像算法研究、疲劳预警四个部分。对于该系统的钻研方法:文本深究法、文献研究法、方案比较法等方法进行探究。经过深入研究得出目前要解决的关键问题为:图像识别

18、,利用PERCLOS算法对人眼的疲劳程序进行判定。第二章 图像处理理论和检测方法研究2.1 图像预处理在对图像采集后,往往会出现噪声影响、对比度低、图像中不需要的实质东西过多等缺点。这会对后面的特征提取和图像识别产生严重的干扰,因此,为了排除这些缺点,我们不得不进行图像预处理,来过滤图像的内容。即提高图像表达的信息能力,使机器能够更清晰地理解图像。总之,预处理就是考虑实际情况对输入图像进行变换,以减少无用信息的影响,突出有用信息的过程18, 19。2.1.1 增强图像对比度图像对比度的增强是为了是图像的轮廓更加容易被检测,一般的方法是将图像进行灰度化,再对图像的灰度对比度进行增加,从而增强图像

19、的对比度。而对图像进行灰度的方法有直方图校正法和直接灰度变换法20-22。根据课题要求,我们采用直接灰度变换法的线段线性变换法来达到我们的目的。线性变换法的数学公式为: 该数学公式的意思:将灰度范围由a,b区间映射在c,d区间内。当db,ca时,则代表在a,b灰度范围区间的动态范围提高了,也就是图像的对比度增强了。2.1.2 图像去噪图像平滑的目的是消除噪声。图像平滑的方法有区域平均法和中值滤波法。区域平均法是指通过图像的像素和该像素特定地方的加权平均值或者平均值来作为像素的新值,来达到图像平滑的功能。常用的模板有33box模板和33高斯模板。 33box模板 33高斯模板中值滤波法是指取图像

20、中的其中一个像素作为中心,将所有像素的灰度按照由小到大顺序进行排列,再取到排列结果的中值作为像素的灰度值。均值滤波对高斯噪声有很好的抑制作用23-26,而中值滤波对高斯噪声的抑制效果不是很明显的。通过上面两种滤波方法优缺性进行比较,发现采用另一种数据排序方法的效果是相对较好的,也就是说噪声点被图像没有受过污染的点替代的几率会相对其他方法高出许多,所以可以看出,采用数据排序的方法对噪声抑制效果相对较明显,图像轮廓可以很清楚被辨识出来。2.2 图像分割与特征提取2.2.1 图像分割我们通过把图像需要的部分进行分离,从而达到图像分割的目的。本文后序的研究需要进行图像分析和模型识别,而图像分割就是进行

21、图像分析和模型识别的基础,也只有这样做,才能得到最终准确的结果。20。先设一个阈值T,假设灰度图像中的每个像素比T大,把函数赋成1,否则就赋为0,我们称这一过程为阈值分割过程。 为了得到最佳的图像分割效果,本课题将采用了Ostu分割法。以下是Ostu方法运算:设图像总像素为N,灰度级总数为L,灰度数为的像素数为 ,另和分别表示从灰度级0到灰度级的像素出现的概率和平均灰度,分别表示为: 由此可见,所有像素的总概率为,图像的平均灰度为。设有M-1个阈值(0),将图像分成M个像素类(;j=1,2,;)则的出现概率,平均灰度和方差为: 由此可得类内方差为: 各类的类间方差为: 取使类内方差最小或使类间

22、方差最大的阈值组作为M阈值化的最佳阈值组。2.2.2 特征提取与单侧特征提取相比27, 28,采用综合提取多面特征作为识别参数提高了识别率,而颜色和形状特征通常作为图像特征参数提取。由于待识别对象的数据量大,一般不可能用直观的特征来识别,因此需要对图像信息进行变换和比较,才能得到最具代表性的特征性质分类。1. 颜色特征提取识别一张图像最有分辨力的特征应属图像的颜色,它呈现给人的是最直接视觉效果。而且图像的变化对图像的颜色特征是没有影响的。在图像处理中最常用的颜色模型是RGB、HSV等,并且这两种模型可以互相转变的。(1)RGB模型RGB模型的颜色是通过使用3D空间中的一个点表示,三个分量表示一

23、个点,分别代表点颜色的红色(R)、绿色(G)和蓝色(B)亮度值。亮度值是在0,1区间。如下图2.2所示:图2.2 RGB 颜色模型(2)HSV 模型HSV模型是一种用于用户感知的颜色模型。该模型中的颜色参数为色调(H)、饱和度(S)和明度(V)。其中,色调(H)按冷暖可分为暖色调和冷色调; S是颜色饱和度;V是亮度,亮度是指颜色的明亮程度。 HSV 模型如图2.3所示。图2.3 HSV颜色模型(3)RGB与HSV相互转化HSV色彩空间与RGB色彩空间转换公式为:设(r,g,b)分别是一个颜色的红、绿和蓝坐标,它们的值是在 0 到 1 之间的实数。设 2. 形状特征提取形状特征一般用来描述物体的

24、几何性质。通常,它们的形状可以将目标形状与其他物体区分开来。因此,在图像识别领域,形态学特征得到了广泛的应用。在图像处理中,对图像中物体形状的描述是对物体边界或被边界包围的区域的描述。2.3 疲劳驾驶监测方法研究2.3.1 常见定位方法描述与比较 疲劳检测的最重要的部分就是人脸定位和人眼定位。最常用的人眼定位与人脸定位算法有基于知识的定位方式、利用外观的定位方法、依据模板的定位方法等方法。 (1)基于知识的定位方式 通过已知的规则进行设定,如人脸是几乎轴对称的及人的眼睛是对称分布的等特征。该方法的缺点就是,当我们的脸部进行各种不性时,这种定位方法则会出现一定程度的偏差29, 30。(2)利用外

25、观的定位方法 通过对大量的样本进行分析,区分出人脸的特征和非人脸特征进行建立分类器。这种建立分类器方法的精度取决于训练样本的准确度。本课题将采用此算法用于人脸与眼睛的定位。(3)依据模板的定位方法 通过对人脸进行模板构造,再用算法设置有关参数。把要检测的图像进行窗口调整,得出有关参数关系,最终确定人脸。模板定位法虽然计算量小,但对图像进行处理时需要对图像进行预处理,该方法不适用本课题。2.3.2 眼部特征描述与分析 本课题研究是基于图像处理对驾驶员进行疲劳识别,通过比对,发现对眼睛识别是最高效得,因为眼睛的状态呈现出一个人精神面貌,特别是疲劳的时候,眼睛表现出来的生理特征是最明显的。通过这种方

26、法可以更加直接的对驾驶员进行疲劳识别。目前,对眼睛状态的检测方法有红外线或可见光。对于本课题来说,可见光条件下是更适合对驾驶员进行疲劳检测的。通过检测驾驶员的眼睛状态可以识别出驾驶员是否处于疲劳状态。这识别过程中,最重要是识别眼睛的闭或合。常用的识别眼睛闭或合的方法有Hough 变换、眼睛参数、积分投影法、椭圆拟合法等等11。(1)Hough 变换法通过对眼睛进行识别,假设可以识别到虹膜,就代表眼睛是打开状态;否则就是闭合状态,该方法对本课题不太适合,且计算量会增大很多。(2)眼睛参数法通过识别眼睛上下眼睑的位置来分辨出驾驶员是否处于疲劳。在本课题上该方法不能实现精确的定位。(3)积分投影法通

27、过对阈值分割的图像进行人脸识别,来得出空间的投影,并用投影关系进行疲劳判断。12。(4)椭圆拟合法通过最小二乘法对人眼轮廓进行椭圆拟合,从而得出拟合椭圆的长轴和短轴,并根据得出的短轴和长轴的比来判断驾驶是否处于疲劳状态。 2.3.3 疲劳度判定方法描述与比较 通过识别眼睛来判定驾驶员的疲劳程度的常用方法有眨眼频率、眨眼持续时间、眼睛闭合速率、PERCLOS 原理。 (1)眨眼频率一般在不疲劳的情况下,眼睛眨眼频率是1015次/min,从睁眼到闭眼再到睁眼的间隔约为0.2s。通过计算驾驶员在一定的时间内的眨眼次数,我们可以断定司机是否处于疲劳状态。 (2)眨眼持续时间在非疲劳状态下,人眼每次眨眼

28、时间约为0.2秒。当驾驶员疲劳或有异物飞入眼睛时,驾驶员的眨眼持续时间显著增加。这两种情况都会影响行车安全。眨眼持续时间可作为疲劳的指示器。(3)眼睛闭合速率通过判断驾驶员的闭眼时间的长短,一旦超过正常的时间,就可以判定驾驶员处于疲劳状态,在实验中可以设置正常状态的时间作为阈值从而可以辨别驾驶员的状态。(4)PERCLOS 原理在一段时间内,驾驶员闭上眼睛的时间占这段时间的比例越长,表明司机很大可能是处在疲劳状态的。根据以上研究,发现PERCLOS算法与疲劳度的相关性最好。因此,本课题将选择PERCLOS算法作为疲劳驾驶的识别方法。2.3.4 评价指标在疲劳识别预警装置的有关算法中,需要使用对

29、人脸、眼睛位置和眼睛状态识别相关的评价指标如准确度、漏检、错误检测、测试时间、稳健性等等14。有了这些评价指标,才能使得下面的研究更加准确,更能达到本课题的实验目的。第三章 系统方案设计3.1 整体方案设计本课题的疲劳检测方案主要包括图像的输入、人脸识别、眼睛定位和疲劳检测。系统采集并存储摄像机采集的视频流,然后通过Opencv对图像进行灰度化,如果图像中有人脸,则表示驱动程序已就位,该系统会对人脸特征进行识别,特别是应用面部界标定位对眼睛区域进行提取,后续通过特定算法对持续识别到的眼部动态情况进行疲劳度检测。根据以上构思本论文需要设计到硬件方案选型和软件环境搭建。硬件选型需要考虑到价格和检测

30、实时性以及与软件环境兼容性,因此选用树莓派4b,软件搭建主要运用Opencv丰富的图像处理库和容易上手的python语言,下面主要会树莓派硬件参数进行介绍以及后续将会使用到Opencv进行介绍。3.2 硬件方案选择硬件选择上需要考虑硬件资源与软件环境移植,Raspberry Pie 4B提供的桌面性能与入门级x86 PC系统相当,处理器为博通新一代产品BCM711。在性能和配置上比上一代产品都有很大的提升两代产品配置比较如表3.1所示。如图3.1所示模块实物图,考虑到后面需要移植Opencv以及图像识别的实时性,在此选用Raspberry Pi 4B。l Raspberry Pi 4 Mode

31、l B系统配置:l 1.5GHz 4核心64位 ARM Cortex-A72 CPU l 1GB/2GB/4GB LPDDR4 SDRAM 内存l 全吞吐量千兆以太网l 双频 802.11ac 无线网络l 蓝牙 5.0l 两个 USB 3.0 和两个 USB 2.0 接口l 双显示器支持,分辨率高达 4Kl VideoCore VI 显卡,支持 OpenGL ES 3.xl HEVC 视频 4Kp60 硬解码l 完全兼容早期的树莓派产品表3.1 树莓派两代产品配置比较图3.1 Raspberry Pi 4 Model B实物图3.3 软件环境搭建3.3.1 Python开发语言介绍通过深入了解

32、本课题需要的开发环境,发现Python是最适合本课题代码开发的开发语言,因为Python是一种包含多种对象的语言,最重要的是Python的开发效率高和源代码的可移植性好。还可以对Python进行命令编程,这适合芯片的代码移植和给运行功能增加了便捷性。另外,Python可以针对本课题的脚本编码,在脚本命令中进行命令运行。3.3.2 Opencv介绍Opencv是由Intel公司开发的一个开源函数库,可以进行图像处理及人脸识别分析。它的基本功能包括:图像信息的基本处理;支持链表、数组等各种非静态数据结构;矩阵数据连接线性方程组的运算和操作;运动分析和目标识别等等。对于科研人员来说,Opencv是有

33、两个受欢迎的重要性能:一是计算速度快,二是丰富的库函数。现在,计算机技术在视觉处理中的应用收到越来越多人重视。因此在开发Opencv的过程中,人们经常将其应用于许多行业和其他领域,如为汽车产品的检测、医生医院癌细胞的分析等等领域提供了良好的机器视觉界面功能。计算机视觉对我们现代的生活影响越来越深刻,并可能在未来被计算机视觉技术影响的领域将会更广。目前,我们可以看到的是Opencv已经成为了计算机视觉技术发展的动力源泉之一。Opencv模块图如下3.1中所示:3.3 Opencv模块图3.3.3 第三方库介绍本实验中涉及到图像处理与面部识别和定位以及疲劳预警等功能,软件部分采用Opencv+py

34、thon,其中Opencv有丰富的功能库广泛应用于图像处理,模式识别和物体识别(本论文中主要运用到人脸识别)、运动跟踪等领域所以涉及到主要第三方库有cv2、imutils、dlib、scipy、playgroud等。其中cv2、imutils可以对图像进行基本操作,如图像从文件夹读取显示,以及旋转裁剪等初步几何操作,另外可以进行灰度处理霍夫变换等基本变换。Dlib是一个广泛使用的开放源码学习库,并且涵盖了各式各样的算法。本文中主要使用Dlib中基于HOG(Histogram of Oriented Gradients-based)特征训练的人脸识别和面部特征点检测器应用于人脸识别和眼部定位,可

35、以极大的简化开发,如图3.1所示的人脸识别和3.2所示的面部特征点标记效果图。3.4 人脸检测效果图3.5 面部特征点标记Playsound模块应用于预警系统,预警需要使用音频播放功能,在python2.x版本中有MP3player这个使用体验良好的模块但鉴于其不支持python3.x及以上版本,所以采用playsound模块,该模块功能虽然单一,但可以可用于播放事先导入好的wav、mp3等后缀格式音频文件达到预警作用。事先需要进行安装:pip install playsound。第四章 系统的实现与验证4.1 软件环境搭建过程在上文中确定所使用Opencv和所使用硬件资源,本小节中主要进行软

36、件环境搭建,方便后期效果测试,首先进行Opencv在树莓派的安装,主要参考网络博文。4.1.1 在树莓派上拓展文件系统由于目前使用的树莓派为新装的系统,所以需要首先进行树莓派的镜像烧录,再进行扩展文件系统。1需要在树莓派终端上输入: $ sudo raspi-config。2然后需要配置软件环境工具中的高级选型中的“扩展文件系统”选型,如图4.1所示配置完成后将模块进行重启。重新启动后,通过执行 df -h 检查输出来验证磁盘是否已扩展,避免后面Opencv内存不足。图4.1 拓展文件系统界面4.1.2 在树莓派上搭设软件环境1.更新软件源和软件2.修改软件源在列表中加入以下,注释掉默认网址,

37、并保存。3.相关库安装4.Opencv下载及安装测试a. Opencv下载b. Opencv安装测试将下载好的zip文件解压并用Cmake指令配置还编译参数编译并安装,完成后进行重启测试Opencv是否安装成功:5.测试Python程序4.2 人脸识别及眼睛定位通过上一小节实现环境安装后,本小节主要进行人脸识别及眼睛定位这一重要环节,人脸识别和眼睛定位效果如下:4.2.1 人脸识别1. 构造参数解析并使用dlib预先训练的-shape-predictor面部地标探测器最后解析参数。图4.2 插入-shape-predictor面部地标探测器代码2. 启动视频流线程(打开摄像头),重新定义图片尺

38、寸为450*450,并把图像从RGB转到灰度图像,再提取人脸外部矩形框最后进行显示。图4.3 人脸识别代码3. 检测效果如下图:图4.4 人脸识别效果图4.2.2 眼睛识别1初始化dlib的面部检测器(基于HOG),然后创建面部地标预测器,并抓取左侧及右侧面部标志点的索引,再计算左眼和右眼的凸包,然后对眼睛的轮廓进行绘制。图4.5 眼睛定位代码2.检测效果如下图:图4.6 眼睛定位的效果图4.3 疲劳检测设计在疲劳检测设计方面,系统调用 Dlib 库,采用基于HOG特征训练的面部特征识别进行目标识别和标记结果如图4.1中所示。对目标图像生成示的人脸特征点进行标志使用索引提取眼部区域,根据公式4

39、- 1 计算EAR( 人眼平均长宽比) 。 (公式4-1)图4.7 人脸特征点标志效果图当眼睛是打开时,每个人眼睛平均长宽比几乎是不变的。在闭眼的时候,眼睛的平均长宽比会迅速降到很小很小。因此,我们可以根据眼睛的平均长宽比来判断驾驶员是否闭眼,根据闭眼的时间和频率、眼睛开闭时坐标的位置以及闭眼过程中长宽比的变化来判断司机是否打盹。4.4 检测过程及结果1.遍历面部检测的像素点,确定面部区域像素点的位置,然后将面部标志像素坐标(x,y)转换为NumPy阵列。再提取左右眼坐标,并使用计算双眼的眼宽高比的坐标,最后平均双眼的眼宽比。图4.8 平均双眼的眼宽比代码2.计算眼睛比例,首先计算两组之间的欧

40、几里德距离得出垂直眼地标(x,y)-坐标,再计算水平面之间的欧氏距离得出眼标志(x,y)-坐标,最后计算眼睛长宽比并返回眼睛纵横比。图4.9 计算眼睛比例代码3.首先定义两个常量,一个是眼睛长宽比阈值,一个是闪烁阈值,再初始化帧计数器和警报开关。眼框比必须低于眼睛长宽比阈值,相当眨眼了,帧计数器就会计数;如果闭上眼睛足够长时间,以至于帧计数器的计数超过闪烁的阈值,则就会触发报警系统。图4.10 识别疲劳并触发预警系统代码4.检测结果和预期一样,实现对人脸识别并对眼睛进行判断,从而判断是否疲劳。如下图:图4.11 检测结果一图4.12 检测结果二第五章 总结与展望疲劳驾驶识别装置对于智慧城市的交

41、通领域的作用不容小视,它依赖于模式识别、传感器、计算机图像等相关技术的综合应用。目前,国内厂商开发的疲劳驾驶识别技术已部分实现,其在市场上的应用主要集中在大型工厂。随着视觉识别技术应用的不断深入,对产品的预警功能提出了更高的要求和服务。而对于国内而言,首先,基于国内监管环境和司机驾驶习惯,从根本上解决疲劳驾驶取决于司机驾驶习惯,道路交通法相关立法条款也相当重要。其次,一些识别过程和编程方法针对性强,但是在各种平台上应用起来不太方便。因此,设计一种具有很好移植能力的识别算法,使其应用范围不仅局限于某一模式,而且能满足准确的识别和预警效果,是嵌入式智能系统面临的一个具有挑战性的问题。在评价目标识别

42、系统的效果时,我们会考虑误码率,因为它依赖于计算机视觉处理技术,还受输入图像硬件不稳定、运算速度等方面影响识别效率。同时,在今后的工作中还有许多问题需要解决。有效利用先进的识别技术,在疲劳驾驶系统中采用嵌入式平台、高性能传感器等技术开发,可以促进交通系统智能化管理更高效、更快的发展,同时我们的生活质量更便捷、更高端。参考文献 1 李照舒志兵基于DSP的驾驶员疲劳实时预警系统设计J控制工程2019(01):94-1002 邵喆丹汪丽青李静文基于GPS的疲劳驾驶预警系统J信息通信2015(06):85-863 杨金胜基于驾驶员面部特征分析的疲劳驾驶监控系统的设计与实现J科学与财富2015(22):

43、1594 陈芳军基于脑电疲劳驾驶预警系统的设计与实现D:广东工业大学,20185 李超石向荣黄剑华基于脑电信号处理的疲劳驾驶预警系统的设计与实现J科学技术创新2018(2):75-766 岳翼基于图像识别的模拟驾驶疲劳检测系统设计及实现J电子世界2016(22)7 侯璐松驾驶员警觉度预警系统研究与实现J现代计算机:上下旬2017(1):34-378 周鹏飞驾驶员疲劳驾驶实时检测系统设计与研究D:长春工业大学,20169 马乐姜立标王会荣王蒙驾驶员疲劳驾驶预警系统的设计J哈尔滨工业大学学报2011(05):144-14810陆二庆杨伟亮驾驶员疲劳检测报警系统的研究设计J网络安全技术与应用2012

44、(05):44-4611李凌志疲劳驾驶报警系统设计及制作J信息与电脑2016(22)12杜基赫疲劳驾驶检测系统的FPGA设计与硬件实现D:重庆大学,201413卢阳疲劳驾驶检测系统的设计及FPGA实现D:重庆大学,201314茆佳能王维锋张立疲劳驾驶检测系统的设计与实现J公路与汽运2016(4):55-59, 共5页15李琪宋凯疲劳驾驶预警装置的实现与软件设计J辽宁大学学报(自然科学版)2003(04):78-8016王景利汽车驾驶员防疲劳驾驶报警系统的设计J汽车实用技术2016(11)17刘杰任成华刘中华刘文红汽车疲劳驾驶检测与自动报警系统设计J汽车工程师2015:60-6218刘党辉孙朋尹云霞

温馨提示

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

评论

0/150

提交评论