收藏 分销(赏)

计算机毕业设计论文 基于OpenCV的疲劳驾驶预警系统.pdf

上传人:曲**** 文档编号:460260 上传时间:2023-10-11 格式:PDF 页数:41 大小:2.97MB
下载 相关 举报
计算机毕业设计论文 基于OpenCV的疲劳驾驶预警系统.pdf_第1页
第1页 / 共41页
计算机毕业设计论文 基于OpenCV的疲劳驾驶预警系统.pdf_第2页
第2页 / 共41页
计算机毕业设计论文 基于OpenCV的疲劳驾驶预警系统.pdf_第3页
第3页 / 共41页
计算机毕业设计论文 基于OpenCV的疲劳驾驶预警系统.pdf_第4页
第4页 / 共41页
计算机毕业设计论文 基于OpenCV的疲劳驾驶预警系统.pdf_第5页
第5页 / 共41页
点击查看更多>>
资源描述

1、毕业设计(论文)基于OpenCV的疲劳驾驶预警系统学 院:计算机学院_专 业:计算机科学与技术_姓 名:学 号:才旨导老!J币:职 称:Xx学院毕业设计 诚信承诺书本人郑重承诺:我所呈交的毕业设计基于O penCV 的疲劳驾驶预警系统是在指导教师的指导下,独立开展 研究取得的成果,文中引用他人的观点和材料,均在文后 按顺序列出其参考文献,设计使用的数据真实可靠。承诺人签名:_日期:年 月 日X x学院20 11届本科生毕业设计基于O penCV的疲劳驾驶预警系统摘要目前,随着我国人民生活水平的不断提高,汽车已经走进了千家万户,成为 人们日常出行的一种重要的交通工具,交通事故也随之增多。造成交通

2、事故频频 发生的重要原因是由于司机的疲劳驾驶。因此,针对疲劳驾驶方面的研究具有极 大的科研价值与设计意义。系统设计思路是采用O penCV开源的视频图像处理库,使用摄像头采集视频 图像,对输入图像做预处理(图像灰度化、中值滤波等);通过学习训练的方法构 造基于类Ha a r特征的层叠式分类器,利用基于类Ha a r特征的层叠式分类器从输 入图像中直接定位人眼;把人眼部分的图像截取出来,二值化人眼图像;然后计 算二值化图像中垂直方向上瞳孔的宽度大小,从而判断眼睛的状态;最后通过多 次的捕捉,计算眼睛闭合的频率来得出其疲劳状态。关键词:疲劳驾驶O penCV类Ha a r层叠式分类器图像处理眼睛定

3、位IX x学院20 11届本科生毕业设计Driver Fatigue Early Warning System Based On OpenCVABSTRACTNow,with our continuous improvement of living sta nda rds of people,ca rs ha ve entered the household,become a n importa nt da ily tra vel tra nsport,tra ffic a ccidents a lso increa se.Importa nt ca use frequent tra ffic

4、 a ccidents due to driver fa tigue driving.Therefore,for fa tigue driving ha s been a significa nt scientific va lue a nd design significa nce.Design of system is the use of open source video OpenCV ima ge processing libra ry,the use of video ca mera s ca pture ima ges of the input ima ge preprocess

5、ing(ima ge gra ying,media n filter,etc.);constructed by lea rning the tra ining cla ss ba sed on Ha a r fea tures ca sca de cla ssifier,using fea tures of cla ss-ba sed Ha a r cla ssifier ca sca de of ima ges directly from the input loca te the eye;to the huma n eye out of pa rt of the ima ge ca ptu

6、re,bina ry eye ima ges;a nd then ca lcula te the bina ry ima ge in the vertica l directionThe width of the size of the pupil,in order to determine the sta te of eyes;Fina lly,ma ny of the ca pture,ca lcula tion of the frequency of close to dra w the eye fa tigue sta te.Key words:Fa tigue driving Ope

7、nCV Ha a r cla ssifier ca sca de cla ss Ima ge Processing Eye loca tionIIX x学院20 11届本科生毕业设计目录摘要.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 O penCV 介绍.

