在提高我的Python面部识别代码的效率方面需要帮助

时间:2018-12-04 20:35:23

标签: python image-processing face-recognition

我创建此代码是为了识别面部,然后再使用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()

0 个答案:

没有答案