Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [python]opencv - optymalizacja rozpoznawania twarzy
Forum PHP.pl > Forum > Przedszkole
Johnas
Witam mam kod w python:
[PYTHON] pobierz, plaintext
  1. import cv2
  2. from simple_facerec import SimpleFacerec
  3. from pathlib import Path
  4. import os
  5.  
  6. import pandas as pd
  7. path = "images"
  8. ListNames = os.listdir(path)
  9.  
  10. # inicjowanie biblioteki
  11. sfr = SimpleFacerec()
  12.  
  13. # Pobieranie użytkowników
  14. for name in ListNames:
  15. if Path(f'{path}/{name}').is_dir():
  16. #sfr.load_encoding_images(dirpath,name)
  17. sfr.load_encoding_images(f'{path}/{name}/', name)
  18. print("Załadowano obrazy dla "+name)
  19.  
  20.  
  21. # Ładowanie kamery
  22. thread.start_new_thread (cap = cv2.VideoCapture(0))
  23. cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
  24. cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
  25.  
  26. # Inicjowanie podglądu
  27. while True:
  28. ret, frame = cap.read()
  29.  
  30. if not ret:
  31. print("Ignoring empty camera frame.")
  32. break
  33. # Detect Faces
  34. face_locations, face_names = sfr.detect_known_faces(frame)
  35. for face_loc, name in zip(face_locations, face_names):
  36. y1, x2, y2, x1 = face_loc[0], face_loc[1], face_loc[2], face_loc[3]
  37.  
  38. if name in ["Nieznany", "Unicestwić"]:
  39. cv2.putText(frame, name, (x1, y1 - 10), cv2.FONT_HERSHEY_DUPLEX, 1, (0, 0, 200), 2)
  40. cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 0, 200), 4)
  41. else:
  42. cv2.putText(frame, name,(x1, y1 - 10), cv2.FONT_HERSHEY_DUPLEX, 1, (0, 200, 0), 2)
  43. cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 200, 0), 4)
  44. break;
  45.  
  46.  
  47. cv2.imshow("Frame", frame)
  48.  
  49. key = cv2.waitKey(1)
  50. if key == 27:
  51. break
  52.  
  53. cap.release()
  54. cv2.destroyAllWindows()
[PYTHON] pobierz, plaintext


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 smile.gif, apropo unicestwiania w kodzie smile.gif

Ogólnie inaczej wyglądałem kiedyś, ale pisanie tego kodu zmusza mnie do sprawdzenia jak długo komputer będzie Ciebie rozpoznawać tongue.gif
aras785
Spadek FPS wynika zapewne z algorytmu wykrywania twarzy.. tutaj chyba nic nie zdziałasz.. chyba że napiszesz wykrywanie po swojemu.
Johnas
mam drugi kod który tworzy jakiś plik w formacie pickle, ale tam nic nie rozumiem... z resztą w tym też nie... tam myli twarze, a u mnie poznaje jedną, a kiedy wgrałem syna twarz to albo poznaje Jego, albo mnie...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.