Point Tracking
コンピュータビジョンにおけるポイントトラッキングの基礎を探求します。Ultralytics YOLO26と高度なAIモデルが、ロボット工学やVFXのためにどのように正確な動きを追跡するかを学びましょう。
ポイントトラッキングは、コンピュータビジョンの基本的なタスクであり、ビデオシーケンスの連続するフレーム間で、特定の局所的なポイント(ピクセルや特徴点など)の動きを推定し、追跡することを含みます。オブジェクトトラッキングがバウンディングボックスやセグメンテーションマスクを使用してエンティティ全体の概略的な位置を監視するのに対し、ポイントトラッキングはより細かなサブピクセルレベルの詳細に焦点を当てます。これらの正確な位置間の対応関係を特定・維持することで、人工知能 (AI)システムは、複雑なモーション解析を必要とする高度なビデオ理解タスクを実現できます。
Link to this sectionポイントトラッキングの理解#
ダイナミックなシーンにおけるポイントの正確な追跡は非常に困難です。追跡ポイントは、物体がカメラの視界を一時的に遮るオクルージョンの影響を頻繁に受けたり、視野から完全に外れてしまったりすることがあります。さらに、照明の変化、視点の移動、急激な動きによって、ポイントの視覚的見え方が劇的に変化する可能性があります。
歴史的には、Lucas-Kanadeオプティカルフローのような古典的なアルゴリズムがこれらのタスクを扱ってきました。しかし、現代のアプローチでは強力なディープラーニングアーキテクチャが使用されます。Google DeepMindのTAPIR(Tracking Any Point with Initialization and Refinement)やMeta AIのCoTracker3など、主要な研究機関による最近の革新は、この分野に革命をもたらしました。ポイントを独立して追跡していた以前の手法とは異なり、CoTracker3のようなモデルはトランスフォーマーを使用して複数のポイントを共同で追跡し、同じオブジェクトに属するポイント間の物理的な依存関係を活用します。これらの最先端モデルは、現実世界のビデオで擬似ラベル付けを利用し、データ要件を大幅に削減しながら高精度なシステムをトレーニングします。
Link to this sectionポイントトラッキングと関連タスクの比較#
密接に関連しているものの、ポイントトラッキングは他のコンピュータビジョンタスクとは大きく異なります。
- オブジェクトトラッキング: オブジェクト全体(人や車など)に一意のIDを割り当て、追跡します。これは、Ultralytics YOLO26のようなオブジェクト検出モデルに大きく依存しています。
- ポーズ推定: 任意のピクセルではなく、特定の意味論的なキーポイント(人間の関節など)を追跡します。ポイントトラッキングと類似点はありますが、ポーズ推定にはオブジェクトの構造フレームワークに関する意味論的な理解が必要です。
Link to this section実社会での応用#
ポイントトラッキングは、さまざまな高度なアプリケーションを実現するために不可欠です。
- 3D再構築とStructure-from-Motion (SfM): 異なるカメラアングルやビデオフレーム間で特定の特徴を追跡することにより、システムは深度を推論し、環境の正確な3D再構築を構築できます。これは拡張現実 (AR)のマッピングに不可欠です。
- ロボティクスと自律航法: 自動運転車やロボットは、ポイントトラッキング(多くの場合ビジュアルオドメトリを介して)を使用して、周囲に対する自身の動きを把握し、軌道を計算して、複雑で動的な環境を安全に移動します。
- ビデオ編集と特殊効果: プロ仕様の視覚効果 (VFX) ソフトウェアは、揺れた映像を安定させたり、物理シーン内の動くオブジェクトにコンピュータ生成画像 (CGI)をシームレスに固定したりするために、ポイントトラッキングに大きく依存しています。
Link to this sectionUltralyticsを使用したキーポイントのトラッキング#
一般的なポイントトラッカーは任意の視覚ピクセルを追跡しますが、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は、データアノテーション、モデルトレーニング、シームレスなデプロイメントのための合理化されたソリューションを提供し、多様なエッジ環境やクラウド環境で信頼性の高いパフォーマンスを保証します。






