Tổng quan về các tập dữ liệu theo dõi đa đối tượng#
Theo dõi đa đối tượng là một thành phần quan trọng trong phân tích video, giúp xác định các đối tượng và duy trì ID duy nhất cho từng đối tượng được phát hiện qua các khung hình video. Ultralytics YOLO cung cấp các khả năng theo dõi mạnh mẽ có thể áp dụng cho nhiều lĩnh vực khác nhau bao gồm giám sát, phân tích thể thao và giám sát giao thông.
Định dạng tập dữ liệu#
Chế độ Track không huấn luyện một tracker hay yêu cầu tập dữ liệu dành riêng cho tracker. Hãy huấn luyện model detection, segmentation, pose hoặc OBB bằng định dạng tập dữ liệu chuẩn của tác vụ đó, sau đó sử dụng trọng số kết quả 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 inference.
Các trình theo dõi khả dụng#
Ultralytics YOLO hỗ trợ các thuật toán theo dõi sau:
- BoT-SORT - Sử dụng
botsort.yamlđể bật trình theo dõi 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 trình theo dõi này (mặc định)
Cách sử dụng#
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ì các đường theo dõi giữa các khung hình#
Để tracking liên tục qua các khung hình video, bạn có thể sử dụng tham số persist=True:
import cv2
from ultralytics import YOLO
# Load the YOLO model
model = YOLO("yolo26n.pt")
# Open the video file
cap = cv2.VideoCapture("path/to/video.mp4")
while cap.isOpened():
success, frame = cap.read()
if success:
# Run tracking with persistence between frames
results = model.track(frame, persist=True)
# Visualize the results
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 Theo dõi Đa đối tượng với Ultralytics YOLO, bạn có thể bắt đầu bằng cách sử dụng các ví dụ Python hoặc CLI được cung cấp. Dưới đây là cách bạn có thể bắt đầu:
Ví dụfrom ultralytics import YOLO model = YOLO("yolo26n.pt") # Load the YOLO26 model 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à sử dụng nó để tracking đối tượng trong nguồn video được cung cấp với các ngưỡng confidence (
conf) và Intersection over Union (iou) cụ thể. Để biết thêm chi tiết, hãy tham khảo tài liệu track mode.Ultralytics YOLO là một model object detection tiên tiến nổi tiếng với hiệu suất thời gian thực và accuracy cao. Việc sử dụng YOLO cho multi-object tracking mang lại một số lợi thế:
- Theo dõi thời gian thực: Đạt được khả năng theo dõi hiệu quả và tốc độ cao, lý tưởng cho các môi trường động.
- Tính linh hoạt với các model đã được huấn luyện sẵn: Không cần huấn luyện từ đầu; chỉ cần sử dụng các model detection, segmentation, pose hoặc OBB đã được huấn luyện sẵn.
- Dễ sử dụng: Tích hợp API đơn giản với cả Python và CLI giúp việc thiết lập các pipeline theo dõi trở nên 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 để giải quyết các vấn đề và nâng cao 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 tracking, hãy truy cập hướng dẫn sử dụng track của chúng tôi.
Có. Hãy huấn luyện model detection, segmentation, pose hoặc OBB trên tập dữ liệu tùy chỉnh của bạn, sau đó truyền trọng số của nó vào
model.track(). Bản thân tracker chạy trong quá trình inference và không yêu cầu dữ liệu huấn luyện riêng biệt.Sau khi chạy một tác vụ theo dõi với Ultralytics YOLO, kết quả bao gồm nhiều điểm dữ liệu khác nhau như ID đối tượng được theo dõi, hộp bao (bounding box) của chúng và điểm số độ tin cậy. Dưới đây là tóm tắt 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 duy nhất, giúp ích cho việc theo dõi qua các khung hình.
- Hộp bao (Bounding boxes): Những thông tin này chỉ ra vị trí của các đối tượng được theo dõi trong khung hình.
- Điểm số độ tin cậy (Confidence scores): Những thông tin này phản ánh độ tin cậy của model trong việc phát hiện đối tượng được theo dõi.
Để có 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 sửa đổi của tệp cấu hình tracker. Sao chép một tệp cấu hình tracker hiện có từ ultralytics/cfg/trackers, sửa đổi các tham số theo nhu cầu 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")