Object Tracking
Tìm hiểu cách theo dõi đối tượng hoạt động trong thị giác máy tính. Khám phá cách sử dụng Ultralytics YOLO26 để xác định và giám sát các đối tượng có ID duy nhất để phân tích thời gian thực.
Object tracking là một quá trình động trong computer vision (CV) bao gồm việc xác định các thực thể cụ thể trong video và theo dõi chuyển động của chúng qua một chuỗi các khung hình. Khác với phân tích hình ảnh tĩnh, vốn xử lý mỗi ảnh chụp một cách độc lập, tính năng theo dõi đưa thêm chiều thời gian vào. Điều này cho phép các hệ thống artificial intelligence (AI) gán một số nhận dạng (ID) duy nhất cho mỗi mục tiêu được phát hiện—chẳng hạn như ô tô, con người hoặc động vật—và duy trì nhận dạng đó khi đối tượng di chuyển, thay đổi hướng hoặc bị che khuất tạm thời. Khả năng này là nền tảng của video understanding nâng cao, giúp máy móc phân tích hành vi, tính toán quỹ đạo và rút ra các thông tin chi tiết có thể hành động từ dữ liệu thô.
Cách thức hoạt động của Object Tracking#
Các hệ thống tracking hiện đại thường sử dụng mô hình "tracking-by-detection". Quy trình này kết hợp các mô hình phát hiện mạnh mẽ với các thuật toán chuyên dụng để liên kết các kết quả phát hiện theo thời gian. Quá trình này thường bao gồm ba giai đoạn chính:
-
Detection: Trong mỗi khung hình, một model object detection, chẳng hạn như model tiên tiến YOLO26, sẽ quét hình ảnh để định vị các đối tượng quan tâm. Model trả về các bounding boxes xác định phạm vi không gian của từng đối tượng.
-
Motion Prediction: Các thuật toán như Kalman Filter ước tính vị trí tương lai của một đối tượng dựa trên vận tốc và quỹ đạo hiện tại của nó. Dự đoán này làm giảm không gian tìm kiếm cho khung hình tiếp theo, giúp hệ thống hoạt động hiệu quả hơn.
-
Data Association: Hệ thống khớp các phát hiện mới với các track hiện có bằng cách sử dụng các phương pháp tối ưu hóa như Hungarian algorithm. Bước này thường dựa trên các chỉ mét như Intersection over Union (IoU) để đo lường mức độ chồng chéo giữa một hộp dự đoán và một phát hiện mới. Các tracker nâng cao cũng có thể sử dụng tính năng feature extraction bằng hình ảnh để nhận dạng lại các đối tượng trông giống nhau.
Object Tracking so với Object Detection#
Mặc dù các thuật ngữ này có mối liên hệ chặt chẽ, chúng phục vụ các chức năng riêng biệt trong pipeline machine learning (ML).
- Object Detection trả lời câu hỏi, "Có những gì trong hình ảnh này và chúng ở đâu?" Nó không lưu trạng thái (stateless), nghĩa là nó không có bộ nhớ về các khung hình trước đó. Nếu một chiếc ô tô chạy qua video, trình phát hiện sẽ thấy một "ô tô" ở khung hình 1 và một "ô tô" ở khung hình 2, nhưng không biết đó là cùng một phương tiện.
- Object Tracking trả lời cho câu hỏi: "Đối tượng cụ thể này đang đi đâu?" Nó có trạng thái. Nó kết nối "chiếc xe" ở khung hình 1 với "chiếc xe" ở khung hình 2, cho phép hệ thống ghi lại rằng "Car ID #42" đang di chuyển từ trái sang phải. Điều này rất cần thiết cho các tác vụ như predictive modeling và đếm.
Các ứng dụng trong thực tế#
Khả năng duy trì nhận dạng đối tượng cho phép các ứng dụng real-time inference phức tạp trên nhiều ngành công nghiệp khác nhau.
- Intelligent Transportation Systems: Tracking đóng vai trò quan trọng đối với autonomous vehicles để di chuyển an toàn. Bằng cách theo dõi người đi bộ và các phương tiện khác, ô tô có thể dự đoán các va chạm tiềm ẩn. Hơn nữa, các kỹ sư giao thông sử dụng các hệ thống này để speed estimation nhằm thực thi các quy định an toàn và tối ưu hóa luồng giao thông.
- Retail Analytics: Các cửa hàng truyền thống sử dụng AI in retail để hiểu hành vi của khách hàng. Tracking cho phép quản lý cửa hàng thực hiện object counting để đo lưu lượng khách hàng qua lại, phân tích thời gian lưu lại trước các màn hình hiển thị bằng heatmaps, và tối ưu hóa queue management để giảm thời gian chờ đợi.
- Sports Analysis: Trong thể thao chuyên nghiệp, các huấn luyện viên sử dụng tracking kết hợp với pose estimation để phân tích cơ sinh học của cầu thủ và đội hình chiến thuật. Dữ liệu này mang lại lợi thế cạnh tranh bằng cách tiết lộ các μοtif mà mắt thường không thể nhìn thấy.
Triển khai Tracking với Python#
Ultralytics giúp việc triển khai tracking hiệu suất cao trở nên đơn giản. Chế độ track trong thư viện tự động xử lý việc phát hiện, dự đoán chuyển động và gán ID. Ví dụ bên dưới cho thấy cách sử dụng model YOLO26 tương thích với Ultralytics Platform để theo dõi các đối tượng trong video.
from ultralytics import YOLO
# Load the official YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Track objects in a video file or webcam (source=0)
# 'show=True' displays the video with bounding boxes and unique IDs
results = model.track(source="https://ultralytics.com/images/bus.jpg", show=True)
# Access the unique tracking IDs from the results
if results[0].boxes.id is not None:
print(f"Detected Track IDs: {results[0].boxes.id.cpu().numpy()}")Các khái niệm liên quan#
Để hiểu rõ hơn về hệ sinh thái tracking, việc khám phá instance segmentation là rất hữu ích, vì nó theo dõi các đường viền cấp độ pixel chính xác của một đối tượng thay vì chỉ là một hộp giới hạn. Ngoài ra, các bài toán Multi-Object Tracking (MOT) thường liên quan đến các benchmark được sử dụng rộng rãi như MOTChallenge để đánh giá khả năng xử lý các cảnh đông đúc và tình trạng bị che khuất của thuật toán. Đối với việc triển khai trong môi trường production, các lập trình viên thường tận dụng các công cụ như NVIDIA DeepStream hoặc OpenCV để tích hợp các model này vào các pipeline hiệu quả.






