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()