Pose Estimation
ポーズ推定がキーポイントを使用して動きを追跡する方法を学びます。実世界の応用例を確認し、Ultralytics YOLO26で高速かつ高精度な結果を得る方法を学びます。
ポーズ推定は、物体の存在を単に検出するだけでなく、その幾何学的構造や物理的な向きまで理解する、専門性の高いコンピュータビジョン技術です。標準的な物体検出では対象の周囲に単純な矩形ボックスを描画しますが、ポーズ推定では、人体の関節(肘、膝、肩)や車両の構造上の角など、キーポイントと呼ばれる特定の意味的な点を識別します。これらのランドマークをマッピングすることで、機械学習モデルは対象の骨格表現を再構成でき、システムは2Dまたは3D空間におけるボディランゲージ、動作のダイナミクス、正確な位置を解釈できるようになります。
主要な仕組み:トップダウン方式とボトムアップ方式#
最新のポーズ推定は、高度なディープラーニングアーキテクチャに大きく依存しており、視覚データの処理には畳み込みニューラルネットワーク (CNNs)が使用されることが多いです。アルゴリズムは一般に、キーポイントを識別するため、主に次の2つの戦略のいずれかに従います。
- トップダウン方式:この手法では、まず物体検出モデルを使用して、バウンディングボックス内にある個々の対象を特定します。大きな画像から人物や物体を切り出した後、ポーズ推定器がその特定領域内のキーポイントを予測します。この方式は非常に高精度であることが多い一方、フレーム内の対象数が増えると推論レイテンシが増大する可能性があります。
- ボトムアップ方式:これに対して、この戦略では画像全体から可能性のあるすべてのキーポイント(群衆の中から「左膝」をすべて検出する場合など)を同時に検出し、関連付けアルゴリズムを使用して個々の骨格にグループ化します。人物の数にかかわらず計算コストがほぼ一定に保たれるため、混雑したシーンでのリアルタイム推論には一般にこの方式が適しています。
YOLO26のような最先端モデルは、これらの要件のバランスを取る高度なエンドツーエンドアーキテクチャを採用しており、エッジAIデバイスやモバイルプラットフォームへのデプロイに適した高速なポーズ推定を実現します。
関連するコンピュータビジョン用語との違い#
コンピュータビジョンのワークフローにおける独自の価値を理解するには、ポーズ推定を他の視覚認識タスクと区別すると役立ちます。
- 物体検出:物体が「何であるか」と「どこにあるか」の識別に焦点を当て、矩形ボックスを出力します。対象を内部の関節構造を理解しない剛体として扱います。
- インスタンスセグメンテーション:物体の正確な形状の輪郭を示す、ピクセル単位で精密なマスクを生成します。セグメンテーションは境界を提供しますが、運動学的解析に必要な関節や骨格のつながりを明示的に識別することはありません。
- ポーズ推定:内部構造を特に対象とし、あらかじめ定められたランドマーク間(例:腰から膝)のつながりをマッピングして、姿勢や動作を分析します。
実世界での利用例#
人や物体の動きをデジタル化する能力により、さまざまな業界で革新的なアプリケーションが生まれています。多くの場合、Ultralytics Platformのようなツールを使用して、大量のアノテーション済みキーポイントデータセットを管理しながら学習します。
医療とリハビリテーション#
医療分野では、医療におけるAIを活用してポーズ推定を行い、患者のリハビリテーションを遠隔でモニタリングしています。関節の角度や可動域を追跡することで、自動化システムは患者が自宅で理学療法のエクササイズを正しく行えているか確認できます。これにより再受傷のリスクが低減し、高価な実験室設備を必要とせずに、臨床医が回復の進捗を定量化できます。
スポーツ分析#
コーチやアスリートは、パフォーマンスの最適化にスポーツ分析を活用しています。ポーズ推定モデルは、従来のモーションキャプチャで使用される、身体にマーカーを装着するスーツを必要とせずに、ゴルファーのスイング軌道、ランナーのストライド長、投手のバイオメカニクスを分析できます。これにより、技術の向上やオーバーユース障害の予防に役立つ、即時性のあるデータドリブンなフィードバックが得られます。
小売と行動分析#
商業環境では、小売におけるAIシステムがポーズ検出を使用して、高い棚の商品に手を伸ばす、特定の通路に長く滞在するといった顧客行動を把握します。このデータは、身体的な行動と購買決定を関連付けることで、店舗レイアウトの最適化や在庫管理の改善に役立ちます。
コード例:Ultralytics YOLO26によるポーズ推定#
最新のPythonフレームワークを使用すれば、ポーズ推定の実装は簡単です。次の例では、ultralyticsパッケージを使用して事前学習済みのYOLO26モデル(YOLO11の後継モデル)を読み込み、画像内の人物のキーポイントを検出する方法を示します。
from ultralytics import YOLO
# Load the YOLO26 pose model (nano version for speed)
model = YOLO("yolo26n-pose.pt")
# Perform inference on an image source
# The model identifies bounding boxes and specific keypoints (joints)
results = model("https://ultralytics.com/images/bus.jpg")
# Print the xy coordinates of detected keypoints
print(results[0].keypoints.xy)
# Visualize the skeletal results directly
results[0].show()








