File size: 983 Bytes
770db87
 
aa0a250
 
 
 
4abea6b
770db87
aa0a250
 
 
0827c64
aa0a250
 
 
 
 
ea92f7c
 
aa0a250
770db87
 
aa0a250
 
 
 
 
770db87
 
 
 
 
 
ea92f7c
770db87
9a4f0ff
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

import gradio as gr
import torch
import json
from PIL import Image
import torchvision.transforms as transforms
from fastai.vision.all import *

with open("clases.json") as f:
    clases = json.load(f)

model = torch.load("full_model.pth", map_location="cpu", weights_only=False)
model.eval()

tfms = transforms.Compose([
    transforms.Resize((224, 224)),
    transforms.ToTensor(),
    transforms.Normalize([0.485, 0.456, 0.406],
                         [0.229, 0.224, 0.225]),
])

def clasificar_zona(imagen):
    img = Image.fromarray(imagen).convert("RGB")
    tensor = tfms(img).unsqueeze(0)
    with torch.no_grad():
        probs = torch.softmax(model(tensor), dim=1)[0]
    return dict(zip(clases, map(float, probs)))

demo = gr.Interface(
    fn=clasificar_zona,
    inputs=gr.Image(),
    outputs=gr.Label(num_top_classes=4),
    title="🔐 Security Room Classifier",
    description="Identifica en qué zona de la casa fue tomada la imagen.",
)
demo.launch(share=True)