Keypoints
キーポイントは、人の関節などを表す名前付きの点で、可視性フラグとともに座標として保存されます。定義、ラベル付け、予測、用途について解説します。
キーポイントは、人物の左手首、車輪の中心、箱の角など、名前が付いた物体上の特定の点で、画像座標として保存されます。ポーズ推定モデルは検出した各物体について、固定された一連のキーポイントを予測し、それぞれに信頼度スコアを付与します。キーポイント間のエッジは、姿勢や形状を表すスケルトンを形成します。キーポイントは物体のパーツを示すため、物体全体を囲むバウンディングボックスや輪郭を表すセグメンテーションマスクより詳細な記述になります。ランドマークは同義語で、主に顔に対して使われます。
キーポイントの定義とラベル付け#
各データセットでは、キーポイントの集合と順序が固定されています。COCOでは、人間の身体について、鼻、目、耳、肩、肘、手首、腰、膝、足首の17個のキーポイントを定義しています。各ラベルにはx座標とy座標に加えて可視性フラグがあり、0は未ラベル、1はラベル付け済みだが隠れている状態、2はラベル付け済みで見えている状態を表します。他のデータセットでは、手のキーポイントデータセットの21点、300-Wの68点の顔スキーム、Dog-Poseの犬1頭あたり24点、製造部品の角など、別の対象を扱います。順序には意味があるため、画像を水平反転するデータ拡張では、左側のキーポイントをすべて右側の対応点と入れ替える必要があります。そうしないと、反転した左手首にもう一方の腕のラベルが付いたままになります。
モデルによるキーポイントの予測方法#
ディープラーニングモデルは、キーポイントごとに1枚ずつヒートマップを生成し、そのピーク位置で座標を示す方法と、画像特徴から座標を直接回帰する方法のいずれかでキーポイントを予測します。各予測には信頼度が付与されます。他の人物の後ろに隠れた点、フレーム端で切れた点、動きでぼやけた点では信頼度が低下するため、アプリケーションは推測を信頼する代わりに低信頼度の点を無視できます。予測の評価には物体キーポイント類似度(OKS)を使います。これは、目のように精密な点よりも、腰のように人によるラベル付けの一貫性が低い点で、大きな誤差を許容します。
from ultralytics import YOLO
# Load a YOLO26 pose model that predicts the 17 COCO body keypoints per person
model = YOLO("yolo26n-pose.pt")
results = model("https://ultralytics.com/images/bus.jpg")
keypoints = results[0].keypoints
# COCO order: index 0 is the nose, 9 and 10 are the left and right wrists
for index, name in [(0, "nose"), (9, "left wrist"), (10, "right wrist")]:
x, y = keypoints.xy[0, index].tolist()
print(f"{name}: ({x:.0f}, {y:.0f}), confidence {keypoints.conf[0, index]:.2f}")各行は、最初に検出された人物のキーポイント1つをピクセル位置と信頼度で示し、keypoints.xynには同じ位置を画像サイズに対して正規化した値が格納されます。
意味的キーポイントと特徴点#
ポーズのキーポイントは意味的なもので、モデルは左手首がどのような見た目かを学習します。一方、特徴点は事前に定義せず、検出器で見つけます。SIFT(1999年)はスケールや回転が変わっても安定するブロブを検出し、ORB(2011年)はリアルタイムマッピングに十分な速度でコーナーを検出し、SuperPoint(2018年)は再現性のある点の検出を学習します。各点の周辺で計算した記述子を使って、LightGlueなどのマッチャーが画像間で同じ点を対応付け、画像レジストレーション、3D再構築、ビジュアルSLAMに活用します。また、点追跡では、そのような点を動画内で追跡します。
キーポイントを使った計測#
キーポイントによって画像を幾何情報に変換できます。2点から距離、3点から関節角度、フレーム間の点列から速度を求められます。Ultralyticsのワークアウトモニタリングソリューションは、この方法でエクササイズの反復回数を数えます。デフォルトでは、追跡対象の人物ごとにYOLO26ポーズモデルのキーポイント6、8、10(右肩、肘、手首)から右肘の角度を測定します。
- スポーツ分析: キーポイントから得られる関節角度や手足の速度を使って、ゴルフスイング、短距離走者のストライド、投手の投球動作をフレームごとに記述できます。
- ドライバーモニタリング: 目や口のランドマークを使って、目を閉じている時間やあくびの頻度を測定できます。これらは眠気の兆候です。
- 動物行動: DeepLabCutは、実験動物の足や鼻先など、ユーザーが定義した点を追跡します。約200フレームのラベル付けで、人間レベルの精度を達成しました。










