コンピュータービジョンにおけるMulti-Object Tracking (MOT)を探ります。自律走行、小売などにおいて、Ultralytics YOLO26を使用してエンティティをdetectし、trackする方法を学びましょう。
Multi-Object Tracking (MOT) は、コンピュータービジョン (CV)における動的なタスクであり、ビデオストリーム内で複数の異なるエンティティをdetectし、時間の経過とともにそれらのIDを維持します。各フレームを孤立したスナップショットとして扱う標準的な物体検出とは異なり、MOTは人工知能 (AI)に時間的次元を導入します。群衆の中の特定の歩行者や高速道路上の車両など、detectされた各インスタンスに一意の識別番号 (ID) を割り当てることで、MOTアルゴリズムは、システムが軌跡をtrackし、行動を分析し、相互作用を理解することを可能にします。この機能は、現代のビデオ理解の基礎であり、変化する環境における連続性を機械が認識することを可能にします。
現代のほとんどのtrackシステムは、「tracking-by-detection」パラダイムで動作します。このアプローチは、プロセスを2つの主要な段階に分離します。すなわち、フレーム内にあるものを識別し、その発見を過去の既知のオブジェクトと関連付けることです。
用語は似ていますが、Multi-Object Tracking (MOT)はSingle Object Tracking (SOT)とは大きく異なります。SOTは最初のフレームで初期化された1つの特定のターゲットをtrackすることに焦点を当て、他のすべてのエンティティを無視することがよくあります。対照的に、MOTはいつでもシーンに出入りする可能性のある、未知かつ変動する数のターゲットを処理しなければなりません。これにより、MOTは計算上より要求が厳しくなります。なぜなら、trackの開始、終了、および複数の移動体間の複雑な相互作用を処理するための堅牢なロジックが必要となるからです。
複数のエンティティを同時にtrackする能力は、いくつかの主要産業でイノベーションを推進しています。
Ultralyticsは、最先端モデルを用いたトラッキングの実装を簡素化します。
track() このメソッドは、detectとtrackのロジックをシームレスに統合し、次のようなアルゴリズムをサポートします。
バイトトラック そして
ボット・ソート。以下の例は、推奨される方法を使用してビデオ内の車両をtrackする方法を示しています。
YOLO26モデル.
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は依然として困難な分野です。オクルージョンが主な困難であり、オブジェクトが交差したり障害物の後ろに隠れたりすると、識別を維持することは複雑です。混雑したシーン、例えば賑やかなマラソンや鳥の群れなどは、データアソシエーションアルゴリズムの限界を試します。さらに、高解像度ビデオストリームを処理しながらリアルタイム推論速度を維持するには、効率的なモデルアーキテクチャと、しばしばNVIDIA Jetsonデバイスのような特殊なハードウェアが必要です。
これらの課題に対処するため、研究者たちは検出と追跡を単一のネットワークに統合するエンドツーエンドの深層学習アプローチを模索しており、また、困難なデータセットにアノテーションを付け、堅牢なカスタムモデルを訓練するためにUltralytics Platformを活用しています。

未来の機械学習で、新たな一歩を踏み出しましょう。