树莓派做人脸识别,首先是采集图像,利用 Pi Camera ,采集一段视频流,然后截帧,保存到一个文件夹中作为训练数据,然后运用强大的opencv,训练模型,主要是运用haar小波变换等,最后是在线识别,用Pi Camera通过对视频流截帧的方式,捕捉测试图像,然后对人脸进行识别,名字和精度。
下面是代码,这里还是主要参考大神 ----- 子豪兄的博客
采集训练数据
import cv2
import os
cam = cv2.VideoCapture(0)
cam.set(3, 640) #WIDTH
cam.set(4, 480) #height
face_detector = cv2.CascadeClassifier('/home/pi/Downloads/opencv-3.4.0/data/haarcascades/haarcascade_frontalface_default.xml')
face_id = input('\n enter user id end press <return> ==> ')
print('\n [INFO] Initilizing face capture. look the camera and wait ...')
count = 0
while(True):
ret, img = cam.read()
img = cv2.flip(img, -1) #FLIP VIDEO IMAGE VERTICALLY
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_detector.detectMultiScale(gray, 1.3, 5)
for (x, y, w, h) in faces:
cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)
count += 1
#save the capt