| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 基于 M5Stack-UnitV2 实现的宿舍口罩佩戴情况监测系统 -> 正文阅读 |
|
[人工智能]基于 M5Stack-UnitV2 实现的宿舍口罩佩戴情况监测系统 |
一、概括本次项目的源于硬禾学堂和 M5Stack 联合举办的活动 【你玩转我全返】M5Stack UnitV2 - 首款全功能一体化AI摄像头,活动采用的是 来看下本次项目实现的任务:
现在拆解一下任务,看看如何分成简单的部分去实现,如下图所示: 文章就按照这四个部分去实现,然后整合后,就能够得到最终的结果。 简述一下我的思路,通过 M5Stack 官方提供的 V-Training(Ai模型训练服务),轻松构建出口罩佩戴与否的识别模型,然后就能够得到人员是否佩戴口罩的情况,然后将数据传送给电脑,然后通过在 PC 端使用 python 来分析 这个网站也有很多大佬基于这款硬件开发一些有趣的项目,可以参考一下:M5Stack UnitV2 - 用于边缘计算的独立 AI 摄像头 (SSD202D) 二、硬件模块介绍:M5Stack UnitV2 - 用于边缘计算的独立 AI 摄像头我们来看看这款硬件, UnitV2 是 M5Stack 推出的一款高效率的AI识别模块,采用 Sigmstar SSD202D(集成双核Cortex-A7 1.2Ghz处理器)控制核心,集成128MB-DDR3内存,512MB NAND Flash, 1080P摄像头。内嵌Linux操作系统,集成丰富的软硬件资源与开发工具,致力带给用户开箱即用,简洁高效的Ai开发体验。 UnitV2 采用 SigmstarSSD202D (集成双核 Cortex-A7 1.2Ghz处理器)控制核心,集成了 M5Stack 开发的多个即用型AI识别应用程序(例如:人脸识别、对象跟踪、颜色跟踪器、形状检测器、条形码检测器和其他常用功能),可以帮助用户快速构建自己的AI应用程序。 主要应用在以下方面:
UnitV2即插即用,具有内置的USBLAN。通过USB-C接口连接到PC时,他将自动与UnitV2建立网络连接,也可以通过Wi-Fi连接和调试。UART串口通讯,所有标识内容通过串口自动以JSON格式输出,调用方便。内嵌Linux操作系统,集成丰富的软硬件资源与开发工具。可点击链接了解板卡详情:https://docs.m5stack.com/zh_CN/unit/unitv2。 产品特性如下:
产品原理图如下: 更多信息,请到官网查看:UnitV2 中文文档 三、项目实现下面就根据上图的四个点展开详细描述,尽量把实现细节描述地清楚一些。 3.1、M5Stack UnitV2实现口罩佩戴识别本人是 AI 方面的小白,虽然不懂这个实现的底层原理,但是依葫芦画瓢的能力还是有的,直接使用 M5Stack 官方提供的 V-Training(Ai模型训练服务)即可轻松构建自定义的识别模型。具体详细操作步骤见 V-Training 教程。 下面讲述几个关键的步骤:
很容易就能看出来,我们能够从中得到两个信息:是否为人 和 是否佩戴口罩。当然还有这些信息的置信度。由于有时识别不清楚等原因,这些数据并不都是正确的,我们需要对这些数据进行“清洗”,以便我们能够得到有效数据。 3.2、数据的接收和处理由于使用串口助手直接接收数据不方便处理数据,所以决定用 python 直接一套带走,方便很多。 打开对应串口:
通过串口发送切换命令:(其中
然后模块就源源不断地传送数据过来,我们使用 python的 json 模块对字符串数据解析得到 json数据:
得到的数据如下所示:
我们可以通过这些数据的来判断该识别是否符合我们要监测的对象。比如 是否有人、佩戴口罩是否识别到、置信度是否满足要求等来清洗数据。 判断是否接收到两个对象的数据,且是否运行的是目标识别模式
判断置信度是否符合要求,由于我训练的样本较少(标记太苦了,完全就是体力活),置信度大于0.8我就认为是可以的了:
接着就是判断是否佩戴口罩了,同时打印判断结果和将数据记录下来,方便后面处理。
3.3、实现发现未佩戴口罩者报警功能用声音报警无疑是最好的,既然都用电脑来接收和处理数据了,那也用电脑配合音箱来报警吧,毕竟能者多劳嘛。 还是使用万能的python实现,使用 ctypes 模块来实现:
很轻松。 3.4、记录每天人员佩戴口罩的情况人生苦短,还是用 python。 将UnitV2模块连着电脑,放于宿舍的某个监测位置,用于识别走过的人的佩戴口罩的情况: 将识别的数据直接写入txt文件即可。 首先,获取系统时间:
将时间和佩戴口罩情况数据写入文件:
打开文件即可看到最近检测到的数据: 3.5、生成每日数据报表这里还是使用到 python的包pyecharts,
直接 show code ,通过上一节记录在txt文件的数据,生成可视化的图表。
生成的图表如下:(由于现在疫情不是很严重,佩戴口罩比较少,有些甚至是我为了戴而戴) 四、总结刚开始看到这个活动时,看到只是一个关于 AI 相关的模块时,其实是觉得自己是应该玩不动的,毕竟没有AI基础。 所以花了点时间去了解,后来看了相关直播,突然发现其实不用了解原理就可以使用,只需要按步骤去训练即可使用,真是太方便了。 训练和标记花了最多的时间,活生生地从高科技的AI开发变成了图片标记苦力工。 这个项目虽然现在勉强做完了,但是感觉自己实现的还是有点少,更多的是把 UnitV2 当做一个单独的模块,然而没有深入地开发,所以没能发挥这个模块强大的功能,还是因为对Linux也不是很熟的缘故。 还有本来打算实现将数据上传至云服务器的功能也没来得及做,后面花点时间去实现。 其实后面想利用这个模块配合我的智能小车,让我的车变成真正的智能小车。 至于收获,这段时间逼迫自己学了些东西,就连 python也是现学现卖,发现只有在开发中学习的效率才是最高的。 人生很长,不给自己设限,多玩点不同领域的东西还是挺有趣的。 |
|
|
上一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/22 11:26:15- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |