Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from ultralytics import YOLO | |
| from PIL import Image | |
| # Load YOLO model | |
| model = YOLO("best.pt") # keep best.pt in the same folder | |
| def predict(image): | |
| # Run YOLO inference | |
| results = model.predict(image, save=False) | |
| # Plot results (draw bounding boxes) | |
| result_image = Image.fromarray(results[0].plot()[:, :, ::-1]) # BGR → RGB | |
| # Collect labels and confidence scores | |
| labels = [] | |
| for box in results[0].boxes: | |
| cls = results[0].names[int(box.cls)] | |
| conf = float(box.conf) | |
| labels.append(f"{cls}: {conf:.2f}") | |
| return result_image, "\n".join(labels) if labels else "No objects detected" | |
| # Gradio UI | |
| demo = gr.Interface( | |
| fn=predict, | |
| inputs=gr.Image(type="pil"), | |
| outputs=[gr.Image(type="pil"), gr.Textbox(label="Detections")], | |
| title="YOLOv8 Object Detection", | |
| description="Upload an image to detect objects with bounding boxes and confidence scores." | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() | |