Phát hiện đối tượng tương tác: Gradio & 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 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 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 độ tin cậy và ngưỡng giao trên hợp (IoU) để nhận kết quả phát hiện theo thời gian thực.
Watch: Deploy Ultralytics YOLO26 in a Browser with Gradio | Complete Tutorial | Vision AI 🌐
Tại sao nên sử dụng Gradio cho việc 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 ả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ác tham số như ngưỡng độ tin cậy và IoU có thể được điều chỉnh ngay lập tức, cho phé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: Giao diện web Gradio có thể được bất kỳ ai truy cập, rất phù hợp cho việc trình diễn, mục đích giáo dục và các 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 'Upload Image' để chọn một tệp ảnh dùng cho việc phát hiện đối tượng.
- Điều chỉnh tham số:
- Ngưỡng độ tin cậy: Thanh trượt để đặt mức độ tin cậy 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 của chúng sẽ được hiển thị.
Các trường hợp sử dụng ví dụ#
- Ả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 mã Python được sử dụng để tạo giao diện Gradio cho việc phát hiện đối tượng bằng Ultralytics YOLO26. Mẫu này có thể được điều chỉnh cho các tác vụ classification, instance segmentation, pose và các tác vụ YOLO khác bằng cách tải 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 tham số#
| Tên tham số | Kiểu | Mô tả |
|---|---|---|
img | Image | Ảnh sẽ được sử dụng để thực hiện phát hiện đối tượng. |
conf_threshold | float | Ngưỡng độ tin cậy khi phát hiện đối tượng. |
iou_threshold | float | Ngưỡng giao trên hợp (IoU) để tách biệt 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 phục vụ việc phát hiện. |
| Thanh trượt | Dùng để điều chỉnh các ngưỡng độ tin cậy và IoU. |
| Đầu ra ảnh | Dùng để hiển thị kết quả phát hiện. |
FAQ#
Để sử dụng Gradio với Ultralytics YOLO26 cho việc phát hiện đối tượng, bạn có thể thực hiện 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 script Python để khởi tạo giao diện Gradio. Bạn có thể tham khảo ví dụ code được cung cấp trong tài liệu để biết thêm chi tiết.
- Tải lên và điều chỉnh: Tải ảnh của bạn lên, sau đó điều chỉnh các ngưỡng độ tin cậy 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à một đ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() 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 YOLO26", description="Upload images for YOLO26 object detection.", ) iface.launch()- Cài đặt Gradio: Sử dụng lệnh
Sử dụng Gradio cho việc 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, cho phép 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: Bạn có thể điều chỉnh linh hoạt các tham số phát hiện như ngưỡng độ tin cậy và IoU, đồng thời xem ngay tác động của chúng.
- Khả năng tiếp cận: Giao diện web có thể được bất kỳ ai truy cập, rất hữu ích cho các thử nghiệm nhanh, mục đích giáo dục và việc trình diễn.
Để biết thêm chi tiết, bạn có thể đọc bài blog về AI trong X quang, trong đó trình bày 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 sử dụng hiệu quả cùng nhau cho mục đích giáo dục. Giao diện web trực quan của Gradio giúp sinh viên và giảng viên 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 rất phù hợp để minh họa 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 tức thì, giúp hiểu rõ 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ể điều chỉnh các ngưỡng độ tin cậy và IoU bằ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 của dự đoán và việc tách biệt đối tượng:
- Ngưỡng độ tin cậy: Xác định mức độ tin cậy tối thiểu khi phát hiện đối tượng. Di chuyển thanh trượt để tăng hoặc giảm mức độ tin cậy yêu cầu.
- Ngưỡng IoU: Đặt ngưỡng giao trên hợp (IoU) để phân biệt các đối tượng chồng lấp. Điều chỉnh giá trị này để tinh chỉnh việc tách biệt đố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ế của việc 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 hoạt động của 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: Hiệu quả cho việc nhanh chóng phát triển và kiểm thử các ứng dụng phát hiện đối tượng prototype.
- Cộng đồng và hợp tác: Giúp dễ dàng chia sẻ model với cộng đồng để nhận phản hồi và hợp tác.
Để xem các ví dụ về trường hợp sử dụng tương tự, hãy tham khảo blog Ultralytics về giám sát hành vi động vật, trong đó minh họa cách trực quan hóa tương tác có thể tăng cường các nỗ lực bảo tồn động vật hoang dã.