驾驶人疲劳预警系统设计毕业论文
2020-04-06 13:08:31
摘 要
这些年来,我国经济发展速度飞快,如今已是GDP全球第二的大国,国民的购买力水平也在不断提高,之前一般人买不起的汽车,如今也成了很普通的交通工具,但是带来的却是众多且不断上升的交通事故,严重影响了国民的幸福感和安全感,其中,据统计危害最大的特大交通事故的发生原因有40%是疲劳驾驶导致的,所以,设计开发出一款实用且精度高的驾驶人疲劳预警系统是十分有意义的。
本系统采用OpenCV计算机开源视觉数据库,由摄像头获取人脸实时图像并对其进行灰度化和降噪处理,训练基于类haar特征的层叠分类器,并利用其从图像中先定位人脸,再定位人眼,然后将眼睛部位截取下来进行二值化处理,计算里面黑色像素的最大坐标差值,可得到眼睛高度值。设定一个给定值,当眼睛高度值连续五帧小于给定值时,触发报警模块,系统将对驾驶人进行预警警示。
关键词:疲劳预警; OpenCV; 人眼识别
Abstract
With the east wind of reform and opening to the outside world, our country's economic strength is rising, and now the GDP is the second largest country in the world. The purchasing power level of the people is also increasing. The cars that the ordinary people can't afford to buy have become a very common means of transportation, but the following is a very large and rising exchange. It is of great significance to design and develop a practical and high precision driver fatigue warning system, which is caused by 40% of the cause of fatigue driving.
This system uses the OpenCV computer open source visual database. The real-time image of the face is obtained from the camera with the notebook and its line is grayscale and de-noised. The classifier is trained on the classifier based on the features of the class Haar, and uses it to locate the human face from the image first and then relocate the human eye, then the eyes are intercepted to carry on the two values. The maximum coordinate difference between the black pixels in the calculation is the eye height, and a threshold is set. When the five frame of the eye is less than the threshold, the trigger alarm module is used to warn the driver.
Key Words: Fatigue early warning; OpenCV; human eye recognition;
目录
第1章 绪论 1
1.1选题背景 1
1.2检测驾驶人疲劳状态方法分析 1
1.2.1检测驾驶人生理信号 1
1.2.2检测驾驶人生理反应特征 2
1.2.3检测驾驶人操作行为 2
1.2.4检测车辆状态信息 2
1.3选题目标 2
1.4分析用户需求 3
1.5本章小结 3
第2章OpenCV介绍 4
2.1 OpenCV背景介绍 4
2.2 OpenCV应用领域及特点 4
2.3 OpenCV在Visual Studio 2017下安装与配置 4
2.3.1 OpenCV的安装 4
2.3.2 Visual Studio 2017的安装 6
2.4 本章小结 8
第3章 系统方案 9
3.1系统总体方案 9
3.2系统主要功能 10
3.3系统实现原理 10
3.4本章小结 10
第4章 算法分析 11
4.1 AdaBoost算法描述 11
4.2 眼睛定位算法 12
4.3 基于Haar特征分类器训练生成XML步骤 13
4.3.1 采集样本 13
4.3.2创立样本VEC文件 14
4.3.3训练生成XML 15
4.4 本章小结 15
第5章 详细设计 16
5.1程序流程图 16
5.2 软件设计 17
5.2.1 获取图像 17
5.2.2 眼睛定位 17
5.2.3 计算眼睛的高度 18
5.2.4报警模块 19
5.3 本章小结 20
第6章 系统测试 21
6.1人脸定位及眼睛定位测试 21
6.2实时性测试 22
6.3系统测试结果 22
6.3本章小结 23
第7章 总结 24
参考文献 25
附 录 26
致谢 27
第1章 绪论
1.1选题背景
随着生产力的发展,时代的进步,各地对道路的大规模改造,各种车辆已经成为我们出行必不可少的工具。不过据2015年世界卫生组织提出的报告,全球每年约有一百二十五万人因为发生了交通事故而失去了生命,相当于每一天因交通事故死亡三千多人,因车祸导致身体和心灵均受到伤害的人数更多,每年有几千万人。研究表明,在美国所发生的严重驾驶事故中,因为疲劳而驾驶导致的占到55%。英国全年发生的交通事故中,由于驾驶人疲劳行驶而导致的占到所有事故的12%。法国的死亡事故中,司机疲劳驾驶导致的交通事故占20%。澳大利亚每年因为交通事故损失八十亿美元,其中五分之一的损失是由驾驶员疲劳驾驶才造成的。由于我国经济不断发展,人们手里可支配的资金越来越多,在我国成为全球最大车辆及出行服务市场的同时,我国的交通事故发生率也呈上升趋势,2016年我国收到道路安全事故八百多万起,直接损失达到十几亿元。
因此,各国相关的研究人员都想开发出一套成熟的疲劳预警系统,能实时的监控驾驶员状态,在系统判断其为疲劳状态时报警并采取相关措施,以阻止事故的发生。
此系统的设计思想为利用OpenCV图像库,由摄像头得到驾驶员的实时面部图像,使用人眼识别技术定位出眼睛的位置,再通过驾驶人眼睛的状态来判断其是否处于疲劳状态。
1.2检测驾驶人疲劳状态方法分析
驾驶人疲劳预警将在预防交通事故方面发挥巨大作用,由于其可观的前景,研究人员进行了一系列研究,既有关于生理特征的,也有关于操作特征的。市场上也已经出现了一些比较成熟的产品。
驾驶人疲劳状态的检测方法可分为四类,分别是检测驾驶人生理信号、检测驾驶人生理反应特征、检测驾驶人操作行为还有检测车辆状态信息的检测方法。
1.2.1检测驾驶人生理信号
对于驾驶员疲劳检测的研究最开始是从生理学方面开始的。从有关研究的结果可以看出,驾驶人处于疲劳状态时,他身体的各项指标下会偏离正常范围。所以我们可以检测其生理指标,以达到判断其疲劳状态的效果。目前我们主要是对驾驶人的脑电信号EEG及心电信号ECG进行监测,并对返回信号进行处理之后进行判断。
研究表明,当驾驶人处于疲劳状态,ECG的下降明显并呈规律性,而且HRV (心率变化)也和疲劳状态有着潜在的关系。
此检测方法能够比较精确地判断驾驶人是否处于疲劳状态,不过需要接触身体才能取得生理信号,对驾驶人的行车体验有一定影响,长途驾驶时会更明显。所以一般仅仅用于实验的阶段,仅仅把其参数作为其他检测方法获得结论的对照组。
1.2.2检测驾驶人生理反应特征
利用驾驶人眼部及头部运动情况即基于生理特征反应判断驾驶人是否处于疲劳状态。
驾驶人眨眼情况及眼球运动状况能很好地反映疲劳状态,其中,眨眼的快慢,露出瞳孔的高度差,睁闭眼的时间,都能直观地反映出驾驶人所处的状态。现在有许多基于此的算法已经被发明出来并通过了实验的检测,其中使用最广泛的算法为PERCLOSE,此算法判断的依据是眼睛闭合时间占一段时间的百分比。
驾驶人的面部信息能被检测到,利用面部识别技术定位眼睛、鼻尖和嘴角位置,将眼睛、鼻尖和嘴角位置结合起来,及眼球转动的方向,来判断驾驶人注意力是否涣散。
此检测方法一般为非接触式测量,不会给驾驶人的带来额外负担,准确性也比较高,为一种比较实用的方法。
1.2.3检测驾驶人操作行为
利用驾驶人的行车时的操作行为来判断疲劳状态的依据,比如驾驶人操纵方向盘等行为。
驾驶员在行驶过程中,需要不断地调整方向盘,以使车辆平稳运行。所以方向盘的偏离角度是一个重要的指标,在驾驶员疲劳时,与其清醒时相比,方向盘的转动频率明显降低,转动幅度明显加大。
但是总体来看的话,如今对疲劳驾驶深入研究的成果还不是很多,驾驶人的操作行为不仅和个人有关,还和道路情况,开车习惯,驾驶技术有一定的关系,如今摆在研究人员面前的难题是,如何提高测量精度。
1.2.4检测车辆状态信息
利用车辆在行驶过程中传感器返回的信息,也可用来判断驾驶人疲劳状态,如车辆行驶过程中,轮胎留下痕迹的变化,车辆和道路两边的距离等。
由于此检测方法不需要和驾驶人有着直接的接触,保证了驾驶人的舒适性。且主要是利用车辆本身配置,所以具有很强的实用性。
1.3选题目标
设计一个驾驶人疲劳检测预警系统,能够根据驾驶人的面部图像判断驾驶人是否处于疲劳状态。采用Windows操作系统,以C 作为编程语言,使用基于OpenCV的图像处理方法。根据系统要求,把系统拆分为一个个模块,分析并处理系统各个模块,分别为获取驾驶员面部图像,定位人脸和人眼,对眼部图像进行二值化操作,计算眼睛高度,判断驾驶员是否处于疲劳状态,最后实现并完善系统功能。
1.4分析用户需求
目前,国内和国外都有公司研发和生产驾驶人疲劳预警装置。国内的产品主要可分为四大类:
1:挂耳式,驾驶人一低头就会触发警报,不仅精度低,而且舒适度也不高。
2:眼镜式和手表式,眼镜式通过给驾驶人戴上厚重的特制眼镜检测其眨眼频率做出判断,但是眨眼频率和人是否处于疲劳状态并没有直接关系。手表式通过探测驾驶人脉搏跳动次数来判断驾驶人是否疲劳,并没有强有力的科学依据支持。
3:探测方向盘式,将一些特制的传感器放置在方向盘上,就能明白驾驶人是否抓住了方向盘,基于个体差异性,有些驾驶员睡着了手还是放在方向盘上,而且也不好操控方向盘,实用性不强。
4:人脸识别式,使用面部传感器获得驾驶人面部图像,对比驾驶人面部特征来判定驾驶人是否处于疲劳状态。由于其的非接触性,不会影响到驾驶人的驾驶体验。
国外的产品有:美国ATTENTION公司的DD850,美国DSS公司的疲劳检测和分析系统,奔驰、沃而沃的高端系列产品中的瞌睡提醒装置,丰田13代皇冠在日本销售的产品里的瞌睡报警系统。
因此,本系统应该顺应用户需求,使其更为人性化,才能被大众接受。如今接触式的疲劳预警装置均会不同程度地影响用户的体验,在长时间的驾驶过程中会越加明显,而长途驾驶的司机或多或少会出现疲劳驾驶的状况,他们对于驾驶人疲劳预警装置的需求应该是最大的。
1.5本章小结
本章介绍了此系统设计的选题背景、四种不同的检测驾驶人疲劳状态的方法及对它们进行分析比较和总结。综合考虑各种方法的实用性及精度,还有本人自身的能力之后,我选择基于驾驶人生理反应特征的检测方法来实现本系统。选择该方法的原因是相对其他方法而言,人眼的生理反应特征是最直接,最直观的反应驾驶员是否处于疲劳状态的一种表现。和其它几种方法相比,这种方法不需要接触驾驶人身体,且最为直观。
第2章OpenCV介绍
2.1 OpenCV背景介绍
OpenCV(开源计算机视觉)是针对实时计算机视觉的编程功能库。最初由英特尔开发的,现在由Itseez提供支持。该库支持跨平台功能,在开源BSD许可下免费使用。可以运行在Linux、Windows和Mac OS操作系统上。OpenCV是用C 语言写的,其主要的接口为C ,但它仍然保留着广泛但不全面的C接口。也有绑定在Python,java和MATLAB的接口。其他语言中的包装,如C#, Perl,Ch,Haskelland,Ruby已经开发,以鼓励更广泛的受众采纳。所有在OpenCV的新发展和算法都在C 界面开发。 OpenCV在Windows、Linux、MaOS、FreeBSD、NETBSD、OpenBSD等桌面操作系统上运行,在Android、iOS、MaMo等移动操作系统上运行。
2.2 OpenCV应用领域及特点
OpenCV本身具有不少其它库很难超越的优点,主要如下:
(1)独立性:OpenCV包含了几百个C函数接口,在运行时既可以使用其它库,也可以独立运行。
(2)高性能:OpenCV中有四百个免费的图像处理函数,其中大部分算法都得到了优化,且试用范围很广。从图像处理到模式识别,从静态图像到运动视频,从二维平面到三维空间,涵盖了机器视觉的大多数应用。
(3)跨平台:OpenCV既可以在桌面操作系统上运行,也可移动操作系统上运行,目前运用得比较多的是Windows、Linux、MaOS系统。
(4)开源性:无论是否用于商业目的,OpenCV都是免费对大众开放的,开发者可以对这些源代码进行编辑,让库里也有自己设计的新类,只要设计符合相关规定,其他人也能用上自己设计的代码。
2.3 OpenCV在Visual Studio 2017下安装与配置
2.3.1 OpenCV的安装
安装OpenCV 3.3.0 ,安装路径为路径D:\ OpenCV 3.3.0\OpenCV 。安装步骤如下图所示:
图2.1 OpenCV安装步骤一
图2.2 OpenCV安装步骤二
安装以后,还需给电脑设置环境变量,详细步骤为:用户在"此电脑上右键单击,选择“属性”,点击 "高级系统设置 ",选择"环境变量"上,左键单击“PATH”,添加路径D:\ OpenCV 3.3.0\OpenCV\build\x64\vc15\bin,如下图所示:
图2.3 添加系统环境变量
2.3.2 Visual Studio 2017的安装
配置环境路径操作如下:
1、打开Visual Studio 2017, 新建一个工程文件,选择资源管理器,右击“属性”,选择C 目录,点击包含目录,添加D:\ OpenCV 3.3.0\OpenCV\build\include;D:\ OpenCV 3.3.0\OpenCV\build\include\OpenCV;D:\ OpenCV 3.3.0\OpenCV\build\include\OpenCV2。点击库目录,添加D:\ OpenCV 3.3.0\OpenCV\build\x64\vc15\lib。选择链接器,点击输入,在附加依赖项添加OpenCV_world341d.lib。
将OpenCV_world341d.lib文件复制到C:\Windows\System32。
图2.4设置包含目录路径
图2.5设置库目录路径
图2.6设置附加依赖项路径
2.4 本章小结
OpenCV是一个开源的强大的图像视觉处理库,在图像处理方面有着极为强大的优势。本章主要介绍了什么是OpenCV,及其主要应用于什么领域,接着介绍了如何使用Visual Studio 2017进行OpenCV开发的环境配置。为接下来软件的开发作好了准备。
第3章 系统方案
3.1系统总体方案
由于驾驶人疲劳预警系统设计的要求及现有条件,采用基于OpenCV视觉库进行系统设计的方案。将系统分割为如下几个部分:
操作系统为笔记本的windows xp系统,硬件设备选择分辨率为1280*720的摄像头。硬件设备条件比较简陋,但是便于开发。
应用程序框架:采用.NET Framework 3.5,并结合具有强大的图像处理动态链接库的OpenCV技术,编程开发语言为C 。
硬件环境:一台笔记本、一个摄像头;
软件环境:Windows XP、.NET Framework 3.5、Visual Studio 2017、OpenCV、Emgu.CV库。
本系统并不仅限于车载环境,也可运于其它需要通过眼部信息来判断疲劳状态的环境中,且具有非接触性,实时性等优点,系统设计框图如下:
图像获取
疲劳状态判断
眼睛定位
二值化处理
眼睛高度计算
图3.1系统框图
3.2系统主要功能
图像获取:通过摄像头取得驾驶人的面部信息并显示出来,显示其实时状态。
眼睛定位:使用眼睛识别定位算法,识别出驾驶人眼部区域。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: