STM32+OpenMV+AS608实现人脸识别

STM32+OpenMV+AS608实现⼈脸识别
STM32+openmv(M7)+As608指纹模块----⼈脸指纹识别–串⼝显⽰
/
/
/
/
so.csdn/api/v3/search?p=1&t=all&q=前述:本实验基于上⼀个实验,本⽂加之前的基础上修改,思路如下:本实验全部操作通过串⼝以及按键实现(⽅便⽆LCD),接下来会移植到LCD屏上。将openmv+STM32+AS608,通过硬件连接图所接。
/
/
压片机模具
实现步骤:上电,⾸先实现的功能是⼈脸识别,同时也可以进⼊⼈脸录取后在进⾏识别,该部分代码
基于Openmv(Python),
通过按键Key0 进⼊录取⼈脸,按键Key1进⼊⼈脸识别,如若识别成功,通过串⼝返回识别⼈的名称。接下来是指纹模块的功能,这⾥不做简述,有关过程,请看。(该功能⽬前⽐较单⼀,还有待改进)
第⼀部分:硬件连接
STM32+AS608的连接还是参考上⾯的连接,主要讲Openmv+Stm32
Openmv Rx — stm32 TX
Openmv TX — stm32 RX
Openmv GND — stm32 GND
Openmv VIN ---- stm32 5V (注意这⾥连接的是5V),因为Openmv的供电由该引脚提供。
第⼆部分:程序设计
STM32与Openmv连接 ⼈脸识别代码
void Face_recognition(void)
{
u8 key;
u8 t3;
u8 number=0;
//printf("/*********************************************⼈脸识别*********************************************/\r\n"); //printf("/**************************************************************************************************/\r\n"); //printf("/**************************************************************************************************/\r\n");
while(1)
{
key=KEY_Scan(0);
if(key==KEY0_PRES)
{
printf("1");
}
if(key==KEY1_PRES)
{
printf("2");
假牙生产break;
}
/*
if(key==WKUP_PRES)
{
break;
}
*/
}
while(1)
{
if(USART_RX_STA&0x8000)
{
number=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
for(t3=0;t3<number;t3++)
{
USART1->DR=USART_RX_BUF[t3];
while((USART1->SR&0X40)==0);//等待发送结束
}
printf("\r\n\r\n");//插⼊换⾏
USART_RX_STA=0;
}
if(number>0)
{
break;
}
}
}
Openmv代码-⼈脸识别及⼈脸录取代码
"""
作者: SYM
时间: 2019年10⽉19⽇22:00
代码功能:与STM32使⽤,进⾏stm32通过串⼝发送消息给openmv,openmv收到信息后
进⾏⼈脸识别操作,并将结果传送回STM32单⽚机进⾏应答!
个⼈博客:blog.csdn/sssyyymm
V1.0版本(有待改进)
"""
import sensor, time, image, pyb
from pyb import UART
RED_LED_PIN = 1
BLUE_LED_PIN = 3
uart = UART(1,115200,timeout_char=1000)
data=bytes([0x0d,0x0a])
#uart.write("Now begin Face_recognition!\r\n")
#uart.write(data)
def face_recognition():
sensor.set_pixformat(sensor.GRAYSCALE) # or sensor.GRAYSCALE
sensor.set_framesize(sensor.B128X128) # or sensor.QQVGA (or others)
黄泥巴烤鸡
sensor.set_windowing((92,112))
sensor.skip_frames(10) # Let new settings take affect.
sensor.skip_frames(time = 5000) #等待5s
#SUB = "s1"
NUM_SUBJECTS = 3 #图像库中不同⼈数,⼀共6⼈
NUM_SUBJECTS_IMGS = 10 #每⼈有20张样本图⽚
# 拍摄当前⼈脸。
img = sensor.snapshot()
#img = image.Image("face/%s/1.pgm"%(SUB))
d0 = img.find_lbp((0, 0, img.width(), img.height()))
#d0为当前⼈脸的lbp特征
img = None
pmin = 999999
num=0
for s in range(1, NUM_SUBJECTS+1):
dist = 0
for i in range(2, NUM_SUBJECTS_IMGS+1):
img = image.Image("face/s%d/%d.pgm"%(s, i))蒸汽直埋管道
d1 = img.find_lbp((0, 0, img.width(), img.height()))
#d1为第s⽂件夹中的第i张图⽚的lbp特征
dist += image.match_descriptor(d0, d1)#计算d0 d1即样本图像与被检测⼈脸的特征差异度。高强钢
print("Average dist for subject %d: %d"%(s, dist/NUM_SUBJECTS_IMGS))
#pmin = min(pmin, dist/NUM_SUBJECTS_IMGS, s)#特征差异度越⼩,被检测⼈脸与此样本更相似更匹配。        if (dist/NUM_SUBJECTS_IMGS)<pmin:
pmin=(dist/NUM_SUBJECTS_IMGS)
num=s
print(pmin)
print(num) # num为当前最匹配的⼈的编号。
#uart.write(str(num))
if num==1:
uart.write("You are SYM!")
uart.write(data)
elif num==2:
uart.write("You are gt!")
uart.write(data)
elif num==3:
uart.write("You are LWZ!")
uart.write(data)
def take_photos():
sensor.set_pixformat(sensor.GRAYSCALE) # or sensor.GRAYSCALE
sensor.set_framesize(sensor.B128X128) # or sensor.QQVGA (or others)
sensor.set_windowing((92,112))
sensor.skip_frames(10) # Let new settings take affect.
sensor.skip_frames(time = 2000)
num2 = 3 #设置被拍摄者序号,第⼀个⼈的图⽚保存到s1⽂件夹,第⼆个⼈的图⽚保存到s2⽂件夹,以此类推。每次更换拍摄者时,修改num值。    n = 10 #设置每个⼈拍摄图⽚数量。
#连续拍摄n张照⽚,每间隔3s拍摄⼀次。
while(n):
#红灯亮
pyb.LED(RED_LED_PIN).on()
sensor.skip_frames(time = 2000) # Give the user time to get ready.等待3s,准备⼀下表情。
#红灯灭,蓝灯亮
pyb.LED(RED_LED_PIN).off()
pyb.LED(BLUE_LED_PIN).on()
#保存截取到的图⽚到SD卡
print(n)
sensor.snapshot().save("face/s%s/%s.pgm" % (num2, n) ) # or "example.bmp" (or others)
n -= 1
pyb.LED(BLUE_LED_PIN).off()
print("Done! Reset the camera to see the saved image.")
#uart.write(str(num))
if __name__=='__main__':
while(1):
if uart.any():
num1 =adline().decode()
num1 = int(num1)
if(num1==1):
print(num1)
take_photos()
elif(num1==2):
print(num1)
face_recognition()
break
主要代码,其他代码不再展⽰,整个⼯程上传到下载:
第三部分:实验现象

本文发布于:2024-09-21 21:51:55,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/235088.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:识别   连接   部分   代码   样本
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议