Spaces:
Runtime error
Runtime error
import gradio as gr | |
from PIL import Image | |
import numpy as np | |
from gradio import components | |
import torchvision | |
from torchvision.models.detection import ( | |
maskrcnn_resnet50_fpn, | |
MaskRCNN_ResNet50_FPN_Weights, | |
) | |
import torchvision.transforms.functional as F | |
import torch | |
from torchvision.utils import draw_segmentation_masks | |
weights = MaskRCNN_ResNet50_FPN_Weights.DEFAULT | |
transforms = weights.transforms() | |
model = maskrcnn_resnet50_fpn(weights=weights, progress=False) | |
model = model.eval() | |
def segment_and_show(image): | |
# abc | |
input_image = Image.fromarray(image) | |
input_tensor = torch.tensor(np.array(input_image)) | |
input_tensor = input_tensor.permute(2, 0, 1) | |
input_image = transforms(input_image) | |
output = model([input_image])[0] | |
proba_threshold = 0.5 | |
masks = output["masks"] > proba_threshold | |
masks = masks.squeeze(1) | |
image_with_segmasks = draw_segmentation_masks(input_tensor, masks, alpha=0.7) | |
return np.array(F.to_pil_image(image_with_segmasks)) | |
default_image = Image.open("demo.jpeg") | |
iface = gr.Interface( | |
fn=segment_and_show, | |
inputs=components.Image(value=default_image, sources=["upload", "clipboard"]), | |
outputs=components.Image(type="pil"), | |
title="Urban Autonomy Instance Segmentation Demo", | |
description="Upload an image or use the default to see the instance segmentation model in action.", | |
) | |
if __name__ == "__main__": | |
iface.launch() | |