0% encontró este documento útil (0 votos)
24 vistas4 páginas

Análisis de emociones en video con Hume

El documento describe un código en Python que utiliza bibliotecas como OpenCV y Hume para capturar video y analizar emociones en tiempo real. Se detallan funciones clave como process_frame y process_video, que manejan el procesamiento de fotogramas y la interacción con la API de Hume. Además, se menciona la respuesta de la API que incluye diversas emociones y sus puntuaciones asociadas.

Cargado por

rayodaniel724
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
24 vistas4 páginas

Análisis de emociones en video con Hume

El documento describe un código en Python que utiliza bibliotecas como OpenCV y Hume para capturar video y analizar emociones en tiempo real. Se detallan funciones clave como process_frame y process_video, que manejan el procesamiento de fotogramas y la interacción con la API de Hume. Además, se menciona la respuesta de la API que incluye diversas emociones y sus puntuaciones asociadas.

Cargado por

rayodaniel724
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Explicación del Código

1. Importación de Librerías

 time: Librería estándar de Python que proporciona funciones para trabajar con
tiempo. Se usa aquí para hacer pausas en el procesamiento de fotogramas.

 cv2 (OpenCV): Usada para la manipulación de imágenes y video. En este caso,


para capturar video desde la cámara y procesarlo fotograma por fotograma.

 pandas: Aunque está importada, no se usa en el código. Podría ser para un


procesamiento de datos posterior que no se ha implementado en este fragmento.

 asyncio: Permite trabajar con operaciones asincrónicas (como la comunicación


con la API de Hume sin bloquear el programa).

 hume: Librería de Hume que se usa para enviar imágenes a su API para analizar
emociones en las personas mostradas en las imágenes.

2. Función process_frame
 Propósito: Procesar cada fotograma del video y enviarlo a la API de Hume para
analizar las emociones de las personas en la imagen.

 model_config: Configuración del modelo de Hume para detectar emociones


faciales.

 stream_options: Define cómo se conectará al servicio de Hume.

 cv2.imwrite: Guarda el fotograma actual como una imagen temporal.

 socket.send_file(filename): Envía la imagen a la API de Hume para el análisis.

 Impresión de resultados: Muestra las emociones detectadas en la consola.

3. Función process_video

 Propósito: Captura video desde la cámara, muestra el video en tiempo real y


envía cada fotograma a la función process_frame para su análisis.

 time.sleep(5): Pausa de 5 segundos antes de comenzar a capturar.


 cap = cv2.VideoCapture(0): Accede a la cámara web del sistema.

 cv2.imshow: Muestra el video en una ventana.

 await process_frame: Llama a la función asincrónica para procesar cada


fotograma.

 time.sleep(10): Pausa de x segundos entre cada fotograma procesado.

 Contador de fotogramas: Asegura que solo se procesen 5 fotogramas.

 cv2.waitKey(1): Permite salir de la captura de video presionando la tecla 'q'.

4. Función main y Ejecucion

 Propósito: Inicializa el cliente de Hume con la clave API proporcionada y luego


comienza el proceso de captura de video.

 Propósito: Inicia el ciclo de eventos asincrónicos, ejecutando la función main().

 AsyncHumeClient: Cliente asincrónico que se conecta a la API de Hume usando


la clave API.

 await process_video: Llama a la función process_video para empezar a capturar


y procesar los fotogramas.

RESPUESTA DE LA API POR CADA FOTOGRAMA ENVIADO:

payload_id='6a57ecd4-a359-4727-af4e-8e9a86c2a398' job_details=None burst=None


