ESP32 MicroPython 人脸检测⑪

1、实验目的

学习使用AI人脸识别功能

2、实验内容

检测摄像头图像中人脸,并打印检测出结果。

3、参考代码。

参考代码文件可以在资料包文件夹“智能小车mpy例程\基础实验\11-AI摄像头实验\03-人脸检测”文件夹下的main.py 下面为完整代码内容:

'''
AI摄像头实验-人脸检测
'''
from machine import Pin,Timer  #导入Pin引脚和Time定时器模块
from lcd import LCD20          #导入2.0寸LCD模块
import cam                     #导入摄像头模块
import time
import ai                      #导入AI模块

#颜色值定义,(R,G,B) 0~255代表颜色值
red = (255,0,0)           #红色
green = (0,255,0)         #绿色
blue = (0,0,255)          #蓝色
white = (255,255,255)     #白色
back = (0,0,0)            #黑色

#创建LCD对象 dir 显示方向为竖屏,1、3竖屏,2、4屏横
ld=LCD20()  #默认为竖屏1

# 整屏填充指定颜色
ld.fill(back)

myCam = cam.OV2640()    #创建摄像头对象

#设置摄像头尺寸240X240
myCam.framesize(cam.LCD240X240) #显示屏对应的分辨率 方便显示
myCam.set_hmirror(0) #设置摄像头水平镜像关闭
'''
创建AI人脸检测
displayType: 显示方式为 1-LCD,2-WEB网页显示
'''
myAi = ai.faceDetection(displayType=1) #LCD显示方式

myAi.start() #启动AI检测

while True:
    mValue=myAi.read() #读取检测到数据
    print(mValue)
    time.sleep_ms(100)

4、实验结果

编写好程序后,运行程序或者上传main.py 到小车内部文件系统。可以断电自动运行程序。可以在显示屏看到摄像头拍摄画面,摄像头对准人脸检测,识别到人脸后打印出人脸特征坐标。

在这里插入图片描述

4、人脸识别

人脸识别功能可应用在考勤机上。我们小车的主控支持AI人脸识别,学习人脸识别的使用可以打造属于自己的考勤机。

5、实验目的

通过按键录入人脸信息,并使用AI人脸识别功能识别出录入的人脸ID

6、实验内容

通过按键控制录入人脸信息,录入成功后调试窗口打印出录入的ID,摄像头采集图像并识别录入的人脸,检测到在屏幕显示出ID。

7、参考代码

参考代码文件可以在资料包文件夹“智能小车mpy例程\基础实验\11-AI摄像头实验\04-人脸识别”文件夹下的main.py 下面为完整代码内容:

'''
AI摄像头实验-人脸识别
'''
from machine import Pin,Timer  #导入Pin引脚和Time定时器模块
from lcd import LCD20          #导入2.0寸LCD模块
import cam                     #导入摄像头模块
import time
import ai                      #导入AI模块

#颜色值定义,(R,G,B) 0~255代表颜色值
red = (255,0,0)         #红色
green = (0,255,0)       #绿色
blue = (0,0,255)        #蓝色
white = (255,255,255)   #白色
back = (0,0,0)          #黑色

#创建LCD对象 dir 显示方向为竖屏,1、3竖屏,2、4屏横
ld=LCD20()  #默认为竖屏1

# 整屏填充指定颜色
ld.fill(back)

myCam = cam.OV2640()    #创建摄像头对象

#设置摄像头尺寸240X240
myCam.framesize(cam.LCD240X240) #显示屏对应的分辨率 方便显示
myCam.set_hmirror(0) #设置摄像头水平镜像关闭
#创建按键用于按键录入人脸
key = Pin(0,Pin.IN, Pin.PULL_UP) #构建按键控制对象,对应IO0,配置为输入上拉模式
led = Pin(46,Pin.OUT)            #构建LED控制对象,对应IO为46
'''
创建AI人脸识别
按键录入人脸
displayType: 显示方式为 1-LCD,2-WEB网页显示
'''
myAi = ai.faceRecognition(displayType=1) #LCD显示方式
myAi.start()                             #启动人脸识别


while True:
    if key.value() == 0:
        led.on()              #打开指示灯
        while True:
            faceId = myAi.enroll() #人脸录入
            print("fa->"+ str(faceId))
            if key.value() == 0:
                led.off()     #关闭指示灯
                break
            if faceId:        #录入成功退出
                led.off()     #关闭指示灯
                break

    mValue=myAi.recognize() #人脸检测
    print(mValue)
    time.sleep_ms(10)

8、实验结果

运行程序后,长按按键等待绿色LED亮后松开按键,进入录入人脸信息,摄像头对准要录入的人脸,录入成功后,系统自动返回录入成功对应的ID,且退出录入模式,进入识别人脸模式。否则中途再次长按下按键绿色LED熄灭后退出录入人脸信息,进入正常识别模式。
使用识别人脸:摄像头对准人脸静止几秒钟后,提示录入成功。进入识别人脸识别模式,摄像头对准要识别的人脸可以准确识别出对于的人脸ID。

在这里插入图片描述

在这里插入图片描述

9、猫脸检测

使用摄像头识别图像中的猫脸,并在显示屏显示,识别到后出现矩形方框。

10、参考代码

参考代码文件可以在资料包文件夹“智能小车mpy例程\基础实验\11-AI摄像头实验\05-猫脸检测”文件夹下的main.py 以及猫脸图片,下面为完整代码内容:

'''
AI摄像头实验-猫脸检测
'''
from machine import Pin,Timer  #导入Pin引脚和Time定时器模块
from lcd import LCD20          #导入2.0寸LCD模块
import cam                     #导入摄像头模块
import time
import ai                      #导入AI模块

#颜色值定义,(R,G,B) 0~255代表颜色值
red = (255,0,0)        #红色
green = (0,255,0)      #绿色
blue = (0,0,255)       #蓝色
white = (255,255,255)  #白色
back = (0,0,0)         #黑色

#创建LCD对象 dir 显示方向为竖屏,1、3竖屏,2、4屏横
ld=LCD20()  #默认为竖屏1

# 整屏填充指定颜色
ld.fill(back)

myCam = cam.OV2640()    #创建摄像头对象

#设置摄像头尺寸240X240
myCam.framesize(cam.LCD240X240) #显示屏对应的分辨率 方便显示
myCam.set_hmirror(0) #设置摄像头水平镜像关闭
'''
displayType: 显示方式为 1-LCD,2-WEB网页显示
'''
myAi = ai.catDetection(displayType=1) #LCD显示方式

myAi.start()           #启动AI检测

while True:
    mValue=myAi.read() #读取检测到数据
    print(mValue)
    time.sleep_ms(100)

11、实验结果

打开资料包文件夹路径“智能小车mpy例程\基础实验\11-AI摄像头实验\05-猫脸检测”文件夹下面打开”猫脸图片.jpeg”。运行程序,等待显示屏出现摄像头画面后,使用摄像头对准打开的猫脸图片进行识别,识别到后会在猫脸绘制出矩形方框。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
相关代码及固件:
https://download.csdn.net/download/lu330274924/88549191

智能小车购买链接
技术支持抖音:易驱达Easy Drive Coming
淘宝官方商城:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-18887194911.15.135014bdaKI6mV&id=715385110550

  • 14
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

物联网程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值