Spaces:
Running
Running
import gradio as gr | |
from fastai.vision.all import * | |
import skimage | |
# parámetros para el recorte | |
#x,y = 280,70 | |
#ancho,alto = 1024,715 | |
# en la nueva versión solo entrenamos con la primera imagen, no con las cuatro | |
# esquina superior | |
x,y = 383,113 | |
# esquina inferior | |
ancho,alto = 628,356 | |
box = (x,y,ancho,alto) | |
#learn = load_learner('cirref.pkl') | |
learn = load_learner('cref-10e.pkl') | |
labels = learn.dls.vocab | |
def predict(img): | |
img = PILImage.create(img) | |
#recortamos la parte de la imagen que nos interesa | |
img =img.crop(box) | |
pred,pred_idx,probs = learn.predict(img) | |
prediccion = {labels[i]: float(probs[i]) for i in range(len(labels))} | |
# si queremos mostrar la imagen recortada haremos esto | |
#return prediccion,img | |
# si no, mostramos solo la predicción con su probabilidad | |
return prediccion | |
title = "Operado o no operado" | |
description = """ | |
Demostración creada por StarBótica | |
Academia de Nuevas Tecnologías en Sevilla | |
Clasificador de topografías | |
A partir de una topografía de Oculus Pentacam muestra la probabilidad de que el ojo haya sido sometido a cirugía refractiva o no. | |
""" | |
interpretation='default' | |
enable_queue=True | |
# como entrada usamos una topografía generada por Oculus Pentacam | |
entrada = gr.Image(shape=(1024, 715)) | |
# si queremos mostrar la imagen recortada colocamos un componente adicional | |
#salida = [gr.Label(num_top_classes=2),gr.Image(type='pil')] | |
salida = gr.Label(num_top_classes=2) | |
gr.Interface(fn=predict,inputs=entrada,outputs=salida,title=title,description=description,interpretation=interpretation,enable_queue=enable_queue).launch() |