AI嵌入式K210项目(24)-口罩检测

文章目录

  • 前言
  • 一、实验准备
  • 二、实验过程
  • 三、实验结果
  • 总结


前言

本节课主要学习口罩检测功能,将摄像头采集的画面分析,比对模型,分析是否佩戴口罩,打印出佩戴口罩的状态

一、实验准备

请先将模型文件导入内存卡上,再将内存卡插入到K210开发板的内存卡插槽上,具体操作步骤请参考:

AI嵌入式K210项目(21)-AI模型文件导入至TF卡

本实验使用/sd/KPU/face_mask_detect/detect_5.kmodel模型;

人脸检测需要用的内存卡加载模型文件,所以需要提前将模型文件导入内存卡,再将内存卡插入K210开发板的内存卡卡槽里,如果无法读取到内存卡里的模型文件,则会报错。

二、实验过程

导入相关库,并初始化摄像头和LCD显示屏;

import sensor, image, time, lcd

from maix import KPU
import gc

lcd.init()
# sensor.reset(freq=48000000, dual_buff=True) # improve fps
sensor.reset()                      # Reset and initialize the sensor. It will
                                    # run automatically, call sensor.run(0) to stop
sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)
sensor.set_framesize(sensor.QVGA)   # Set frame size to QVGA (320x240)
sensor.skip_frames(time = 1000)     # Wait for settings take effect.
clock = time.clock()                # Create a clock object to track the FPS.

初始化KPU相关的参数,kpu需要加载kmodel文件,本次实验需要的模型文件路径为:/sd/KPU/face_mask_detect/detect_5.kmodel,并使用yolo2来计算是否符合模型要求。od_img为神经网络的图像,尺寸为320*256,用于后续储存摄像头图像并传入KPU计算。

od_img = image.Image(size=(320,256), copy_to_fb=False)

anchor = (0.156250, 0.222548, 0.361328, 0.489583, 0.781250, 0.983133, 1.621094, 1.964286, 3.574219, 3.94000)
kpu = KPU()
print("ready load model")
kpu.load_kmodel("/sd/KPU/face_mask_detect/detect_5.kmodel")
kpu.init_yolo2(anchor, anchor_num=5, img_w=320, img_h=240, net_w=320 , net_h=256 ,layer_w=10 ,layer_h=8, threshold=0.7, nms_value=0.4, classes=2)

新建while循环,将图像传入KPU进行计算,使用yolo2神经网络算法进行解算,如果是佩戴了扣上口罩的人脸,用绿色框出并显示"with mask",如果是未佩戴口罩的人脸,则用红色框出并显示"without mask"。

while True:
    #print("mem free:",gc.mem_free())
    clock.tick()                    # Update the FPS clock.
    img = sensor.snapshot()
    a = od_img.draw_image(img, 0,0)
    od_img.pix_to_ai()
    kpu.run_with_output(od_img)
    dect = kpu.regionlayer_yolo2()
    fps = clock.fps()
    if len(dect) > 0:
        print("dect:",dect)
        for l in dect :
            if l[4] :
                a = img.draw_rectangle(l[0],l[1],l[2],l[3], color=(0, 255, 0))
                a = img.draw_string(l[0],l[1]-24, "with mask", color=(0, 255, 0), scale=2)
            else:
                a = img.draw_rectangle(l[0],l[1],l[2],l[3], color=(255, 0, 0))
                a = img.draw_string(l[0],l[1]-24, "without mask", color=(255, 0, 0), scale=2)

    a = img.draw_string(0, 0, "%2.1ffps" %(fps), color=(0, 60, 128), scale=2.0)
    lcd.display(img)
    gc.collect()

kpu.deinit()

三、实验结果

将K210开发板通过TYPE-C数据线连接到电脑上,CanMV IDE点击连接按钮,连接完成后点击运行按钮,运行例程代码。也可以将代码作为main.py下载到K210开发板上运行。

