Multi-Object Tracking (MOT)
コンピュータビジョンにおけるマルチオブジェクトトラッキング (MOT) を探ります。自動運転、小売などで Ultralytics YOLO26 を使用してエンティティを検出し追跡する方法を学びましょう。
Multi-Object Tracking (MOT) はcomputer vision (CV)における動的なタスクであり、ビデオストリーム内の複数の異なるエンティティを検出し、時間経過にわたってその識別情報を維持することを伴います。すべてのフレームを孤立したスナップショットとして扱う標準的なobject detectionとは異なり、MOTはartificial intelligence (AI)に時間的次元を導入します。検出された各インスタンス(群衆の中の特定の歩行者や高速道路上の車両など)に一意の識別番号(ID)を割り当てることにより、MOTアルゴリズムはシステムが軌跡を追跡し、行動を分析し、相互作用を理解することを可能にします。この機能は、現代のvideo understandingの基本であり、機械が変化する環境の中で継続性を知覚できるようにします。
MOTの仕組み#
現在主流のトラッキングシステムのほとんどは、「検出によるトラッキング (tracking-by-detection)」パラダイムに基づいています。この手法では、プロセスを「フレーム内に何があるかを特定する」ことと、「その結果を過去の既知のオブジェクトと関連付ける」ことの2つの主要な段階に分けています。
-
検出: 各フレームにおいて、YOLO26のような高性能モデルが画像をスキャンしてオブジェクトの位置を特定し、bounding boxesとクラス確率を生成します。
-
モーション予測: オブジェクトが次にどこへ移動するかを予測するために、アルゴリズムはしばしばKalman Filterを使用します。この数学的ツールは速度や位置などの動的システムの状態を推定し、後続のフレームでの検索領域を絞り込むのに役立ちます。
-
データ関連付け: システムは新しい検出結果を既存のトラックに照合します。Hungarian algorithmなどの最適化手法は、マッチングのコストを最小限に抑えることでこの割り当て問題を解決し、空間的な重なりを測定するためにしばしばIntersection over Union (IoU)に依存します。
-
再識別 (ReID): オクルージョンとして知られる視覚的な障害が発生した場合、高度なトラッカーはビジュアルembeddingsを使用してオブジェクトが再出現したときにそれを認識します。これにより「IDの切り替え」を防ぎ、トンネルから出てきた車が中に入った車と同じであることをシステムが確実に把握できるようにします。
MOTと単一オブジェクトトラッキングの違い#
用語は似ていますが、Multi-Object Tracking (MOT) はSingle Object Tracking (SOT)とは大きく異なります。SOTは最初のフレームで初期化された1つの特定のターゲットを追うことに焦点を当て、多くの場合、他のすべてのエンティティを無視します。対照的に、MOTは、いつでもシーンに出入りする可能性のある、未知の可変数のターゲットを処理する必要があります。これにより、トラックの開始、終了、および複数の移動するボディ間の複雑な相互作用を処理するための堅牢なロジックが必要となるため、MOTは計算量が多くなります。
実社会での応用#
複数のエンティティを同時に追跡する能力は、いくつかの主要な産業においてイノベーションを推進しています。
- 自動運転: 自動運転車は安全にナビゲートするためにMOTに大きく依存しています。歩行者、自転車利用者、その他の車両を追跡することにより、autonomous systemsは衝突を回避するために将来の位置を予測できます。これには、信頼性を最大化するためにカメラとLiDAR sensorsからのデータを融合することがよく含まれます。
- リテールアナリティクス: 実店舗において、小売業者はAI in retailを使用して顧客の動線をマッピングします。MOTアルゴリズムは歩行者数のheatmapsを生成し、管理者が店舗のレイアウトを最適化し、ピーク時のqueue managementを改善するのに役立ちます。
- スポーツアナリティクス: プロチームは選手の動きやチームフォーメーションを分析するためにMOTを使用します。フィールド上のすべての選手を追跡することにより、コーチはpose estimation技術を使用して、スピード、移動距離、戦術的ポジショニングに関する詳細なメトリクスを抽出できます。
PythonでのMOTの実装#
Ultralyticsを使用すると、最先端モデルによる追跡を簡単に実装できます。track()メソッドは検出と追跡のロジックをシームレスに統合し、ByteTrackやBoT-SORTなどのアルゴリズムをサポートします。以下の例は、推奨されるYOLO26 modelを使用してビデオ内の車両を追跡する方法を示しています。
from ultralytics import YOLO
# Load the official YOLO26 small model
model = YOLO("yolo26s.pt")
# Track objects in a video file (or use '0' for webcam)
# The 'persist=True' argument keeps track IDs consistent between frames
results = model.track(source="traffic_analysis.mp4", show=True, persist=True)
# Print the IDs of objects tracked in the first frame
if results[0].boxes.id is not None:
print(f"Tracked IDs: {results[0].boxes.id.int().tolist()}")マルチオブジェクトトラッキングにおける課題#
進歩にもかかわらず、MOTは依然として困難な分野です。オクルージョンは主要な困難であり、オブジェクトが交差したり障害物の後ろに隠れたりするときに識別情報を維持することは複雑です。混雑したマラソンや鳥の群れなどの混雑したシーンは、data associationアルゴリズムの限界を試します。さらに、高解像度のビデオストリームを処理しながらreal-time inference速度を維持するには、効率的なモデルアーキテクチャと、しばしばNVIDIA Jetsonデバイスのような専門的なハードウェアが必要です。
これらの課題に対処するため、研究者たちは、検出と追跡を単一のネットワークに統合するエンドツーエンドのディープラーニングアプローチを模索しており、またUltralytics Platformを活用して困難なデータセットにアノテーションを付け、堅牢なカスタムモデルをトレーニングしています。






