File size: 1,253 Bytes
4cd84c0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
import gradio as gr
from fastai.vision.all import *
import torchvision.transforms as transforms
# Cargar el modelo exportado
learn = load_learner('mi_modelo.pth')
def transform_image(image):
my_transforms = transforms.Compose([transforms.ToTensor(),
transforms.Normalize(
[0.485, 0.456, 0.406],
[0.229, 0.224, 0.225])])
image_aux = image
return my_transforms(image_aux).unsqueeze(0)
def predict(image):
# Preprocesamiento de la imagen
image = transforms.Resize((480,640))(image)
tensor = transform_image(image=image)
# Predicci贸n
with torch.no_grad():
outputs = learn.model(tensor) # Usamos learn.model para acceder al modelo subyacente
outputs = torch.argmax(outputs,1)
# Postprocesamiento
mask = np.array(outputs.cpu())
mask[mask==1]=255
mask=np.reshape(mask,(480,640))
mask = Image.fromarray(mask.astype('uint8'))
return mask
# Crear interfaz
iface = gr.Interface(
fn=predict,
inputs=gr.Image(type="pil"),
outputs=gr.Image(type="pil"),
title="Segmentaci贸n Sem谩ntica",
description="Suba una imagen para obtener su m谩scara de segmentaci贸n.",
)
iface.launch() |