树莓派4b之初学者入门人脸识别(手把手完整版)

前言:

树莓派的性能日益强大,树莓派4b相比上一代的能有了很大的提升,采用了博通最新的BCM4908 64bit处理器,内存从1G升级到2G和4G,视频支持4K,价格依旧美丽。本文将从硬件和软件出发,手把手与大家分享如何用树莓派实现人脸识别,包括硬件配置环境搭载代码详解程序部署

硬件工具准备:

  • 32G内存卡
  • 树莓派4B
  • 电源
  • 摄像头
  • 读卡器
  • 屏幕(这个可以用远程代替)

软件工具准备:

  • Win32DiskImager
  • 镜像包

环境

  • opencv4.2.0
  • python3.7.3

【硬件配置】

  • 树莓派:相比上一代树莓派,树莓派4B在性能各方面有了很大的提升,强烈推荐,本文采用树莓派4B2G版。
  • 摄像头:本文采用某宝购买的树莓派非原装摄像头,20多元,原装摄像头太贵了,不推荐购买,土豪随意。
  • 屏幕:分辨率1024*600,可触屏

在这里插入图片描述

一、烧录镜像和环境配置

镜像烧录传送门:树莓派4b之镜像烧录(手把手完整版)

这里采用的是opencv4.2.0,其安装方式有两种:

1、采用已经安装好opencv的镜像进行烧录

  • 镜像过几天打包后分享出来

2、自己进行安装或编译安装

二、代码详解

1、基础知识
  • 以下代码是基于Haar+Cascade分类器实现人脸识别

相关课程请参看慕课课程:OpenCV+Tensorflowr入门人工智能图像处理
可在B站上搜寻观看,也可通过百度网盘下载后观看(包括源码)

下载链接:https://pan.baidu.com/s/1ZZgXih-4AsQOrbHVW74k5Q
提取码:xwlp

相关理论基础可观看章节:

相关笔记请查看简书:犬夜叉写作业

对于初学者,建议抽空把整个课程看一下,能有所收获

2、相关代码及其详细注释
'''
Haar Cascade Face detection with OpenCV  
    Based on tutorial by pythonprogramming.net
    Visit original post: https://pythonprogramming.net/haar-cascade-face-eye-detection-python-opencv-tutorial/  
Adapted by Marcelo Rovai - MJRoBot.org @ 7Feb2018 
'''

import numpy as np
import cv2
#导入opencv内部已经训练好的人脸模型
faceCascade = cv2.CascadeClassifier('Cascades/haarcascade_frontalface_default.xml')
#打开摄像头,并设置窗口大小
cap = cv2.VideoCapture(0)
cap.set(3,640) # set Width
cap.set(4,480) # set Height

#进行人脸识别
while True:
    ret, img = cap.read()   #读取摄像头采集到的图片
    #img = cv2.flip(img, -1)   #将摄像头180旋转,摄像头倒放的时候需要
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  #将读取的图片转换为灰度图
    faces = faceCascade.detectMultiScale(
        gray,
        
        scaleFactor=1.2,
        minNeighbors=5
        ,     
        minSize=(20, 20)
    )   #采用Haar+Cascade分类器进行脸部识别

    for (x,y,w,h) in faces:    #将识别到的人脸用蓝色框框出来,x:横坐标;y纵坐标;w:宽度;h:高度(即(x,y):表示画蓝色框的起点;w,h表示蓝色框的长和宽)
        cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
        roi_gray = gray[y:y+h, x:x+w]
        roi_color = img[y:y+h, x:x+w]
       
    cv2.imshow('video',img) #显示到屏幕上
    k = cv2.waitKey(30) & 0xff
    if k == 27: # 按'ESC'退出摄像头
        break

cap.release()   #释放摄像头
cv2.destroyAllWindows()   #关闭窗口

三、代码部署和运行

将以上代码写入成文件,命名为face.py
我已经写好了,可以在这里下载:

链接:https://pan.baidu.com/s/1AEdGP2svw7B-mBPVNM1rGQ
提取码:h96w

可以先用电脑下载下来,再远程拷贝进树莓派里面

里面的haarcascade_frontalface_default.xml也要下载下来

进入树莓派/home/pi/Downloads,这个目录可以随意,看你想把程序放在哪里了

cd /home/pi/Downloads

face.pyhaarcascade_frontalface_default.xml同时拷贝进去,这样就部署完成了

在这里插入图片描述

输入以下代码运行程序:

#要进入文件所在位置,才能找到文件
cd /home/pi/Downloads  
#运行程序
python3 face.py

运行成功!!!

在这里插入图片描述

树莓派4B是一款功能强大的单板计算机,可以用于人脸识别智能家居防盗系统。该系统可以通过树莓派4B的高性能处理器和图像处理模块,实时检测家居区域内的人脸,并与事先存储的授权人脸进行比对,以识别是否有陌生人进入。 在设置系统时,我们首先需要通过树莓派4B连接摄像头模块,用于获取家居区域内的实时图像。然后,我们可以使用OpenCV等开源库对图像进行预处理和人脸检测的算法处理,以提取出人脸特征。 接下来,我们将授权人脸特征存储在系统中,以备比对使用。当有人进入家居区域时,系统将实时获取图像并进行人脸识别,将检测到的人脸特征与事先存储的授权人脸特征进行比对。如果匹配成功,则说明是授权人员,系统将不采取任何防盗措施;如果匹配失败,则说明是陌生人员,系统将触发安全警报,并通过特定的通知方式将警报信息发送给用户。 此外,为了增强安全性,我们还可以通过树莓派4B的网络连接功能,将系统与用户手机或电脑等设备进行连接,实现远程监控的功能。用户可以在任何地方通过手机或电脑实时查看家居区域的摄像头画面,并接收到警报信息,及时采取相应的防护措施。 总之,树莓派4B人脸识别智能家居防盗系统结合了高性能的硬件平台和先进的图像处理算法,为用户提供了一种智能、便捷、高效的家居防盗解决方案。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

六五酥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值