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 mô hình Ultralytics YOLO26. Người dùng có thể tải hình ảnh lên và điều chỉnh các tham số như ngưỡng tin cậy (confidence threshold) 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: Gradio Integration with Ultralytics YOLO26
Tại sao nên sử dụng Gradio cho 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 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 lập trình.
- Điều chỉnh 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 và tối ưu hóa kết quả phát hiện tức thì.
- Khả năng truy cập rộng rãi: Giao diện web Gradio có thể được truy cập bởi bất kỳ ai, khiến nó trở thành công cụ tuyệt vời cho các buổi 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 lên hình ảnh: Nhấp vào 'Tải lên hình ảnh' để chọn tệp hình ảnh cho việc phát hiện đối tượng.
- Điều chỉnh tham số:
- Ngưỡng tin cậy (Confidence Threshold): Thanh trượt để đặt mức tin cậy tối thiểu cho việc phát hiện đối tượng.
- Ngưỡng IoU: Thanh trượt để đặt ngưỡng IoU cho việc 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 ví dụ sử dụng
- Hình ảnh mẫu 1: Phát hiện xe buýt với các ngưỡng mặc định.
- Hình ảnh mẫu 2: Phát hiện trên một hình ả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 với mô hình Ultralytics YOLO26. Mã hỗ trợ các tác vụ phân loại, phát hiện, phân đoạn và nhận diện điểm mấu chốt (keypoint).
import gradio as gr
import PIL.Image as 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ố | Loại | Mô tả |
|---|---|---|
img | Image | Hình ảnh mà trên đó 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 trên hợp (Intersection-over-union) để tách biệt đối tượng. |
Các thành phần của giao diện Gradio
| Thành phần | Mô tả |
|---|---|
| Đầu vào hình ảnh | Để tải lên hình ảnh phục vụ việc phát hiện. |
| Thanh trượt | Để điều chỉnh ngưỡng tin cậy và ngưỡng IoU. |
| Đầu ra hình ảnh | Để hiển thị các kết quả phát hiện. |
Câu hỏi thường gặp (FAQ)
Làm thế nào để sử dụng Gradio với Ultralytics YOLO26 cho việc phát hiện đối tượng?
Để 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 đoạn mã Python để 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 lên hình ảnh của bạn và đ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 mã 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()Lợi ích của việc sử dụng Gradio cho phát hiện đối tượng với Ultralytics YOLO26 là gì?
Sử dụng Gradio cho phát hiện đối tượng với Ultralytics YOLO26 mang lại một số lợi ích:
- Giao diện thân thiện: Gradio cung cấp một giao diện trực quan cho người dùng để tải lên hình ảnh và hình dung kết quả phát hiện mà không cần nỗ lực lập trình.
- Điều chỉnh 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à ngưỡng IoU và thấy hiệu ứng ngay lập tức.
- Khả năng truy cập: Giao diện web có thể truy cập được bởi bất kỳ ai, giúp 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 về AI trong chẩn đoán hình ảnh, trong đó giới thiệu các kỹ thuật trực quan tương tác tương tự.
Tôi có thể sử dụng Gradio và Ultralytics YOLO26 cùng nhau cho mục đích giáo dục không?
Có, Gradio và Ultralytics YOLO26 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 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 cho việc 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 hình ảnh ngay lập tức, giúp hiểu rõ tác động của các tham số khác nhau đối với hiệu suất phát hiện.
Làm thế nào để điều chỉnh các ngưỡng tin cậy và IoU trong giao diện Gradio cho YOLO26?
Trong giao diện Gradio cho YOLO26, 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 của dự đoán và khả năng tách biệt đố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 yêu cầu.
- Ngưỡng IoU: Thiết lập ngưỡng giao trên hợp để phân biệt giữa 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ố.
Một số ứng dụng thực tế khi sử dụng Ultralytics YOLO26 với Gradio là gì?
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 thời gian thực: Lý tưởng để giới thiệu cách thức 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 nguyên mẫu: Hiệu quả cho việc phát triển và thử nghiệm nhanh các ứng dụng phát hiện đối tượng mẫu.
- Cộng đồng và hợp tác: Giúp việc chia sẻ mô hình với cộng đồng để nhận phản hồi và cộng tác trở nên dễ dàng.
Để xem ví dụ về các trường hợp sử dụng tương tự, hãy xem 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ể nâng cao các nỗ lực bảo tồn động vật hoang dã.