複数物体追跡データセットの概要#
複数物体追跡は、物体を識別し、検出された各物体に固有のIDを割り当てて動画フレーム間で追跡する、動画分析の重要な要素です。Ultralytics YOLOは、監視、スポーツ分析、交通監視など、さまざまな分野に適用できる強力な追跡機能を提供します。
データセット形式#
トラックモードではトラッカーのトレーニングは行わず、トラッカー専用のデータセットも必要ありません。検出、セグメンテーション、姿勢推定、またはOBBモデルを各タスクの標準的なデータセット形式でトレーニングし、生成された重みをmodel.track()またはyolo trackで使用してください。選択したトラッカーは、推論時にフレーム間でモデルの予測を関連付けます。
利用可能なトラッカー#
Ultralytics YOLOは、以下の追跡アルゴリズムをサポートしています。
- BoT-SORT - このトラッカーを有効にするには
botsort.yamlを使用します - ByteTrack - このトラッカーを有効にするには
bytetrack.yamlを使用します - OC-SORT - このトラッカーを有効にするには
ocsort.yamlを使用します - Deep OC-SORT - このトラッカーを有効にするには
deepocsort.yamlを使用します - FastTracker - このトラッカーを有効にするには
fasttrack.yamlを使用します - TrackTrack - このトラッカーを有効にするには
tracktrack.yamlを使用します(デフォルト)
使用方法#
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model.track(source="https://youtu.be/LNwODJXcvt4", conf=0.1, iou=0.7, show=True)フレーム間でトラックを維持する#
動画フレーム間で追跡を継続するには、persist=Trueパラメーターを使用します。
import cv2
from ultralytics import YOLO
# YOLOモデルを読み込む
model = YOLO("yolo26n.pt")
# ビデオファイルを開く
cap = cv2.VideoCapture("path/to/video.mp4")
while cap.isOpened():
success, frame = cap.read()
if success:
# フレーム間の追跡を維持して追跡を実行します
results = model.track(frame, persist=True)
# 結果を可視化する
annotated_frame = results[0].plot()
cv2.imshow("Tracking", annotated_frame)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
else:
break
cap.release()
cv2.destroyAllWindows()よくある質問#
Ultralytics YOLOで複数物体追跡を使用するには、まず用意されているPythonまたはCLIの例を利用します。開始方法は次のとおりです。
例from ultralytics import YOLO model = YOLO("yolo26n.pt") # YOLO26モデルを読み込む results = model.track(source="https://youtu.be/LNwODJXcvt4", conf=0.1, iou=0.7, show=True)これらのコマンドはYOLO26モデルを読み込み、指定した信頼度(
conf)とIntersection over Union(iou)のしきい値を使って、指定した動画ソース内の物体を追跡します。詳しくは、トラックモードのドキュメントを参照してください。Ultralytics YOLOは、リアルタイム性能と高い精度で知られる最先端の物体検出モデルです。複数物体追跡にYOLOを使用すると、次のような利点があります。
- リアルタイム追跡: 動的な環境に適した、効率的で高速な追跡を実現します。
- 事前学習済みモデルによる柔軟性: ゼロからトレーニングする必要はなく、事前学習済みの検出、セグメンテーション、姿勢推定、またはOBBモデルを使用できます。
- 使いやすさ: PythonとCLIの両方に簡単にAPIを統合でき、追跡パイプラインを手軽に構築できます。
- 充実したドキュメントとコミュニティサポート: Ultralyticsは包括的なドキュメントと活発なコミュニティフォーラムを提供しており、問題の解決や追跡モデルの改善に役立ちます。
追跡でYOLOを設定して使用する方法の詳細については、追跡の使用ガイドをご覧ください。
はい。カスタムデータセットで検出、セグメンテーション、姿勢推定、またはOBBモデルをトレーニングし、その重みを
model.track()に渡してください。トラッカー自体は推論時に動作するため、別途トレーニングデータを用意する必要はありません。Ultralytics YOLOで追跡ジョブを実行すると、追跡対象の物体ID、バウンディングボックス、信頼度スコアなど、さまざまなデータが結果に含まれます。結果の解釈方法を簡単に説明します。
- 追跡ID: 各物体には固有のIDが割り当てられ、フレーム間での追跡に役立ちます。
- バウンディングボックス: フレーム内で追跡対象の物体が位置する場所を示します。
- 信頼度スコア: 追跡対象の物体を検出したことに対するモデルの信頼度を示します。
結果の解釈と可視化に関する詳しい手順については、結果の処理ガイドを参照してください。
トラッカーの設定ファイルを変更したバージョンを作成することで、トラッカーをカスタマイズできます。ultralytics/cfg/trackersから既存のトラッカー設定ファイルをコピーし、必要に応じてパラメーターを変更したうえで、トラッカーの実行時にこのファイルを指定してください。
from ultralytics import YOLO model = YOLO("yolo26n.pt") results = model.track(source="video.mp4", tracker="custom_tracker.yaml")