| | import gradio as gr |
| | import torch |
| | import numpy as np |
| | from PIL import Image |
| | from huggingface_hub import hf_hub_download |
| | from fastai.vision.all import * |
| |
|
| | |
| | class TargetMaskConvertTransform(ItemTransform): |
| | def encodes(self, x): return x |
| |
|
| | class SegmentationAlbumentationsTransform(ItemTransform): |
| | def __init__(self, aug=None): pass |
| | def encodes(self, x): return x |
| |
|
| | def get_y_fn(x): return x |
| | def ParentSplitter(x): return x |
| |
|
| | |
| | REPO_ID = "rugarce/model_practica3" |
| | FILENAME = "model.pkl" |
| |
|
| | model_path = hf_hub_download(repo_id=REPO_ID, filename=FILENAME) |
| |
|
| | learn = load_learner(model_path, cpu=True) |
| | model = learn.model |
| | model.eval() |
| |
|
| | |
| | def predict(image): |
| | image = image.resize((640,480)) |
| | image = np.array(image).astype(np.float32) / 255.0 |
| | image = torch.tensor(image).permute(2,0,1).unsqueeze(0) |
| |
|
| | with torch.no_grad(): |
| | out = model(image) |
| | mask = out.argmax(dim=1).squeeze().numpy().astype(np.uint8) |
| |
|
| | return Image.fromarray(mask * 50) |
| |
|
| | demo = gr.Interface( |
| | fn=predict, |
| | inputs=gr.Image(type="pil"), |
| | outputs=gr.Image(type="pil"), |
| | title="Segmentación U-Net", |
| | ) |
| |
|
| | demo.launch() |
| |
|