当前位置: 首页 > news >正文

基于OpenMV的疲劳驾驶检测系统的设计

一、前言

        借助平台将毕业设计记录下来,方便以后查看以及与各位大佬朋友们交流学习。如有问题可以私信哦。

        本文主要从两个方面介绍毕业设计:硬件,软件(算法)。以及对最后的实验结果进行分析。感兴趣的朋友们可以评论区留言~看到就会回复。有需要代码和模型等资料的可以加扣扣1287073476私聊哦。

        本文所设计的疲劳驾驶检测系统的实现流程如下:

 

二、硬件要求

        首先,最基本的硬件当然是主控系统OpenMV开发板,OpenMV我们选择OPENMV4 H7 PLUS版本,如下图所示,其他版本跑不了模型训练,会报错!!!

         其他硬件:OV5640摄像头,稳压模块,蜂鸣器模块,LED模块等。

三、相关算法

1.人脸识别

        Sirovich首先提出使用特征脸法进行人脸识别,它是一种将人脸特征低维化 的方法,本文采取基于Haar特征的Cascade级联分类器进行人脸识别,再对检测到的人脸进行疲劳驾驶判断。

        基于Haar特征的Cascade级联分类器,是Paul Viola和Michael Jone2001年在论文“Rapid Object Detection using a Boosted Cascade of Simple Features”中提出的一有效的物品检测(object detect)方法,它是一种机器学习的方法,通过许多正负样例中训练得到cascade方程,然后将其应用于其他图片。

        一个弱分类器就是一个决策树,最基本的弱分类器只包含一个Haar-like特征,也就是它的决策树只有一层,被称为树桩(stump。在经过排序筛选后,选出最优弱分类器,并将最优弱分类器的特征量交给AdaBoost,让其进行训练。

        级联分类器:将多个弱分类器进行加权组合就形成了强分类器,同样将多个强分类器进行简单组合就形成了级联分类器。

        从该级联器的训练过程可以发现,当一个弱分类器能够正确识别出分类样本时,将会减少样本的权重;当一个弱分类器错误识别分类样本的时候,将会使得样本的权重增加。因此,后面的分类器在训练的时候会针对错分样本加强训练。最后,将的弱分类器合成强分类器,再将各弱分类器权重值与平均值进行比较,从而实现对图像的检测。如图通过加载人脸haar算子,基于Cascade级联器识别到人脸后,将人脸框起来,方便后续的疲劳检测。

2.疲劳检测 

        通过人脸识别后,确认为人脸,再进行疲劳检测,本文疲劳驾驶检测主要采用卷积神经网络算法,通过深度学习后,生成模型,将人脸特征与模型进行比对从而达到对驾驶人员的疲劳驾驶状态检测。本文模型训练主要通过EDGE IMPULSE网站进行云端在线训练,具体模型训练看这里。

四、结果分析

1、实验结果

        本文所设计的疲劳驾驶检测系统实物如图所示。对检测人员进行实时监测,当检测到驾驶人员张嘴表现出“打哈欠”特征时,预警模块发出报警,蜂鸣器发声,LED模块亮红灯,来提示驾驶人员目前处于疲劳状态,达到提醒驾驶人员不要疲劳驾驶的目的。

         本文首先进行人脸识别,,识别为人脸后,白框将人脸框起来。若检测不到人脸,则不进行疲劳检测。识别为人脸后,再进一步判断是否为疲劳驾驶。当驾驶员出现打哈欠或者闭眼等特征时,经过识别,检测为疲劳驾驶后,LED模块中指示灯亮红色,蜂鸣器发声,作为警告提醒驾驶人员疲劳驾驶。如图所示:

        当驾驶员没有出现疲劳特征时,摄像头进行实时监测,LED模块不亮红灯,蜂鸣器不发声。判定为非疲劳驾驶。如图所示: 

 2、结果分析

        在设计结果分析方面,可以从以下几个方面考虑:

        准确性:系统的准确率是评价其性能好坏的重要指标之一。在测试中,应该对不同场景下的数据进行收集和分析,并根据实际情况进行调整和优化。如果系统的准确率较高,则说明其具有较强的稳定性和可靠性。经过多次实验发现,人脸识别的准确率高达98%,正确检测为疲劳驾驶的准确率高达99%以上。因此可以满足系统设计的基本需求。

        实时性:由于疲劳驾驶是一个非常危险的行为,因此及时发现并提醒驾驶员非常关键。因此,在设计系统时需要考虑实时性,即对图像进行处理和判断的速度是否足够快。如果延迟过大,则可能会导致误判或漏判等问题。经过多次实验发现,该系统检测疲劳驾驶延时较短,也满足该系统的设计需求。

五、总结与展望

        本文设计的基于OpenMV的疲劳驾驶检测系统在城市交通安全背景下应运而生,它可以实时监测驾驶员的状态,及时提醒他们注意休息,有效降低了交通事故的发生率。本文针对驾驶员疲劳驾驶出现的打哈欠特征,结合现状成熟的机器视觉,深度学习等人工智能技术设计出一种基于OpenMV的疲劳驾驶检测系统。利用OpenMV采集图像、预处理、识别分析等步骤,可以实现对驾驶员状态进行准确快速地判断,并发出提示或警告信号。主要通过haar特征算子进行人脸识别,当今人脸识别技术十分成熟,具有以下的特点:

        (1)准确性高:通过本文的原理阐述以及实验验证,可以发现人脸识别的准确率很高,基本不会出现误判的现象。

        (2)方便快捷:人脸识别的方法算法很多,很方便可靠,简单易学,程序运行没有延迟,一般的板载摄像头都可以对人脸进行识别,而且当今的图像处理,机器视觉相关开发板的出现,更是方便了人们进行项目测试,或者实验的开展,甚至是将其应用在生活当中。

        (3)可靠性高:人脸识别技术也是一种十分安全并且可靠的技术,这是因为人的面部特征是不可篡改的,每一个独立的个体都拥有独一无二的面部特征。而且,识别系统通常采用了生物特征识别和密码学两个环节的复合方法来确保系统的安全性。

将该系统进行多次测试实验,表明该系统具有较高的准确性和可靠性。此外,该系统还具有快速响应,操作简单,易安装的特点。整个课题完成了基于OpenMV的疲劳驾驶检测系统的设计以及论文的撰写,已完成的工作总结如下:

        (1)本文设计了一款基于深度学习的轨道交通驾驶员疲劳检测系统,系统由STM32H743单片机、摄像头模块、电源模块、蜂鸣器预警模块组成;

        (2)疲劳检测系统采用双电源模式,可支持电池供电或USB供电;

        (3)疲劳检测系统采用Haar算子进行人脸检测;

        (4)收集了包含不同角度、不同光照条件下的人脸数据集;

        (5)采用深度学习的方法判断驾驶员是否处于疲劳状态;

        (6)对训练生成的模型进行测试优化,对其参数进行调整,生成最能满足设计需求的模型。

        在本次课题遇到尚未解决的问题是OpenMV摄像头在进行人脸的实时监测当中对眨眼闭眼特征的识别不明显,当单独进行眼睛闭眼的特征识别时,需要对人脸区域中的人眼区域进行截取,这样就耗费了部分内存,增加了程序运行的延迟。随着未来人工智能的迅速发展,基于OpenMV的疲劳驾驶检测系统可以进一步发展和完善,具有以下展望:

        (1)未来的疲劳驾驶检测系统可以进一步提高准确性和智能化水平,更加精确的检测驾驶员的疲劳驾驶状态,以及可以对驾驶员的疲劳状态进行预判。

        (2)通过与车辆的其他传感器进行联动,可以实现更加全面和精准的疲劳驾驶检测功能。

        (3)在实际应用当中,可以考虑将疲劳驾驶检测系统与车辆的自动驾驶功能结合,实现更加安全和智能化的驾驶体验。

相关文章:

基于OpenMV的疲劳驾驶检测系统的设计

一、前言 借助平台将毕业设计记录下来,方便以后查看以及与各位大佬朋友们交流学习。如有问题可以私信哦。 本文主要从两个方面介绍毕业设计:硬件,软件(算法)。以及对最后的实验结果进行分析。感兴趣的朋友们可以评论区…...

chatgpt赋能python:使用Python来寻找两个列表不同元素的方法

使用Python来寻找两个列表不同元素的方法 在编写Python程序时,我们经常需要比较两个列表的元素,找出它们之间的不同之处。在搜索引擎优化(SEO)方面,这种比较对于找出两个网站内容的差异也非常有用。在这篇文章中&…...

简单学生管理系统

简单学生管理系统(Java)_封奚泽优的博客-CSDN博客https://blog.csdn.net/weixin_64066303/article/details/130667107?spm1001.2014.3001.5501 转载请注明出处,尊重作者劳动成果。 目录 前期准备: 数据库的连接: 用户账号类:…...

图像金字塔

​ 图像金字塔是由一幅图像的多个不同分辨率的子图构成的图像集合。是通过一个图像不断的降低采样率产生的,最小的图像可能仅仅有一个像素点。下图是一个图像金子塔的示例。从图中可以看到,图像金字塔是一系列以金字塔形状排列的、自底向上分辨率逐渐降低…...

Springboot整合Camunda工作流引擎实现审批流程实例

环境&#xff1a;Spingboot2.6.14 camunda-spring-boot-starter7.18.0 环境配置 依赖配置 <camunda.version>7.18.0</camunda.version> <dependency><groupId>org.camunda.bpm.springboot</groupId><artifactId>camunda-bpm-spring-boo…...

PHP设计模式21-工厂模式的讲解及应用

文章目录 前言基础知识简单工厂模式工厂方法模式抽象工厂模式 详解工厂模式普通的实现更加优雅的实现 总结 前言 本文已收录于PHP全栈系列专栏&#xff1a;PHP快速入门与实战 学会好设计模式&#xff0c;能够对我们的技术水平得到非常大的提升。同时也会让我们的代码写的非常…...

【玩转Docker小鲸鱼叭】理解Docker的核心概念

Docker核心概念 Docker有三大核心概念&#xff1a;镜像&#xff08;Image&#xff09;、容器&#xff08;Container&#xff09;、仓库&#xff08;Repository&#xff09; 1、镜像&#xff08;Image&#xff09; Docker镜像 是我们创建和运行Docker容器的基础&#xff0c;它…...

Eureka 心跳和服务续约源码探秘——图解、源码级解析

🍊 Java学习:社区快速通道 🍊 深入浅出RocketMQ设计思想:深入浅出RocketMQ设计思想 🍊 绝对不一样的职场干货:大厂最佳实践经验指南 📆 最近更新:2023年5月25日 🍊 点赞 👍 收藏 ⭐留言 📝 都是我最大的动力! 文章目录 分布式系统的心跳机制心跳机制的实…...

代码随想录二刷 530 二叉搜索树的最小绝对差 98. 验证二叉搜索树 700. 二叉搜索树中的搜索

530 二叉搜索树的最小绝对差 代码如下 func getMinimumDifference(root *TreeNode) int { var pre *TreeNode res : math.MaxInt var traverse func(root * TreeNode) traverse func(root * TreeNode) { if root nil { return } traverse(root.Left) …...

Docker安装——CentOS7.6(详细版)

ps:docker官网 在 CentOS 上安装 Docker 引擎 |官方文档 &#xff08;&#xff09; 一、确定版本&#xff08;必须是7以上版本&#xff09; cat /etc/redhat-release 二、卸载旧版本&#xff08;或者之前装过&#xff0c;没有安装过就不用管了&#xff09; &#xff08;root用…...

论信息系统项目的整体管理(范文)

论信息系统项目的整体管理&#xff08;范文&#xff09; 【摘要】 2016年10月&#xff0c;XX省卫生健康委启动了XX省分级转诊服务平台建设项目&#xff0c;我在项目中担任项目经理&#xff0c;负责项目的全面管理工作。该平台作为全省上下级医院转诊的信息化通道&#xff0c;…...

【音视频处理】音频编码AAC详解,低码率提高音质?

大家好&#xff0c;欢迎来到停止重构的频道。 本期我们介绍音频编码格式AAC。 AAC是音频最常用的编码格式之一&#xff0c;几乎所有的播放器都支持这个编码格式。 其他音频编码格式都是类似的&#xff0c;只是某些细节存在差别&#xff0c;如压缩算法、某些音频参数存在限制…...

逆函数学习

逆函数 给定关系 R ⊆ X Y R\subseteq X\times Y R⊆XY&#xff0c;颠倒 R R R的所有有序偶可以得到 R R R的逆关系 R ~ ⊆ Y X \tilde{R}\subseteq Y\times X R~⊆YX 但是对于函数 f : X → Y f:X\to Y f:X→Y而言&#xff0c;其逆关系 f ~ \tilde{f} f~​可能不是 Y Y Y到…...

代码审计——SSRF详解

为方便您的阅读&#xff0c;可点击下方蓝色字体&#xff0c;进行跳转↓↓↓ 01 漏洞描述02 审计要点03 漏洞特征04 漏洞案例05 修复方案 01 漏洞描述 服务端请求伪造攻击&#xff08;SSRF&#xff09;也成为跨站点端口攻击&#xff0c;是由于一些应用在向第三方主机请求资源时提…...

搭建Scala开发环境

一、Windows上安装Scala 1、到Scala官网下载Scala Scala2.13.10下载网址&#xff1a;https://www.scala-lang.org/download/2.13.10.html 单击【scala-2.13.10.msi】超链接&#xff0c;将scala安装程序下载到本地 2、安装Scala 双击安装程序图标&#xff0c;进入安装向导&…...

BLIP和BLIP2

文章主要是对BLIP2 &#xff08;使用冻结图像编码器和大型语言模型的Bootstrapping语言图像预训练&#xff09;论文的阅读笔记&#xff0c;也对BLIP&#xff08;用于统一视觉语言理解和生成的Bootstrapping语言图像预训练&#xff09;算法进行了简单的介绍。 文章&#xff1a;…...

微信小程序开发实战 ⑨(TabBar)

作者 : SYFStrive 博客首页 : HomePage &#x1f4dc;&#xff1a; 微信小程序 &#x1f4cc;&#xff1a;个人社区&#xff08;欢迎大佬们加入&#xff09; &#x1f449;&#xff1a;社区链接&#x1f517; &#x1f4cc;&#xff1a;觉得文章不错可以点点关注 &#x1f4…...

微前端探秘:初始微前端、现有方案和未来趋势

初识微前端 微前端是什么 概念&#xff1a; 微前端是指存在于浏览器中的微服务。 微前端是一种类似于微服务的架构&#xff0c;它将微服务的理念应用于浏览器端&#xff0c;即将单页面前端应用由单一的单体应用转变为把多个小型前端应用聚合为一体的应用。这就意味着前端应用…...

运维(SRE)成长之路-第2天 文本编辑工具之神VIM

vi和vim简介 在Linux中我们经常编辑修改文本文件&#xff0c;即由ASCII, Unicode 或其它编码的纯文字的文件。之前介绍过nano&#xff0c;实际工作中我们会使用更为专业&#xff0c;功能强大的工具 文本编辑种类&#xff1a; 全屏编辑器&#xff1a;nano&#xff08;字符工具…...

45从零开始学Java之详解static修饰符、静态变量和静态方法

作者&#xff1a;孙玉昌&#xff0c;昵称【一一哥】&#xff0c;另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 在前一篇文章中&#xff0c;壹哥给大家讲解了abstract关键字&#xff0c;从而我们掌握了抽象类与抽象…...

Azure AI实战:从Demo到生产级智能应用架构全解析

1. 项目概述与核心价值最近在探索Azure AI服务时&#xff0c;我偶然发现了一个名为“Azure-AIGEN-demos”的GitHub仓库。这个项目由开发者retkowsky维护&#xff0c;乍一看名字&#xff0c;你可能会觉得它又是一个普通的Azure AI示例代码合集。但当我真正深入进去&#xff0c;花…...

多模式MRI数据融合显示帕金森病患者抑郁的结构、功能和神经化学相关

论文总结1、研究问题&#xff1a;帕金森病中抑郁症非常常见&#xff0c;但机制复杂&#xff0c;既涉及脑结构异常&#xff0c;也涉及脑功能异常&#xff0c;还可能涉及多种神经递质系统。且现有研究大多是基于单模态&#xff0c;只看结构或者只看功能&#xff0c;很少研究“结构…...

观察Taotoken用量看板如何帮助团队透明化管理API成本

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 观察Taotoken用量看板如何帮助团队透明化管理API成本 作为团队的技术负责人&#xff0c;管理大模型API成本是一项持续且细致的工作…...

联邦学习与RAG融合:构建隐私保护的跨机构智能检索系统

1. 项目概述与核心价值最近在折腾一个跨机构文档智能检索的原型&#xff0c;核心需求是&#xff1a;在不共享原始数据的前提下&#xff0c;让多个参与方&#xff08;比如几家医院、几个研究实验室&#xff09;能够联合起来&#xff0c;构建一个强大的、统一的文档知识库&#x…...

工业HMI系统核心技术解析与TI解决方案实践

1. 工业HMI系统概述人机界面&#xff08;HMI&#xff09;系统是现代工业自动化不可或缺的核心组件&#xff0c;它如同工厂的"神经中枢"&#xff0c;将复杂的机器语言转化为直观的可视化信息。想象一下&#xff0c;当操作员站在一台大型工业设备前&#xff0c;不再需要…...

Codepack:标准化开发配置与自动化工具链的工程实践

1. 项目概述&#xff1a;一个为开发者准备的“代码行囊” 最近在GitHub上闲逛&#xff0c;发现了一个挺有意思的项目&#xff0c;叫 JasonLovesDoggo/codepack 。乍一看名字&#xff0c;你可能会觉得这又是一个普通的代码库或者工具集。但点进去仔细研究后&#xff0c;我发现…...

Rails控制台集成AI助手:ask_chatgpt Gem的实践指南

1. 项目概述&#xff1a;在Rails控制台里装一个AI助手 如果你是一个Ruby on Rails开发者&#xff0c;并且每天都在跟Rails控制台&#xff08; rails console &#xff09;打交道&#xff0c;那你肯定有过这样的时刻&#xff1a;盯着一段复杂的ActiveRecord查询&#xff0c;或…...

利用Taotoken模型广场为不同AI应用场景挑选合适模型

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 利用Taotoken模型广场为不同AI应用场景挑选合适模型 面对文本生成、代码审查、智能对话、翻译等多样化的AI应用场景&#xff0c;如…...

从惊叹到依赖:软件定义时代的技术信任与实用指南

1. 从“惊叹”到“依赖”&#xff1a;我们与技术关系的深度剖析“这玩意儿以前没有的时候&#xff0c;我们是怎么活过来的&#xff1f;” 这念头时不时就会冒出来。我能看懂纸质地图&#xff0c;甚至开车时有时觉得它比谷歌地图更靠谱&#xff1b;我也记得在厚厚的黄页里翻找电…...

超净实验室建设公司厂家:如何根据需求选择方案|中南实验室建设

在半导体制造、地质微量元素分析、生物制药等高精度领域&#xff0c;实验环境的洁净度直接影响数据可靠性与产品良率。超净实验室作为核心基础设施&#xff0c;其建设需融合空气动力学、材料科学、自动化控制等多学科技术。 一、超净实验室建设公司厂家的设计规划&#xff1a;…...