摄像头人脸检测的树莓派指纹识别系统

前言:此项目主要用了摄像头、指纹识别、继电器、Led模块等设备。用于实现智能门锁功能,即摄像头检测到人来之后,打开继电器给指纹模块供电,led显示文字。

代码:

import binascii
import serial
import serial.tools.list_ports
import time
import cv2
import Adafruit_GPIO.SPI as SPI
import Adafruit_SSD1306
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFontcap = cv2.VideoCapture(0)
face_cascade = cv2.CascadeClassifier(r'haarcascade_frontalface_default.xml')
face_cascade.load('./haarcascade_frontalface_default.xml')def recv(serial):while True:data = serial.read_all()if data == '':continueelse:breakreturn dataif __name__ == '__main__':RST = 24DC = 23SPI_PORT = 0SPI_DEVICE = 0disp = Adafruit_SSD1306.SSD1306_128_32(rst=RST)disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST)disp.begin()width = disp.widthheight = disp.heightdisp.clear()disp.display()image = Image.new('1', (width, height))draw = ImageDraw.Draw(image)font = ImageFont.load_default()draw.text((10,30),'welcome to yjc home',font = font,fill=255)disp.image(image)disp.display()time.sleep(2)while (True):ret, frame = cap.read()  faces = face_cascade.detectMultiScale(frame, scaleFactor=1.15, minNeighbors=5, minSize=(5, 5))  for (x,y,w,h) in faces:cv2.rectangle(frame, (x,y),(x+w, y+h ), (0, 255, 0),2)draw.rectangle((0,0,width,height), outline=0, fill=0)        disp.display()draw.text((10,30), 'waiting for people', font=font, fill =255)disp.image(image)disp.display()cv2.imshow('face', frame)if cv2.waitKey(1)& 0xFF == ord('q'):breakprint("waiting for people")if len(faces)>0:breakcap.release()  cv2.destroyAllWindows()serial = serial.Serial('/dev/ttyUSB0', 57600, timeout=0.5)  #/dev/ttyUSB0if serial.isOpen() :draw.rectangle((0,0,width,height), outline=0, fill=0)disp.display()draw.text((10,30), 'open suceessful', font = font, fill= 255)time.sleep(2)disp.image(image)disp.display()else :draw.rectangle((0,0,width,height), outline=0, fill=0)disp.dispaly()draw.text((10,30), 'open faild', font = font, fill = 255)disp.image(image)disp.display()while True:a = 'EF 01 FF FF FF FF 01 00 03 01 00 05'd = bytes.fromhex(a)serial.write(d)time.sleep(1)data =recv(serial)if data != b'' :data_con = str(binascii.b2a_hex(data))[20:22]if(data_con == '02'):draw.rectangle((0,0,width,height), outline=0, fill=0)disp.display()draw.text((20,30),'please enter finger', font=font, fill =255)disp.image(image)disp.display()time.sleep(2)elif(data_con == '00'):draw.rectangle((0,0,width,height), outline=0, fill=0)disp.display()draw.text((20,30),'load suceessful',font = font, fill =255)disp.image(image)disp.display()buff = 'EF 01 FF FF FF FF 01 00 04 02 01 00 08'buff = bytes.fromhex(buff)serial.write(buff)time.sleep(1)buff_data = recv(serial)buff_con = str(binascii.b2a_hex(buff_data))[20:22]if(buff_con == '00'):draw.rectangle((0,0,width,height), outline=0, fill=0)disp.display()draw.text((20,30), 'creat feature suceessful',font = font , fill = 255)disp.image(image)disp.display()time.sleep(2)serch = 'EF 01 FF FF FF FF 01 00 08 04 01 00 00 00 64 00 72'serch = bytes.fromhex(serch)serial.write(serch)time.sleep(1)serch_data = recv(serial)serch_con = str(binascii.b2a_hex(serch_data))[20:22]if (serch_con == '09'):draw.rectangle((0,0,width,height), outline=0, fill=0)disp.display()draw.text((10,30),'finger is not matching',font = font,fill =255)disp.image(image)disp.display()time.sleep(2)elif(serch_con == '00'):draw.rectangle((0,0,width,height), outline=0, fill=0)disp.display()draw.text((10,30),'finger is matching',font=font,fill = 255)disp.image(image)disp.display()time.sleep(2)serial.close()disp.image(image)disp.display()exit()else:draw.rectangle((0,0,width,height), outline=0, fill=0)disp.display()draw.text((30,30),'faild',font=font,fill = 255)disp.image(image)disp.display()

效果展示:

视频后续添加

