橙派探险记:开箱香橙派 AIpro 与疲劳驾驶检测的奇幻之旅

目录

引子:神秘包裹的到来

第一章:香橙派AIpro初体验

资源与性能介绍

系统烧录 Linux 镜像(TF 卡)

调试模式

登录模式

第二章:大胆的项目构想

系统架构设计

香橙派 AIpro 在项目中的重要作用

第三章:开发过程中的奇幻旅程

总体设计

系统功能

模型训练

第四章:系统测试与魔法调试

结尾:奇幻之旅的终点与新篇章


🎊【香橙派】专题正在持续更新中,内含香橙派调试,登录,模型训练,昇腾AI等内容✨,欢迎大家前往订阅本专题,获取更多详细信息哦🎏🎏🎏

🪔本系列专栏 -  ​​​​​​香橙派

🍻欢迎大家  🏹  点赞👍  评论📨  收藏⭐️

📌个人主页 - 勾栏听曲_0的博客📝

🔑希望本文能对你有所帮助,如有不足请指正,共同进步吧🏆

🎇粗缯大布裹生涯,腹有诗书气自华

引子:神秘包裹的到来

        在很久很久以前......在一个阳光明媚的下午,我终于收到了期待已久的包裹——香橙派 AIpro。这份礼物辗转两次才到我的手上,每一天我都怀着满心的期待,频繁地查看快递状态。终于,当门铃响起时,我几乎是飞奔到门口,迫不及待地签收了包裹。

        小心翼翼地拆开包装,香橙派 AIpro 闪耀着橙色的光芒,仿佛在向我招手,邀请我踏上一场全新的科技冒险之旅。看着这块小小的开发板,我的心中充满了无限的可能性和期待。接下来和我一起来揭开她的神秘面纱吧!

第一章:香橙派AIpro初体验

        收到香橙派 AIpro 后,我迫不及待地打开包裹,眼前的开发板闪耀着科技的光芒。板上的每个接口、每个芯片,都让我充满了探索的欲望。以下是香橙派 AIpro 开箱的实物图展示,一个C口的充电口,一根电源线,一个OrangePi AIpro:

        进一步打开后,映入眼帘便是充满着科技感的香橙派了,红色框出来的是电源接口,黄色框出来的是散热模块,蓝色框出来的是天线模块,这里要注意的是天线不能折叠贴到香橙派,这样很可能会烧掉香橙派的。

资源与性能介绍

        香橙派 AIpro 搭载了昇腾 AI 处理器,提供 8TOPS INT8 的计算能力,内存有 8GB 和 16GB 两种版本。以下是开发板的详细硬件规格:

  • 处理器:4核 64 位 Arm 处理器 + AI 处理器
  • AI 算力:半精度(FP16):4 TFLOPS
    • 整数精度(INT8):8 TOPS
  • 内存:LPDDR4X,8GB 或 16GB
  • 存储:板载 32MB 的 SPI Flash
    • Micro SD 卡插槽
    • eMMC 插座
    • M.2 M-Key 接口(支持 NVMe SSD 和 SATA SSD)
  • 网络:10/100/1000Mbps 以太网,支持 2.4G 和 5G 双频 Wi-Fi,BT4.2
  • 接口:2 个 USB3.0 Host 接口
    • 1 个 Type-C 接口
    • 2 个 HDMI 接口
    • 2 个 MIPI CSI 摄像头接口
    • 1 个 MIPI DSI 显示接口
  • 音频:1 个 3.5mm 耳机孔,2 个 HDMI 音频输出
  • 扩展接口:40 pin 扩展口(用于 UART、I2C、SPI、PWM 和 GPIO)
  • 电源:支持 Type-C 供电,20V PD-65W 适配器

系统烧录 Linux 镜像(TF 卡)

        要在香橙派 AIpro 上运行 Linux 系统,需要先将 Linux 镜像烧录到 TF 卡上。以下是具体步骤:

  1. 准备 TF 卡和读卡器:使用容量至少为 32GB 的 TF 卡(建议使用 64GB 或以上),并准备一个 TF 卡读卡器。
  2. 下载镜像和烧录工具:从香橙派官网 下载镜像 和 balenaEtcher 烧录工具。
  3. 烧录镜像:将 TF 卡插入读卡器并连接到电脑。
    1. 打开 balenaEtcher,选择下载的 Linux 镜像文件和 TF 卡,然后点击“Flash”开始烧录。
    2. 烧录完成后,将 TF 卡插入香橙派 AIpro 的 TF 卡槽。