8、52.1 O penCV背景介绍.52.2 O penCV应用领域及特点.52.3 O penCV 在 Visua l Studio 2005 下安装与配置.52.3.1 O penCV 的安装.52.3.2 Visua l Studio 2005 的安装.8illX x学院20 11届本科生毕业设计2.4本章小结.113系统方案.123.1系统总体方案.123.2系统主要功能.133.3系统实现原理.143.4本章小结.144算法分析.154.1 Ada Boost 算法描述.154.2 眼睛定位算法.164.3 基于Ha a r特征分类器训练生成X ML步骤.174.3.1采集样本.174

9、.3.2创立样本VEC文件.184.3.3训练生成X ML.194.4本章小结.205详细设计.215.1程序流程图.215.2软件设计.225.2.1获取图像.225.2.2 眼睛定位.225.2.3 计算眼睛的高度.235.2.4报警模块.245.2.5 GUI 设计.24IVX x学院20 11届本科生毕业设计5.3本章小结.256系统测试.266.1人脸定位及眼睛定位测试.266.2系统测试结果.276.3本章小结.297论文总结.30参考文献.31附录.32谢辞.34X x学院20 11届本科生毕业设计1 前言1.1 选题背景随着交通运输业的发展,交通事故已成为当前各国所面临的严重问

10、题。据不 完全统计,全世界每年死于交通事故的人数约为60万,因车祸受伤的人更多,每年平均约有1000万人。在美国的重型汽车事故中,57%的灾难性事故是与驾驶 员疲劳有关,它已成为事故发生的主要原因。英国交通研究实验室(Tra nsport Resea rch La b ora tory)认为:驾驶疲劳导致的道路交通事故占全部交通事故的 10%o法国国家事故报告表明,因疲劳驾驶而发生车祸的占人身伤亡事故14.9%,占死亡事故的20.6%。澳大利亚每年由于交通事故的花费约为75亿美元。其中,将近15亿是直接由于驾驶员疲劳而导致的。我国交通事故呈现逐年上升的趋势,1999年我国发生道路交通事故412

11、860起,致伤286080人,死亡83529人,造 成直接经济损失21.24亿元。因此,各国研究人员都在努力开发出一个能实时监 视驾驶员警觉水平,并在任何不安全状态下能对驾驶员进行预警的系统。本系统的设计思想是以O penCV视频图像处理技术为核心,通过摄像头实时 地获取驾驶员的脸部图像,利用脸部识别技术定位眼睛,再根据眼睛的闭合的状 态判断驾驶员是否处于疲劳状态。1.2 驾驶人疲劳状态监测方法分析关于驾驶人疲劳及注意分散等安全状态的监测预警技术,由于它在交通事故 预防方面的发展前景而受到各国高度的重视,研究人员根据驾驶人疲劳时在生理 和操作上的特征进行了多方面的研究,一些研究成果已形成产品并

12、开始进入市 场。驾驶人疲劳状态的检测方法可大致分为基于驾驶人生理信号、基于驾驶人生 理反应特征、基于驾驶人操作行为和基于车辆状态信息的检测方法。1.2.1 基于驾驶人生理信号的检测方法针对疲劳的研究最早始于生理学。相关研究表明,驾驶人在疲劳状态下的生 理指标会偏离正常状态的指标。因此可以通过驾驶员的生理指标来判断驾驶人是 否进入疲劳状态。目前较为成熟的检测方法包括对驾驶人的脑电信号EEG、心电 信号ECG等的测量。ECG主要被用于驾驶负担的生理测量中。研究表明在驾驶人疲劳时ECG会明 显的有规律的下降,并且HRV(心率变化)和驾驶中的疲劳程度的变化有潜在的 关系。基于驾驶人生理信号的检测方法对

13、疲劳判断的准确性较高,但生理信号需要 采用接触式测量,且对个人依赖程度较大,在实际用于驾驶人疲劳监测时有很多 的局限性,因此主要应用在实验阶段,作为实验的对照参数。1X x学院20 11届本科生毕业设计1.2.2 基于驾驶人生理反应特征的检测方法基于驾驶人的生理反应特征的检测方法是指利用驾驶人的眼动特性、头部运 动特性等推断驾驶人的疲劳状态。驾驶人眼球的运动和眨眼信息被认为是反映疲劳的重要特征,眨眼幅度、眨 眼频率和平均闭合时间都可直接用于检测疲劳。目前基于眼动机理研究驾驶疲劳 的算法有很多种,广泛采用的算法包括PERCL0 S,即将眼睛闭合时间占一段时间 的百分比作为生理疲劳的测量指标。利用

