|
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) |
|
|
|
|
|
resultado = ", ".join(cadenas_formateadas) |
|
return resultado |
|
|
|
iface = gr.Interface(launch, |
|
inputs=gr.Image(type='pil'), |
|
outputs="text") |
|
|
|
iface.launch() |