Spaces:
Sleeping
Sleeping
from ultralytics import YOLO | |
from PIL import Image | |
import gradio as gr | |
from huggingface_hub import snapshot_download | |
import os | |
model_path = "best_int8_openvino_model" | |
# Function to load the model from Hugging Face repo | |
def load_model(repo_id): | |
download_dir = snapshot_download(repo_id) | |
print(download_dir) | |
path = os.path.join(download_dir, model_path) | |
print(path) | |
detection_model = YOLO(path, task='detect') | |
return detection_model | |
# Prediction function with dynamic conf and iou | |
def predict(pilimg, conf, iou): | |
source = pilimg | |
# Run object detection with user-specified conf and iou | |
result = detection_model.predict(source, conf=conf, iou=iou) | |
# Visualize the result with bounding boxes | |
img_bgr = result[0].plot() | |
out_pilimg = Image.fromarray(img_bgr[..., ::-1]) # Convert BGR to RGB | |
return out_pilimg | |
# Hugging Face repo ID | |
REPO_ID = "Sathyadithyarithi/RRR_detection" | |
detection_model = load_model(REPO_ID) | |
# Gradio Interface | |
gr.Markdown("### Set Confidence (conf) and Intersection over Union (IoU) Thresholds") | |
gr.Interface( | |
fn=predict, | |
inputs=[ | |
gr.Image(type="pil", label="Upload Image to Detect Objects"), | |
gr.Slider(minimum=0.1, maximum=1.0, value=0.5, step=0.05, label="Confidence (conf)", info="Set the confidence threshold for object detection."), | |
gr.Slider(minimum=0.1, maximum=1.0, value=0.6, step=0.05, label="Intersection over Union (IoU)", info="Set the IoU threshold to filter detections.") | |
], | |
outputs=gr.Image(type="pil", label="Detected Image"), | |
title="Object Detection App for RRR Charan and NTR" | |
).launch(share=True) |