MATLAB疲劳驾驶检测系统

摘要:随着我国生活水平的提高,在交通方面有了质的飞跃,其中汽车保有量更是与日俱增。但是,随之而来的交通事故也源源不 断。据统计,我国交通事故死亡人数己连续10多年居世界第一,其中,驾驶员疲劳造成交通事故的占总数的20%左右,占特大交通事故的 40%以上,阻止疲劳驾驶的发生已刻不容缓。

1引言

疲劳驾驶是指驾驶员由于睡眠不足或长时间持续驾驶造成的反应能力下降,这种下降表现在驾驶员困倦、打磕睡、驾驶操作失误或完 全丧失驾驶能力。在所有的驾驶员错误中,最常见的是知觉延迟和决策错误,这些错误会产生注意力不集中、反映迟钝、操作不当等,而 产生这些错误的根本原因就是疲劳驾驶。

由此可以知道,疲劳驾驶正逐渐成为交通事故的主要原因之一,成为马路上的“第一杀手”。因此,研究出一套疲劳检测的系统对社会 和民众都有不可估量的社会意义和经济价值。

2疲劳检测系统

为了减少由于驾驶员疲劳驾驶弓I起的交通事故,提出驾驶员疲劳状态检测系统的方案。使用3x3中值滤波去除噪声和光照对图像的影 响,通过对AdaBoostW法的强分类器训练算法改进、级联分类器优化实现人脸的快速检测,在检测到的人脸区域,通过积分灰度投影和从 粗到细改进的模板匹配方法对人眼进行准确定位;通过面部表情、眨眼频率、瞳孔变化和头部运动的计算,进行疲劳驾驶的综合判定。

2.1图像预处理

由于自然条件下的噪声和光照影响等一些因素,会给人脸图像的处理带来一定干扰,所以需要找到合适的方法滤除噪声和改善非均匀 光照的影响。经实验验证,3x3中值滤波法可达到很好的预处理效果。

例如一幅15*15的图像f (i,j )其灰度值由函数f (i,j ) =16x|i-j| (i,j=1,2,...,15 )给出,用3*3中值滤波器作用于该图像上,求输 出图像,处理过程如下:

首先创建15*15灰度图像矩阵,并转换为uint8格式。然后创建中值滤波器。从首行首列开始,取出3*3的像素作为矩阵。然后将该矩阵 转换为行矩阵,取其中值,并将中值赋值给中心位置元素。同理,一直处理到m-n+1行/列(m为行例数,n为模板位数)。

2.2人脸检测

整个疲劳检测系统首先必须准确地检测到人眼位置,我们采用先确定人脸区域,然后在人脸区域内进一步检测、定位人眼的方法,这 样可以使得人眼的检测与定位更准确一些。

2.2.1.AdaBoost算法目标检测方法

AdaBoost算法的基本思想就是将大量的分类能力一般的弱分类器通过一定方法叠加起来,构成一个分类能力很强的强分类器,且算法 不需要任何关于弱分类器性能的先验知识,很容易应用到实际问题中。

虽然该算法在应用方便比较普遍得到大众的认可,但是却也存在着算法本身训练比较耗时,整个系统的训练时间长的问题,所以在分 析这些问题的基础之上,本文提出了改进的AdaBoost目标检测算法,极大降低了检查的时间。

2.2.2.强分类器训练改进算法

基于AdaBoost的快速目标检测算法,使用积分图的方式进行了快速计算,本文在进行特征选取的时候将这些小面积矩形特征进行过 滤,在保证分类器检测率的同时,也提高了分类器的训练速度。

AdaBoost算法能够完成实时性检测的原因除了通过积分图进行快速特征计算之外,另一个重要原因是该算法在进行检测目标时采用了 级联分类器。级联结构分类器如图2-2-2所示:

在将强分类器串联在一起形成叠层分类器时,应遵循“先重后轻”的分类器思想,将由重要特征的结构简单强分类器放在面前。这样可 以先排除大量假样本,从而提高检查速度。AdaBoost算法在进行级联分类器训练的时候,都进行了重新训练,比较耗时。本文为了提高训 练速度,对级联分类训练时,后一级的强分类器会重复利用前一级已经训练好的弱分类器,并在此基础上通过增加弱分类器的数量来提高 强分类器的性能。这样可以大大减少强分类器的时耗。

2.3 人眼定位

2.3.1.灰度积分投影确定准眼睛区域

在准确定位脸部位置后,根据人脸的面部器官的分布,人眼在脸部的上半部,所以首先截取人脸区域是上半部进行处理。人脸图像中 眼睛部位的灰度值通常比周围区的灰度值小,利用该特征常使用积分投影的方法来定位眼睛。最为常用的投影函数是积分投影函数。

2.3.2 .改进的模板匹配精确定位眼睛

模板匹配方法是假设待搜索图像S的尺寸为w'H,模板下的尺寸为M'N.,通过一定的算法在大图像(即待搜索图像S )中搜索与模板T具 有相近的尺寸、方向和图像的子图,并确定其坐标位置。

基于相似度的模板匹配算法以各局部图像作为模板,先在人脸集中手工提取各种状态的眼睛作为模板。 一幅眼睛图片为一个模板,即一个二维矩阵,利用眼睛模板与人脸图像作匹配,匹配函数如下:

当模板匹配的相关系数R(i,j)等于1的时候,说明搜索子图与模板完全匹配。当然,这只是一个理想值,模板匹配过程中主要是寻找 相关系数的最大值,此时它所对应的搜索子图便是所要寻找的目标子图。显然,用这种公式做图像匹配计算量大、速度慢。可以使用另外 一种算法衡量T和S (i , j )的误差,其公式为:

计算两个图像的向量误差,可以增加计算速度,根据不同的匹配方向选取一个误差阈值E0 ,当E(i,j)>E0时就停止该点的计算,继 续下一点的计算。

3技术实现线路

利用MATLAB等仿真软件进行仿真,在仿真实验中改进并完善项目实施方法,实现疲劳驾驶检测系统可靠运行。经过对疲劳驾驶的特 征进行分析,得出验证所处理的图片的瞳孔变化、面部表情变化、眨眼频率、头部运动的特征来判定是否存在疲劳驾驶,再使用视频图像 监视器、图像切换器、图像采集器、图像处理器、智能语音警器组成完整的疲劳驾驶检测设备,以下是基于视频图像的疲劳驾驶检测系统 的研究线路。

4结语

本文在借鉴了很多疲劳驾驶检测研究资料的基础上,比较了多种疲劳驾驶方法,描述了基于视频图像的面部表情、眨眼频率、瞳孔变 化、头部运动识别的疲劳驾驶分析及判断方法,改善了现有的光照预处理方法,融合了 3*3图像预处理算法,系统能基本上实现对驾驶员疲 劳状态的判断,并及时做出检测报警,有效地提升司机的驾驶安全。

参考文献:

  1. 王炳浩,魏建勤,吴永红.汽车驾驶员磕睡状态脑电波特征的初步探索[J],汽车工程,2004,26(1): 70-73.
  2. 石坚,卓斌等.汽车驾驶员主动安全性因素的辨识与分析J],上海交通大学学报,2000, 28(6): 441-444.

