目录

  • (一)课程设计内容
  • (二)交互方式
  • (三)开发平台/工具简介
  • (四)总体设计
  • (五)详细设计
  • (六)问题及心得体会
  • (七)参考文献,网站

(一)课程设计内容

驾驶疲劳检测系统,通过摄像头对驾驶员的行为进行分析,得出驾驶员是否处于疲劳驾驶状态。

(二)交互方式

一个简易的UI界面,通过鼠标点击方式打开摄像头,关闭摄像头进行交互

(三)开发平台/工具简介

开发平台:Visual Studio 2019 (是美国微软公司的开发工具包系列产品)
库:OpenCV3.42 (一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库)dlib19.14 (一个包含机器学习算法的C++开源工具包)shape_predictor_68_face_landmarks.dat(人脸识别的68个特征点检测库)cvui(基于OpenCv的ui库)

(四)总体设计

以组织结构图形式给出课程设计作品的功能模块划分

(五)详细设计

动作行为检测模块:
调用dlib库对人脸进行识别

将shape_predictor_68_face_landmarks.dat数据模型导入并检测出人脸68个特征点,将眼睛位置和嘴巴文字的点连在一起,便于更直观的观察

眨眼状态检测方法:计算眼睛的长宽比,当人眼闭合时,EAR会迅速下降,所以我们可以通过判断EAR是否低于阈值(该值因人而异)来判断驾驶员当前帧是否处于闭眼状态,记录帧数。

打哈欠状态检测方法:打哈欠时,嘴巴会张大且相对较长时间保持这一状态,可以通过68个特征点中对应嘴巴位置的点进行长宽比计算,如果大于阈值(因人而异,并且是要能区分出说话和打哈欠的幅度)则认为驾驶员当前处于打哈欠状态,记录帧数。

利用61,65,62,68,64,66特征点计算嘴巴当前张开的幅度大小
如下图(分别为打哈欠状态和说话状态)


点头状态检测方法:通过欧拉角中的俯仰角是否大于阈值判断是否处于低头状态并记录帧数。
通过世界坐标系内点的位置、像素坐标位置和相机参数就可以得到旋转矩阵,之后根据旋转矩阵求解欧拉角
具体做法如下:
物体相对于相机的姿态可以使用旋转矩阵和平移矩阵来表示,因此必然少不了坐标系转换


所以只要知道世界坐标系内点的位置、像素坐标位置和相机参数,再利用OpenCV已经给我们提供了求解PnP问题的函数solvePnp()就可以搞定旋转和平移矩阵,有了旋转矩阵我们就可以得到欧拉角

可以看到我们的人物头像在世界坐标系做显示了出来

最后将以上动作检测数据保存交给统计分析模块,动作行为检测模块的任务就完成啦。
基于统计分析模块:
利用动作行文检测模块的统计信息,通过疲劳值函数,对眨眼帧数,低头帧数,打哈欠帧数进行计算,得出疲劳值判断驾驶员是否处于疲劳状态,传统方法一般通过次数来统计,本项目考虑到人疲劳状态的动作和精神状态时动作不一,单靠次数来统计有失精度,所以精确到帧数,从而更好的判断驾驶员的驾驶状态

(六)问题及心得体会

问题:驾驶员是否带眼睛可能会对检测情况造成一定的影响,以及疲劳值计算函数可以进一步修改,但个人数学水平有限,没能给出一个很好的计算公式,从而影响了最终判断的准确性

(七)参考文献,网站

1.代码思路来源:一位很厉害的小姐姐用Python实现的版本
2. 头部姿态估计

基于机器学习的疲劳驾驶检测系统相关推荐

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

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

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

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

  3. 疲劳驾驶检测系统的研究

    MATLAB疲劳驾驶检测系统 摘要:随着我国生活水平的提高,在交通方面有了质的飞跃,其中汽车保有量更是与日俱增.但是,随之而来的交通事故也源源不 断.据统计,我国交通事故死亡人数己连续10多年居世界第 ...

  4. 基于机器视觉的疲劳驾驶检测

    一.疲劳驾驶特征提取 眼睛闭合的频率和持续时间在某种程度上可以反映疲劳的状态.卡内基梅隆研究所经过反复试验和论证,提出了度量疲劳的物理PERCLOS.PERCLOS定义为一定时间内眼睛的闭合程度,它已 ...

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

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

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

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

  7. 毕业设计-基于机器学习的恶意域名检测系统

    目录 前言 课题背景和意义 实现技术思路 一.相关研究 二.恶意域名检测流程 三.特征分析 四.实验与检测效果分析 五.总结 实现效果图样例 最后 前言

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

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

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

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

最新文章

  1. 深入Java核心 Java中多态的实现机制(1)
  2. 2021-10-16 集合(set)与映射(map) 恋上数据结构笔记
  3. 排序1+1:冒泡排序法(BubbleSort)的改进以及效率比较
  4. OS-鸿蒙系统-以及编译器
  5. java安装cab破损,WCELOAD无法安装压缩的CAB文件
  6. 奥鹏教育计算机试题,最新奥鹏教育《计算机基础》模拟试卷附答案(11页)-原创力文档...
  7. CV和NLP中的无监督预训练(生成式BERT/iGPT和判别式SimCLR/SimCSE)
  8. C语言访问存储器的方法
  9. Response.End(); 用HttpContext.Current.ApplicationInstance.CompleteRequest 代替
  10. JUnit执行单元测试用例成功,mvn test却失败的问题和解决方法
  11. delphi多线程TThread详解
  12. 黑暗城堡(最短路径树)
  13. android 饼图花边框,echarts 饼图给外层加边框
  14. 怎样恢复计算机管理员身份,win10系统设置一直以管理员身份运行的恢复办法
  15. npm修改全局安装默认路径(C:\Users\Administrator\AppData\Roaming\npm\node_modules)
  16. 【12. 文件系统管理】
  17. win8宽带连接服务器未响应,关于Win8系统连接宽带错误的解决方法介绍
  18. 实验1 进程管理实验-计算机操作系统
  19. mpu6050.py
  20. Swift - lazy 修饰符和lazy 方法

热门文章

  1. 忘记Mac管理员密码怎么办?
  2. BugTags使用教程
  3. 单片机的停车场计数系统c51_基于51单片机控制的自动停车收费管理系统
  4. 东财21秋《利息理论X》单元作业1【标准答案】
  5. 2022大学生就业力调研:期望月薪降至6295元,首因是就业压力
  6. SAS学习之产生新变量
  7. BB10 NDK Cascades 框架简介和QT使用教程(与Nokia Symbian QT的区别)
  8. Kotlin成为Android开发首选语言——你绝对不能错过的
  9. python写通讯录_Python实现命令行通讯录
  10. 在 Umi 中打包与加载自定义字体