14、面部识别技术定位眼睛、鼻尖和嘴角位置,将眼睛、鼻尖和嘴角位置结 合起来,再根据对眼球的追踪可以获得驾驶人注意力方向,并判断驾驶人的注意 力是否分散。基于驾驶人生理反应特征的检测方法一般采用非接触式测量,对疲劳状态的 识别精度和实用性上都较好。1.2.3 基于驾驶人操作行为的检测方法基于驾驶人操作行为的驾驶人疲劳状态识别技术,是指通过驾驶人的操作行 为如方向盘操作等操作推断驾驶人疲劳状态。Y oshihiro Ta kei利用FFT对监测到的驾驶人的方向盘操作数据进行处理,研究结果在一定程度上揭示了驾驶人的方向盘操作与疲劳之间的关系。研究指出 方向盘的操作是一种有效的驾驶疲劳的判断手段。Y a

15、buta开发的驾驶人防疲劳 装置中也使用了方向盘操作信息。总体来说,目前利用驾驶人操作行为进行疲劳 识别的深入研究成果较少。驾驶人的操作除了与疲劳状态有关外,还受到个人习 惯、行驶速度、道路环境、操作技能的影响,车辆的行驶状态也与车辆特性、道 路等很多环境因素有关,因此如何提高驾驶人状态的推测精度是此类间接测量技 术的关键问题。1.2.4 基于车辆状态信息的检测方法利用车辆行驶轨迹变化和车道线偏离等车辆行驶信息也可推测驾驶人的疲 劳状态。这种方法和基于驾驶人操作行为的疲劳状态识别技术一样,都以车辆现 有的装置为基础,不需添加过多的硬件设备,而且不会对驾驶人的正常驾驶造成 干扰,因此具有很高的实

16、用价值。日本三菱汽车公司开发了利用车辆横向位移量、驾驶人操作量等复合参数来 识别驾驶人疲劳状态的方法,实验证明该方法的识别结果与利用驾驶人眨眼次数 的识别结果基本一致。日本庆应大学(2005)中岛研究室利用EEG评价驾驶人的睡 意,研究发现车辆的横向位移量、方向盘操作量可以用来作为驾驶人疲劳状态的 评价指标,而且可以实现疲劳早期预警。2X x学院20 11届本科生毕业设计1.3 选题目标基于上述背景,开发一个疲劳驾驶预警系统,采用O penCV视频图像处理技 术,Windows X P作为操作系统,以C#作为编程开发语言,根据系统的需求,分 析系统各个模块,如驾驶员脸部图像获取,眼睛定位,图像

17、二值化处理,眼睛高 度计算算法,以及疲劳状态的判断算法,实现并完善系统的功能。1.4 需求分析1.4.1 用户需求分析目前,已经有一些公司专门开发和生产疲劳驾驶装置,如南京远驱科技有限 公司开发的疲劳驾驶预警系统gogo850平安行,采用国际上最先进的非接触式方 式,利用汽车级图像传感器采集人脸红外图像,性能超过奔腾二代的高速数字信 号处理器进行数字图像处理与分析,先进的疲劳算法确保驾驶员在疲劳驾驶的时 候及时发出报警信号,保障您的生命与财产安全。其功能特点:全天候工作特点、优秀的眼镜识别水平、领先的人脸识别技术、丝网膜瞳孔检测技术、智能高速识 别功能、体积小巧,安装方便、自动灵敏度控制、人性

