M5Stack UnitV2口罩识别实时报警和报表上传阿里云
本文主要参与M5Stack UnitV2活动,完成口罩识别任务,
标签
嵌入式系统
AI
飞跃1989
更新2021-07-19
1100
https://www.bilibili.com/video/BV1bb4y1k71R/

 

硬件介绍

这次参加M5Stack 的活动,这次活动是一款m5stack的开发板,久闻m5stack的大名,认识m5stack还是知道一款ESP32比较出名的。M5STACK的开发板特别小巧,而且耐用。这次的硬件是M5STACK UnitV2。

同时还送了一款超棒的纯棉T恤。这次的开发板主芯片是AI识别模块采用Sigmstar SSD202D

整个开发板的原理图没有找到,只有这一个框图,还是蛮详细的,这边采用USB的方式采集图像,USB的方式启动WIFI,mac的方式连接USB的网口

开发板特性:

  • RAM 128MB -DDR3

  • FLASH 512MB NAND

  • CPU: Dual Cortex-A7 1.2Ghz 双核

  • wifi

  • SD卡

  • mic

  • LED灯(红灯和蓝灯)

  • 一个button

找了很久,看起来这次活动对硬件的开源程度有限,不过我觉得这次主要是在Linux完成,也不需要太关心硬件。

FtgW9EDB4ei8dNx9vKjJ1lHzj-VV

芯片介绍

Sigmstar SSD202D的框图如下所示

FkIEpkEcgrxdZMbDGKsnLXJ72DOF

另外还有一块GC2145的摄像头,这款摄像头分辨率1616V X 1232H

FlhgaaT-yV5LvSMo-hOAgZ5_w4Gm

实现功能

这次一共4个题目

  1. 捕捉常见小动物的活动习惯,上传到PC端,生成报表;

  2. 通过图像识别,来甄别流水线的异常品,发现异常品后记录;

  3. 对停车场、车牌和剩余车位检测,将数据上传到PC端,输出结果;

  4. 识别办公室/宿舍出入人员是否有正常佩戴口罩,发现异常立即报警,并将每日的数据上传到PC端,生成报表。

从内容上来看,基本都是图片识别类的。所以只要掌握图片识别即可。

这次我选择第4个题目。

这个题目我分为以下功能

  • 使用AI训练模型,识别是否佩戴口罩,

  • 实现自动报警功能,把报警功能发送给手机

  • 把每日的报表定时的上传到云端。

其实主要还是日常互联网云端交互和AI智能边缘计算的结合,是一个比较典型的案例,由于之前没有太接触多少相关的项目,所以做起来感觉还是能学到很多东西的。

实现思路

实现思路分为两步走,第一步,要实现口罩佩戴的识别,这个需要选择没有戴口罩的时候的照片,和戴上口罩的照片,这边我拍了很多,这边由于没有更多的进行采样,只是对自己的图片进行一个多个角度的识别,这边想就简单做个示例demo,感觉采集数据这块也是一个比较大的考量标准,数据越多越准确,你训练出来的模型就越好,这边感觉采集数据也是一个比较耗时耗力的事情,这边由于工作比较繁忙,我就化繁为简,只要能实现简单口罩识别即可。

第二步,数据上传和报警。

数据上传和报警,主要是和云端交互,交互就必须上网,首先是要解决上网的问题,然后解决在网上如何用网络进行报警和上报报表。

 

基于上面的设计思路上,首先第一点,我对这块开发板不是很熟悉,所以要对老师的直播视频来回查看多次

下面的连接是老师的直播视频,我来回查看了多次,基本了解了如何进行AI模型的建立,

https://class.eetree.cn/detail/l_60d03048e4b0017651a6d85b/4?fromH5=true

通过文档,首先熟悉内部功能,就是离线识别功能,了解到object recognition是可以做口罩识别的。

https://docs.m5stack.com/zh_CN/unit/unitv2

通过平台V-TRAINING来训练模型

http://v-training.m5stack.com/build/index.html

如何上网是这次比较难过的坎,在群里请教了老师大概了解到wpa_cli可以连上WIFI,再在网上搜索相关的信息了解到如何保存WIFI的信息

这个在下面遇到的主要难题上面总结吧。

功能展示图

报警功能

如果有人没带口罩会实时上报到微信机器人小程序

FkXkcfXjiwMnPnXwDYCCDuK8KH6K

口罩识别

FocenflUSPm5EgGBSJDajPopLpTS

日志上报

FopHezUbNJkkwixM-hzXEhv8UafZ

 

遇到的主要难题

  1. 网络如何保存

通过wpa_cli成功连上WIFI之后,输入

>  save_config
FAIL

一直是FAIL, 所以在群里咨询老师之后,老师提供了一个链接

https://unix.stackexchange.com/questions/330982/how-to-export-the-current-wpa-cli-network-to-a-file

我再根据网上描述,需要修改/etc/wpa_supplicant.conf文件

参考如下:

unitv2# cat /etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
update_config=1

network={
      ssid="Thomas"
      #psk="*********"
      psk=109954ae481fbcb153ca0ff96c2bb3b40ed23f84073a2583879476d3138d526f
}

还有个地方,我修改了一下

/etc/network/interfaces

unitv2# cat /etc/network/interfaces
# interface file auto-generated by buildroot

auto wlan0
iface wlan0 inet dhcp
pre-up ip link set wlan0 up
pre-up iwconfig wlan0 essid Thomas
wpa-ssid Thomas
wpa-psk ********

修改了这两处,默认上电就开始连上网络了。

  1. 如何报警

如何进行报警操作呢?这边我想到了微信机器人。可能由于微信机器人之前用的人太多,被很多不法分子乱利用,现在已经不让使用了。所以我找了个替代的微信企业机器人。效果还行

如果想要实践的话,只要新建一个企业微信机器人

然后拷贝对应的网址

wechaturl = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=6395cab0-53d3-41db-8dd7-4c7007987d21'

 

 

  1. 如何每天上传数据

本来以为判断每天时间,这个比较简单的,但是实际操作过程中发现,这个真的还不是那么容易的,最后找到一个方法安装了python的一个软件包schedule添加功能

未来的计划建议

这次第一次做AI识别相关的应用,并且应用到实际项目中去,可以看出本人的这个方面经验确实比较欠缺的,花了很多时间,结果做出来的东西还是相对来说比较入门的。而且平时都是习惯使用C语言,在STM32上面开发比较熟悉,结果在Python下面开发相对来说比较完成度不是很高。

  1. 后面想继续学习python,虽然python刚开始用起来比较难用,但是确实所需要的代码比C少很多,以后验证模块很方便

  2. 对于边缘计算,这方面的研究也不是很深入,可以继续学习AI相关的算法代码并且实践

 

团队介绍
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号