You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.2 KiB
4.2 KiB
comments | description | keywords |
---|---|---|
true | Learn to use Gradio and Ultralytics YOLOv8 for interactive object detection. Upload images and adjust detection parameters in real-time. | Gradio, Ultralytics YOLOv8, object detection, interactive AI, Python |
Interactive Object Detection: Gradio & Ultralytics YOLOv8 🚀
Introduction to Interactive Object Detection
This Gradio interface provides an easy and interactive way to perform object detection using the Ultralytics YOLOv8 model. Users can upload images and adjust parameters like confidence threshold and intersection-over-union (IoU) threshold to get real-time detection results.
Why Use Gradio for Object Detection?
- User-Friendly Interface: Gradio offers a straightforward platform for users to upload images and visualize detection results without any coding requirement.
- Real-Time Adjustments: Parameters such as confidence and IoU thresholds can be adjusted on the fly, allowing for immediate feedback and optimization of detection results.
- Broad Accessibility: The Gradio web interface can be accessed by anyone, making it an excellent tool for demonstrations, educational purposes, and quick experiments.
How to Install the Gradio
pip install gradio
How to Use the Interface
- Upload Image: Click on 'Upload Image' to choose an image file for object detection.
- Adjust Parameters:
- Confidence Threshold: Slider to set the minimum confidence level for detecting objects.
- IoU Threshold: Slider to set the IoU threshold for distinguishing different objects.
- View Results: The processed image with detected objects and their labels will be displayed.
Example Use Cases
- Sample Image 1: Bus detection with default thresholds.
- Sample Image 2: Detection on a sports image with default thresholds.
Usage Example
This section provides the Python code used to create the Gradio interface with the Ultralytics YOLOv8 model. Supports classification tasks, detection tasks, segmentation tasks, and key point tasks.
import PIL.Image as Image
import gradio as gr
from ultralytics import ASSETS, YOLO
model = YOLO("yolov8n.pt")
def predict_image(img, conf_threshold, iou_threshold):
"""Predicts and plots labeled objects in an image using YOLOv8 model with adjustable confidence and IOU thresholds."""
results = model.predict(
source=img,
conf=conf_threshold,
iou=iou_threshold,
show_labels=True,
show_conf=True,
imgsz=640,
)
for r in results:
im_array = r.plot()
im = Image.fromarray(im_array[..., ::-1])
return im
iface = gr.Interface(
fn=predict_image,
inputs=[
gr.Image(type="pil", label="Upload Image"),
gr.Slider(minimum=0, maximum=1, value=0.25, label="Confidence threshold"),
gr.Slider(minimum=0, maximum=1, value=0.45, label="IoU threshold")
],
outputs=gr.Image(type="pil", label="Result"),
title="Ultralytics Gradio",
description="Upload images for inference. The Ultralytics YOLOv8n model is used by default.",
examples=[
[ASSETS / "bus.jpg", 0.25, 0.45],
[ASSETS / "zidane.jpg", 0.25, 0.45],
]
)
if __name__ == '__main__':
iface.launch()
Parameters Explanation
Parameter Name | Type | Description |
---|---|---|
img |
Image |
The image on which object detection will be performed. |
conf_threshold |
float |
Confidence threshold for detecting objects. |
iou_threshold |
float |
Intersection-over-union threshold for object separation. |
Gradio Interface Components
Component | Description |
---|---|
Image Input | To upload the image for detection. |
Sliders | To adjust confidence and IoU thresholds. |
Image Output | To display the detection results. |