OpenCV медленное распознавание лиц с помощью CCTV или IP-камеры - PullRequest
0 голосов
/ 22 октября 2019

Когда я пытаюсь определить лицо с помощью веб-камеры моего ноутбука или компьютера, она работает нормально, но когда я пытаюсь обнаружить с помощью IP-камеры, похоже, что обнаружение одного кадра занимает много времени. Есть ли какое-то решение для этого, потому что я также пробую YOLO. Это займет больше времени, чем opencv haar cascade

Там у меня есть простой код, который определяет лицо и обрезку, чем часть кадра.

cap = cv2.VideoCapture("web_Cam_IP")

cropScal = 25


while(True):
    # Capture frame-by-frame
    for i in range(10): #this loop skip 10 frames if I don't skip frame it looks like it stack there
        ret, frame = cap.read()

    frame = cv2.resize(frame, (0, 0), fx=0.70, fy=0.70)

    # Our operations on the frame come here
    gray = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)
    faces = faceCascade.detectMultiScale(gray, scaleFactor=1.02, minNeighbors=5, minSize=(30, 30))


    for (x, y, w, h) in faces:    
        if len(faces) > 0 :
            try:
                img = gray[y-cropScal:y+h+cropScal, x-cropScal:x+w+cropScal]
                img = cv2.resize(img,(200,200))
                img = Image.fromarray(img)
                img.save('images/'+datetime.now().strftime("%d_%m_%Y_%I_%M_%S_%p")+'.png')
            except Exception as e:
                pass
        cv2.rectangle(gray, (x-cropScal, y-cropScal), (x+w+cropScal, y+h+cropScal), (0, 255, 0), 2)



    cv2.imshow('frame',gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...