Spaces:
Sleeping
Sleeping
File size: 2,507 Bytes
3439baf a74fada 3439baf bae9813 9d447e1 4b2fb38 bae9813 94726f6 4b2fb38 3673a8e 94726f6 3673a8e 94726f6 3673a8e 94726f6 9d447e1 94726f6 3439baf 22a7cc0 a74fada 94726f6 3439baf 1183947 |
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 |
import os
import gradio as gr
from transformers import pipeline
pipe = pipeline("image-classification",
model="dima806/facial_emotions_image_detection")
def launch(input):
etiquetas_espanol = {'happy': 'felicidad', 'neutral': 'neutral',
'surprise': 'sorpresa', 'sad': 'tristeza',
'angry': 'ira', 'fear': 'miedo',
'disgust': 'aversión'}
emocion_puntajes = pipe(input)
cadenas_formateadas = []
for emocion in emocion_puntajes:
label = emocion['label']
score = emocion['score']
palabra_espanol = etiquetas_espanol[label]
porcentaje = round(score * 100, 1)
cadena_formateada = f"{palabra_espanol}: {porcentaje}%"
cadenas_formateadas.append(cadena_formateada)
# Unir las cadenas formateadas con comas y un espacio
resultado = ", ".join(cadenas_formateadas)
return resultado
titulo = """
<div style="text-align: center;">
<h1 style="font-weight: 900; font-size: 2.50rem; margin-bottom: 1px;">Analizador de emociones Ekman/Goleman</h1>
</div>
"""
descripcion = """
<div style="font-size: 1.10rem; margin-bottom: 1px;">
Amigos de EyB, ¿están dispuestos a someterse al ojo implacable de un robot analizador de emociones? El ojo al que nadie puede engañar.
Un robot rigurosamente científico —'Contra la ignorancia y el fanatismo'— basado en el modelo de 6 emociones primarias de las personas humanas de Ekman/Goleman: felicidad, sorpresa, tristeza, miedo, ira y aversión. A las que hay que sumar una séptima que podemos llamar “neutra” por no llamarla “impavidez” o “ni chicha ni limoná”.
Ofrecemos este servicio de forma enteramente gratuita a los lectores de EyB. Suban una foto que incluya rostros humanos bien visibles y sorpréndase (o no) con el diagnóstico. Si hay varios caretos, saca la media para calcular una “emoción grupal”. Por supuesto, los resultados se expresan en forma probabilística. Por ejemplo, detrás de ese 83% de felicidad se esconde un 6% de ira que solo el ojo afilado e impasible de la máquina puede detectar.
¡Suerte en su Test de Ekman/Goleman!
</div>
"""
iface = gr.Interface(launch,
inputs=gr.Image(type='pil'),
outputs="text",
submit_btn="Analizar",
clear_btn="Limpiar",
title=titulo, description=descripcion)
iface.launch(show_api=False) |