Ultralytics YOLO27:
Get Started

Tổng quan về các bộ dữ liệu theo dõi đa đối tượng#

Theo dõi đa đối tượng là thành phần quan trọng trong phân tích video, giúp xác định đối tượng và duy trì ID riêng cho từng đối tượng được phát hiện qua các khung hình. Ultralytics YOLO cung cấp khả năng theo dõi mạnh mẽ, có thể áp dụng trong nhiều lĩnh vực như giám sát, phân tích thể thao và theo dõi giao thông.

Định dạng bộ dữ liệu#

Chế độ theo dõi không huấn luyện tracker và không yêu cầu bộ dữ liệu riêng cho tracker. Hãy huấn luyện model phát hiện, phân đoạn, tư thế hoặc OBB bằng định dạng bộ dữ liệu tiêu chuẩn của tác vụ tương ứng, sau đó sử dụng trọng số thu được với model.track() hoặc yolo track. Tracker được chọn sẽ liên kết các dự đoán của model qua các khung hình tại thời điểm suy luận.

Các tracker hiện có#

Ultralytics YOLO hỗ trợ các thuật toán theo dõi sau:

  • BoT-SORT - Sử dụng botsort.yaml để bật tracker này
  • ByteTrack - Sử dụng bytetrack.yaml để bật tracker này
  • OC-SORT - Sử dụng ocsort.yaml để bật tracker này
  • Deep OC-SORT - Sử dụng deepocsort.yaml để bật tracker này
  • FastTracker - Sử dụng fasttrack.yaml để bật tracker này
  • TrackTrack - Sử dụng tracktrack.yaml để bật tracker này (mặc định)

Cách sử dụng#

Ví dụ
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
results = model.track(source="https://youtu.be/LNwODJXcvt4", conf=0.1, iou=0.7, show=True)

Duy trì track giữa các khung hình#

Để theo dõi liên tục qua các khung hình video, bạn có thể sử dụng tham số persist=True:

Ví dụ
import cv2

from ultralytics import YOLO

# Tải model YOLO
model = YOLO("yolo26n.pt")

# # Mở tệp video
cap = cv2.VideoCapture("path/to/video.mp4")

while cap.isOpened():
    success, frame = cap.read()
    if success:
        # Chạy theo dõi với trạng thái được duy trì giữa các khung hình
        results = model.track(frame, persist=True)

        # Trực quan hóa kết quả
        annotated_frame = results[0].plot()
        cv2.imshow("Tracking", annotated_frame)

        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
    else:
        break

cap.release()
cv2.destroyAllWindows()

Câu hỏi thường gặp#

  • Để sử dụng tính năng theo dõi đa đối tượng với Ultralytics YOLO, bạn có thể bắt đầu bằng các ví dụ Python hoặc CLI được cung cấp. Sau đây là cách bắt đầu:

    Ví dụ
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")  # Tải model YOLO26
    results = model.track(source="https://youtu.be/LNwODJXcvt4", conf=0.1, iou=0.7, show=True)

    Các lệnh này tải model YOLO26 và dùng model đó để theo dõi đối tượng trong nguồn video đã cho, với các ngưỡng độ tin cậy cụ thể (conf) và Intersection over Union (iou). Để biết thêm chi tiết, hãy tham khảo tài liệu về chế độ theo dõi.

  • Ultralytics YOLO là model phát hiện đối tượng tiên tiến nhất, nổi tiếng nhờ hiệu năng thời gian thực và độ chính xác cao. Sử dụng YOLO để theo dõi đa đối tượng mang lại một số ưu điểm:

    • Theo dõi thời gian thực: Theo dõi hiệu quả với tốc độ cao, lý tưởng cho các môi trường biến động.
    • Linh hoạt với model pretrained: Không cần huấn luyện từ đầu; chỉ cần sử dụng model phát hiện, phân đoạn, tư thế hoặc OBB đã pretrained.
    • Dễ sử dụng: Tích hợp API đơn giản với cả Python và CLI giúp thiết lập pipeline theo dõi dễ dàng.
    • Tài liệu phong phú và hỗ trợ cộng đồng: Ultralytics cung cấp tài liệu toàn diện và diễn đàn cộng đồng tích cực để khắc phục sự cố và cải thiện các model theo dõi của bạn.

    Để biết thêm chi tiết về cách thiết lập và sử dụng YOLO cho tác vụ theo dõi, hãy truy cập hướng dẫn sử dụng chế độ theo dõi.

  • Có. Huấn luyện model phát hiện, phân đoạn, tư thế hoặc OBB trên bộ dữ liệu tùy chỉnh, sau đó truyền trọng số của model đó vào model.track(). Tracker tự chạy trong quá trình suy luận và không cần dữ liệu huấn luyện riêng.

  • Sau khi chạy tác vụ theo dõi bằng Ultralytics YOLO, kết quả bao gồm nhiều điểm dữ liệu như ID của đối tượng được theo dõi, hộp giới hạn và điểm độ tin cậy. Dưới đây là tổng quan ngắn gọn về cách diễn giải các kết quả này:

    • ID được theo dõi: Mỗi đối tượng được gán một ID riêng, giúp theo dõi đối tượng đó qua các khung hình.
    • Hộp giới hạn: Cho biết vị trí của các đối tượng được theo dõi trong khung hình.
    • Điểm độ tin cậy: Thể hiện mức độ tin cậy của model khi phát hiện đối tượng được theo dõi.

    Để xem hướng dẫn chi tiết về cách diễn giải và trực quan hóa các kết quả này, hãy tham khảo hướng dẫn xử lý kết quả.

  • Bạn có thể tùy chỉnh tracker bằng cách tạo một phiên bản đã chỉnh sửa của tệp cấu hình tracker. Sao chép tệp cấu hình tracker hiện có từ ultralytics/cfg/trackers, sửa đổi các tham số khi cần và chỉ định tệp này khi chạy tracker:

    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    results = model.track(source="video.mp4", tracker="custom_tracker.yaml")

Bình luận