---
title: "OpenPoseとは？（姿勢推定アルゴリズム）【G検定対策】"
description: "OpenPoseについて、複数人の関節を推定するボトムアップ方式とPart Affinity Fields（PAF）の役割を整理します。トップダウン方式や物体検出との違いも比較し、G検定で姿勢推定手法を見分ける判断軸を確認します。"
canonical_url: "https://stemtazoo.github.io/gk/openpose/"
section: "gk"
---

## まず結論

* **OpenPose**とは、画像や動画から人の関節位置を推定し、骨格としてつなぐ**姿勢推定アルゴリズム**です。
* 複数人の関節候補を先に検出し、**Part Affinity Fields（PAF）**を使って人物ごとに対応付ける**ボトムアップ方式**が代表的な特徴です。

## 直感的な説明

OpenPoseは、画像の中にいる人を一人ずつ囲ってから調べるのではありません。

まず画像全体から、

* 肩らしい点
* 肘らしい点
* 手首らしい点
* 膝らしい点

をまとめて見つけます。

その後、

> この肩と肘は同じ人につながっている

という関係を推定し、人物ごとの骨格を組み立てます。

つまり、

> 関節を先に見つける → 同じ人物の関節を後からつなぐ

という流れです。

## 定義・仕組み

OpenPoseでは、CNNを使って主に次の2種類の情報を推定します。

### 1. 関節位置の信頼度マップ

画像の各位置について、

* 肩である可能性
* 肘である可能性
* 膝である可能性

などを表します。

### 2. Part Affinity Fields（PAF）

PAFは、関節同士のつながる方向を表す情報です。

たとえば肩と肘の候補が複数あるとき、PAFを使って、

> どの肩とどの肘が同じ人物の腕か

を判断します。

この仕組みにより、複数人が写っていても人物ごとの骨格を組み立てられます。

OpenPoseは、人物を先に検出するのではなく、関節候補から人物を構成する**ボトムアップ型**の代表例です。

## いつ使う？（得意・不得意）

### 得意

* 複数人の姿勢推定
* スポーツフォームの解析
* 人の動作・行動分析
* AR・VR
* リアルタイムに近い姿勢推定

### 不得意・注意点

* 人が重なって関節が見えない場面
* 極端に小さく写った人物
* 複雑な背景や強い遮蔽
* 人物の種類や物体名を分類するタスク

OpenPoseが推定する中心は、**何が写っているか**ではなく、**人の関節がどこにあるか**です。

## G検定ひっかけポイント

### ボトムアップ方式とトップダウン方式

* **ボトムアップ方式**：関節を先に検出し、後から人物ごとにつなぐ
* **トップダウン方式**：人物を先に検出し、その人物ごとに関節を推定する

OpenPoseの代表的な説明は**ボトムアップ方式**です。

### OpenPoseと物体検出

* **物体検出**：人や物体を矩形で囲む
* **OpenPose**：関節位置を点で推定し、骨格としてつなぐ

「人を囲む」だけなら物体検出であり、姿勢推定とは限りません。

### OpenPoseとセグメンテーション

* **セマンティックセグメンテーション**：画素ごとにクラスを分類する
* **OpenPose**：人体のキーポイントと関節のつながりを推定する

### 試験での判断基準

* 関節・キーポイント・骨格 → 姿勢推定
* 複数人の関節を同時に推定 → OpenPose
* 関節を先に検出して人物を構成 → ボトムアップ方式
* PAFで関節同士を対応付ける → OpenPose

## まとめ（試験直前用）

* OpenPoseは人の関節位置を推定する姿勢推定アルゴリズム
* 関節を先に検出し、後から人物ごとにつなぐ
* PAFは、どの関節同士が同じ人物かを判断する
* 人物を先に検出する方法はトップダウン方式
* 「複数人・関節・PAF・ボトムアップ」ならOpenPose
