【发布时间】:2018-08-31 00:41:08
【问题描述】:
我正在使用 Python 创建人脸识别系统,并在以下版本上闲置:Python 3.6.1 :: Anaconda custom (64-bit),Anaconda 4.4,idle
当我尝试训练人脸识别器时,出现如下错误:
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()
【问题讨论】:
-
recognizer后面的代码就不需要了。见stackoverflow.com/help/mcve。您使用的编辑器/IDE 也不是一个因素。查看 cv2.face 文档并查看可用的属性。 -
您使用的是什么 OpenCV 版本?
-
@eshirima 我们使用的是opencv 2.4.13版本
-
您必须使用较新版本的opencv,您可以使用
conda install -c conda-forge opencv轻松安装opencv3.4.0
标签: opencv python-3.6 face-recognition