当前位置: 首页 > 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)在实际应用当中,可以考虑将疲劳驾驶检测系统与车辆的自动驾驶功能结合,实现更加安全和智能化的驾驶体验。

http://www.lryc.cn/news/93710.html

相关文章:

  • chatgpt赋能python:使用Python来寻找两个列表不同元素的方法
  • 简单学生管理系统
  • 图像金字塔
  • Springboot整合Camunda工作流引擎实现审批流程实例
  • PHP设计模式21-工厂模式的讲解及应用
  • 【玩转Docker小鲸鱼叭】理解Docker的核心概念
  • Eureka 心跳和服务续约源码探秘——图解、源码级解析
  • 代码随想录二刷 530 二叉搜索树的最小绝对差 98. 验证二叉搜索树 700. 二叉搜索树中的搜索
  • Docker安装——CentOS7.6(详细版)
  • 论信息系统项目的整体管理(范文)
  • 【音视频处理】音频编码AAC详解,低码率提高音质?
  • 逆函数学习
  • 代码审计——SSRF详解
  • 搭建Scala开发环境
  • BLIP和BLIP2
  • 微信小程序开发实战 ⑨(TabBar)
  • 微前端探秘:初始微前端、现有方案和未来趋势
  • 运维(SRE)成长之路-第2天 文本编辑工具之神VIM
  • 45从零开始学Java之详解static修饰符、静态变量和静态方法
  • 电商超卖,从业务到设计
  • 【MySQL】表的约束
  • 【计算机网络】第一章 概述(下)
  • 化工园区人员全过程轨迹化安全解决方案
  • Java泛型中的T、E、K、V、?通配符,你确定都了解吗?
  • Jenkins部署及使用
  • UML类图(二)
  • 【IoU全总结】GIoU, DIoU, CIoU, EIoUFocal, αIoU, SIoU,WIoU【基础收藏】
  • docker 安装 mysql
  • Java 流程控制之 for 循环
  • Kubernetes那点事儿——暴露服务之Ingress