我试图使用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时,我收到此错误
回溯(最近一次调用最后一次):文件“Recogniser_Image_All_Algorithms.py”,第11行,在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
它说
要求已经满足:c:\ users \ rak \ anaconda3 \ lib \ site-packages中的opencv-contrib-python要求已满足:numpy> = 1.11.3在c:\ users \ rak \ anaconda3 \ lib \ site-packages(来自opencv-contrib-python)
但错误仍然相同,如何解决此错误。请帮助
我已经使用sudo apt install python-opencv安装了opencv for python并收到错误“AttributeError:'module'对象没有属性'face'”。我的系统配置是OS Ubuntu 16.04 LTS和Python 2.7.12。我使用以下命令来解决问题:sudo apt remove python-opencv使用pip sudo pip install opencv-contrib-python安装相同的库
现在opencv工作得非常好。
我自己发现了问题!问题是我安装了opencv-python,我卸载了opencv-python并运行了pip install opencv-contrib-python。
感谢你毫无理由地扯下这个问题,甚至没有告诉我我做错了什么,没有评论或回复
在我的Rpi python版本中,3.5和2.7都是。 opencv版本是3.3.0将python平台从2.7.x改为3.5.x ...转到program / python idle / properties,桌面入口/浏览/选择idle-python3.5在人脸识别模块中没有属性“face ”。更改python平台后,这个问题将得到解决。
recognizer = cv2.createLBPHFaceRecognizer()
试试这个