我创建此代码是为了识别面部,然后再使用VoiceOver识别面部名称,但是特别是当我向代码中添加多个1-id时,识别效率(配置条件)存在问题。 当我将(if(conf> 70):)的值提高到90时,它无法重新识别并且 我已经完成了一个人脸识别项目,并制作了数据库并对其进行了培训,但是当我以很高的确认精度运行人脸识别代码时,它表明数据库中定义的人是未知的。如何提高此确认的准确性?
import numpy as np
import cv2
import pyttsx3
engine = pyttsx3.init()
face_cascade = cv2.CascadeClassifier('C:\opencv\sources\data\haarcascades//haarcascade_frontalface_default.xml')
cap = cv2.VideoCapture(0)
rec = cv2.face.LBPHFaceRecognizer_create()
rec.read("E:\PROJECTS/trainingdata.yml")
id = 0
font = cv2.FONT_HERSHEY_SIMPLEX
while 1:
ret, img = cap.read()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.5, 5)
for (x, y, w, h) in faces:
cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)
id, conf = rec.predict(gray[y:y + h, x:x + w])
if (conf>70):
if(id==1):
id="Abdelrhman Fathi"
if(id==2):
id="AbdelHalim"
if(id==3):
id="ahmed"
else:
id="Unknown"
cv2.putText(img, str(id) ,(10,400), font, 4, (255, 255, 255), 2, cv2.LINE_AA)
cv2.imshow('img', img)
if cv2.waitKey(1) == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
engine.say(id)
engine.runAndWait()