Я сделал этот код для распознавания лиц, а затем VoiceOver по имени лица, однако у меня возникла проблема с эффективностью распознавания (условия конфигурации), особенно когда я добавляю в код более 1 идентификатора.И когда я повысил значение (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()