M5Stack UnitV2 人脸口罩识别
通过M5Stack UnitV2的摄像头进行拍照识别,识别出的未戴口罩的人会输出未佩戴口罩进行警告并记录人数返回PC端
标签
嵌入式系统
一颗星
更新2021-07-21
1014

硬件介绍

产品简介

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操作系统,集成丰富的软硬件资源与开发工具。

产品特性

  • Sigmstar SSD202D
  • 双核 Cortex-A7 1.2Ghz 处理器
  • 128MB DDR3
  • 512MB NAND Flash
  • GC2145 1080P Colored Sensor
  • 内置麦克风
  • WiFi 2.4GHz

可进行的应用

  • Ai识别功能开发
  • 工业视觉识别分类
  • 机器视觉学习

产品功能实现原理图

FpnxC6twNjka4RaO975RgJ6ufUzI

设计思路

使用UnitV2的摄像头来识别进出宿舍门口的人是否佩戴口罩,如果检测到未佩戴口罩,则提示为佩戴口罩,并且将未佩戴口罩的人数加1,并将数据返回PC端。这个项目可实现的功能是,可以放在特定的场所进行未带口罩的人数统计并将数据进行返回,可以对相关地区的疫情防控工作统计进行调查,既确保了调查人员的安全,又能保证数据的准确性。本项目通过进出门口的成员是否佩戴口罩的人数进行统计,若未佩戴口罩则进行提示并将数据返回。

设计流程

模型生成

通过M5Stack的V-Training(Ai模型训练服务),轻松构建自定义识别模型。使用手机或是其他摄像设备拍摄图片素材并保存至电脑,使用浏览器访问V-Training在线训练平台,注册登录账户(M5论坛用户账户可直接登录)

可以使用 V-Training (m5stack.com) 提供的在线模型生成,也可以离线生成。

V-Training页面

下载生产后可上传到UnitV2中使用

Frj5mqDxIpzKpIIuLb_V5C_wUSZt

FndXCZOMO7FligfvZ7pczgJaGNXX

数据的识别并传回PC端
from json.decoder import JSONDecodeError
import subprocess
import json
import requests
import base64
import time


reconizer = subprocess.Popen(['/home/m5stack/payload/bin/object_recognition', '/home/m5stack/payload/uploads/models/v2model_bee6246eee329e7'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
number=0 
img = b''

while 1:
    doc = json.loads(reconizer.stdout.readline().decode('utf-8'))
    if 'img' in doc:
        byte_data = base64.b64decode(doc["img"])
        img = bytes(byte_data)
    elif 'num' in doc:
        for obj in doc['obj']:
            if obj['type'] == 'yes':
                print('已佩戴口罩')
                
            elif obj['type'] == 'no':
                 print('未佩戴口罩')
                 number = number+1
                 print('未佩戴口罩人数')
                 print(number)
FnmYofMYrEQTwxIyeeJX8MrQoeg7
 

遇到的困难

仅行代码上传时进行环境要进行环境的下载与配置,最后通过下载Ubuntu

 20.04 LTS还有上传文件所需的git—base,sshpass来配置。通过代码

sshpass -p 7d219bec161177ba75689e71edc1835422b87be17bf92c3ff527b35052bf7d1f scp -r * root@10.254.239.1:/root 来进行文件的上传。通过
sshpass -p 7d219bec161177ba75689e71edc1835422b87be17bf92c3ff527b35052bf7d1f ssh root@10.254.239.1
代码行来登录linux的系统并允许主要的文件,从而实现人脸口罩识别功能,并将数据记录返回。
一开始人脸识别的准确率较低,通过标注更多的图片来提高图片的准确率。

心得体会

首先要感谢电子森林活动方提供了本次活动。通过参加本次活动,我学到了很多的知识,见识到了现在的前沿科技。同时在过程中遇到了很多困难和直接不理解的东西,通过百度和查阅相关资料进行解决,在这个过程中,让我认识到了自己的不足,同时也提高了自己。

未来的计划建议等

    可以与人脸身份识别系统进行结合,如果在疫情非常时期同学佩戴口罩,则可将未佩戴口罩同学信息返回,进行提醒。

 

 

附件下载
run.py
团队介绍
沈阳理工大学大学本科生 个人组队
团队成员
黄德伟
沈阳理工大学本科生
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号