Buck-vs-Doe / app.py
codewithRiz's picture
Update app.py
ae07fb0 verified
from ultralytics import YOLO
import gradio as gr
import numpy as np
from PIL import Image
# -------------------------
# Load detection model
# -------------------------
model = YOLO("buck_vs_doe_Detection_best.pt")
# -------------------------
# Inference function
# -------------------------
def predict(image):
# Run inference (YOLO accepts numpy RGB directly)
results = model(image)
# Take first result (single image)
r = results[0]
# Plot results (BGR numpy array)
im_bgr = r.plot()
# Convert BGR → RGB for Gradio
im_rgb = im_bgr[..., ::-1]
return im_rgb
# -------------------------
# Gradio UI
# -------------------------
app = gr.Interface(
fn=predict,
inputs=gr.Image(type="numpy", label="Upload Image"),
outputs=gr.Image(type="numpy", label="Detection Result"),
title="Buck Tracker AI – Deer Detection",
description="YOLO-based buck vs doe detection using Ultralytics native plotting."
)
# -------------------------
# Launch
# -------------------------
if __name__ == "__main__":
app.launch()