【问题标题】:cv2.face' has no attribute 'LBPHFaceRecognizercv2.face' 没有属性 'LBPHFaceRecognizer
【发布时间】: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


【解决方案1】:

那是 OpenCV 的旧版本,他们甚至没有 Python 文档。

现在离开他们的 C++ documentation,我会说 Python 等价物是 cv2.createLBPHFaceRecognizer()。到那时还没有移到face

我强烈建议您至少更新到 OpenCV 3.X,否则您将继续遇到这些问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-14
    • 2019-06-07
    • 2019-11-13
    • 2018-02-27
    • 2018-12-18
    • 1970-01-01
    • 2018-01-21
    相关资源
    最近更新 更多