Bỏ để qua phần nội dung

Interactive Object Detection: Gradio & Ultralytics YOLO11 🚀

Giới thiệu về Phát hiện đối tượng tương tác

This Gradio interface provides an easy and interactive way to perform object detection using the Ultralytics YOLO11 model. Users can upload images and adjust parameters like confidence threshold and intersection-over-union (IoU) threshold to get real-time detection results.



Xem: Gradio Integration with Ultralytics YOLO11

Tại sao sử dụng Gradio để phát hiện đối tượng?

  • Giao diện thân thiện với người dùng: Gradio cung cấp một nền tảng đơn giản để người dùng tải lên hình ảnh và trực quan hóa kết quả phát hiện mà không cần bất kỳ yêu cầu mã hóa nào.
  • Điều chỉnh thời gian thực: Các thông số như độ tin cậy và ngưỡng IoU có thể được điều chỉnh nhanh chóng, cho phép phản hồi ngay lập tức và tối ưu hóa kết quả phát hiện.
  • Khả năng tiếp cận rộng: Giao diện web Gradio có thể được truy cập bởi bất kỳ ai, làm cho nó trở thành một công cụ tuyệt vời cho các cuộc biểu tình, mục đích giáo dục và thử nghiệm nhanh.

Ảnh chụp màn hình ví dụ Gradio

Cách cài đặt Gradio

pip install gradio

Cách sử dụng giao diện

  1. Tải lên hình ảnh: Nhấp vào 'Tải lên hình ảnh' để chọn tệp hình ảnh để phát hiện đối tượng.
  2. Điều chỉnh thông số:
    • Ngưỡng tin cậy: Thanh trượt để đặt mức tin cậy tối thiểu để phát hiện đối tượng.
    • Ngưỡng IoU: Thanh trượt để đặt ngưỡng IoU để phân biệt các đối tượng khác nhau.
  3. Xem kết quả: Hình ảnh được xử lý với các đối tượng được phát hiện và nhãn của chúng sẽ được hiển thị.

Ví dụ về trường hợp sử dụng

  • Ảnh mẫu 1: Phát hiện bus với ngưỡng mặc định.
  • Ảnh mẫu 2: Phát hiện trên hình ảnh thể thao với ngưỡng mặc định.

Ví dụ sử dụng

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.

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()

Giải thích thông số

Tên tham số Kiểu Sự miêu tả
img Image Hình ảnh mà trên đó phát hiện đối tượng sẽ được thực hiện.
conf_threshold float Ngưỡng tin cậy để phát hiện các đối tượng.
iou_threshold float Ngưỡng giao nhau-over-union để phân tách đối tượng.

Thành phần giao diện Gradio

Thành phần Sự miêu tả
Đầu vào hình ảnh Để tải lên hình ảnh để phát hiện.
Sliders Để điều chỉnh ngưỡng tin cậy và IoU.
Đầu ra hình ảnh Để hiển thị kết quả phát hiện.

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. Cài đặt Gradio: Sử dụng lệnh pip install gradio.
  2. Tạo giao diện: Viết một Python tập lệnh để khởi tạo giao diện Gradio. Bạn có thể tham khảo ví dụ về mã được cung cấp trong tài liệu để biết chi tiết.
  3. Tải lên và điều chỉnh: Tải lên hình ảnh của bạn và điều chỉnh ngưỡng tin cậy và IoU trên giao diện Gradio để có kết quả phát hiện đối tượng theo thời gian thực.

Dưới đây là một đoạn mã tối thiểu để tham khảo:

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:

  • Giao diện thân thiện với người dùng: Gradio cung cấp một giao diện trực quan để người dùng tải lên hình ảnh và trực quan hóa kết quả phát hiện mà không cần bất kỳ nỗ lực mã hóa nào.
  • Điều chỉnh thời gian thực: Bạn có thể tự động điều chỉnh các thông số phát hiện như ngưỡng tin cậy và ngưỡng IoU và xem các hiệu ứng ngay lập tức.
  • Tiếp cận: Giao diện web có thể truy cập được cho bất kỳ ai, làm cho nó hữu ích cho các thí nghiệm nhanh, mục đích giáo dục và trình diễn.

Để biết thêm chi tiết, bạn có thể đọc bài đăng trên blog này.

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 models like Ultralytics YOLO11 without needing advanced programming skills. This setup is ideal for demonstrating key concepts in object detection and computer vision, 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 and object separation:

  • Ngưỡng tin cậy: Xác định mức độ tin cậy tối thiểu để phát hiện các đối tượng. Trượt để tăng hoặc giảm sự tự tin cần thiết.
  • Ngưỡng IoU: Đặt ngưỡng giao nhau trên liên minh để phân biệt giữa các đối tượng chồng chéo. Điều chỉnh giá trị này để tinh chỉnh phân tách đối tượng.

Để biết thêm thông tin về các thông số này, hãy truy cập phần giải thích thông số.

What are some practical applications of using Ultralytics YOLO11 with Gradio?

Practical applications of combining Ultralytics YOLO11 with Gradio include:

  • Trình diễn phát hiện đối tượng thời gian thực: Lý tưởng để giới thiệu cách phát hiện đối tượng hoạt động trong thời gian thực.
  • Công cụ giáo dục: Hữu ích trong môi trường học thuật để dạy các khái niệm phát hiện đối tượng và thị giác máy tính.
  • Phát triển nguyên mẫu: Hiệu quả để phát triển và thử nghiệm các ứng dụng phát hiện đối tượng nguyên mẫu một cách nhanh chóng.
  • Cộng đồng và Cộng tác: Giúp dễ dàng chia sẻ mô hình với cộng đồng để nhận phản hồi và cộng tác.

Để biết ví dụ về các trường hợp sử dụng tương tự, hãy xem Ultralytics Tin tức.

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.


📅 Created 8 months ago ✏️ Updated 10 days ago

Ý kiến