AttributeError:'模块'对象没有属性' face'安装opencv-contrib后甚至出错

时间:2018-04-25 00:45:01

标签: python python-2.7 opencv face-detection lbph-algorithm

我试图使用Python,OpenCv2和LBPH实现人脸识别 (从HERE下载)

我的python版本是2.7.14
PIP版本是9.0.3
和OpenCV版本是3.4.0

我的代码是

import cv2
import numpy as np
import NameFind

# --- import the Haar cascades for face and eye ditection
face_cascade = cv2.CascadeClassifier('Haar/haarcascade_frontalcatface.xml')
eye_cascade = cv2.CascadeClassifier('Haar/haarcascade_eye.xml')
spec_cascade = cv2.CascadeClassifier('Haar/haarcascade_eye_tree_eyeglasses.xml')

help(cv2.face)
# FACE RECOGNISER OBJECT
LBPH = cv2.face.LBPHFaceRecognizer_create(2, 2, 7, 7, 20)
EIGEN = cv2.face.createEigenFaceRecognizer(10, 5000)
FISHER = cv2.face.createFisherFaceRecognizer(5, 500)

# Load the training data from the trainer to recognise the faces
LBPH.load("Recogniser/trainingDataLBPH.xml")
EIGEN.load("Recogniser/trainingDataEigan.xml")
FISHER.load("Recogniser/trainingDataFisher.xml")

# ------------------------------------  PHOTO INPUT  -----------------------------------------------------

img = cv2.imread('Me4.jpg')                  # ------->>> THE ADDRESS TO THE PHOTO

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)                # Convert the Camera to gray
faces = face_cascade.detectMultiScale(gray, 1.3, 4)         # Detect the faces and store the positions
print(faces)

for (x, y, w, h) in faces:                                  # Frames  LOCATION X, Y  WIDTH, HEIGHT

    Face = cv2.resize((gray[y: y+h, x: x+w]), (110, 110))   # The Face is isolated and cropped

    ID, conf = LBPH.predict(Face)                           # LBPH RECOGNITION
    print ID
    NAME = NameFind.ID2Name(ID, conf)
    NameFind.DispID(x, y, w, h, NAME, gray)

    ID, conf = EIGEN.predict(Face)                          # EIGEN FACE RECOGNITION
    NAME = NameFind.ID2Name(ID, conf)
    NameFind.DispID3(x, y, w, h, NAME, gray)

    ID, conf = FISHER.predict(Face)                         # FISHER FACE RECOGNITION
    NAME = NameFind.ID2Name(ID, conf)
    NameFind.DispID2(x, y, w, h, NAME, gray)

cv2.imshow('LBPH Face Recognition System', gray)           # IMAGE DISPLAY
cv2.waitKey(0)
cv2.destroyAllWindows()

我运行任何人脸识别文件时出现此错误,例如 Recogniser_Image_All_Algorithms.py

  

Traceback(最近一次调用最后一次):文件   " Recogniser_Image_All_Algorithms.py",第11行,in       LBPH = cv2.face.LBPHFaceRecognizer_create(2,2,7,7,20)AttributeError:' module'对象没有属性' face'

我已经搜索了错误并找到了与THIS ONE

相同的答案

检查完这些Feed之后,我尝试使用 python -m pip install opencv-contrib-python

安装opencv-contrib

它说

  

要求已经满足:opencv-contrib-python in   c:\ users \ rak \ anaconda3 \ lib \ site-packages已经要求   在c:\ users \ rak \ anaconda3 \ lib \ site-packages中满足:numpy> = 1.11.3   (来自opencv-contrib-python)

但错误仍然相同,如何解决此错误。请帮忙

4 个答案:

答案 0 :(得分:5)

我自己发现了问题!问题是我安装了 opencv-python ,我卸载了opencv-python 并运行了 pip install opencv-contrib-python

  

感谢即使没有告诉我我做错了什么,也没有任何理由对此问题进行了抨击,没有发表评论或回复

答案 1 :(得分:1)

我已经使用 sudo apt install python-opencv 为python安装了opencv。 &收到错误“ AttributeError:'模块'对象没有属性'face'”。 我的系统配置是OS Ubuntu 16.04 LTS和Python 2.7.12。我使用以下命令解决了该问题: sudo apt删除python-opencv 并使用pip安装了相同的库 sudo pip install opencv-contrib-python

现在opencv可以正常工作了。

答案 2 :(得分:0)

在我的Rpi中 python版本是3.5和2.7。 opencv版本是3.3.0 将python平台从2.7.x更改为3.5.x ... 转到程序/ python idle / properties,桌面条目/浏览/选择idle-python3.5 人脸识别模块中的“人脸”属性没有。更改python平台后,此问题将得到解决。

答案 3 :(得分:0)

recognizer = cv2.createLBPHFaceRecognizer()

尝试一下