前言:
树莓派的性能日益强大,树莓派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、自己进行安装或编译安装
- 编译安装教程传送门:树莓派安装opencv4.2.0
二、代码详解
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
运行成功!!!