当前位置:   article > 正文

ESP32 MicroPython 人脸检测⑪_支持ov2640的python库

支持ov2640的python库

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/441078
推荐阅读
相关标签
  

闽ICP备14008679号