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.
199 lines
9.2 KiB
199 lines
9.2 KiB
--- |
|
comments: true |
|
description: Discover an interactive way to perform object detection with Ultralytics YOLO11 using Gradio. Upload images and adjust settings for real-time results. |
|
keywords: Ultralytics, YOLO11, Gradio, object detection, interactive, real-time, image processing, AI |
|
--- |
|
|
|
# Interactive [Object Detection](https://www.ultralytics.com/glossary/object-detection): Gradio & Ultralytics YOLO11 🚀 |
|
|
|
## Introduction to Interactive Object Detection |
|
|
|
This Gradio interface provides an easy and interactive way to perform object detection using the [Ultralytics YOLO11](https://github.com/ultralytics/ultralytics/) model. Users can upload images and adjust parameters like confidence threshold and intersection-over-union (IoU) threshold to get real-time detection results. |
|
|
|
<p align="center"> |
|
<br> |
|
<iframe loading="lazy" width="720" height="405" src="https://www.youtube.com/embed/pWYiene9lYw" |
|
title="YouTube video player" frameborder="0" |
|
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" |
|
allowfullscreen> |
|
</iframe> |
|
<br> |
|
<strong>Watch:</strong> Gradio Integration with Ultralytics YOLO11 |
|
</p> |
|
|
|
## 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. |
|
|
|
<p align="center"> |
|
<img width="800" alt="Gradio example screenshot" src="https://github.com/ultralytics/docs/releases/download/0/gradio-example-screenshot.avif"> |
|
</p> |
|
|
|
## How to Install the Gradio |
|
|
|
```bash |
|
pip install gradio |
|
``` |
|
|
|
## How to Use the Interface |
|
|
|
1. **Upload Image:** Click on 'Upload Image' to choose an image file for object detection. |
|
2. **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. |
|
3. **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 YOLO11 model. Supports classification tasks, detection tasks, segmentation tasks, and key point tasks. |
|
|
|
```python |
|
import gradio as gr |
|
import PIL.Image as Image |
|
|
|
from ultralytics import ASSETS, YOLO |
|
|
|
model = YOLO("yolo11n.pt") |
|
|
|
|
|
def predict_image(img, conf_threshold, iou_threshold): |
|
"""Predicts objects in an image using a YOLO11 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 YOLO11n 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. | |
|
|
|
## FAQ |
|
|
|
### How do I use Gradio with Ultralytics YOLO11 for object detection? |
|
|
|
To use Gradio with Ultralytics YOLO11 for object detection, you can follow these steps: |
|
|
|
1. **Install Gradio:** Use the command `pip install gradio`. |
|
2. **Create Interface:** Write a Python script to initialize the Gradio interface. You can refer to the provided code example in the [documentation](#usage-example) for details. |
|
3. **Upload and Adjust:** Upload your image and adjust the confidence and IoU thresholds on the Gradio interface to get real-time object detection results. |
|
|
|
Here's a minimal code snippet for reference: |
|
|
|
```python |
|
import gradio as gr |
|
|
|
from ultralytics import YOLO |
|
|
|
model = YOLO("yolo11n.pt") |
|
|
|
|
|
def predict_image(img, conf_threshold, iou_threshold): |
|
results = model.predict( |
|
source=img, |
|
conf=conf_threshold, |
|
iou=iou_threshold, |
|
show_labels=True, |
|
show_conf=True, |
|
) |
|
return results[0].plot() if results else None |
|
|
|
|
|
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 YOLO11", |
|
description="Upload images for YOLO11 object detection.", |
|
) |
|
iface.launch() |
|
``` |
|
|
|
### What are the benefits of using Gradio for Ultralytics YOLO11 object detection? |
|
|
|
Using Gradio for Ultralytics YOLO11 object detection offers several benefits: |
|
|
|
- **User-Friendly Interface:** Gradio provides an intuitive interface for users to upload images and visualize detection results without any coding effort. |
|
- **Real-Time Adjustments:** You can dynamically adjust detection parameters such as confidence and IoU thresholds and see the effects immediately. |
|
- **Accessibility:** The web interface is accessible to anyone, making it useful for quick experiments, educational purposes, and demonstrations. |
|
|
|
For more details, you can read this [blog post](https://www.ultralytics.com/blog/ai-and-radiology-a-new-era-of-precision-and-efficiency). |
|
|
|
### Can I use Gradio and Ultralytics YOLO11 together for educational purposes? |
|
|
|
Yes, Gradio and Ultralytics YOLO11 can be utilized together for educational purposes effectively. Gradio's intuitive web interface makes it easy for students and educators to interact with state-of-the-art [deep learning](https://www.ultralytics.com/glossary/deep-learning-dl) models like Ultralytics YOLO11 without needing advanced programming skills. This setup is ideal for demonstrating key concepts in object detection and [computer vision](https://www.ultralytics.com/glossary/computer-vision-cv), as Gradio provides immediate visual feedback which helps in understanding the impact of different parameters on the detection performance. |
|
|
|
### How do I adjust the confidence and IoU thresholds in the Gradio interface for YOLO11? |
|
|
|
In the Gradio interface for YOLO11, you can adjust the confidence and IoU thresholds using the sliders provided. These thresholds help control the prediction [accuracy](https://www.ultralytics.com/glossary/accuracy) and object separation: |
|
|
|
- **Confidence Threshold:** Determines the minimum confidence level for detecting objects. Slide to increase or decrease the confidence required. |
|
- **IoU Threshold:** Sets the intersection-over-union threshold for distinguishing between overlapping objects. Adjust this value to refine object separation. |
|
|
|
For more information on these parameters, visit the [parameters explanation section](#parameters-explanation). |
|
|
|
### What are some practical applications of using Ultralytics YOLO11 with Gradio? |
|
|
|
Practical applications of combining Ultralytics YOLO11 with Gradio include: |
|
|
|
- **Real-Time Object Detection Demonstrations:** Ideal for showcasing how object detection works in real-time. |
|
- **Educational Tools:** Useful in academic settings to teach object detection and computer vision concepts. |
|
- **Prototype Development:** Efficient for developing and testing prototype object detection applications quickly. |
|
- **Community and Collaborations:** Making it easy to share models with the community for feedback and collaboration. |
|
|
|
For examples of similar use cases, check out the [Ultralytics blog](https://www.ultralytics.com/blog/monitoring-animal-behavior-using-ultralytics-yolov8). |
|
|
|
Providing this information within the documentation will help in enhancing the usability and accessibility of Ultralytics YOLO11, making it more approachable for users at all levels of expertise.
|
|
|