Đến nội dung chính
Thị giác máy tính

Object Tracking trong video

Giữ identity qua thời gian bằng motion prediction, data association và quản lý track.

Mức giải thích

Detection tìm vật thể trong từng frame; tracking cố giữ một danh tính nhất quán khi vật thể di chuyển, mất dấu hoặc xuất hiện lại. Nhiều object tracking là bài toán liên kết theo thời gian, không chỉ vẽ box nhanh.

Mục tiêu học tập

  • Tách detection khỏi track state và track ID.
  • Giải thích predict–associate–update và ID switch.
  • Chọn cách đánh giá tách chất lượng phát hiện khỏi identity.

Một track nhớ điều gì?

Track state có thể chứa box, vận tốc, tuổi và độ bất định. Mỗi frame: dự đoán vị trí, ghép detection với track, cập nhật track được ghép, rồi quản lý track mới hoặc mất dấu. SORT dùng Kalman filter và Hungarian assignment trong một thiết kế tracking-by-detection.

Timestamp và khoảng cách thời gian giữa frame quan trọng: nếu bỏ frame mà vẫn giả định chu kỳ cũ, dự đoán chuyển động có thể sai. Không dùng frame tương lai trong hệ thống được đánh giá là online.

Ghép object giữa các frame

Association có thể dùng IoU, khoảng cách chuyển động hoặc embedding appearance. Deep SORT bổ sung deep appearance metric để hỗ trợ ghép qua che khuất. Trước assignment nên loại cặp không hợp lý bằng gating theo thiết kế.

Ví dụ số 1D trong mã chỉ dự đoán vị trí từ vận tốc; nó không giải bài toán ghép nhiều người và không cài toàn bộ Kalman filter.

Đọc lỗi theo chuỗi

Theo dõi false positives, false negatives, ID switches và fragmentation. Các metric như IDF1 hoặc HOTA tập trung những khía cạnh khác nhau của tracking; ghi evaluator và protocol thay vì gọi mọi chỉ số là accuracy.

Chia train/test theo sequence hoặc camera phù hợp mục tiêu. Những frame sát nhau của cùng video không nên chia ngẫu nhiên rồi được mô tả là đánh giá trên video mới.

Workflow & kiến trúc

Một ID theo vật thể qua các frame; detection mới cần được ghép với track dự đoán. Cùng màu biểu thị cùng ID minh họa, không khẳng định vật thể luôn được ghép đúng khi bị che khuất.
01Detect frame t
02Predict track states
03Gate + associate
04Update / start / retire
Workflow minh họa · Các bước cần được điều chỉnh theo bài toán thực tế.

Ứng dụng & giới hạn

  • Đo quỹ đạo và thời gian hiện diện trong video.
  • Đếm lượt đi qua một vùng bằng track thay vì box từng frame.

Điểm mạnh

Tận dụng lịch sử để giữ object identity và mô tả chuyển động.

Giới hạn cần nhớ

Occlusion dài, camera đổi cảnh và detection sai có thể gây mất track hoặc đổi ID.

Thử trong một project nhỏ

LEARN BY DOING

Tạo chuỗi vị trí 1D của hai object đi cắt nhau. Chỉ ra frame mà nearest-neighbor có thể đổi ID và thông tin bổ sung cần có để giải quyết.

PYTHON · VÍ DỤ MINH HỌA
def predict(position, velocity, dt):
    if dt < 0:
        raise ValueError("dt must be nonnegative")
    return position + velocity * dt
last_position, speed = 10.0, 2.0
assert predict(last_position, speed, 0.5) == 11.0
assert predict(last_position, speed, 1.5) == 13.0
print(predict(last_position, speed, 0.5))

Dự đoán constant-velocity 1D trên số giả định; không phải SORT, bộ association hay tracker hoàn chỉnh.

Nguồn tham khảo

  1. Bewley et al. — Simple Online and Realtime Tracking (2016)
  2. Wojke et al. — Deep Association Metric (2017)
  3. Luiten et al. — HOTA (2020)

KEEP EXPLORING

Đọc tiếp để nối các ý tưởng.