Нужна помощь в повышении эффективности моего кода распознавания лиц Python - PullRequest
0 голосов
/ 04 декабря 2018

Я сделал этот код для распознавания лиц, а затем 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()
...