Skip to main content

Multi-Object Tracking

Multi-Object Tracking (MOT) は、video frame をまたいで、複数 object に 一貫した identity を付けて追跡する task です。Autonomous driving、surveillance、sports analytics、video editing、robot interaction で重要です。

Tracking-by-detection

最も主流な枠組みです。

各 frame で detector を回し、frame 間で box を association することで track を作ります。

代表的 method

Method一言で
SORTKalman filter + IoU + Hungarian で軽量に track
DeepSORT+ appearance feature (re-id)
ByteTrack低信頼 detection も保持して association
BoT-SORTCamera motion 補正 + 強い re-id
OC-SORTObservation-centric な motion 推定
MOTR / TrackFormerDETR を tracking に拡張 (end-to-end)

ByteTrack の核心

ByteTrack の特徴は、スコアが低い detection も捨てないことです。

これにより、occlusion で一時的にスコアが落ちた object を、再出現したときに同じ ID に戻しやすくなります。

End-to-end tracking

MOTR、TrackFormer、MeMOTR などは、DETR 系 decoder の object query を frame を跨いで継承することで、tracking を end-to-end に解きます。今後の主流候補です。

SAM 2 との関係

SAM 2 は、prompt された object を mask レベルで video 中追跡します。MOT が box ベースであるのに対し、SAM 2 は mask + identity を扱う段階に来ています。

評価指標

  • MOTA / MOTP: 古典的指標
  • IDF1: ID consistency の指標
  • HOTA: detection と association を分解した指標 (現在の主流)

数式で見る tracking-by-detection

Multi-object tracking では、各 frame の detection を track に対応付けます。Track ii と detection jj の対応 cost を CijC_{ij} とすると、assignment は次の最小化問題になります。

minXi,jCijXij\min_{\mathbf{X}}\sum_{i,j} C_{ij}X_{ij}

ここで、Xij{0,1}X_{ij}\in\{0,1\} は track ii と detection jj を対応させるかどうかを表します。Cost には bbox の IoU、appearance embedding の距離、motion prediction の Mahalanobis distance などを混ぜます。

Kalman filter を使う場合、track の状態 xt\mathbf{x}_t は次のように予測されます。

xtt1=Fxt1t1\mathbf{x}_{t|t-1}=\mathbf{F}\mathbf{x}_{t-1|t-1}

Detection zt\mathbf{z}_t との innovation は次の通りです。

rt=ztHxtt1\mathbf{r}_t=\mathbf{z}_t-\mathbf{H}\mathbf{x}_{t|t-1}

この式の気持ちは、「過去の運動から予測した位置と、現在の detection がどれくらい合うか」を測ることです。MOT の難しさは、occlusion や近接した人物により、この assignment が曖昧になる点にあります。

関連ページ

主なソース