Phát hiện đối tượng tương tác: Gradio và Ultralytics YOLO26#
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 cách dễ dàng và tương tác để thực hiện phát hiện đối tượng bằng model Ultralytics YOLO26. Người dùng có thể tải ảnh lên và điều chỉnh các tham số như ngưỡng confidence và ngưỡng giao trên hợp (IoU) để nhận kết quả phát hiện theo thời gian thực.
Xem: Triển khai Ultralytics YOLO26 trong trình duyệt với Gradio | Hướng dẫn đầy đủ | Vision AI 🌐
Tại sao nên 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 ảnh lên và trực quan hóa kết quả phát hiện mà không cần viết code.
- Điều chỉnh theo thời gian thực: Có thể điều chỉnh nhanh các tham số như confidence và ngưỡng IoU, giúp nhận phản hồi tức thì và tối ưu hóa kết quả phát hiện.
- Khả năng tiếp cận rộng rãi: Bất kỳ ai cũng có thể truy cập giao diện web Gradio, nên đây là công cụ tuyệt vời cho các buổi trình diễn, mục đích giáo dục và thử nghiệm nhanh.
Cách cài đặt Gradio#
pip install gradioCá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 dùng cho phát hiện đối tượng.
- Điều chỉnh tham số:
- Ngưỡng confidence: Thanh trượt để đặt mức confidence tối thiểu khi phát hiện đối tượng.
- Ngưỡng IoU: Thanh trượt để đặt ngưỡng IoU nhằm phân biệt các đối tượng khác nhau.
- Xem kết quả: Ảnh đã xử lý cùng các đối tượng được phát hiện và nhãn tương ứng sẽ được hiển thị.
Ví dụ trường hợp sử dụng#
- Ảnh mẫu 1: Phát hiện xe buýt với các ngưỡng mặc định.
- Ảnh mẫu 2: Phát hiện trên ảnh thể thao với các ngưỡng mặc định.
Ví dụ sử dụng#
Phần này cung cấp code Python dùng để tạo giao diện Gradio cho tác vụ phát hiện đối tượng bằng Ultralytics YOLO26. Có thể điều chỉnh ví dụ này cho các tác vụ classification, instance segmentation, pose và các tác vụ YOLO khác bằng cách nạp checkpoint model tương ứng.
import gradio as gr
from PIL import Image
from ultralytics import ASSETS, YOLO
model = YOLO("yolo26n.pt")
def predict_image(img, conf_threshold, iou_threshold):
"""Predicts objects in an image using a YOLO26 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 YOLO26n 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 các tham số#
| Tên tham số | Kiểu | Mô tả |
|---|---|---|
img | Image | Ảnh dùng để thực hiện phát hiện đối tượng. |
conf_threshold | float | Ngưỡng confidence để phát hiện đối tượng. |
iou_threshold | float | Ngưỡng giao trên hợp để tách các đối tượng. |
Các thành phần giao diện Gradio#
| Thành phần | Mô tả |
|---|---|
| Đầu vào ảnh | Dùng để tải ảnh lên nhằm phát hiện. |
| Thanh trượt | Dùng để điều chỉnh ngưỡng confidence và IoU. |
| Đầu ra ảnh | Dùng để hiển thị kết quả phát hiện. |
Câu hỏi thường gặp#
Để dùng Gradio với Ultralytics YOLO26 nhằm 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 script Python để khởi tạo giao diện Gradio. Bạn có thể tham khảo ví dụ code trong tài liệu để biết chi tiết.
- Tải ảnh lên và điều chỉnh: Tải ảnh lên, rồi điều chỉnh ngưỡng confidence và IoU trên giao diện Gradio để nhận kết quả phát hiện đối tượng theo thời gian thực.
Dưới đây là đoạn code tối giản để tham khảo:
import gradio as gr from ultralytics import YOLO model = YOLO("yolo26n.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(pil=True) # Ảnh PIL RGB; plot() không có pil=True trả về mảng BGR 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 YOLO26", description="Upload images for YOLO26 object detection.", ) iface.launch()- Cài đặt Gradio: Sử dụng lệnh
Sử dụng Gradio để phát hiện đối tượng bằng Ultralytics YOLO26 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 để người dùng tải ảnh lên và xem kết quả phát hiện mà không cần viết code.
- Điều chỉnh theo thời gian thực: Bạn có thể điều chỉnh linh hoạt các tham số phát hiện như ngưỡng confidence và IoU, đồng thời xem ngay tác động của những thay đổi đó.
- Khả năng tiếp cận: Bất kỳ ai cũng có thể truy cập giao diện web, khiến giao diện này hữu ích cho các thử nghiệm nhanh, mục đích giáo dục và buổi trình diễn.
Để biết thêm chi tiết, bạn có thể đọc bài viết blog về AI trong chẩn đoán hình ảnh, giới thiệu các kỹ thuật trực quan hóa tương tác tương tự.
Có, Gradio và Ultralytics YOLO26 có thể được kết hợp hiệu quả cho mục đích giáo dục. Giao diện web trực quan của Gradio giúp học sinh, sinh viên và nhà giáo dục dễ dàng tương tác với các model deep learning tiên tiến như Ultralytics YOLO26 mà không cần kỹ năng lập trình nâng cao. Thiết lập này lý tưởng để minh họa các khái niệm quan trọng 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 tức thì, giúp người dùng hiểu tác động của các tham số khác nhau đến hiệu suất phát hiện.
Trong giao diện Gradio cho YOLO26, bạn có thể dùng các thanh trượt được cung cấp để điều chỉnh ngưỡng confidence và IoU. Các ngưỡng này giúp kiểm soát độ chính xác của dự đoán và khả năng tách đối tượng:
- Ngưỡng confidence: Xác định mức confidence tối thiểu để phát hiện đối tượng. Kéo thanh trượt để tăng hoặc giảm mức confidence cần thiết.
- Ngưỡng IoU: Đặt ngưỡng giao trên hợp để phân biệt các đối tượng chồng lấp. Điều chỉnh giá trị này để tinh chỉnh khả năng tách đối tượng.
Để biết thêm thông tin về các tham số này, hãy truy cập phần giải thích tham số.
Các ứng dụng thực tế khi kết hợp Ultralytics YOLO26 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 để minh họa cách thức hoạt động của tính năng 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 prototype: Hữu ích để nhanh chóng phát triển và kiểm thử prototype cho các ứng dụng phát hiện đối tượng.
- Cộng đồng và cộng tác: Giúp dễ dàng chia sẻ model với cộng đồng để nhận phản hồi và cộng tác.
Để xem các ví dụ về trường hợp sử dụng tương tự, hãy tham khảo bài viết blog của Ultralytics về giám sát hành vi động vật, trong đó trình bày cách trực quan hóa tương tác có thể thúc đẩy các nỗ lực bảo tồn động vật hoang dã.