face=StreamModelPredictionsFace(predictions=[StreamModelPredictionsFacePredictionsI
tem(frame=0.0, time=None, bbox=StreamBoundingBox(x=274.9959716796875,
y=152.5815887451172, w=234.46572875976562, h=293.6021270751953),
prob=0.9995218515396118, face_id='unknown',
emotions=[EmotionEmbeddingItem(name='Admiration', score=0.1293908953666687),
EmotionEmbeddingItem(name='Adoration', score=0.13152764737606049),
EmotionEmbeddingItem(name='Aesthetic Appreciation', score=0.07251390814781189),
EmotionEmbeddingItem(name='Amusement', score=0.2791385054588318),
EmotionEmbeddingItem(name='Anger', score=0.05937659740447998),
EmotionEmbeddingItem(name='Anxiety', score=0.17475560307502747),
EmotionEmbeddingItem(name='Awe', score=0.1149793490767479),
EmotionEmbeddingItem(name='Awkwardness', score=0.21877868473529816),
EmotionEmbeddingItem(name='Boredom', score=0.3598477244377136),
EmotionEmbeddingItem(name='Calmness', score=0.3018871247768402),
EmotionEmbeddingItem(name='Concentration', score=0.2639833390712738),
EmotionEmbeddingItem(name='Contemplation', score=0.1530245989561081),
EmotionEmbeddingItem(name='Confusion', score=0.3401000499725342),
EmotionEmbeddingItem(name='Contempt', score=0.11954359710216522),
EmotionEmbeddingItem(name='Contentment', score=0.16591468453407288),
EmotionEmbeddingItem(name='Craving', score=0.05612417310476303),
EmotionEmbeddingItem(name='Determination', score=0.07726062834262848),
EmotionEmbeddingItem(name='Disappointment', score=0.25520965456962585),
EmotionEmbeddingItem(name='Disgust', score=0.09292662143707275),
EmotionEmbeddingItem(name='Distress', score=0.2462012618780136),
EmotionEmbeddingItem(name='Doubt', score=0.2339126020669937),
EmotionEmbeddingItem(name='Ecstasy', score=0.07417427003383636),
EmotionEmbeddingItem(name='Embarrassment', score=0.13069958984851837),
EmotionEmbeddingItem(name='Empathic Pain', score=0.10542809218168259),
EmotionEmbeddingItem(name='Entrancement', score=0.11573964357376099),
EmotionEmbeddingItem(name='Envy', score=0.03809939697384834),
EmotionEmbeddingItem(name='Excitement', score=0.15029527246952057),
EmotionEmbeddingItem(name='Fear', score=0.1348695158958435),
EmotionEmbeddingItem(name='Guilt', score=0.0831504613161087),
EmotionEmbeddingItem(name='Horror', score=0.07015413045883179),
EmotionEmbeddingItem(name='Interest', score=0.3013198673725128),
EmotionEmbeddingItem(name='Joy', score=0.247066468000412),
EmotionEmbeddingItem(name='Love', score=0.2031264454126358),
EmotionEmbeddingItem(name='Nostalgia', score=0.08011148869991302),
EmotionEmbeddingItem(name='Pain', score=0.1980431079864502),
EmotionEmbeddingItem(name='Pride', score=0.0710662454366684),
EmotionEmbeddingItem(name='Realization', score=0.15538948774337769),
EmotionEmbeddingItem(name='Relief', score=0.10416096448898315),
EmotionEmbeddingItem(name='Romance', score=0.07781804352998734),
EmotionEmbeddingItem(name='Sadness', score=0.26275941729545593),
EmotionEmbeddingItem(name='Satisfaction', score=0.19877640902996063),
EmotionEmbeddingItem(name='Desire', score=0.09061579406261444),
EmotionEmbeddingItem(name='Shame', score=0.08627019077539444),
EmotionEmbeddingItem(name='Surprise (negative)', score=0.07439003139734268),
EmotionEmbeddingItem(name='Surprise (positive)', score=0.062122177332639694),
EmotionEmbeddingItem(name='Sympathy', score=0.07257080078125),
EmotionEmbeddingItem(name='Tiredness', score=0.25429877638816833),
EmotionEmbeddingItem(name='Triumph', score=0.04926609992980957)], facs=None,
descriptions=None)]) facemesh=None language=None prosody=None

También podría gustarte