调试模式

  1. TTL 调试模式

        开发板默认使用 uart0 做为调试串口。需要注意的是,uart0 的 tx 和 rx 引脚同时接到了两个地方:

        根据上图可知uart0 的 tx 和 rx 引脚接到了 40 pin 扩展接口中的 8 号和 10 号引脚,此种方式需要准备一个 3.3v 的 USB 转 TTL 模块和相应的杜邦线,然后才能正常使用开发板的调试串口功能。连接的实物图如下:

  1. 串口调试模式

        uart0 的 tx 和 rx 引脚又接到了开发板的 CH343P 芯片上,再通过 CH343P 芯片引出到 Micro USB 接口上。此种方式只需要一根 Micro USB 接口的数据线将开发板连接到电脑的 USB 接口就可以开始使用开发板的调试串口功能了,无需购买 USB 转 TTL 模块。连接的实物图任如下:

        以上两种方法连接成功后,进入MobaXterm旋转串口连接,选择设备到的串口号,波特率设置为115200,就可以登录我们的香橙派啦,第一次登录用户名和密码是默认的,自己可以去修改。

初始账号

初始密码

root

Mind@123

HwHiAiUser

Mind@123

登录模式

        其实上面介绍的调试方法就已经是登录上了香橙派的系统了,除此之外,再介绍两种登录方式。

  1. 远程登录模式

        使用网线连接电脑,再通过ssh远程连接香橙派,以下是连接实物图,红色框出来的是电源接口,黄色框出来的是电源接通后的指示灯,蓝色框出来的是网线接口,紫色框出来的是网线接口指示灯:

        使用 SSH 远程登录重新拍。确保开发板已连接以太网或 Wi-Fi,获取 IP 地址后,通过 SSH 连接到开发板(默认用户名:HwHiAiUser,密码:Mind@123)。

  1. 本机登录(HDMI)模式

        将 HDMI0 接口连接到显示器,通过 USB 接口连接键盘和鼠标,开机后进入 Linux 系统桌面。以下是连接实物图,红色框出来的是HDMI0,黄色框出来的是USB接口:

第二章:大胆的项目构想

        在我收到香橙派 AIpro 后,便萌生了一个大胆的构想——利用这块强大的开发板,实现一个基于深度学习与 OpenCV 的疲劳驾驶检测系统。香橙派 AIpro 不仅为该项目提供了强大的计算能力和丰富的接口支持,更在多个环节中发挥了关键作用。

        随着汽车数量的增加和交通事故的频发,疲劳驾驶已成为道路交通安全的重大隐患。为了减少因疲劳驾驶引发的事故,我决定构建一个智能疲劳驾驶检测系统。该系统将基于香橙派 AIpro 硬件平台,结合深度学习与 OpenCV 技术,对驾驶员的疲劳状态进行实时监测和预警。

系统架构设计

        该系统的整体架构如下:

硬件平台

香橙派 AIpro

摄像头与智能补光灯

用于实时捕捉驾驶员面部图像与根据环境补偿亮度

数据预处理

  • 图像灰度转换
  • 图像缩放与旋转
  • 图像平滑与增强

人脸检测

采用 Haar 特征级联分类器

特征提取与分类

基于卷积神经网络(CNN)的深度学习模型

疲劳状态评估

  • 面部表情评分:眼睑闭合、口腔张合等
  • 头部姿态分析:通过人脸 3D 模型计算欧拉角,判断是否有瞌睡点头行为

疲劳判断模型

结合预设的阈值和规则,生成专属的疲劳驾驶判断模型

报警系统

当检测到驾驶员疲劳时,通过声音、图像或文字发出警报和提醒

香橙派 AIpro 在项目中的重要作用

        香橙派 AIpro 作为该系统的核心硬件平台,发挥了至关重要的作用:

  1. 强大的计算能力:香橙派 AIpro 搭载了昇腾 AI 处理器,提供 8TOPS INT8 的计算能力,为深度学习模型的实时推理提供了强大的算力支持。这使得系统能够快速处理和分析大量的面部图像数据,实时评估驾驶员的疲劳状态。
  2. 丰富的接口支持:香橙派 AIpro 提供了多种接口,包括 HDMI、MIPI CSI 摄像头接口、USB 接口等,极大地简化了硬件连接和数据传输。通过这些接口,可以轻松连接摄像头、显示器和其他外设,保证系统的高效运行。
  3. 稳定的系统支持:香橙派 AIpro 支持多种操作系统,包括 Ubuntu 和 openEuler。这为开发和调试提供了灵活性和便利性,使得系统的搭建和优化过程更加顺利。

