Phát hiện đối tượng tương tác: Gradio & Ultralytics YOLO11 🚀
Giới thiệu về Phát hiện Đối tượng Tương tác
Giao diện Gradio này cung cấp một cách dễ dàng và tương tác để thực hiện phát hiện đối tượng bằng mô hình Ultralytics YOLO11 . Người dùng có thể tải lên hình ảnh và điều chỉnh các thông số như ngưỡng tin cậy và ngưỡng giao nhau trên hợp (IoU) để có được kết quả phát hiện theo thời gian thực.
Đồng hồ: Tích hợp Gradio với Ultralytics YOLO11
Tại sao nên 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 cho phép người dùng tải hình ảnh lên 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 theo 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 ngay lập tức, 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 truy cập rộng rãi: Bất kỳ ai cũng có thể truy cập vào giao diện web Gradio, khiến nó trở thành công cụ tuyệt vời cho mục đích trình diễn, giáo dục và thử nghiệm nhanh.
Cách cài đặt Gradio
Cách sử dụng giao diện
- Tải ảnh lên: Nhấp vào 'Tải ảnh lên' để chọn tệp ảnh nhằm phát hiện đối tượng.
- Điều chỉnh thông số:
- Ngưỡng tin cậy: Thanh trượt để thiết lập mức tin cậy tối thiểu khi phát hiện đối tượng.
- Ngưỡng IoU: Thanh trượt để thiết lập ngưỡng IoU nhằm phân biệt các đối tượng khác nhau.
- Xem kết quả: Hình ảnh đã 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ị.
Các trường hợp sử dụng ví dụ
- Hình ảnh mẫu 1: Phát hiện xe buýt với ngưỡng mặc định.
- Hì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
Phần này cung cấp Python mã được sử dụng để tạo giao diện Gradio với Ultralytics YOLO11 mô hình. Hỗ trợ các nhiệm vụ phân loại, nhiệm vụ phát hiện, nhiệm vụ phân đoạn và nhiệm vụ điểm chính.
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 tham số
Tên tham số | Kiểu | Sự miêu tả |
---|---|---|
img |
Image |
Hình ảnh mà việc 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 đối tượng. |
iou_threshold |
float |
Ngưỡng giao nhau trên hợp để 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 hình ảnh lên để phát hiện. |
Thanh trượt | Để đ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. |
CÂU HỎI THƯỜNG GẶP
Làm thế nào để tôi sử dụng Gradio với Ultralytics YOLO11 để phát hiện vật thể?
Để sử dụng Gradio với Ultralytics YOLO11 để phát hiện đối tượng, bạn có thể làm theo các bước sau:
- Cài đặt Gradio: Sử dụng lệnh
pip install gradio
. - 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ụ mã được cung cấp trong tài liệu để biết chi tiết.
- Tải lên và điều chỉnh: Tải hình ảnh của bạn lên và điều chỉnh ngưỡng độ tin cậy và IoU trên giao diện Gradio để có được kết quả phát hiện đối tượng theo thời gian thực.
Sau đây là đoạn mã tối thiểu để bạn 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()
Những lợi ích của việc sử dụng Gradio là gì? Ultralytics YOLO11 phát hiện vật thể?
Sử dụng Gradio cho Ultralytics YOLO11 phát hiện đối tượng mang lại một số lợi ích:
- Giao diện thân thiện với người dùng: Gradio cung cấp giao diện trực quan cho phép người dùng tải hình ảnh lên và trực quan hóa kết quả phát hiện mà không cần bất kỳ nỗ lực viết mã nào.
- Điều chỉnh theo thời gian thực: Bạn có thể điều chỉnh các tham số phát hiện như ngưỡng độ tin cậy và IoU một cách linh hoạt và thấy hiệu quả ngay lập tức.
- Khả năng truy cập: Giao diện web có thể truy cập được cho bất kỳ ai, rất 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.
Tôi có thể sử dụng Gradio và Ultralytics YOLO11 cùng nhau vì mục đích giáo dục?
Vâng, Gradio và Ultralytics YOLO11 có thể được sử dụng cùng nhau cho mục đích giáo dục một cách hiệu quả. Giao diện web trực quan của Gradio giúp học sinh và nhà giáo dục dễ dàng tương tác với các mô hình học sâu tiên tiến như Ultralytics YOLO11 mà không cần kỹ năng lập trình nâng cao. Thiết lập này lý tưởng để chứng minh các khái niệm chính trong phát hiện đối tượng và thị giác máy tính , vì Gradio cung cấp phản hồi trực quan ngay lập tức giúp hiểu tác động của các thông số khác nhau đến hiệu suất phát hiện.
Làm thế nào để tôi điều chỉnh ngưỡng độ tin cậy và IoU trong giao diện Gradio cho YOLO11 ?
Trong giao diện Gradio cho YOLO11 , bạn có thể điều chỉnh ngưỡng độ tin cậy và IoU bằng cách sử dụng các thanh trượt được cung cấp. Các ngưỡng này giúp kiểm soát độ chính xác dự đoán và phân tách đối tượng:
- Ngưỡng tin cậy: Xác định mức độ tin cậy tối thiểu để phát hiện đối tượng. Trượt để tăng hoặc giảm mức độ tin cậy cần thiết.
- Ngưỡng IoU: Đặt ngưỡng giao điểm trên hợp để 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 sự tách biệt đố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ố .
Một số ứng dụng thực tế của việc sử dụng là gì? Ultralytics YOLO11 với Gradio?
Ứng dụng thực tế của việc kết hợp Ultralytics YOLO11 với Gradio bao gồm:
- Trình diễn phát hiện đối tượng theo thời gian thực: Lý tưởng để trình diễn cách phát hiện đối tượng theo thời gian thực.
- Công cụ giáo dục: Hữu ích trong môi trường học thuật để giảng dạy các khái niệm về 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ả cho việc 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: 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 blog Ultralytics .
Việc cung cấp thông tin này trong tài liệu sẽ giúp tăng cường khả năng sử dụng và khả năng truy cập của Ultralytics YOLO11 , giúp người dùng ở mọi cấp độ chuyên môn đều có thể tiếp cận dễ dàng hơn.