Witam mam kod w python:
import cv2
from simple_facerec import SimpleFacerec
from pathlib import Path
import os
import pandas as pd
path = "images"
ListNames = os.listdir(path)
# inicjowanie biblioteki
sfr = SimpleFacerec()
# Pobieranie użytkowników
for name in ListNames:
if Path(f'{path}/{name}').is_dir():
#sfr.load_encoding_images(dirpath,name)
sfr.load_encoding_images(f'{path}/{name}/', name)
print("Załadowano obrazy dla "+name)
# Ładowanie kamery
thread.start_new_thread (cap = cv2.VideoCapture(0))
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
# Inicjowanie podglądu
while True:
ret, frame = cap.read()
if not ret:
print("Ignoring empty camera frame.")
break
# Detect Faces
face_locations, face_names = sfr.detect_known_faces(frame)
for face_loc, name in zip(face_locations, face_names):
y1, x2, y2, x1 = face_loc[0], face_loc[1], face_loc[2], face_loc[3]
if name in ["Nieznany", "Unicestwić"]:
cv2.putText(frame, name, (x1, y1 - 10), cv2.FONT_HERSHEY_DUPLEX, 1, (0, 0, 200), 2)
cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 0, 200), 4)
else:
cv2.putText(frame, name,(x1, y1 - 10), cv2.FONT_HERSHEY_DUPLEX, 1, (0, 200, 0), 2)
cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 200, 0), 4)
break;
cv2.imshow("Frame", frame)
key = cv2.waitKey(1)
if key == 27:
break
cap.release()
cv2.destroyAllWindows()
i działa on spoko, rozpoznaje twarz i wszystko jest okay, ale problem pojawia się w momencie gdy pojawia się twarz...wtedy mam spadek do 5FPS, nie wiem jak to zrobić aby te FPSy nie spadały (IMG:
style_emoticons/default/smile.gif) , apropo unicestwiania w kodzie (IMG:
style_emoticons/default/smile.gif)
(IMG:
https://oxi-jon.pl/putin.jpg)
Ogólnie inaczej wyglądałem kiedyś, ale pisanie tego kodu zmusza mnie do sprawdzenia jak długo komputer będzie Ciebie rozpoznawać (IMG:
style_emoticons/default/tongue.gif)