CouchPotato101/prostate_detection_backend
0
1import torch2import numpy as np3from utils import load_and_preprocess_image, create_tiled4 5 6def predict_image(path: str):7 # Import here to ensure model is loaded8 from model_loader import model, device9 10 if model is None:11 raise RuntimeError("Model not loaded. Call load_model() first!")12 13 image = load_and_preprocess_image(path)14 tiled = create_tiled(image)15 16 inp = tiled.astype(np.float32) / 255.017 inp = inp.transpose(2, 0, 1)18 inp = torch.tensor(inp).unsqueeze(0).to(device)19 20 with torch.no_grad():21 out = model(inp)22 probs = torch.sigmoid(out).cpu().numpy()[0]23 isup = int(np.sum(probs > 0.5))24 25 return {26 "isup_grade": isup,27 "probabilities": probs.tolist()28 }29 