Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Pose Estimation

姿勢推定は、関節などのキーポイントを特定し、身体や物体の姿勢を表します。トップダウン、ボトムアップ、シングルステージの各手法とOKSを解説します。

姿勢推定はコンピュータービジョンのタスクであり、人物の肩、肘、膝など、身体や物体上で事前定義された一連のキーポイントを特定し、姿勢を表す骨格としてつなぎます。モデルは各キーポイントの画像座標または3D位置とともに信頼度スコアを出力するため、アプリケーションでは関節角度や反復回数を測定したり、動作を認識したりできます。姿勢推定は各人物の立ち方や動きを表現しますが、物体検出のバウンディングボックスも、インスタンスセグメンテーションのマスクも、それを捉えることはできません。

姿勢推定の仕組み#

複数人を対象とする2D姿勢推定器には3つの手法があり、3つ目は1段階物体検出器と同様の仕組みです。

  • トップダウン: 人物検出器が画像内の人物をすべて検出し、1人用モデルが各クロップ内のキーポイントを予測します。HRNet(2019)やViTPose(2022)がこの方式を採用しています。人物が大きくはっきり写っている場合は精度が高く、処理コストは人物数に応じて増加します。
  • ボトムアップ: ネットワークが画像内のすべてのキーポイントを一度に検出し、その後、それらを人物ごとにグループ化します。OpenPose(2017)は、各手足に沿った方向を示す2Dベクトルであるパーツ親和場を使って関節を結び付けるため、混雑した場面でも処理コストはほぼ一定です。
  • 単一段階: ネットワークは1回の処理で、同じグリッド位置から人物ボックスとすべてのキーポイントを予測するため、クロップもグループ化処理も必要ありません。YOLO-Pose(2022)はこの設計をYOLOに導入しました。

キーポイントの位置は、ピークが位置を示すキーポイントごとの確率マップであるヒートマップ、または座標の直接回帰から求めます。ヒートマップは長年ベンチマークをリードしてきましたが、メモリを消費し、マップの解像度による制約を受けます。残差対数尤度推定(RLE)は、正規化フローで予測誤差の分布を学習し、2021年に回帰との性能差を縮めました。YOLO26の姿勢モデルは、RLEで学習する単一段階の回帰モデルです。学習中は追加ブランチが各キーポイントの不確実性を予測し、RealNVPフローが誤差を評価します。推論用にモデルを融合すると両方が削除されるため、推論コストは増加しません。

from ultralytics import YOLO

# COCOの17個の身体キーポイントで学習したYOLO26 nano姿勢モデルを読み込みます
model = YOLO("yolo26n-pose.pt")

# 1回の処理ですべての人物とキーポイントを検出します
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]

# 形状は(人物数、キーポイント数、xy)です。骨格を描画した画像を保存します
print(result.keypoints.xy.shape)
result.save(filename="pose_result.jpg")

表示された形状は、検出された人物数、各人物の17キーポイント、2つのピクセル座標を表します。保存画像では、各人物に骨格が描画されます。

2Dおよび3D姿勢推定#

2D推定器はピクセル座標を返します。3D人体姿勢推定では、VideoPose3Dのように2Dキーポイントのシーケンスを第2のネットワークで3Dに変換する方法、複数のキャリブレーション済みカメラから見たキーポイントを三角測量する方法、またはSMPLなどのパラメトリック人体メッシュを画像に当てはめる方法で、空間内の関節位置を復元します。物体姿勢推定は別のタスクです。多くの場合、物体表面のキーポイントから剛体の3D回転と並進を復元し、ロボットによる把持や拡張現実に利用します。

姿勢推定の評価#

約25万人の人物に17個のキーポイントを付与したCOCO Keypointsベンチマークでは、intersection over union (IoU)に相当するキーポイント指標として、オブジェクトキーポイント類似度(OKS)で予測を評価します。各ラベル付きキーポイントについて、予測とラベルの距離dは類似度exp(-d²/(2s²k²))に変換されます。ここでs²は人物のセグメント化領域、kはアノテーターがそのキーポイントをどれだけ一貫して配置したかから測定されるキーポイントごとの定数です。OKSはラベル付きキーポイント全体でこれらの項目を平均し、mean average precision (mAP)は0.50から0.95までのOKSしきい値で平均されます。

import numpy as np

# COCO falloff constants: annotators place eyes far more consistently than hips
sigmas = {"eye": 0.025, "hip": 0.107}
area = 20_000  # person's segmented area in pixels (s squared)
error = 5.0  # predicted keypoint lies 5 pixels from its label

# Per-keypoint OKS term: exp(-d^2 / (2 s^2 k^2)) with k = 2 * sigma
for name, sigma in sigmas.items():
    similarity = np.exp(-(error**2) / (2 * area * (2 * sigma) ** 2))
    print(f"{name}: {similarity:.2f}")

同じ5ピクセルの誤差でも、目では0.78、腰では0.99のスコアになります。ほかのベンチマークでは別の指標が使われます。MPIIではPCKh、つまりラベルから頭部サイズの半分以内にあるキーポイントの割合を報告します。Human3.6Mなどの3Dベンチマークでは、関節ごとの平均位置誤差をミリメートル単位で報告します。

実際のアプリケーション#

  • スポーツ分析: コーチは、研究室のモーションキャプチャで使われる反射マーカーを使わずに、通常の動画から関節角度、歩幅、スイングの動きを測定します。
  • リハビリテーション: 理学療法アプリは自宅で可動域や運動フォームを追跡し、転倒検知システムは身体のキーポイントが床の高さまで下がったかを監視します。
  • 動作認識: 骨格のシーケンスは、手を振る、転ぶ、持ち上げるなどの動作を分類するためのコンパクトな入力であり、服装や背景の影響を受けません。
  • 動物研究: カスタムキーポイントセットを使って動物の姿勢を追跡できます。たとえばDog-Poseデータセットでは犬1頭あたり24個のキーポイントを使い、歩き方や行動を研究します。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう