基于人脸识别的门禁系统设计

news/2025/2/19 17:50:42/

文章目录

  • 前言
  • 一、Openmv程序源码
  • 二、STM32程序
    • 1.判断openmv发送的数据
    • 2.作品实物图
  • 总结


前言

本系统主要以STM32C8T6作为微控制器,以LCD屏为人机交互窗口,以openMV4摄像头为图像采集设备。利用STM32C8T6通过串口通信发送数据给Openmv,让Openmv进行人脸识别,并且将识别结果返回给STM32,并且发送数据给语音模块,进行语音播报;同时STM32IO口控制继电器,给电磁锁通入电压打开门。


一、Openmv程序源码

这部分代码包括Openmv与STM32的串口通信,人脸识别,人脸特征存储。
串口通信

uart = UART(3, 115200)
uart.init(115200, bits=8, parity=None, stop=1)  #8位数据位,无校验位,1位停止位
num1 = 6
#============串口发送======================
def send_data_packet(c):temp = struct.pack("<bb",                #格式为俩个字符俩个整型0xAA,                       #帧头1c)                          #人脸识别 01
#                   x, # up sample by 4    #数据1
#                   y) # up sample by 4    #数据2uart.write(temp)                           #串口发送

人脸识别

#==============人脸识别====================
def face_recognition():sensor.reset() # Initialize the camera sensor.sensor.set_pixformat(sensor.GRAYSCALE) # or sensor.GRAYSCALEsensor.set_framesize(sensor.LCD) # or sensor.QQVGA (or others)sensor.skip_frames(10) #  Let new settings take affect.sensor.skip_frames(time = 1000) #等待5slcd.init() # Initialize the lcd screen.NUM_SUBJECTS = 1              #图像库中不同人数,一共6人NUM_SUBJECTS_IMGS = 10        #每人有20张样本图片# 拍摄当前人脸。img = sensor.snapshot()#img = image.Image("face/%s/1.pgm"%(SUB))lcd.display(img)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()     #拍照指示灯d0 = img.find_lbp((0, 0, img.width(), img.height()))#d0为当前人脸的lbp特征img = Nonepmin = 999999num=0for s in range(1, NUM_SUBJECTS+1):dist = 0for i in range(2, NUM_SUBJECTS_IMGS+1):img = image.Image("singtown/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=sprint(pmin)lcd.display(img)if(pmin > 10000):print("未能识别,请再次尝试")send_data_packet(0x02)else:send_data_packet(0x01)print("欢迎")
#        if(num == 2):
#           send_data_packet(0x03)
#           print("识别成功")print("发送成功")

人脸拍照特征存储

#========拍照并保存到识别库的程序代码=====================
def take_photos():sensor.reset() # Initialize the camera sensor.sensor.set_pixformat(sensor.GRAYSCALE) # or sensor.GRAYSCALEsensor.set_framesize(sensor.LCD) # or sensor.QQVGA (or others)sensor.skip_frames(10) # Let new settings take affect.sensor.skip_frames(time = 2000)lcd.init() # Initialize the lcd screen.num2 = 1 #设置被拍摄者序号,第一个人的图片保存到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("singtown/s%s/%s.pgm" % (num2, n) ) # or "example.bmp" (or others)lcd.display(sensor.snapshot())n -= 1pyb.LED(BLUE_LED_PIN).off()print("拍照并保存成功!进行下一张")if n==0:send_data_packet(0x03)  #发送完成

二、STM32程序

1.判断openmv发送的数据

直接使用串口判断Openmv发送的数据,若数据为成功,则控制另一个串口发送指令给语音播报模块,进行说明。

2.作品实物图

照的时候还没有进行包装,看着有点乱。
在这里插入图片描述


总结

整体功能能实现,后续可进行优化设计,可加入指纹和密码解锁等。


http://www.ppmy.cn/news/246127.html

相关文章

人脸识别的安全门禁系统设计

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、硬件设计二、软件开发三、程序设计成果展示 前言 最近看到HLK出了个人脸识别&#xff0c;准备画个板子做个小项目。 一、硬件设计 这里使用AD进行原理图以…

ID门禁卡的防火墙

ID门禁卡&#xff0c;广义上指125KHz的rfid芯片&#xff0c;狭义上就是EM4100系列的芯片&#xff08;TK系列&#xff09; 在很长的一段时间内&#xff0c;市面上的ID门禁卡都是EM4100兼容系列。这种芯片ID卡号固化在芯片内的&#xff0c;成本低廉&#xff0c;使用方便。缺点&a…

门禁是什么

门禁&#xff08;Access Control&#xff09;&#xff0c;指门的禁止权限&#xff0c;是对门的戒备防范。这里的“门”&#xff0c;广义来说&#xff0c;包括能够通行的各种通道&#xff0c;包括人通行的门&#xff0c;车辆通行的门等。因此&#xff0c;门禁就包括了车辆门禁。…

RFID智能门禁系统设计

博主福利&#xff1a;100G电子设计学习资源包&#xff01; http://mp.weixin.qq.com/mp/homepage?__bizMzU3OTczMzk5Mg&hid7&snad5d5d0f15df84f4a92ebf72f88d4ee8&scene18#wechat_redirect -------------------------------------------------------------------…

STM32门禁系统

系列文章目录 1.STM32门禁系统&#xff1a;整体及简易模块的简介 2.STM32门禁系统&#xff1a;0.96寸显示模块的简介 3.STM32门禁系统&#xff1a;舵机模块的简介 4.等待开发中~~~~ 文章目录 目录 系列文章目录 1.STM32门禁系统&#xff1a;整体及简易模块的介绍 前言 …

基于RFID技术的智能门禁系统设计(控制部分)

目 录 摘要 I Abstract II 第1章 绪论 1 1.1 课题研究的背景及意义 1 1.2 课题研究现状 1 1.2.1国内研究现状 1 1.2.2国外研究现状 2 1.3 门禁系统发展趋势 3 1.4 课题设计任务 3 1.5 论文结构 3 第2章 基于RFID技术的门禁系统理论基础 4 2.1射频识别技术概述 4 2.1.1射频识别技…

简易全双工物联网远程控制门禁设计方案

远程控制物联网方案 (此方案成本250元~300元优点是远低于产家报价400&#xff5e;500,使用自家服务器扩展成本低) 组装后连线效果实物图 网关配置 工具见下面产品说明 通讯是TCP/IP协议,一定要配置好服务器地址与网关 通讯是TCP/IP协议,一定要配置好服务器地址与网关 通讯是TCP…

门禁管理

门禁管理系统 目录 1.前言... 1 2.系统设计特点... 1 3.系统实现... 3 4.门禁系统结构图... 5 5.门禁系统设备... 6 6.门禁管理系统特点... 10 7.管理软件简介... 11 8.系统配置及报价... 14 1.前言 门禁系统已成为安全防范系统中极其重要的一部分&#xff0c;在一些发…