jayanth7111's picture
Create app.py
3c664a3 verified
raw
history blame
1 kB
import gradio as gr
import numpy as np
import onnxruntime as ort
from PIL import Image
# Load your ONNX model
sess = ort.InferenceSession("visionguard_simplified.onnx", providers=["CPUExecutionProvider"])
# Preprocess + inference
def detect_corruption(img: Image.Image):
img = img.resize((128,128)).convert("RGB")
arr = np.array(img).astype(np.float32)/255.0
mean = np.array([0.485,0.456,0.406],dtype=np.float32)
std = np.array([0.229,0.224,0.225],dtype=np.float32)
x = ((arr-mean)/std).transpose(2,0,1)[None,...]
logits = sess.run(None, {"input": x})[0]
prob = float(1/(1+np.exp(-logits[0,0])))
return {"clean": 1-prob, "corrupted": prob}
# Gradio interface
iface = gr.Interface(
fn=detect_corruption,
inputs=gr.Image(type="pil"),
outputs=gr.Label(num_top_classes=2, label="Corruption Score"),
title="VisionGuard Corruption Detector",
description="Upload a frame, get corruption probabilities."
)
if __name__=="__main__":
iface.launch()