Spaces:
Running
Running
File size: 1,744 Bytes
47cf216 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
import cv2
from deepface import DeepFace
import time
# Essaie d'ouvrir la caméra (0 par défaut)
cap = cv2.VideoCapture(0)
print("📸 Caméra active. Regarde l'objectif...")
print("Appuie sur la touche 'q' pour quitter.")
last_analysis_time = 0
current_text = "Recherche..."
x, y, w, h = 0, 0, 0, 0
while True:
ret, frame = cap.read()
if not ret:
print("Erreur: Impossible de lire la caméra")
break
# Analyse toutes les 0.5 secondes
if time.time() - last_analysis_time > 0.5:
try:
# enforce_detection=False évite le crash si pas de visage
result = DeepFace.analyze(frame, actions=['emotion'], enforce_detection=False)
# DeepFace renvoie une liste
if isinstance(result, list):
data = result[0]
else:
data = result
emotion = data['dominant_emotion']
score = data['emotion'][emotion]
current_text = f"{emotion.upper()} ({int(score)}%)"
region = data['region']
x, y, w, h = region['x'], region['y'], region['w'], region['h']
last_analysis_time = time.time()
except Exception as e:
pass
# Dessine le carré et le texte si un visage est trouvé
if w > 0:
cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.putText(frame, current_text, (x, y-10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 255, 0), 2)
cv2.imshow('NeuroLink Face Test', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
# Force la fermeture des fenêtres sur Mac
for i in range(5):
cv2.waitKey(1)
|