我正在创建一个使用Python并在这些版本上空闲的人脸识别系统:Python 3.6.1 :: Anaconda custom(64位),Anaconda 4.4,空闲
当我尝试训练面部识别器时,我收到的错误如下:
AttributeError:模块'cv2.face'没有属性'LBPHFaceRecognizer'
在这里,我附上了代码
import cv2
import os
import numpy as np
from PIL import Image
# Path for face image database
path = 'dataset'
recognizer = cv2.face.LBPHFaceRecognizer()
def getImagesWithID(path):
imagePaths=[os.path.join(path,f) for f in os.listdir(path)]
faceSamples=[]
Ids=[]
for imagePath in imagePaths:
faceImg=Image.open(imagePath).convert('L')
faceNp=np.array(faceImg,'unit8')
ID=int(os.path.split(imagePath)[-1].split('.')[1])
faces.append(faceNP)
IDs.append(ID)
cv2.imshow("training",faceNp)
cv2.waitKey(10)
return np.array(IDs), faces
Ids,faces=getImagesWithID(path)
recognizer.train(faces,Ids)
recognizer.save('recognizer/trainningData.yml')
cv2.destroyAllWindows()
这是OpenCV的旧版本,他们甚至没有Python文档。
现在离开他们的C++ documentation,我会说Python的等价物是cv2.createLBPHFaceRecognizer()
。到那时它尚未转移到face
。
我强烈建议您至少更新到OpenCV 3.X,否则您将继续遇到这些问题。