M5Stack Unit2实现出入人员口罩识别
实现对办公室/宿舍人员出入时口罩佩戴情况进行检测并将数据上传至云端
标签
嵌入式系统
makabaka
更新2021-07-22
790
  1. M5Stack Unit2硬件介绍及实现的功能

1.1M5Stack Unit2硬件介绍

M5Stack UnitV2是一款用于边缘计算的独立 AI 摄像头 ,其控制核心采用的是Sigmstar SSD202D,集成128MB-DDR3内存,512MB NAND Flash, 外加一个1080P摄像头,内嵌Linux系统,集成丰富的软硬件资源与开发工具,真正做到降低学习门槛开箱即用。

1.2M5Stack Unit2实现功能

利用M5Stack UnitV2 摄像头实现识别宿舍出入人员是否有正常佩戴口罩,发现异常立即报警,并将每日的数据上传到PC端,生成报表。

  1. 实现思路及实现功能的具体介绍

2.1获取训练模型

M5Stack提供了在线的训练模型和工具V-Training在线训练平台,将准备好的数据集到的图片上至传训练平台,然后对每一张照片都进行标记标好对应的标签,由官方提供的平台进行训练,最后得到一个模型文件,上传到AI摄像头即可使用。(http://v-training.m5stack.com/build/index.html)

2.2使用训练模型

模型的使用。有了训练好的模型,上传到AI摄像头运行后,每当摄像头中出现戴口罩或者不带口罩的人脸时就能得到这样一个json字符串

{'num': 1, 'obj': [{'prob': 0.913268149, 'x': 101, 'y': 31, 'w': 245, 'h': 313, 'type': 'nonmask'}], 'running': 'Object Recognition'}

这样就可以进一步处理json数据来实现任务要求。

2.3上传数据

AI摄像头与电脑连接是使用数据线,供电的同时,还作为一个网卡可以与linux通过ssh通讯。所以我们需要给摄像头配置一个WIFI使其能联通互联网,将采集到的数据上传至阿里云的IOT平台。

2.4摄像头联网

使用wpa_cli 命令进行配网,配网步骤如下:

① 查询附近的热点,使用命令:

wpa_cli -i wlan0 scan

FjweQB1IEdPfC0188QFrhAlTqVd6

wpa_cli -i wlan0 scan_results

FrSlDidCfrSWXf6Hf9d3iAQjB3H2

找到需要配置的WiFi。

② 将WiFi 信息配置到wpa_supplicant.conf 文件

使用命令wpa_passphrase SSID PSK >> /etc/wpa_supplicant.conf 将WiFi 信息写wpa_supplicant.conf 文件, 写入后,使用wpa_cli 命令配网。

FqCEn36fY1FU-YJm0Ig29SpG_M3G

③增加一个网络id:wpa_cli -i wlan0 add_network

Fru8v8yFEiCoQhm6RGSCrl2ukzEX

④配置WiFi 热点的名称ssid:wpa_cli -i wlan0 set_network 网络编号 ssid '"WiFi 名称"'

配置WiFi 热点的密码psk:wpa_cli -i wlan0 set_network 网络编号 psk '"密码"'

Frwj2kmhaJDyv6LJ8jzBL2mLa5Ed

⑤查看网络列表:wpa_cli -i wlan0 list_network

FuW-NG2movF2zn1kkEMRGfBI_f3w

⑥选择网络:使用list_network 命令,会打印所有已添加成功的WiFi 热点,如果有多个WiFi 热点,可以使用select_network 命令选择使用哪个热点,可实现WiFi 热点的切换。wpa_cli -i wlan0 select_network 网络编号

Fk_DY6DrvNLkc6i3kGJQnMMCscUn

⑦获取动态IP:udhcpc -i wlan0 -q

FgztC1reODzjjpMl3AJALVUum1dR

⑧使用ping 命令测试是否能够连接百度

FvpUJeEhti_uD7vknoarEuq9_bny

WiFi 配置完成

2.5连接阿里云IOT平台

首先在阿里云iot后台获取的三元素,配置topic列表

Ftku8jWspb3gEKlkC64syShxLGoiFgyiQ8lVkZz6vf0y_USrqk55g-EW

# 三元素(iot后台获取)

ProductKey = 'a1Z9lcu6nKe'

DeviceName = 'AIcamera3'

DeviceSecret = "7b6aeac7914db529c030c9a662035775"

# topic (iot后台获取)

POST = '/sys/a1Z9lcu6nKe/AIcamera3/thing/event/property/post'  # 上报消息到云

POST_REPLY = '/sys/a1Z9lcu6nKe/AIcamera3/thing/event/property/post_reply'  

SET = '/sys/a1Z9lcu6nKe/AIcamera3/thing/service/property/set'  # 订阅云端指令




# 消息回调(云端下发消息的回调函数)

def on_message(client, userdata, msg):

    #print(msg.payload)

    Msg = json.loads(msg.payload)

    switch = Msg['params']['PowerLed']

    print(msg.payload)  # 开关值




#连接回调(与阿里云建立链接后的回调函数)

def on_connect(client, userdata, flags, rc):

    pass




# 链接信息

Server,ClientId,userNmae,Password = aliLink.linkiot(DeviceName,ProductKey,DeviceSecret)




# mqtt链接

mqtt = mqttd.MQTT(Server,ClientId,userNmae,Password)

mqtt.subscribe(SET) # 订阅服务器下发消息topic

mqtt.begin(on_message,on_connect)

2.6处理json数据实现口罩识别

while 1:

    timeCount += 1

    doc = json.loads(reconizer.stdout.readline().decode('utf-8'))

    print(doc)

    if 'num' in doc:

        for obj in doc['obj']:

            if obj['prob'] > 0.55:

                if obj['type'] == 'nonmask':

                    nonmask += 1

                    peopleCount += 1

                    control_white_led(0) 

                elif obj['type'] == 'mask':

                    mask += 1

                    peopleCount += 1

                    control_white_led(1)

2.7数据上传

# 构建与云端模型一致的消息结构

    if timeCount >10:

        timeCount = 0

        updateMsn = {

            'PeopleCount':peopleCount,

            'nonmask':nonmask,

            'mask':mask,

        }

        JsonUpdataMsn = aliLink.Alink(updateMsn)

        print(JsonUpdataMsn)

        mqtt.push(POST,JsonUpdataMsn) # 定时向阿里云IOT推送我们构建好的Alink协议数据

2.8生成数据报表

使用阿里云的IOT studio中进行数据显示。

FidFdGHfS37wSqWkXx_kNrSbJG92FvUHkfllekVx0SErl3xXhysYuh8tFoIwuJJH_1qdkBwoUfIWDxdyB8xN

  1. 遇到的主要难题

不会给摄像头联网,尝试使用python中webdriver爬取网页数据成功但是不会上传至物联网平台。

当摄像头温度较高时出现运行卡顿现象。

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