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

  • Post author:
  • Post category:其他




前言:

树莓派的性能日益强大,树莓派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.py



haarcascade_frontalface_default.xml

同时拷贝进去,这样就部署完成了

在这里插入图片描述

输入以下代码运行程序:

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

运行成功!!!

在这里插入图片描述



版权声明:本文为qq_27149279原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。