starbotica's picture
Update app.py
9cbea71 verified
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()