等待系统初始化完成后,LCD显示摄像头画面,用摄像头拍摄人脸,当有佩戴口罩时,显示绿色框和"with mask",当未佩戴口罩时,显示红色框和"without mask"。同时在IDE底部的串行终端会打印人脸相关信息。
在这里插入图片描述
在这里插入图片描述
串口日志如下:
在这里插入图片描述


总结

本实验使用K210的KPU和yolov2模型实现人脸检测功能,使用IDE示例中代码,对实现的功能模块加以分析;可以通过调节阈值调整识别的准确率;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【开源】SpringBoot框架开发天然气工程业务管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、使用角色3.1 施工人员3.2 管理员 四、数据库设计4.1 用户表4.2 分公司表4.3 角色表4.4 数据字典表4.5 工程项目表4.6 使用材料表4.7 使用材料领用表4.8 整体E-R图 五、系统展示六、核心代码6.1 查询工程项目6.2 工程物资…

AutoDL----VScode远程ssh连接

1、首先安装ssh插件 首先安装插件,在商店里抖索remote-ssh 2、建立连接 安装完成后在插件栏就会看到远程连接这一栏 点击添加后会让你输入ssh的地址,直接复制AutoDL的,按下Enter,选择第一个配置文件 选择Linux平台 继续后…

第九节HarmonyOS 常用基础组件19-CheckboxGroup

1、描述 多选框群组,用于控制多个选框全选或者全不选状态。 2、接口 CheckboxGroup(options?: {group?: string}) 3、参数 参数名 参数类型 必填 描述 group string 否 群组名称 4、属性 selectAll - boolean - 设置是否全选,默认值&…

springboot整合日志处理Logback

引言 ​ springboot框架 集成日志 logback 日志 ​ Logback是由log4j创始人设计的又一个开源日志组件。目前&#xff0c;logback分为三个模块&#xff1a;logback-core&#xff0c;logback-classic和logback-access。是对log4j日志展示进一步改进! 日志的级别 All < Trace…

CHS_04.2.3.3+互斥锁

CHS_04.2.3.3互斥锁 进程互斥&#xff1a;锁 接下来 用于实现互斥的一种方法 你可以简单理解为 锁就是一个bool的变量 进程互斥&#xff1a;锁 只有true和false或者零和一两种状态分别表示当前已上锁或者没有上锁 有这样的两个函数可以操作锁acquire 这个函数就是上锁获得 锁…

软硬兼施:亚信安慧AntDB创造更多可能性

亚信安慧AntDB是一种极具适配能力的数据库系统&#xff0c;它不仅在软件方面拥有出色的适应性&#xff0c;还能与国产硬件紧密配合&#xff0c;实现高效稳定的运行。无论是在上游还是下游领域&#xff0c;亚信安慧AntDB都展现出了卓越的适配程度。 在软件方面&#xff0c;亚信安…

防御保护常用知识

防火墙的主要职责在于&#xff1a;控制和防护 --- 安全策略 --- 防火墙可以根据安全策略来抓取流量之 后做出对应的动作 防火墙分类主要有四类&#xff1a; 防火墙吞吐量 --- 防火墙同一时间能处理的数据量多少 防火墙的发展主要经过以下阶段&#xff1b; 传统防火墙&#xf…

105.乐理基础-五线谱-谱号扩展

内容参考于&#xff1a;三分钟音乐社 上一个内容&#xff1a;104.乐理基础-五线谱-中音谱号、次中音谱号-CSDN博客 上一个内容里练习的答案&#xff1a; 首先高音谱号&#xff08;G谱号&#xff09;是从第二线开始画的&#xff0c;但是它只能从第二线开始画吗&#xff1f;并不…

nvm 工具使用介绍

目录 1.背景2.nvm介绍3.下载和安装4.配置环境变量5.配置淘宝镜像5.1 方式一:直接执行命令5.2 方式二:修改配置文件6.常用命令7.总结下载地址: https://github.com/coreybutler/nvm-windows/releases1.背景 在工作中,我们可能需要同时进行2个或者多个前端项目的开发,每个项…

软件行业门槛很低了吗

