为什么我在IF中的置信度条件不起作用开放式CV人脸识别

问题描述

大家好,我想问为什么条件不能用信心检查。在识别器中 因此,当我使用conf 30时,我正在使用Android手机的相机的conf = "{0}%".format(round(100 - conf))永远不会低于20。我的代码谢谢

import cv2
import numpy as np
from PIL import Image
import pickle
import urllib.request as ur
import sqlite3
import _datetime
import sys


 def Entry(): 

   recognizer = cv2.face.LBPHFaceRecognizer_create()
   recognizer.read('trainner.yml')
   cascadePath = ('haarcascade_frontalface_default.xml')
   faceCascade = cv2.CascadeClassifier(cascadePath);
   cam = cv2.VideoCapture(1)
   font = cv2.FONT_HERShey_SIMPLEX
   name = ""

   def getProfile(id):
       connect = sqlite3.connect('Presensi.db')
       cursor= connect.execute("SELECT * FROM presensi WHERE npm=?",(str(id),))
       profile=None
       for row in cursor:
         profile=row
       connect.close()
       return profile
 
   while True:
     ret,im =cam.read()
     gray=cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
     faces = faceCascade.detectMultiScale(gray,1.3,5)
     for(x,y,w,h) in faces:
        cv2.rectangle(im,(x,y),(x+w,y+h),(0,225,0),2)
        id,conf = recognizer.predict(gray[y:y+h,x:x+w])
        profile = getProfile(id)
        if(int(conf)<=20):
         if(profile!=None):
            conf = "{0}%".format(round(100 - conf))
            cv2.putText(im,str(conf),y+80),font,1,0))
            cv2.putText(im,str(profile[0]),y-20),str(profile[1]),y-50),str(profile[2]),y+10),0))
            connect2 = sqlite3.connect('Presensi.db')
            cur2 = connect2.cursor()
            connect2.execute("UPDATE presensi SET kehadiran = 'HADIR',entry_time = CURRENT_TIME  WHERE npm = " + str(id))
            connect2.commit()
            cur2.close()
            cv2.putText(im,str("Hadir"),y+45),0))
        else:
            conf = "  {0}%".format(round(100 - conf))
            cv2.putText(im,str("Tidak Dikenali"),0))

     cv2.imshow('Absensi Checker',im)
     k = cv2.waitKey(10) & 0xff # Press 'ESC' for exiting video
     if k == 27:
        break
   cam.release()
   cv2.destroyAllWindows()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)