Point Tracking
コンピュータビジョンにおけるポイントトラッキングの基礎を探求します。Ultralytics YOLO26と高度なAIモデルが、ロボット工学やVFXのためにどのように正確な動きを追跡するかを学びましょう。
ポイントトラッキングは、コンピュータビジョンにおける基本的なタスクであり、ビデオシーケンス内の連続するフレームにわたって、特定のローカライズされたポイント(ピクセルや明確な特徴など)の動きを時間の経過とともに推定および追跡することを含みます。バウンディングボックスやセグメンテーションマスクを使用してエンティティ全体の全体的な位置を監視するオブジェクトトラッキングとは異なり、ポイントトラッキングはより微細なサブピクセルレベルの詳細に焦点を当てます。これらの正確な位置間の対応関係を特定して維持することにより、人工知能 (AI)システムは、複雑な動作解析を必要とする高度なビデオ理解タスクを実現できます。
ポイントトラッキングの理解#
動的なシーン内のポイントを正確に追跡することは非常に困難です。追跡されるポイントは、オブジェクトが一時的にカメラの視界を遮るオクルージョンに頻繁に悩まされるか、視野から完全に外れる可能性があります。さらに、照明の変化、視点の変化、および急激な動きによって、ポイントの視覚的見た目が劇的に変わる可能性があります。
歴史的に、Lucas-Kanade optical flowのような古典的なアルゴリズムがこれらのタスクを処理していました。しかし、現代のアプローチでは、強力なディープラーニングアーキテクチャが使用されています。Google DeepMind's TAPIR(Tracking Any Point with Initialization and Refinement)やMeta AI's CoTracker3など、主要な研究機関からの最近の革新は、この分野に革命をもたらしました。ポイントを独立して追跡していた古い方法とは異なり、CoTracker3などのモデルはトランスフォーマーを使用して複数のポイントの結合トラッキングを実行し、同じオブジェクトに属するポイント間の物理的な依存関係を活用します。これらの最先端モデルは、現実世界のビデオで擬似ラベリングも利用して、データ要件を大幅に削減しながら精度の高いシステムをトレーニングします。
ポイントトラッキングと関連タスクの比較#
密接に関連しているものの、ポイントトラッキングは他のコンピュータビジョンタスクとは大きく異なります。
- オブジェクトトラッキング: オブジェクト全体(人や車など)に一意のIDを割り当てて追跡します。Ultralytics YOLO26などのオブジェクト検出モデルに強く依存しています。
- 姿勢推定: 任意のピクセルではなく、特定のセマンティックキーポイント(人間の関節など)を追跡します。ポイントトラッキングと共通点はあるものの、姿勢推定にはオブジェクトの構造的フレームワークに対するセマンティックな理解が必要です。
実社会での応用#
ポイントトラッキングは、さまざまな高度なアプリケーションを実現するために不可欠です。
- 3D再構築とSfM (Structure-from-Motion): さまざまなカメラアングルやビデオフレームにわたって特定の特徴を追跡することにより、システムは深度を推論し、環境の正確な3D再構築を構築できます。これは、拡張現実 (AR)のマッピングに不可欠です。
- ロボティクスと自律航行: 自律走行車やロボットは、(多くの場合ビジュアルオドメトリを介して)ポイントトラッキングを使用して周囲に対する自身の動きを理解し、軌道を計算し、複雑な動的環境内を安全にナビゲートします。
- 動画編集と特殊効果: プロ仕様のVFX(ビジュアルエフェクト)ソフトウェアは、ブレのある映像を安定させたり、物理的なシーン内の動くオブジェクトにコンピュータ生成画像 (CGI)をシームレスに固定したりするために、ポイントトラッキングに大きく依存しています。
Ultralyticsを使用したキーポイントのトラッキング#
一般的なポイントトラッカーは任意の視覚的ピクセルを追跡しますが、ultralyticsパッケージのポーズトラッキング機能を使用して、特定の構造的キーポイント(人の目、肩、手首など)を追跡できます。推奨されるYOLO26モデルは、動作解析に最適な高速かつエンドツーエンドのキーポイントトラッキングを提供します。
from ultralytics import YOLO
# Load the recommended YOLO26 pose model for keypoint tracking
model = YOLO("yolo26n-pose.pt")
# Perform pose tracking on a video stream to follow human keypoints over time
results = model.track(source="video.mp4", stream=True)
# Iterate through the stream to process temporal keypoint tracking data
for frame_result in results:
# Each keypoint maintains its association across frames
print(f"Tracked {len(frame_result.keypoints)} human skeletons in current frame.")コンピュータビジョンワークフローを大規模にデプロイする場合、Ultralytics Platformは、データアノテーション、モデルトレーニング、およびシームレスなデプロイのための合理化されたソリューションを提供し、多様なエッジおよびクラウド環境全体で信頼性の高いパフォーマンスを保証します。