小编2003年开始搞了一家软件开发的小公司&#xff0c;那时候做点小的打卡考勤、消费、门禁一卡通软件都还能勉强生存。最红火的时候也有十多个员工。后来业务拓展越来越来了&#xff0c;公司慢慢也就没办法运转下去了。 后来只有转到一家建筑施工企业管弱电智能化版块&#xf…

行测-数量关系:4. 排列组合与概率问题、容斥原理问题

1、排列组合与概率问题 1.1 排列组合 1.1.1 基础概念 C 问法辨析 这些实际上是一种问题的不同问法。 例题 C C D A C&#xff0c;注意不能构成三角形的边长要去除。 1.1.2 经典题型 1.1.2.1 枚举法 2&#xff0c;从大到小&#xff0c;不重不漏 C B 1.1.2.2 捆绑法 48&#…

136832-63-8,活细胞示踪剂CMFDA(绿色),5-氯甲基荧光素二醋酸酯,广泛应用于细胞追踪和标记实验中

136832-63-8&#xff0c;活细胞示踪剂CMFDA(绿色)&#xff0c;5-氯甲基荧光素二醋酸酯&#xff0c;CellTracker Green CMFDA&#xff0c;可以用于基因表达分析等实验中&#xff0c;广泛应用于细胞追踪和标记实验中 您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;1…

Spring AOP实现

Spring AOP实现 AOP概述什么是AOP什么是Spring AOP Spring AOP快速入门引入依赖实现计时器 Spring AOP详解Spring AOP核心概念切点(Pointcut)连接点(Join Point)通知(Advice)切面(Aspect) 通知类型注意事项 PointCut多个切面切面优先级 Order切点表达式execution表达式annotati…

018 用户交互Scanner

什么是Scanner对象 next()方法 // 声明输入对象 Scanner scanner new Scanner(System.in);System.out.println("next()方法接收&#xff1a;"); if (scanner.hasNext()) {// 输入 Hello worldString str1 scanner.next();// 输出 HelloSystem.out.println(str1); }…

idea用version标签配置版本号报错版本号missing

问题描述&#xff1a; 用<mybatis-plus.version>3.3.2</mybatis-plus.version>配置pom的版本号&#xff0c;报错 dependencies.dependency.version for com.baomidou:mybatis-plus-boot-starter:jar is missing. line 33, column 21详细报错如下&#xff1a; 详…

【亿级数据专题】「分布式消息引擎」 盘点本年度我们探索服务的保障容量的三大关键方案实现

盘点本年度我们探索服务的保障容量的“三大法宝”方案实现 文章导航背景介绍三大法宝服务“吃不下了”限流&#xff08;排队理论&#xff09;漏桶和令牌桶漏桶算法算法原理算法漏洞 令牌桶算法&#xff08;生产者和消费组模式&#xff09;并发控制限流成功案例 熔断和降级降级的…

计算机设计大赛 推荐系统设计与实现 协同过滤推荐算法

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 推荐系统设计与实现 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1…

IDEA jdk版本切换问题

打开 IntelliJ IDEA 的 Project Structure&#xff08;快捷键通常是 Ctrl Alt Shift S&#xff09;。 转到 Project Settings > Modules。 选择相应的模块&#xff0c;然后在 Sources 标签页下&#xff0c;查看 Language level 是否设置为 自己需要的jdk版本语言。 接…

Java开发分析中文 ---- JProfiler 13

JProfiler 13是一款专业的Java应用程序性能分析工具&#xff0c;可以快速诊断和优化Java应用程序的性能问题。它支持多种操作系统和应用服务器&#xff0c;提供实时性能监控、CPU分析、内存分析、线程分析和数据库访问分析等功能。使用JProfiler 13可以深入了解应用程序的性能和…

PyQT5环境搭建与入门操作(超详细图解安装)

PyQt5软件简介 PyQt5官方版是一款专业优秀的编程工具。PyQt5最新版需要配合Python使用&#xff0c;是Qt C跨平台应用程序框架和跨平台解释语言Python的结合&#xff0c;支持Windows、OS X、Linux、iOS和Android平台运行。PyQt5软件可以帮助用户从Qt Designer生成Python代码&am…
最新文章