senyals_2.0 / app.py
xpatox08's picture
Update app.py
e049493 verified
import gradio as gr
from transformers import AutoImageProcessor, AutoModelForImageClassification, pipeline
MODEL_ID = "xpatox08/gtsrb-traffic-signs-v1"
# Cargar modelo y procesador
image_processor = AutoImageProcessor.from_pretrained(MODEL_ID)
model = AutoModelForImageClassification.from_pretrained(MODEL_ID)
classifier = pipeline(
"image-classification",
model=model,
image_processor=image_processor,
device=-1
)
def predict(img):
# Ejecutar modelo
outputs = classifier(img)
if not outputs:
return "Señal desconocida"
# Tomar la predicción con mayor score
top = max(outputs, key=lambda x: x["score"])
# El modelo YA devuelve el nombre real de la señal
label = top["label"]
return label # ← devolvemos directamente el texto
title = "Clasificador de Señales de Tráfico (GTSRB)"
description = "Sube una imagen de una señal y el modelo la identificará."
demo = gr.Interface(
fn=predict,
inputs=gr.Image(type="pil", label="Imagen de la señal"),
outputs=gr.Textbox(label="Predicción de la señal"),
title=title,
description=description,
)
if __name__ == "__main__":
demo.launch()