Pyhton的人脸识别代码如下:
#!usr/bin/env?python
#coding:utf‐8
import sys
sys.path.append('C:\\Users\\Heyden\\AppData\\Local\\Programs\\Python\\Python37-32\\Lib\\site-packages\\')
import cv2
import os
import numpy as np
from PIL import Image
#?recognizer?=?cv2.createLBPHFaceRecognizer()
detector = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
recognizer = cv2.face.LBPHFaceRecognizer_create()
def get_images_and_labels(path):
? ? image_paths = [os.path.join(path, f) for f in os.listdir(path)]
? ? face_samples = []
? ? ids = []
? ? for image_path in image_paths:
? ? ? ? image = Image.open(image_path).convert('L')
? ? ? ? image_np = np.array(image, 'uint8')
? ? ? ? if os.path.split(image_path)[-1].split(".")[-1] != 'jpg':
? ? ? ? ? ? continue
? ? ? ? image_id = int(os.path.split(image_path)[-1].split(".")[1])
? ? ? ? faces = detector.detectMultiScale(image_np)
? ? ? ? for (x, y, w, h) in faces:
? ? ? ? ? ? face_samples.append(image_np[y:y + h, x:x + w])
? ? ? ? ? ? ids.append(image_id)
? ? return face_samples, ids
faces, Ids = get_images_and_labels('C:\\Users\\Heyden\\PycharmProjects\\face\\data_set')
recognizer.train(faces, np.array(Ids))
recognizer.save('C:\\Users\\Heyden\\PycharmProjects\\face\\trainner\\trainner.yml')
执行代码报错:
Traceback (most recent call last):
? File "C:\Users\Heyden\PycharmProjects\face\trainner2.py", line 13, in <module>
? ? recognizer = cv2.face.LBPHFaceRecognizer_create()
AttributeError: module 'cv2.cv2' has no attribute 'face'
Process finished with exit code 1
(划线的部分即问题所在)
问题分析:主要原因是OpenCV的扩展??镺pencv_contrib没有找到的原因
解决方法:cmd命令行下? ——? pip install opencv_contrib_python?
验证:代码测试通过,实现人脸识别数据集的训练。