摄像头人脸检测的树莓派指纹识别系统相关推荐

  1. Pytorch实现戴口罩人脸检测和戴口罩识别(含训练代码 戴口罩人脸数据集)

    Pytorch实现戴口罩人脸检测和戴口罩识别(含训练代码 戴口罩人脸数据集) 目录 Pytorch实现戴口罩人脸检测和戴口罩识别(含训练代码 戴口罩人脸数据集) 1.戴口罩识别的方法 (1)基于多类别 ...

  2. 【优秀课设】基于OpenCV-Python的摄像头人脸检测追踪控制系统

    基于OpenCV-Python的摄像头人脸检测追踪控制系统 资源: download.csdn.net/download/weixin_53403301/25496828 采用OpenCV-Pytho ...

  3. 亚马逊Rekognition发布针对人脸检测、分析和识别功能的多项更新

    今天亚马逊Rekognition针对人脸检测.分析和识别功能推出了一系列更新.这些更新将为用户带来多项能力的改今,包括从图像中检测出更多人脸.执行更高精度的人脸匹配以及获得图像中的人脸得到更准确的年龄 ...

  4. 家庭服务机器人的人脸检测、跟踪与识别研究

    摘要:本文介绍了一个用于家庭服务机器人完成人脸检测.跟踪.识别的双目视觉系统.该系统首先采用人脸肤色模型结合相似度来检测人脸:然后通过基于颜色信息的CAMSHIFT算法跟踪运动的人脸:最后利用嵌入式隐 ...

  5. 利用计算机对指纹ji,指纹识别系统关键算法的研究与实现-计算机应用技术专业论文.docx...

    指纹识别系统关键算法的研究与实现-计算机应用技术专业论文 武汉科技大学硕士学位论文第I页摘要目前传统的基于信物或口令的安全系统显得越来越脆弱,迫切需要有一种准确.方便. 安全的识别技术来代替现有的身份 ...

  6. 一种光学指纹识别系统的设计方案

    随着电子信息技术应用面日益拓展,不少场合需要对特定用户群体进行身份识别或身份记录,如门禁系统.考勤系统.安全认证系统等,在各种系统中运用的技术形式多样,如视网膜识别.面相识别.指纹识别.RFID 射频 ...

  7. android 人脸检测 facedec,智能访客系统中的人脸检测及方向判别算法.pdf

    智能访客系统中的人脸检测及方向判别算法,人脸识别算法,人脸检测算法,opencv人脸识别算法,人脸识别算法有哪些,人脸识别pca算法,人脸比对算法,android人脸识别算法,adaboost人脸检测 ...

  8. 【Python3-OpenCV】实现实时摄像头人脸检测

    OpenCV 是一个C++库,目前流行的计算机视觉编程库,用于实时处理计算机视觉方面的问题,它涵盖了很多计算机视觉领域的模块.在Python中常使用OpenCV库实现图像处理. 本文将介绍如何在Pyt ...

  9. ubuntu下安装Thinkpad指纹识别系统

    ubuntu下安装Thinkpad指纹识别系统 [1]执行以下命令,安装指纹识别驱动 $ sudo apt-get install thinkfinger-tools libpam-thinkfing ...

最新文章

  1. docker dockerfile 映射端口范围 批量映射端口
  2. ace unlock 苹果解锁_Apple Watch将支持指纹识别功能?苹果最新专利曝光
  3. 5、【设计模式】单列模式
  4. 计算机常用英文句子,英文简历常用句子
  5. 【Python CheckiO 题解】Long Repeat
  6. 【项目经验】如何用TexturePacker Physicseditor开发游戏
  7. chrome浏览器ios版本迎来“信用卡扫描器”代码
  8. CocoaPods打包静态库
  9. vue动态加载静态资源
  10. create-react-app中使用装饰器(@)写法
  11. CI框架主题切换的功能
  12. 计算机视觉实战(八)直方图与傅里叶变换
  13. 后门攻击阅读笔记,Input-aware dynamic backdoor attack
  14. ZHW_AI发布CSDN的模板和要求
  15. 通过下面语句创建employee数据库和dept(部门表)、emp(员工表)、salgrade(工资等级表)34题
  16. PHPexcel 导出身份证处理
  17. 编码的奥秘:发报机与断电器
  18. 【Android驱动】aw9106驱动代码流程
  19. 【机器学习】深度解析机器学习五大流派中主算法精髓
  20. Hdu 5172 GTY's gay friends

热门文章

  1. Bridge 桥接模式
  2. visualvm监控
  3. ganymede版本_使用Eclipse Ganymede为台式机,Web和移动设备开发,第1部分,为Rich Client Platform开发,采用Ganymede方法
  4. 013 Cadence IC Virtuoso简介
  5. Mac上如何设置使用触发角快速启动屏幕保护程序
  6. 北京邮局的人都去吃大米共吧!
  7. 三菱FX指令控制步进电机定位启动
  8. 应用软件是计算机运行操作的基础,计算机基础
  9. 浙江工业大学计算机专硕复试
  10. Competing Souls