第三章:开发过程中的奇幻旅程

总体设计

        疲劳驾驶检测系统作为控制终端,将智能补光灯辅助的摄像头采集到的图像数据传递给 OpenCV 进行图像数据处理,然后将数据处理结果交给 TensorFlow 中的卷积神经网络(CNN)进行分析与评分,并更新驾驶员专属数据库。最后,对分析结果进行判断驾驶员是否疲劳驾驶,并在判断为疲劳驾驶时进行对应的报警提醒。总体框架如下图所示:

        系统硬件连接图如下图所示,紫色框中的是摄像头,负责捕捉驾驶员图像;在其两侧淡蓝色框中的是智能红外补光灯,负责光线不足时的补光;蓝色框中的是智能语音播报器,负责播报指令与驾驶员进入疲劳状态后的听觉报警;红色框中的是电机(代替震动电机,凑合用一下啦),负责驾驶员进入疲劳状态后的触觉报警;黄色框中的是LED灯珠,负责驾驶员进入疲劳状态后的视觉报警:

系统功能
  1. 人脸识别检测

        系统通过摄像头捕捉并定位图像中的人脸区域,对其进行裁剪和归一化处理。将检测到的人脸与数据库中已录入的驾驶员人脸进行对比,如数据库中不存在此人脸,则建立新的数据库来收集新驾驶员的脸部特征信息;如存在,则加入该驾驶员的历史脸部特征数据来建立专属的疲劳驾驶检测模型。

  1. 眼部状态识别

系统根据眼睛左右眼面部标志的特征点,计算眼睛长宽比(EAR)值,以判断是否眨眼或眯眼。眼睛长宽比 EAR 值是指眼睛垂直距离与水平距离的比值,反映眼睛的开合程度。系统通过深度神经网络模型从人脸区域中提取左右眼特征点,并使用公式计算 EAR 值。

  1. 嘴部状态识别

        系统根据嘴部张合程度(MAR)和张合时间,判断驾驶员是否打哈欠。打哈欠是指嘴部张开到一定程度并持续一定时间的行为。系统通过深度神经网络模型从人脸区域中提取嘴部轮廓和面积,并计算嘴部张合角度和持续时间。

  1. 头部状态识别

        系统根据头部的 XYZ 轴旋转角度,判断头部的俯仰程度。头部的俯仰程度是指头部相对于水平面的倾斜角度。通过计算眼睛、鼻子等特征点的中心坐标来实现头部中心和头部方向向量的计算,构建旋转矩阵,并计算出欧拉角以判断驾驶员是否有瞌睡点头行为。

  1. 疲劳程度评估

        系统根据眼部状态、嘴部状态和头部状态识别的结果,综合考虑时间和场景因素,结合数据库中每位驾驶员的脸部特征与日常习惯特征,对驾驶员的疲劳程度进行评估。

  1. 警报或提醒生成

        系统根据疲劳程度评估结果,通过视觉、听觉、触觉等方式给予驾驶员警报,提醒其休息或更换司机。

模型训练

1. 数据收集与标注

  • 收集大量的驾驶员面部图像,包含各种表情和姿态。
  • 对图像进行标注,标记出面部区域、眼睛状态(如开眼、闭眼)、打哈欠等信息。

2. 模型选择与训练

  • 选择卷积神经网络(CNN)作为深度学习模型,用于特征提取和分类。
  • 使用收集和标注好的数据集进行模型训练,调整模型参数以提高准确率和实时性。

3. 模型部署

  • 将训练好的模型部署到香橙派 AIpro 上,使用其强大的算力进行实时推理和分析。
  • 优化模型推理代码,确保在香橙派 AIpro 上能够高效运行。

