Spaces:
Sleeping
Sleeping
import gradio as gr | |
import monai | |
import torch | |
from monai.networks.nets import UNet | |
from PIL import Image | |
import albumentations as A | |
from albumentations.pytorch import ToTensorV2 | |
import numpy as np | |
model = UNet( | |
spatial_dims=2, | |
in_channels=3, | |
out_channels=1, | |
channels=[16, 32, 64, 128, 256, 512], | |
strides=(2, 2, 2, 2, 2), | |
num_res_units=4, | |
dropout=0.15, | |
) | |
model.load_state_dict(torch.load("best_model.pth")) | |
model.eval() | |
def greet(image_path): | |
image = Image.open(image_path).convert("RGB") | |
image = np.array(image) / 255.0 | |
image = image.astype(np.float32) | |
inference_transforms = A.Compose([ | |
A.Resize(height=512, width=512), | |
ToTensorV2(), | |
]) | |
image = inference_transforms(image=image)["image"] | |
image = image.unsqueeze(0) | |
with torch.no_grad(): | |
mask_pred = model(image) | |
return mask_pred[0] | |
demo = gr.Interface( | |
fn=greet, | |
title="Histapathology segmentation", | |
inputs=[ | |
gr.File(label="Input image (512x512)") | |
], | |
outputs=[ | |
gr.File(label="Model Prediction") | |
], | |
) | |
demo.launch() | |