Tổng quan về các dataset 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 đố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 khả năng tracking 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à giám sát giao thông.
Định dạng dataset#
Chế độ Track không huấn luyện tracker và không yêu cầu dataset dành riêng cho tracker. Hãy huấn luyện model detection, segmentation, pose hoặc OBB bằng định dạng dataset tiêu chuẩn của tác vụ đó, sau đó sử dụng weights 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 giữa các khung hình trong thời gian inference.
Các tracker khả dụng#
Ultralytics YOLO hỗ trợ các thuật toán tracking 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#
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#
Để 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()FAQ#
Để sử dụng tracking đ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") # 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 model đó để tracking các đối tượng trong nguồn video đã cho, 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 về chế độ track.Ultralytics YOLO là một model phát hiện đối tượng tiên tiến, nổi tiếng với hiệu năng thời gian thực và độ chính xác cao. Sử dụng YOLO cho tracking đa đối tượng mang lại một số ưu điểm:
- Tracking thời gian thực: Đạt hiệu quả tracking cao với tốc độ nhanh, phù hợp cho các môi trường năng động.
- Linh hoạt với các model pretrained: 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 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 tracking trở nên dễ dàng.
- Tài liệu toàn diện và hỗ trợ từ cộng đồng: Ultralytics cung cấp tài liệu đầy đủ và forum cộng đồng năng động để khắc phục sự cố cũng như cải thiện các model tracking 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 dataset tùy chỉnh của bạn, sau đó truyền weights của model đó vào
model.track(). Tracker tự chạy trong quá trình inference và không yêu cầu dữ liệu huấn luyện riêng.Sau khi chạy một tác vụ tracking với Ultralytics YOLO, kết quả bao gồm nhiều điểm dữ liệu như ID của các đối tượng được tracking, bounding box và confidence score của chúng. 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 tracking: Mỗi đối tượng được gán một ID duy nhất, giúp tracking đối tượng đó qua các khung hình.
- Bounding box: Cho biết vị trí của các đối tượng được tracking trong khung hình.
- Confidence score: Phản ánh mức độ tin cậy của model khi phát hiện đối tượng được tracking.
Để 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 file cấu hình tracker. Sao chép một file 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 file này khi chạy tracker:
from ultralytics import YOLO model = YOLO("yolo26n.pt") results = model.track(source="video.mp4", tracker="custom_tracker.yaml")