import tensorflow as tfmodel = tf.keras.models.load_model('fatigue_detection_model.h5')def predict_fatigue(image):processed_image = preprocess_image(image)prediction = model.predict(processed_image.reshape(1, 224, 224, 1))return prediction

        香橙派 AIpro 在模型训练中的优势在于它强大的计算能力香橙派 AIpro 搭载了昇腾 AI 处理器,提供 8TOPS INT8 的计算能力,能够高效处理大量数据并快速进行深度学习模型的推理。这对于实时疲劳检测系统来说至关重要,因为系统需要在毫秒级别内处理并分析图像数据,以确保及时识别出驾驶员的疲劳状态并发出警报。之前也使用过树莓派去训练模型,但是这一次只能说香橙派AIpro太香了。

第四章:系统测试与魔法调试

        激动人心的时候来啦,将训练好的模型部署在香橙派AIpro上后,运行代码,是骡子是马,该拉出来遛遛了。

        运行截图如下(视频就不展示啦,笔者害羞),效果还是可以的啦,人脸68个关键点都检测出来了,正常眨眼,打哈欠,瞌睡点头都很识别出来。到了设定的阈值也能及时报警:

结尾:奇幻之旅的终点与新篇章

        回顾这段旅程,真是一场充满挑战和乐趣的奇幻之旅。从最初收到香橙派 AIpro 时的兴奋,到一步步克服困难、实现目标的满足感,每一个瞬间都让我感受到了技术的魅力和创新的力量。

        香橙派 AIpro 不仅是一个工具,更像是我的伙伴,陪伴我走过了这段精彩的开发历程。它强大的计算能力、丰富的接口支持以及灵活的开发环境,使我能够顺利实现疲劳驾驶检测系统的构想。每当我遇到问题时,香橙派 AIpro 的性能总能让我找到解决的办法。无论是复杂的数据处理,还是实时的图像分析,它都表现得游刃有余。

        然而,这只是一个开始。通过这次项目,我积累了宝贵的经验和技能,也激发了我对未来更多项目的无限想象。我计划继续探索香橙派 AIpro 的更多可能性,尝试新的项目和挑战。无论是智能家居、物联网还是更多的人工智能应用,香橙派 AIpro 都将是我不可或缺的伙伴。

        🍻同时欢迎大家关注和订阅我的频道,让我们一起探索科技的无尽可能。如果你有任何问题或建议,也欢迎在评论区留言,我会尽力解答。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/19338.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Redis]String类型

基本命令 set命令 将 string 类型的 value 设置到 key 中。如果 key 之前存在,则覆盖,无论原来的数据类型是什么。之前关于此 key 的 TTL 也全部失效。 set key value [expiration EX seconds|PX milliseconds] [NX|XX] 选项[EX|PX] EX seconds⸺使用…

苏州金龙新V系客车科技助力“粤”动广州

粤动活力新V系! 5月23日,苏州金龙新V系智慧客车推介会在羊城广州举行。活动现场展出了4款新V系代表车型,来自广东省旅游客运、道路运输行业的200余位从业者齐聚一堂,共同品鉴、体验了苏州金龙新V系产品的“新、心、芯”魅力。苏州…

如何降本增效获得目标客户?AI企业使用联盟营销这个方法就对了!

AI工具市场正在迅速发展,现仍有不少企业陆续涌出,那么如何让你的工具受到目标群体的关注呢?这相比是AI工具营销人员一直在思考的问题。 为什么AI企业难以获客呢? 即使这个市场正蓬勃发展,也无法保证营销就能轻易成功…

英语学习笔记29——Come in, Amy!

Come in, Amy! 进来,艾米! shut v. 关严 区别:shut the door 把门关紧 口语:Shut up! 闭嘴!    态度强硬,不礼貌 例句:请不要把门关严。    Don’t shut the door, please. bedroom n. …

STM32-12-OLED模块

STM32-01-认识单片机 STM32-02-基础知识 STM32-03-HAL库 STM32-04-时钟树 STM32-05-SYSTEM文件夹 STM32-06-GPIO STM32-07-外部中断 STM32-08-串口 STM32-09-IWDG和WWDG STM32-10-定时器 STM32-11-电容触摸按键 文章目录 1. OLED显示屏介绍2. OLED驱动原理3. OLED驱动芯片简介4…

一年收入大几十个的副业兼职,闲鱼新玩法,新手小白可做,无门槛

在开始分享之前,我想先了解一下,大家是否曾在各大公众号上参与过各种打卡活动?比如减肥打卡、英语阅读打卡、考研考公打卡等等。如今,打卡已经成为现代人生活中不可或缺的一部分。无论是学习、健身还是工作,打卡都能有…

MGR集群模拟故障切换