18、化的指示灯、智能化的报 警灵敏度调节。由此,本系统也尽量适应用户需求,完善系统功能,使得更为人性化。设计 开发多种功能模块:二值化滑动条调节:适应不同的光线强度及提高判断精度;采用红外线摄像头可以识别戴各种眼镜驾驶的司机;系统可以动态显示二值化眼 睛状态:便于测试和观察结果;更为人性化的语音提示:当判断处于疲劳状态时,系统会发出警报声。1.4.2功能需求分析根据用户的需求和项目的定位,从提升产品价值的角度出发,划分项目的各 个功能模块,具体如下:1、实时的获得驾驶员的脸部图像,实时显示从摄像头获取的图像;该功能使系统更为直观的显示摄像头工作状态,实时获取驾驶员的状态图 像。2、动态的显示二值化

19、后的眼睛状态图像;该功能是为了统计与判断驾驶员的眼睛闭合状态连续的帧数,对疲劳状态进 行判断提供依据。3X x学院20 11届本科生毕业设计3、具有可调节二值化强度的滑动条;该功能是为了适应不同的光照强度,可以提供用户自行设置二值化的强度,这样,对疲劳状态的判断更为精确有效。4、具有语音提示功能及报警提示窗口;该功能通过语音提示可以提醒用户注意休息,更为人性化的设计,有利于产 品化设想。5、系统界面的美化;系统界面美化是使用Photoshop进行图片的美化处理设计,按钮也是使用图 片作为按钮,使得系统更为美观,有利于产品化设想。1.5 本章小结本章主要介绍了项目的选题背景、四种驾驶人疲劳状态的

20、检测方法的分析与 比较和需求分析。本系统采用的疲劳状态检测方法是基于人眼的生理反应特征的 方法实现,选择该方法的原因是相对其他方法而言,人眼的生理反应特征是最直 接,最直观的反应驾驶员是否处于疲劳状态的一种表现。根据本人技术水平情况,按需求划分软件功能模块,系统采用基于人眼的设计思路进行详细设计。4X x学院20 11届本科生毕业设计2 OpenCV 介绍2.1 OpenCV背景介绍O penCV(O pen Source Computer Vision Libra ry)于 1999 年由 Intel 建立,现在由Willow Ga ra ge提供支持。O penCV是一个基于BSD许可证授

