Spaces:
Runtime error
Runtime error
import gradio as gr | |
import cv2 | |
import numpy as np | |
from anomalib.deploy import OpenVINOInferencer | |
from huggingface_hub import hf_hub_download | |
from anomalib import TaskType | |
from PIL import Image | |
# Load the model | |
model_path = hf_hub_download(repo_id="suidinpa/bottle-anomaly-detection", filename="model.bin") | |
metadata_path = hf_hub_download(repo_id="suidinpa/bottle-anomaly-detection", filename="metadata.json") | |
# Initialize OpenVINO inferencer | |
inferencer = OpenVINOInferencer( | |
path=model_path, | |
metadata=metadata_path, | |
device="CPU", | |
task="classification" | |
) | |
def predict(image): | |
"""Function to process the image and predict with the model""" | |
# Convert image to a format suitable for the model | |
img_array = np.array(image) | |
img_bgr = cv2.cvtColor(img_array, cv2.COLOR_RGB2BGR) | |
# Predict anomaly | |
predictions = inferencer.predict(img_bgr) | |
# Return results | |
return predictions.pred_label, predictions.pred_score | |
# Define the Gradio interface | |
interface = gr.Interface( | |
fn=predict, # The prediction function | |
inputs=gr.Image(type="numpy", label="Upload Image"), # Image input from the user | |
outputs=["text", "number"], # Text (for label) and number (for prediction score) | |
live=True # Make the app live for real-time predictions | |
) | |
# Launch the app | |
interface.launch() | |