【VC++开源代码栏目提醒】:网学会员为广大网友收集整理了,基于OpenCV的疲劳驾驶预警系统 - 毕业设计,希望对大家有所帮助!
基于 OpenCV 的疲劳驾驶预警系统 摘 要 目前,随着我国人民生活水平的不断提高,汽车已经走进了千家万户,成为人们日常出行的一种重要的交通工具,交通事故也随之增多。
造成交通事故频频发生的重要原因是由于司机的疲劳驾驶。
因此,针对疲劳驾驶方面的研究具有极大的科研价值与设计意义。
系统设计思路是采用 OpenCV
开源的视频图像处理库,使用摄像头采集视频图像,对输入图像做预处理图像灰度化、中值滤波等;通过
学习训练的方法构造基于类 Haar 特征的层叠式分类器,利用基于类 Haar 特征的层叠式分类器从输入图像中直接定位人眼;把人眼部分的图像截取出来,二值化人眼图像;然后计算二值化图像中垂直方向上瞳孔的宽度大小,从而判断眼睛的状态;最后通过多次的捕捉计算眼睛闭合的频率来得出其疲劳状态。
关键词:疲劳驾驶 OpenCV 类 Haar 层叠式分类器 图像处理 眼睛定位 北京理工大学珠海学院 2011 届本科生毕业设计 Driver Fatigue Early Warning System Based On OpenCV ABSTRACT Now with our continuous improvement of living standards of people carshave entered the household become an important daily travel transport trafficaccidents also increase. Important cause frequent traffic accidents due to driverfatigue driving.Therefore for fatigue driving has been a significant scientific valueand design significance. Design of system is the use of open source video OpenCV image processinglibrary the use of video cameras capture images of the input image preprocessingimage graying median filter etc.; constructed by learning the training class basedon Haar features cascade classifier using features of class-based Haar classifiercas
cade of images directly from the input locate the eye; to the human eye out ofpart of the image capture binary eye images; and then calculate the binary image inthe vertical directionThe width of the size of the pupil in order to determine the stateof eyes;Finally many of the capture calculation of the frequency of close to drawthe eye fatigue state.Key
words:Fatigue driving OpenCV Haar classifier cascade class ImageProcessing Eye location Ⅱ 北京理工大学珠海学院 2011 届本科生毕业设计 目 录摘 要 ...................................................IABSTRACT................................ 错误!未定义书签。
1 前言 ..................................................11.1 选题背景 .................................................11.2 驾驶人疲劳状态监测方法分析................................11.2.1 基于驾驶人生理信号的检测方法............................11.2.2 基于驾驶人生理反应特征的检测方法........................21.2.3 基于驾驶人操作行为的检测方法............................21.2.4 基于车辆状态信息的检测方法..............................21.3 选题目标 .................................................31.4 需求分析 .................................................31.4.1 用户需求分析 ...........................................31.4.2 功能需求分析 ...........................................31.5 本章小结 .................................................42 OpenCV 介绍 ............................................52.1 OpenCV 背景介绍 ..........................................52.2 OpenCV 应用领域及特点 ....................................52.3 OpenCV 在 Visual Studio 2005 下安装与配置..................52.3.1 OpenCV 的安装 ..........................................52.3.2 Visual Studio 2005 的安装...............................8 III 北京理工大学珠海学院 2011 届本科生毕业设计2.4 本章小结 ................................................113 系统方案 .............................................123.1 系统总体
方案 ............................................123.2 系统主要功能 ............................................133.3 系统实现原理 ............................................143.4 本章小结 ................................................144 算法分析 .............................................154.1 AdaBoost 算法描述 .......................................154.2 眼睛定位算法 ............................................164.3 基于 Haar 特征分类器训练生成 XML 步骤 .....................174.3.1 采集样本 ..............................................174.3.2 创立样本 VEC 文件 ......................................184.3.3 训练生成 XML ...........................................194.4 本章小结 ................................................205 详细设计 .............................................215.1 程序流程图 ..............................................215.2 软件设计 ................................................225.2.1 获取图像 ..............................................225.2.2 眼睛定位 ..............................................225.2.3 计算眼睛的高度 ........................................235.2.4 报警模块 ..............................................245.2.5 GUI 设计 ..............................................24 IV 北京理工大学珠海学院 2011 届本科生毕业设计5.3 本章小结 ................................................256 系统测试 .............................................266.1 人脸定位及眼睛定位测试 ..................................266.2 系统测试结果 ............................................276.3 本章小结 ................................................297
论文总结 .............................................30参考文献 ................................................31附 录 ..................................................32谢 辞 ..................................................34 V 北京理工大学珠海学院 2011 届本科生毕业设计 1 前言1.1 选题背景 随着
交通运输业的发展,交通事故已成为当前各国所面临的严重问题。
据不完全统计,全世界每年死于交通事故的人数约为 60 万,因车祸受伤的人更多,每年平均约有 l000 万人。
在美国的重型汽车事故中,57的灾难性事故是与驾驶员疲劳有关,它已成为事故发生的主要原因。
英国交通研究实验室TransportResearch Lab oratory认为: 驾驶疲劳导致的道路交通事故占全部交通事故的10。
法国国家事故
报告表明,因疲劳驾驶而发生车祸的占人身伤亡事故 14.9,占死亡事故的 20.6。
澳大利亚每年由于交通事故的花费约为 75 亿美元。
其中,将近 15 亿是直接由于驾驶员疲劳而导致的。
我国交通事故呈现逐年上升的趋势,1999 年我国发生道路交通事故 412860 起,致伤 286080 人,死亡 83529 人,造成直接
经济损失 21.24 亿元。
因此,各国研究人员都在努力开发出一个能实时监视驾驶员警觉水平,并在任何不安全状态下能对驾驶员进行预警的系统。
本系统的设计思想是以 OpenCV 视频图像处理技术为核心,通过摄像头实时地获取驾驶员的脸部图像,利用脸部识别技术定位眼睛,再根据眼睛的闭合的状态判断驾驶员是否处于疲劳状态。
1.2 驾驶人疲劳状态监测方法分析 关于驾驶人疲劳及注意分散等安全状态的监测预警技术,由于它在交通事故预防方面的发展前景而受到各国高度的重视, 研究人员根据驾驶人疲劳时在生理和操作上的特征进行了多方面的研究,一些研究成果已形成产品并开始进入市场。
驾驶人疲劳状态的检测方法可大致分为基于驾驶人生理信号、基于驾驶人生理反应特征、基于驾驶人操作行为和基于车辆状态信息的检测方法。
1.2.1 基于驾驶人生理信号的检测方法 针对疲劳的研究最早始于生
理学。
相关研究表明,驾驶人在疲劳状态下的生理指标会偏离正常状态的指标。
因此可以通过驾驶员的生理指标来判断驾驶人是否进入疲劳状态。
目前较为成熟的检测方法包括对驾驶人的脑电信号 EEG、心电信号 ECG 等的测量。
ECG 主要被用于驾驶负担的生理测量中。
研究表明在驾驶人疲劳时 ECG 会明显的有规律的下降并且 HRV (心率变化)和驾驶中的疲劳程度的变化有潜在的关系。
基于驾驶人生理信号的检测方法对疲劳判断的准确性较高,但生理信号需要采用接触式测量,且对个人依赖程度较大,在实际用于驾驶人疲劳监测时有很多的局限性,因此主要应用在实验阶段,作为实验的对照参数。
1 北京理工大学珠海学院 2011 届本科生毕业设计1.2.2 基于驾驶人生理反应特征的检测方法 基于驾驶人的生理反应特征的检测方法是指利用驾驶人的眼动特性、头部运动特性等推断驾驶人的疲劳状态。
驾驶人眼球的运动和眨眼信息被认为是反映疲劳的重要特征,眨眼幅度、眨眼频率和平均闭合时间都可直接用于检测疲劳。
目前基于眼动机理研究驾驶疲劳的算法有很多种,广泛采用的算法包括 PERCLOS,即将眼睛闭合时间占一段时间的百分比作为生理疲劳的测量指标。
利用面部识别技术定位眼睛、鼻尖和嘴角位置,将眼睛、鼻尖和嘴角位置结合起来,再根据对眼球的追踪可以获得驾驶人注意力方向,并判断驾驶人的注意力是否分散。
基于驾驶人生理反应特征的检测方法一般采用非接触式测量,对疲劳状态的识别精度和实用性上都较好。
1.2.3 基于驾驶人操作行为的检测方法 基于驾驶人操作行为的驾驶人疲劳状态识别技术, 是指通过驾驶人的操作行为如方向盘操作等操作推断驾驶人疲劳状态。
Yoshihiro Takei 利用 FFT 对监测到的驾驶人的方向盘操作数据进行处理,研究结果在一定程度上揭示了驾驶人的方向盘操作与疲劳之间的关系。
研究指出方向盘的操作是一种有效的驾驶疲劳的判断手段。
Yabuta 开发的驾驶人防疲劳装置中也使用了方向盘操作信息。
总体来说,目前利用驾驶人操作行为进行疲劳识别的深入研究成果较少。
驾驶人的操作除了与疲劳状态有关外,还受到个人习惯、行驶速度、道路环境、操作技能的影响,车辆的行驶状态也与车辆特性、道路等很多环境因素有关,因此如何提高驾驶人状态的推测精度是此类间接测量技术的关键
问题。
1.2.4 基于车辆状态信息的检测方法 利用车辆行驶轨迹变化和车道线偏离等车辆行驶信息也可推测驾驶人的疲劳状态。
这种方法和基于驾驶人操作行为的疲劳状态识别技术一样,都以车辆现有的装置为基础,不需添加过多的硬件设备,而且不会对驾驶人的正常驾驶造成干扰,因此具有很高的实用价值。
日本三菱汽车公司开发了利用车辆横向位移量、驾驶人操作量等复合参数来识别驾驶人疲劳状态的方法,实验证明该方法的识别结果与利用驾驶人眨眼次数的识别结果基本一致。
日本庆应大学2005中岛研究室利用 EEG 评价驾驶人的睡意,研究发现车辆的横向位移量、方向盘操作量可以用来作为驾驶人疲劳状态的评价指标,而且可以实现疲劳早期预警。
2 北京理工大学珠海学院 2011 届本科生
毕业设计1.3 选题目标 基于上述背景,开发一个疲劳驾驶预警系统,采用 OpenCV 视频图像处理技术,Windows XP 作为操作系统,以 C作为编程开发语言,根据系统的需求,分析系统各个模块,如驾驶员脸部图像获取,眼睛定位,图像二值化处理,眼睛高度计算算法,以及疲劳状态的判断算法,实现并完善
系统的功能。
1.4 需求分析1.4.1 用户需求分析 目前,已经有一些公司专门开发和生产疲劳驾驶装置,如南京远驱科技有限公司开发的疲劳驾驶预警系统 gogo850 平安行,采用国际上最先进的非接触式方式,利用汽车级图像传感器采集人脸红外图像,性能超过奔腾二代的高速数字信号处理器进行数字图像处理与分析,先进的疲劳算法确保驾驶员在疲劳驾驶的时候及时发出报警信号,保障您的生命与财产安全。
其功能特点:全天候工作特点、优秀的眼镜识别水平、领先的人脸识别技术、丝网膜瞳孔检测技术、智能高速识别功能、体积小巧,安装方便、自动灵敏度控制、人性化的指示灯、智能化的报警灵敏度调节。
由此,本系统也尽量适应用户需求,完善系统功能,使得更为人性化。
设计开发多种功能模块:二值化滑动条调节:适应不同的光线强度及提高判断精度;采用红外线摄像头可以识别戴各种眼镜驾驶的司机;系统可以动态显示二值化眼睛状态:便于测试和观察结果;更为人性化的语音提示:当判断处于疲劳状态时,系统会发出警报声。
1.4.2 功能需求分析 根据用户的需求和项目的定位,从提升产品价值的角度出发,划分项目的各个功能模块,具体如下: 1、实时的获得驾驶员的脸部图像,实时显示从摄像头获取的图像; 该功能使系统更为直观的显示摄像头
工作状态,实时获取驾驶员的状态图像。
2、动态的显示二值化后的眼睛状态图像; 该功能是为了统计与判断驾驶员的眼睛闭合状态连续的帧数,对疲劳状态进行判断提供依据。
3 北京理工大学珠海学院 2011 届本科生
毕业设计 3、具有可调节二值化强度的滑动条; 该功能是为了适应不同的光照强度,可以提供用户自行设置二值化的强度,这样,对疲劳状态的判断更为精确有效。
4、具有语音提示功能及报警提示窗口; 该功能通过语音提示可以提醒用户注意休息,更为人性化的设计,有利于产品化设想。
5、系统界面的美化; 系统界面美化是使用 Photoshop 进行图片的美化处理设计,按钮也是使用图片作为按钮,使得系统更为美观,有利于产品化设想。
1.5 本章小结 本章主要介绍了项目的选题背景、四种驾驶人疲劳状态的检测方法的分析与比较和需求分析。
本系统采用的疲劳状态检测方法是基于人眼的生理反应特征的方法实现,选择该方法的原因是相对其他方法而言,人眼的生理反应特征是最直接,最直观的反应驾驶员是否处于疲劳状态的一种表现。
根据本人技术水平情况,按需求划分
软件功能模块,系统采用基于人眼的设计思路进行详细设计。
4 北京理工大学珠海学院 2011 届本科生毕业设计 2 OpenCV 介绍2.1 OpenCV 背景介绍 OpenCV(Open Source Computer Vision Library)于 1999 年由 Intel 建立,现在由 Willow Garage 提供支持。
OpenCV 是一个基于 BSD 许可证授权(
开源)发行的跨平台计算机视觉库,可以运行在 Linux、Windows 和 Mac OS 操作系统上。
它轻量级而且高效——由一系列 C 函数和少量 C 类构成,同时提供了Python、Ruby、MATLAB 等语言的接口,实现了图像处理和
计算机视觉方面的很多通用算法。
2.2 OpenCV 应用领域及特点 OpenCV 有其显著的不可比拟的优点,主要体现在如下几个方面: (1)OpenCV 是一个包含了超过 300 个 C 函数的应用编程接口,它不依赖于外部库,既可以独立运行,也可在运行时使用其它外部库。
(2)高性能:OpenCV 中所有的算法都是基于封装于 IPL 的具有很高灵活性的动态数据结构,而且其中有一半以上的函数在设计及汇编时被 Intel 公司针对其所生产的处理器优化。
(3)跨平台:OpenCV 除了可以在 Windows 下运行,也可以在 Linux、Mac OS等系统上使用。
(4)
开源性:不管对于商业的还是非商业的用途,OpenCV 都是完全
免费的,其源
代码完全开放,开发者可以对源
代码进行修改,将自己设计的新类添加到库中,只要设计符合规范,自己的
代码也可以被别人广泛使用。
OpenCV 主要运用于人机互动、物体识别、图像分割、人脸识别、动作识别、运动跟踪以及机器人等图像处理方面。
2.3 OpenCV 在 Visual Studio 2005 下安装与配置2.3.1 OpenCV 的安装 安装 OpenCV 1.0 安装路径为默认路径 C:Program FilesOpenCV 。
安装步骤如下图所示: 5北京理工大学珠海学院 2011 届本科生毕业设计 图 2-1 OpenCV 安装步骤一 图 2-2 OpenCV 安装步骤二 6 北京理工大学珠海学院 2011 届本科生毕业设计 图 2-3 OpenCV 安装步骤三 图 2-4 OpenCV 安装步骤四安装完成后设置环境变量操作如下:右键“我的电脑”-gt“属性”-gt点 7 北京理工大学珠海学院 2011 届本科生毕业设计“ 高 级 ” 标 签 - gt “ 环 境 变 量 ” 选 项 - gt 在 quotPATHquot 中 添 加 路 径 C:ProgramFilesOpenCVbin,如下图所示: 图 2-5 添加系统环境变量2.3.2 Visual Studio 2005 的安装 配置环境路径操作如下: 1、打开 Visual Studio 2005,依次选择:工具-》选项-》项目和解决方案-》
VC目录。
在“显示以下内容的目录”中选择“可执行文件”,在下面添加如下的路径:C:Program FilesOpenCVbin 。
如下图所示: 8 北京理工大学珠海学院 2011 届本科生毕业设计 图 2-6 添加可执行文件路径 2、在“显示一下内容的目录”中选择“包含文件”,在下面添加如下的路径: C:Program FilesOpenCVotherlibshighgui ; C:Program FilesOpenCVotherlibscvcaminclude ; C:Program FilesOpenCVotherlibs_graphicsinclude ; C:Program FilesOpenCVmlinclude ; C:Program FilesOpenCVcxcoreinclude ; C:Program FilesOpenCVcvauxinclude ; C:Program FilesOpenCVcvinclude。
如下图所示: 9 北京理工大学珠海学院 2011 届本科生毕业设计 图 2-7 添加包含文件路径3、在“显示以下内容的目录”下选择“库文件”,在下面添加如下的路径:C:Program FilesOpenCVlib;C:Program FilesOpenCVotherlibs_graphicslib。
如下图所示: 图 2-8 添加库文件路径4、在“显示以下内容的目录”下选择“源文件”,在下面添加如下目录:C:Program FilesOpenCVotherlibscvcamsrcwindows;C:Program FilesOpenCVotherlibs_graphicssrc; 10 北京理工大学珠海学院 2011 届本科生毕业设计 C:Program FilesOpenCVmlsrc; C:Program FilesOpenCVcxcoresrc; C:Program FilesOpenCVcvauxsrcvs; C:Program FilesOpenCVcvsrc; C:Program FilesOpenCVcvauxsrc; 如下图所示: 图 2-9 添加源文件路径 5 、 项 目 - 》 添 加 引 用 - 》 浏 览 。
找 到 EmguCV 下 的 四 个 Dll 文 件 : Emgu.CV.dllEmgu.Util.dllZedGraph.dllzlib.net.dll。
全部添加到当 前工程的引用。
然后在窗体的源
程序中添加: using Emgu.CV; using Emgu.Util;2.4 本章小结 OpenCV 是一个
开源的强大的图像视觉处理库,在图像处理方面有着显著的优势。
本章主要介绍了 OpenCV 技术及其应用领域、OpenCV 的安装与配置。
为软件开发作准备。
.