疲劳驾驶检测系统的研究相关推荐

  1. 基于MATLAB的疲劳驾驶检测系统

    基于MATLAB的疲劳驾驶检测系统 设计内容(论文阐述的问题)疲劳驾驶检测系统以对驾驶员面部图像进行分析的方式来获取其疲劳信息,是一种智能检测系统.通过在车内安装固定摄像头实时采集驾驶员信息,将驾驶员 ...

  2. 基于YOLOv5的疲劳驾驶检测系统(Python+清新界面+数据集)

    摘要:基于YOLOv5的疲劳驾驶检测系统使用深度学习技术检测常见驾驶图片.视频和实时视频中的疲劳行为,识别其闭眼.打哈欠等结果并记录和保存,以防止交通事故发生.本文详细介绍疲劳驾驶检测系统实现原理的同 ...

  3. 基于机器学习的疲劳驾驶检测系统

    目录 (一)课程设计内容 (二)交互方式 (三)开发平台/工具简介 (四)总体设计 (五)详细设计 (六)问题及心得体会 (七)参考文献,网站 (一)课程设计内容 驾驶疲劳检测系统,通过摄像头对驾驶员 ...

  4. 毕设 疲劳驾驶检测系统 python

    文章目录 0 前言 1 课题背景 2 Dlib人脸识别 2.1 简介 2.2 Dlib优点 2.3 相关代码 2.4 人脸数据库 2.5 人脸录入加识别效果 3 疲劳检测算法 3.1 眼睛检测算法 3 ...

  5. 基于多信息融合的疲劳驾驶检测系统

    1.眨眼检测原理 基于dlib人脸识别68特征点检测.分别获取左右眼面部标志的索引,通过opencv对视频流进行灰度化处理,检测出人眼的位置信息. 人脸特征点检测用到了dlib,dlib有两个关键函数 ...

  6. 毕业设计-机器视觉的疲劳驾驶检测系统-python-opencv

    目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言

  7. 基于脑电功率的疲劳驾驶检测研究_kaic

    基于脑电功率的疲劳驾驶检测研究 摘  要 在道路交通安全领域,疲劳驾驶是一种常见的交通安全隐患.现有数据统计,全球每年有大约21%的重大交通事故与疲劳驾驶有关,疲劳驾驶成为了诱发交通事故的主要原因之一 ...

  8. 基于MATLAB人脸检测的汽车疲劳驾驶检测

    课题介绍 疲劳驾驶导致汽车交通事故逐年增加,为了提升驾车的安全性,需对驾驶员疲劳状态实时监测并及时提醒. 为了提高疲劳驾驶判断效率及准确率,本文运用Viola-Jones 框架特征矩阵进行人脸预判断: ...

  9. 疲劳驾驶检测技术:基于计算机视觉的方法 vs 唾液皮质醇检测方法

    研究现状 1.随着汽车在我国迅速发展与大众化,疲劳驾驶严重威胁到交通安全,疲劳驾驶形成机理.疲劳驾驶行为失误识别.疲劳预警与控制技术等正逐渐成为交通安全的主要研究方向: 2.疲劳驾驶相关文献与文献检索 ...

最新文章

  1. 如何处理用代码创建SD Sales order时遇到的错误消息KI 180
  2. ubuntu下使用SVN
  3. mysql数据库三级分类_5.在 MySQL数据库中,以下数据库对象与数据库三级模式对应关系正确的是?...
  4. 10.1引用数据类型的转换
  5. flash player10.1 + FMS4中的p2p功能
  6. Python中list复制引发的问题
  7. 关于鸿蒙系统报告,华为鸿蒙操作系统研究报告:全景解构(21页)
  8. 富士 FinePix F401
  9. glibc free 死锁
  10. 军哥lnmp一键安装包详解
  11. iOS 15 地图应用程序的所有新功能:更新的详细信息、AR 步行路线、全球视图等
  12. 《C语言程序设计(第五版)谭浩强》学习笔记
  13. matlab ansys对应版本,ANSYS所有版本下载链接
  14. 小米官网竖直导航栏html,手把手教你做小米商城顶部导航栏
  15. java 前后端分离教程,Java web前后端分离
  16. 使用电信光猫加路由器实现内网穿透,外网访问内网
  17. 关于Three.js 加载地面贴图的坑
  18. [原创]找小丑-你要做小丑,还是主宰小丑的那个?
  19. 《2020智慧屏白皮书》重磅发布 华为跨界引领电视行业革新
  20. Java快速入门(17) - Number类及其子类

热门文章

  1. 计算机毕业设计ssm千益校园帮跑腿信息平台5e9ev系统+程序+源码+lw+远程部署
  2. 通用vue组件化搜索组件页面
  3. 从数据分析的角度看旅行青蛙还可以这么玩。。。
  4. Zabbix+分布式数据库TiDB实现分布式数据库监控
  5. snapseed用法
  6. 华为鸿蒙系统与麒麟系统,搭载鸿蒙系统,麒麟9000处理器
  7. java2d游戏代码_Java 2d游戏中的“JUMP”
  8. 转换说明%f %e %g 与精度控制
  9. 十二、阿里云 maven 配置
  10. 比脸软件测试自学,【AI测试学习】FakeApp, Faceswap, DeepFaceLab等Deepfakes换脸程序的简单对比 (转)...