Spaces:
Sleeping
Sleeping
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) |