Object Tracking: Từ YOLO Detection đến Theo Dõi Đối Tượng Trong Video
Nếu Object Detection trả lời câu hỏi “Trong khung hình này có gì?”, thì Object Tracking đi thêm một bước: “Đối tượng này có phải là đối tượng tôi vừa thấy ở frame trước không?”
Đây là khác biệt khá quan trọng khi làm Video AI. YOLO có thể phát hiện một chiếc xe, một người hay một vật thể trong từng frame, nhưng để biết đối tượng đó đang di chuyển như thế nào xuyên suốt video, chúng ta cần thêm một lớp tracking.
Nói đơn giản: Detection giúp AI nhìn thấy đối tượng, còn Tracking giúp AI nhớ đối tượng đó.
1. Từ YOLO Detection đến Object Tracking
YOLO sẽ phân tích từng frame và trả về các thông tin như class, bounding box và confidence.
Ví dụ:
Nhìn riêng từng frame thì đây chỉ là ba lần phát hiện một chiếc xe. Nhưng tracker có thể liên kết chúng lại:
Lúc này hệ thống hiểu rằng đây là cùng một chiếc xe đang di chuyển, chứ không phải ba chiếc xe khác nhau.
Đó chính là giá trị lớn nhất của Object Tracking.
2. Tracker thực sự làm gì?
Sau khi YOLO phát hiện các đối tượng, tracker cần quyết định detection mới thuộc về đối tượng nào đang được theo dõi.
Để làm điều đó, tracker có thể sử dụng nhiều thông tin:
- Vị trí của bounding box.
- Khoảng cách giữa các đối tượng.
- IoU (Intersection over Union).
- Hướng và tốc độ chuyển động.
- Confidence của detection.
- Appearance feature trong những tracker nâng cao.
Ví dụ, nếu một chiếc xe ở frame trước nằm bên trái và frame hiện tại xuất hiện ở vị trí hơi dịch sang phải, tracker có thể xác định hai detection này thuộc cùng một track.
Khi làm việc tốt, ID của đối tượng sẽ được duy trì ổn định:
Frame 01 Frame 02 Frame 03 Frame 04
Car ID 07 → ID 07 → ID 07 → ID 07
Person ID 12 → ID 12 → ID 12 → ID 12
Nhờ vậy, hệ thống có thể bắt đầu hiểu chuyển động theo thời gian, thay vì chỉ phân tích từng hình ảnh độc lập.
3. SORT, DeepSORT và ByteTrack khác nhau thế nào?
Không có một tracker duy nhất phù hợp cho mọi trường hợp. Một số thuật toán thường gặp trong các pipeline Computer Vision là SORT, DeepSORT và ByteTrack.
SORT tập trung vào tốc độ và sự đơn giản, phù hợp với những hệ thống cần tracking realtime mà không muốn thêm quá nhiều computation.
DeepSORT bổ sung thông tin về appearance của đối tượng. Điều này có ích khi nhiều người hoặc phương tiện cùng xuất hiện và có khả năng đi ngang qua nhau.
ByteTrack có một cách tiếp cận khá thú vị: thay vì bỏ hoàn toàn những detection có confidence thấp, nó có thể tận dụng chúng trong quá trình matching. Điều này giúp duy trì track tốt hơn trong một số tình huống đối tượng bị che khuất hoặc detection không thực sự rõ ràng.
Vì vậy, khi lựa chọn tracker, bài toán không chỉ là “cái nào chính xác nhất?”, mà còn phải cân bằng giữa accuracy, tốc độ, latency và tài nguyên GPU.
4. Vì sao Tracking khó hơn Detection?
Tracking lại phải xử lý cả chiều thời gian:
Và video thực tế hiếm khi “đẹp” như dữ liệu benchmark.
Một người có thể bị một chiếc xe che khuất. Hai người có thể đi ngang qua nhau. Một chiếc xe có thể di chuyển rất nhanh. Camera thậm chí có thể tự di chuyển.
Ví dụ:
Tracker phải xác định liệu đối tượng xuất hiện trở lại có phải ID cũ hay một đối tượng mới.
Đây là lúc những thuật toán tracking khác nhau bắt đầu tạo ra sự khác biệt về khả năng duy trì ID.
5. Tracking mở ra nhiều bài toán Video Analytics
Từ đó có thể biết đối tượng đã di chuyển theo hướng nào, đi qua khu vực nào hoặc xuất hiện trong camera bao lâu.
Đây là nền tảng cho nhiều bài toán như:
- Đếm người và phương tiện.
- Theo dõi xe trong camera giao thông.
- Phát hiện đối tượng đi vào khu vực giới hạn.
- Phân tích hướng di chuyển.
- Tính thời gian đối tượng xuất hiện.
- Phân tích hành vi trong video.
Pipeline lúc này có thể mở rộng thành:
Nói cách khác, Tracking chính là lớp kết nối giữa“AI nhìn thấy gì”và“AI hiểu chuyện gì đang diễn ra trong video”.
6. GPU không chỉ chạy YOLO
YOLO có thể là workload nặng nhất, nhưng không có nghĩa những phần còn lại không ảnh hưởng tới hiệu năng.
Đặc biệt khi hệ thống có nhiều camera, số lượng frame cần xử lý tăng rất nhanh.
Ví dụ:
Lúc này hệ thống không chỉ cần đủ sức chạy inference mà còn phải decode, xử lý frame, truyền dữ liệu, tracking và encode output liên tục.
Đó cũng là lý do khi benchmark Video AI, chỉ nhìn vào FPS của YOLO đôi khi chưa đủ. Cần nhìn vào toàn bộ pipeline và xem bottleneck nằm ở đâu.
7. Tối ưu Tracking cho nhiều camera
Có khá nhiều cách để giảm tải cho hệ thống.
Một trong những cách đơn giản là không chạy detection trên mọi frame.
Ví dụ:
Frame 01 → YOLO Detection
Frame 02 → Tracking
Frame 03 → Tracking
Frame 04 → YOLO Detection
Tracker sẽ duy trì vị trí của đối tượng giữa những lần detection.
Ngoài ra, có thể cân nhắc:
- Giảm độ phân giải input khi phù hợp.
- Batch nhiều frame từ các camera.
- Tối ưu preprocessing/postprocessing.
- Sử dụng hardware video decode/encode.
- Phân bổ workload hợp lý giữa CPU và GPU.
Với hệ thống nhiều camera, việc tận dụng NVDEC cho video decoding và NVENC cho encoding có thể giúp pipeline tránh dồn toàn bộ công việc video vào CPU hoặc phần compute chính của GPU.
Khi workload bắt đầu tăng lên, việc thử nghiệm trên nhiều cấu hình GPU cũng trở nên cần thiết. Đây là lúc GPU cloud như iRender khá hữu ích: có thể dựng môi trường để benchmark YOLO + Tracker, thử các độ phân giải hoặc số lượng camera khác nhau, rồi điều chỉnh cấu hình GPU theo workload thực tế thay vì phải đầu tư một hệ thống cố định ngay từ đầu.
8. Từ Object Tracking đến Video AI thực tế
Ở đây, mỗi thành phần đảm nhiệm một vai trò khác nhau.
YOLO giúp phát hiện đối tượng.
Tracker giúp duy trì danh tính của đối tượng qua nhiều frame.
NVDEC/NVENC xử lý phần video I/O.
Còn GPU cung cấp năng lực tính toán để toàn bộ pipeline có thể chạy ở tốc độ phù hợp.
Khi số lượng camera tăng từ vài stream lên hàng chục hoặc hàng trăm stream, cách thiết kế pipeline và phân bổ tài nguyên sẽ trở nên quan trọng không kém việc chọn model.
9. Kết luận
Object Tracking là bước chuyển từ Detection sang Video Intelligence.
Nếu YOLO cho chúng ta biết “có một chiếc xe ở đây”, Tracking giúp trả lời những câu hỏi tiếp theo: “Chiếc xe đó là chiếc nào, nó đã đi đâu và đang di chuyển như thế nào?”
Kết hợp YOLO với các tracker như SORT, DeepSORT hoặc ByteTrack, chúng ta có thể xây dựng nền tảng cho rất nhiều ứng dụng Video AI như giao thông thông minh, giám sát, đếm đối tượng và phân tích hành vi.
Và khi pipeline mở rộng lên nhiều camera, bài toán không còn đơn thuần là chạy model trên GPU. Decode, preprocessing, inference, tracking và encode đều phải được tính đến.
Đó cũng là lúc việc có một hạ tầng GPU linh hoạt để test, benchmark và scale theo workload trở nên quan trọng. Với các pipeline Computer Vision cần nhiều GPU hoặc muốn thử nghiệm nhanh nhiều cấu hình, iRender GPU Cloud có thể được sử dụng như một môi trường để đưa pipeline từ thử nghiệm sang triển khai thực tế.
FAQs
- Object Tracking là gì?
Object Tracking là kỹ thuật theo dõi một đối tượng xuyên suốt nhiều frame trong video. - YOLO có làm Object Tracking không?
Có. YOLO có thể kết hợp với các tracker để phát hiện và theo dõi đối tượng trong video. - YOLO Detection khác Object Tracking thế nào?
Detection tìm đối tượng trong từng frame, còn Tracking duy trì ID của đối tượng qua nhiều frame. - SORT, DeepSORT và ByteTrack là gì?
Đây là những thuật toán tracking phổ biến, giúp liên kết các detection giữa các frame. - Object Tracking có cần GPU không?
Không bắt buộc, nhưng GPU rất hữu ích khi chạy YOLO + Tracking realtime hoặc xử lý nhiều camera. - Object Tracking dùng để làm gì?
Tracking được dùng cho đếm người, đếm xe, theo dõi phương tiện, phân tích chuyển động và Video Analytics. - Có thể chạy YOLO Tracking trên GPU Cloud không?
Có. GPU Cloud như iRender có thể dùng để thử nghiệm, benchmark và triển khai các pipeline YOLO + Object Tracking với nhiều cấu hình GPU khác nhau.
AI Insights
AI/DeepLearning & Khám phá những chuyển động mới.

