我试图通过OpenCV的lbph算法来识别人脸。如何获得比赛的结果还是不能从程序匹配。还什么都预测lbph算法标签和实际标签。
使用OpenCV的,模型= cv2.createLBPHFaceRecognizer(),您可以通过训练一model.train组图像(),然后使用model.predict识别它()。预测函数返回一个元组,由标签(用于各自训练的图像)和值(其可被用作阈值)。
用哈尔级联分类,该程序可以识别面孔
import cv2
haar_face_cascade = cv2.CascadeClassifier('Face-Detection-OpenCV-master/data/haarcascade_frontalface_alt.xml')
file = cv2.imread("name of your image file")
img = cv2.imread(file, 0)
faces = haar_face_cascade.detectMultiScale(img, scaleFactor=1.1, minNeighbors=5);
for (x, y, w, h) in faces:
images.append(img[y:y+h, x:x+w])
ids.append(namecounter)
cv2.imshow("",img)
当您使用recognizer.train()
方法训练识别器,你必须使用指定每次捕获训练识别图像标签(实际标签)。之后,使用recognizer.save("location")
保存数据。现在保存的数据加载到识别器和运行recognizer.predict(),它会分析所保存的数据并返回可能匹配的标签(已预测标签),你已经提供了对当前帧/图像的图像。
recognizer = cv2.face.LBPHFaceRecognizer_create() (for opencv 3.4 or above)