21、权(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Ma c O S操作系统上。它轻量级而且高效一一由一系列C函数和少量C+类构成,同时提供了 Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很 多通用算法。2.2 OpenCV应用领域及特点O penCV有其显著的不可比拟的优点,主要体现在如下几个方面:(1)O penCV是一个包含了超过300个C函数的应用编程接口,它不依赖于 外部库,既可以独立运行,也可在运行时使用其它外部库。(2)高性能:O penCV中所有的算法都是基于封装于IPL的具有很高灵活性 的动态数据结构,而且其中有一半

22、以上的函数在设计及汇编时被Intel公司针对 其所生产的处理器优化。(3)跨平台:O penCV除了可以在Windows下运行,也可以在Linux、Ma c O S 等系统上使用。(4)开源性:不管对于商业的还是非商业的用途,O penCV都是完全免费的,其源代码完全开放,开发者可以对源代码进行修改,将自己设计的新类添加到库 中,只要设计符合规范,自己的代码也可以被别人广泛使用。O penCV主要运用于人机互动、物体识别、图像分割、人脸识别、动作识别、运动跟踪以及机器人等图像处理方面。2.3 OpenCV 在 Visual Studio 2005 下安装与配置2.3.1 OpenCV 的安装安

23、装O penCV 1.0,安装路径为默认路径C:Progra m Files O penCV。安装 步骤如下图所示:5X x学院20 11届本科生毕业设计Click Next to continue,or Cancel to exit Setup.-回XWelcome to the Intel(R)Open Source Computer Vision Library Setup WizardThis will install Intel(R)Open Source Computer Vision Library 1.0rc1 on your computer.It is recommende

24、d that you close all other applications before continuing.Cancel图2-1 O penCV安装步骤一图2-2 O penCV安装步骤二6X x学院20 11届本科生毕业设计图2-3 O penCV安装步骤三图2-4 O penCV安装步骤四安装完成后设置环境变量,操作如下:右键“我的电脑”一“属性”一点7X x学院20 11届本科生毕业设计“高级”标签一“环境变量”选项一在PATH中添加路径C:Progra mFi 1 es 0 penCV bin,如下图所示:图2-5添加系统环境变量2.3.2 Visual Studio 2005

25、 的安装配置环境路径操作如下:1、打开Visua l Studio 2005,依次选择:工具-选项-项目和解决方案-VC+目录。在“显示以下内容的目录”中选择“可执行文件”,在下面添加 如下的路径:C:Progra m Files 0 penCV bin。如下图所示:8X x学院20 11届本科生毕业设计图2-6添加可执行文件路径2、在“显示一下内容的目录”中选择“包含文件”,在下面添加如下的路 径:C:Progra m Files O penCV otherlibs highgui;C:Progra m Files O penCV otherlibs cvca m include;C:Pro

26、gra m Files O penCV otherlibs _ gra phics include;C:Progra m Files O penCV ml include;C:Progra m Files O penCV cxcore include;C:Progra m Files O penCV cva ux include;C:Progra m Files O penCV cv includeo如下图所示:9X x学院20 11届本科生毕业设计S8选项田帮助 A查找和替换导入和导出设置凝盘启动区域设置任务列表外接程序/宏的安全性文档字体和颜色 自动恢复-项目和解决方案常规VB默久值VC+

27、目录VC+项目设置生成并运行+源代码管理+1文本编辑器 V.、ri、I nn平台9:显示以下内容的目录Win32 可|包含文件 卜$(Y CInst a llD i iO Pla tormSDK include a$(Fra meworkSDKDir)includeC:Progra jn Files 0 penCV cv includeC:Progra m Files 0 penCV eva ux includeC:Progra m Files 0 penCV excore includeC:Progra m Files 0 penCV ml includeC:Progra m Files 0

28、 penCV other1ibs _ gra phics includeC:Progra m Fi1es 0 penCV otherlibs cvca m include?nCy otherlibs hi ghgui包含目录生成VC+项目期间,搜索包含文件时使用的路径.与环境变量 INCLUDE相对应。图2-7添加包含文件路径3、在“显示以下内容的目录”下选择“库文件”,在下面添加如下的路径:C:Progra m Files O penCV lib;C:Progra m Files O penCV otherlibs _ gra phics libo如下图所示:图2-8添加库文件路径4、在“显

29、示以下内容的目录”下选择“源文件”,在下面添加如下目录:C:Progra m Files O penCV otherlibs cvca m src windows;C:Progra m Files O penCV otherlibs _ gra phics src;10X x学院20 11届本科生毕业设计C:Progra m Files O penCV ml src;C:Progra m Files O penCV cxcore src;C:Progra m Files O penCV cva ux src vs;C:Progra m Files O penCV cv src;C:Progra

30、 m Files O penCV cva ux src;如下图所示:图2-9添加源文件路径5、项目-添加引用-浏览。找到EmguCV下的四个D11文件:Emgu.CV.dll,Emgu.Util,dll,Z edGra ph.dll,.dll。全部添加到当 前工程的引用。然后在窗体的源程序中添加:using Emgu.CV;using Emgu.Util;2.4本章小结O penCV是一个开源的强大的图像视觉处理库,在图像处理方面有着显著的 优势。本章主要介绍了 O penCV技术及其应用领域、O penCV的安装与配置。为软 件开发作准备。11X x学院20 11届本科生毕业设计3系统方案3

31、.1 系统总体方案根据疲劳驾驶预警系统的功能与技术要求情况,系统采用O penCV图像处理 视觉库,设计基于O penCV的疲劳驾驶预警系统。各部分简要介绍如下:操作系统选用基于普通PC机Windows X P,硬件设备选用高清USB摄像头。简单的硬件设备,相对而言,系统的稳定性与精准性相对差一些。但是,便于开 发本系统。应用程序框架:采用.NET Fra mework 2.0并结合O penCV技术,具有丰富强 大的图像处理动态链接库,使用的编程开发语言是C#。系统的开发环境如下:硬件环境:一台普通PC机、一个摄像头;软件环境:Windows X P、.NET Fra mework 2.0、

32、Visua l Studio 2005、O penCV Emgu.CV 库。本系统具有实时性,实用性,非触摸性,简单操作性等特点,并不局限于车 载中,也适用于其他需要通过眼睛状态判断人的状态的的设备中。系统总体方案 框图如下:12X x学院20 11届本科生毕业设计图3-1系统框图3.2系统主要功能获取图像:通过摄像头实时地获取驾驶员的图像并在程序显示,得到驾驶员 状态图像。眼睛定位:为了提取出眼睛区域的图像,使用眼睛识别定位算法。二值化:将提取出来的眼睛区域图像进行二值化处理,方便后续的操作。计算眼睛高度:通过扫描二值化图像的黑像素点,得到眼睛最高点与最低点 两个点的坐标,从而计算出眼睛的高

33、度值。判断疲劳状态:通过对连续五帧的眼睛高度值的比较,从而得知是否处于疲 劳状态。语音提示:当驾驶员处于疲劳状态时,系统会发出语音提示,提醒驾驶员注 意休息13X x学院2011届本科生毕业设计3.3系统实现原理1、通过摄像头调用O penCV视觉库的函数连续获取图片;2、使用通过O penCV自带的ha a r特征训练器生成的X ML文件,定位眼睛并 将其截取下来;3、将截取下来的眼睛图像进行二值化处理;4、通过扫描二值化图像的黑像素点,得到眼睛最高点与最低点的坐标,通 过坐标差值计算出眼睛上下的高度值;5、当检测到眼睛的高度值小于或等于设定的眼睛高度阈值,则记录下来,若连续五帧眼睛的高度值

34、都小于或等于阈值,则系统判认为驾驶员是处于疲劳状 态;6、最后系统就会发出警报声,提醒驾驶员应当注意休息。获取图像眼睛定位二值化计算眼睛高度图3-2系统原理图3.4本章小结本章主要介绍系统的总体方案、基于该方案进行了主要功能的设计以及分析 本系统的实现原理。14X x学院2011届本科生毕业设计4算法分析4.1 AdaBoost算法描述Ada Boost算法的基本思想就是利用大量的分类能力一般的弱分类器(wea k cla ssifier)通过一定的方法叠加起来构成一个具有很强分类能力的强分类器(strong cla ssifier)o最初的方法是限定每一层强分类器的个数,改进的方位 为检测率

35、和误检率的要求。一个弱分类器比(x)包括以下三部分:矩形特征力,一 个分类阈值匕以及一个分类符号Pj。并且满足以下关系:hj(x)=(4-1)I 0 othenv ise矩形特征是Ada Boost算法中规定的几种标准的矩形模式,一般为二到三个 矩形组成;分类阈值如式(1)所示是一个对所有矩形进行分类的特定值;分类符号 则是和分类阈值配合对所有矩形分类的一个方向符号。强分类器的生成方式是以 弱分类器的投票决定的,不停地向强分类器中加入弱分类器,这些弱分类器是经 过选择的最优分类器,直到特定的需求得到满足为止,这个特定需求在原始的 Ada Boost算法中是大于1/2,也就是说比猜测强就可以了,

36、而在改进的Ada Boost 算法中则是必须达到训练时指定的检测率和误检率为止。一个强分类器就可以对 待检测区域进行判决,通过的则进入下一级强分类器或者给出检测结果,否则就 直接可以被排除。具体操作过程如图所示:15X x学院20 11届本科生毕业设计4.2眼睛定位算法为了得到眼睛图像的信息,必须进行眼睛定位。现有的眼睛定位方法有很多,基于肤色模型的方法、灰度投影法、基于模板的方法、基于神经网络的方法、基 于特征提取等。本系统利用Ada Boost算法构造一个基于类Ha a r特征的层叠式分 类器来进行人眼的定位。类Ha a r特征通常由24个矩形组成,如图所示:图4-2类Ha a r特征矩形

37、矩形特征A、B表示两个形状大小相同的矩形区域内所有像素和的差值;矩 形特征C表示外面的两个矩形的像素和减去中间矩形的像素和;矩形特征D表示 对角矩形内像素和之差。为了方便计算,在这里引进积分图像概念:ii(x,y)i(u,v)(4-2)ii x ,v pos.txtE C:WINDOWSsystem32cmd.exeMicrosoft Windows XP Uersion 5.1.2600(C)Copyright 1985-2001 Microsoft Corp.C:Documents and Settingsdoctord:D:cd boostposD:boostposdir/b pos.t

38、xtD:boostposm图4-5建立正样本说明文件3、打开pos.txt将BMP全部替换成BMP 1 0 0 24 24,最后删除文本中最 后一行的“pos.txt”4、同理,负样本执行同样的操作。17X x学院20 11届本科生毕业设计4.3.2创立样本VEC文件1、将 openc v_ cr ea t e sa mp les.exe 和 opencvha a r tra ining,exe 拷至!J根目录 下2、在CMD下输入如下命令:opencv_ crea tesa mples.exe-vec pos.vec-info pos pos.txt-bg neg neg.txt-w 40-

39、h 40-num 142 以上参数的含义如下:vec 训练好的正样本的输出文件名。img源目标图片(例如:一个公司图标)bg背景描述文件。num要产生的正样本的数量,和正样本图片数目相同。bgcolor背景色(假定当前图片为灰度图)。背景色制定了透明色。对于压缩图片,颜色方差量由bgthresh参数来指定。则在bgcolor-bgthresh和bgcolor+bgthresh中间的像素 被认为是透明的。bgthreshinv如果指定,颜色会反色ra ndinv如果指定,颜色会任意反色ma xidev 背景色最大的偏离度。ma xa nge1ma xa ngle,ma xza ngle 最大旋转

40、角度,以弧度为单位。show如果指定,每个样本会被显示出来,按下esc会关闭这一开关,即不显示 样本图片,而创建过程18X x学院20 11届本科生毕业设计继续。这是个有用的debug选项。w输出样本的宽度(以像素为单位)h sa mple_ height输出样本的高度,以像素为单位。D:boostAopencu_createsamples.exe-uec pos.uec-info pospos.txt-bg negneg.txt-w 40-h 40-num 142图 4-6 执行 opencv_ crea tesa mples.exe按下回车后我们的正样本9 PO图4-7生成样本VEC文件4

41、.3.3训练生成XML1、在CMD下输入如下命令:opencv_ ha a rtra ining.exe-da ta xml-vec pos.vec-bg neg neg.txt-w 40-h 40-mem 80 0参数说明如下:Ha a rtra ining的命令行参数如下:一da tadir_ na me存放训练好的分类器的路径名。vec正样本文件名(由tra iningssa mples程序或者由其 他的方法创建的)bgba ckground_ f ile_ na me 背景描述文件。npos,一nnegnumber_ of_ nega tive_ sa mples用来训练每一个分类器阶

42、段的正/负 样本。合理的值是:19X x学院20 11届本科生毕业设计-nPos=70 0 0;nNeg=30 0 0 nsta gesnumber_ of_ sta ges训练的阶段数。一nsplitsnumber_ of_ splits决定用于阶段分类器的弱分类器。如果1,则一个简单的stump cla ssifier被使用。如果是2或者更多,则 带有number_ of_ splits个内部节点的CART分类器被使用。meminemory_ in_ MB预先计算的以MB为单位的可用内存。内存越大则训 练的速度越快。sym(defa ult)nonsym指定训练的目标对象是否垂直对称。垂直

43、对称提高目标的训练速度。例如,正面部是垂 直对称的。minhitra temin_ hit_ ra te每个阶段分类器需要的最小的命中率。总的 命中率为 min_ hit_ ra te 的 nuniber_ of_ sta ges 次方。一ma xfa lsea la rmma x_ fa lse_ a la rm_ ra te没有阶段分类器的最大错误报警 率。总的错误警告率为ma x_ fa lse_ a la rm_ ra te的number_ of_ sta ges 次方。-weighttrimmingweight_ trimming指定是否使用权修正和使用多大的权 修正。一个基本的选择

44、是0.9 eqw一modeba sic(defa ult)|core|a ll选择用来训练的ha a r特征集的种类。ba sic仅仅使用垂直特征。a ll使用垂直和45度角旋转特征。一wsa mple_ width hsa mple_ height训练样本的尺寸,(以像素为单位)。必须和训练样本创建的尺寸相同D:cd boostD:boostopencu_haartraining.exe-data xml-uec pos.uec-bg negneg.txt-w 40-40-mem 800-mode all _图 4-8 执行 opencv_ ha a rtra ining.exe2、然后按回

45、车开始训练,生成人眼特征的X ML4.4本章小结本章介绍眼睛定位算法的实现原理以及眼睛特征分类器的详细训练步骤,为软件调用眼睛特征的X ML文件提供准备。X ML文件的训练是本系统的重要环节,缺少此环节,系统将无法定位眼睛。20X x学院20 11届本科生毕业设计5详细设计5.1程序流程图图5-1程序流程图21X x学院2011届本科生毕业设计5.2软件设计整个系统的设计目标主要是判断驾驶员眼睛的闭合状态,采用模块化逐步推进来完善系统的功能,主要包括以下几大模块:5、获取图像;6、眼睛定位;7、计算眼睛的高度;8、报警模块;9、GUI设计。5.2.1获取图像1、调用O penCV的函数,通过c

46、a p=new Ca pture。摄像头获取图片 此时获得的图片是水平翻转的,将图片取反:ca p.FlipVertica l=!ca p.FlipVertica l;2、图片灰度化:gra ylmg=imgSa ve.Convert();获取视频图像_ I _图像取反图像灰度化图5-2获取图像5.2.2眼睛定位1、眼睛定位并将图片二值化:Ha a rCa sca de eyes=new Ha a rCa sca de(X ML 文件路径);Recta ngle eyesDetected=gra yImg.DetectHa a rCa sca de(eyes);forea ch(Recta n

47、gle eye in eyesDetectedO)gra ylmg.Dra w();表示代码省略gra ylmg.RO I=eye;表示代码省略Cvlnvoke.cvThreshold(,);表示代码省略22X x学院20 11届本科生毕业设计图5-3眼睛定位5.2.3计算眼睛的高度1、将二值化的图像暂存在临时文件夹中:Cvlnvoke.cvSa velma ge(,);表示代码省略2、调用暂存图片,for循环遍历图片像素点比较黑色像素点 坐标并得到上下最大落差值:for()表示代码省略for()表示代码省略Color c=bmp.GetPixel(x,y);if(c.G.ToStringO=

48、0)表示代码省略if(ma x y)ma x=y;if(y min)min=y;图片暂存遍历图片黑像素点比较黑像素点坐标获得眼睛高度ma x-min图5-4计算眼睛的高度23X x学院20 11届本科生毕业设计5.2.4报警模块1、累积疲劳状态次数,达到次数则报警,否则返回:if()(frmAla rm a=new frmAla rmO;a.Show();2、报警声,fnnAla rm内函数:SoundPla yer sp=new SoundPla yer();图5-5报警模块5.2.5 GUI 设计在人和计算机的互动过程中,有一层面,既我们所说的界面(interfa ce).GUI(Gra

49、phica l User Interfa ce)即图形用户界面,作为一种可 视化的用户界面,使用图形界面代替正文界面,简单来说就是将所有出现在屏幕 卜.信息都使用窗口、菜单、按钮等来表示,它的作用是实现用户和计算机之间的 良好的通信。这是一门结合计算机科学、美学、心理学行为学及商业领域需求分 析的人机系统工程,强调人-机-环境作为一个系统进行总体设计。系统整体界面使用全屏显示效果,采用无边框显示,直接使用图片作为一个 按钮。系统使用一个图片控件显示实时摄像头捕获的图像,在界面显示获取的二 值化眼睛图像,以便测试观察。为了提高系统判断精度,另加了一个设置二值化 的滑动条。具体界面截图在下面系统测

50、试部分显示。24X x学院20 11届本科生毕业设计5.3本章小结本章详述了整个系统的设计流程和各部分功能的详细设计,包括获取图像、眼睛定位、计算眼睛高度值、判断疲劳状态、报警模块以及GUI界面设计。通过 本章的介绍,更清楚的理解系统的整体架构和具体实现。25X x学院20 11届本科生毕业设计6系统测试系统测试是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在 一起,进行信息系统的各种组装测试和确认测试,其目的是通过与系统的需求相 比较,发现所开发的系统及应用程序与用户需求不符或矛盾的地方,从而提出更 加完善的方案系统测试是针对整个产品系统进行的测试,目的是验证系统是 否满足了需求规

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 行业资料 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服