说明: 1、MGR集群搭建起来,但不知道是否能进行启动切换,故要手动模拟故障并且验证 2、停止主库master服务,登录mysql查看MGR是否进行自动切换。 3、主库切换完成以后,手动将宕机的服务器添加到MGR集群中。 一、模拟故障…

2024年3月电子学会青少年软件编程 中小学生Python编程等级考试一级真题解析(选择题)

2024年3月Python编程等级考试一级真题解析 选择题(共25题,每题2分,共50分) 1、下列哪个命令,可以将2024转换成2024呢 A、str(2024) B、int(2024) C、float(2024) D、bool(2024) 答案:A 考点分析&…

C#解析JSON的常用库--Newtonsoft.Json

一、库介绍 在C#中,解析JSON的常用库有Newtonsoft.Json(也称为Json.NET)和 System.Text.Json(从 .NET Core 3.0 开始引入)。本文主要介绍 Newtonsoft.Json。 二、下载 官网: https://www.nuget.org/pack…

使用 retrievers 在 Elasticsearch 中进行语义重新排序

作者:来自 Elastic Adam Demjen, Nick Chow 什么是语义重新排序? 语义重新排序(semantic reranking)是一种方法,它允许我们利用快速检索方法的速度和效率,同时在其上分层语义搜索。它还允许我们立即将语义…

【Python】解决Python报错:TypeError: %d format: a number is required, not str

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

STM32定时器及输出PWM完成呼吸灯

文章目录 一、STM32定时器原理1、基本定时器2、通用定时器(1)时钟源(2)预分频器PSC(3)计数器CNT(4)自动装载寄存器ARR 3、高级定时器 二、PWM工作原理三、控制LED以2s的频率周期性地…

CyberDAO M级共识交流会·西安站圆满落幕:共筑Web3美好未来

CyberDAO M级共识交流会于2024年5月28日在西安隆重举行,这是一场CyberDAO精英汇聚的盛会,以同心共筑,志在必达为主题口号与DAO精英携手并进,共筑CyberDAO美好宏图。CyberDAO的使命是降低WEB3的门槛,帮助用户轻松抓住行…

【微服务】springboot 构建docker镜像多模式使用详解

目录 一、前言 二、微服务常用的镜像构建方案 3.1 使用Dockerfile 3.2 使用docker plugin插件 3.3 使用docker compose 编排文件 三、环境准备 3.1 服务器 3.2 安装JDK环境 3.2.1 创建目录 3.2.2 下载安装包 3.2.3 配置环境变量 2.2.4 查看java版本 3.3 安装maven …

JVM学习-垃圾回收(二)

标记-清除(Mark-Sweep)算法 当堆中的有效内存空间被耗尽的时候,就会停止整个程序(stop the world),然后进行两项工作,第一项则是标记,第二项是清除 标记:Collector从引用根节点开始遍历,标记所有被引用的…

深入理解哈希加密:md5在保护用户数据中的应用

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、md5加密方法简介 二、md5加密方法的实现 示例代码: 三、md5加密方法在实际…

老师如何对付挑事儿的家长?

身为老师,你有没有遇到过这样的家长:孩子在学校里闹点小矛盾,或者作业分数有点争议,他们就气势汹汹地来找你,说你偏心,甚至在其他家长面前说三道四?面对这种爱“挑事”的家长,老师们…

RestTemplet 自定义消息转换器总结

在RestTemplet 请求中,请求发送一个 HTTP 请求时,RestTemplet 会根据请求中的内容类型(Content-Type)选择合适的 HttpMessageConverter 来处理请求体的数据。同样地,当服务器返回一个 HTTP 响应时,RestTemp…

模型实战(21)之 C++ - tensorRT部署yolov8-det 目标检测

C++ - tensorRT部署yolov8-det 目标检测 python环境下如何直接调用推理模型转换并导出:pt -> onnx ->.engineC++ tensorrt 部署检测模型不写废话了,直接上具体实现过程+all代码 1.Python环境下推理 直接命令行推理,巨简单yolo detect predict model=yolov8n.pt source…

中英文语音合成芯片(TTS芯片)WT3000T8-在ETC上的应用案例

一:开发背景: 随着智能化浪潮的推进,ETC(电子不停车收费)系统已逐渐成为现代交通的重要组成部分。在这一背景下,唯创知音自主研发的WT3000T8中文转语音合成芯片(TTS芯片)以其卓越的性…