2D Human Pose Estimationの評価指標 mAP
大学の研究のために姿勢推定を勉強し、まとめています。
間違いがありましたご指摘をお願い致します。
mAP
Mean Average Precision (mAP)は、姿勢推定の評価指標としてよく使用されます。
mAPは、複数の閾値で計算されたAPの平均を取り、全体的な性能を評価します。
物体検出の評価指標でもmAPは利用されていますが,姿勢推定タスクと少し違いがあるので,注意が必要です.
簡単な全体の流れ
- モデルが推定した関節座標(Keypoint)が正解座標と比べて合致しているか確認(OKS)
- 合致している割合によって画像ごとの評価値を算出(AP)
- 画像ごとの評価を全てまとめて平均して,評価値(mAP)を算出
OKS
まずはOKSについて.
キーポイントの位置の精度を測定し、以下の式で表されます:
\text{OKS} = \frac{\sum_{i} e^{-\frac{d_i^2}{2s^2k_i^2}} \delta(v_i > 0)}{\sum_{i} \delta(v_i > 0)}
OKS(Object Keypoint Similarity)は、キーポイントの位置の精度を測定するために使用されます。これは、物体検出で用いられるIoU(Intersection over Union)に類似しており、検出したキーポイントの正確さを評価します。
各変数は次のように定義されます:
- $d_i$:検出されたキーポイント $i$ と真のキーポイント $i$ との距離
- $s$:対象物のスケール(通常は対象物のバウンディングボックスの面積の平方根)
- $k_i$:キーポイント $i$ の正規化定数(異なるキーポイントの重要度やスケールに対応)
- $delta(v_i > 0)$:キーポイント $i$ が有効である場合は1、無効である場合は0
AP
APは以下のように定義されます:
\text{AP} = \frac{1}{N} \sum_{i=1}^{N} \text{Precision}(i)
ここでいう複数の閾値とは、異なるOKS閾値に対するPrecisionの平均を取ることを意味します。
Precisionの計算式は、真陽性 (True Positives) の数を、真陽性 (True Positives) と偽陽性 (False Positives) の合計で割ったものです。具体的には以下のように定義されます:
Precision = \frac{\text{True Positives}}{\text{True Positives} + \text{False Positives}}
- True Positives (TP):正しく検出された陽性の数。つまり、実際に正しいキーポイントを検出した数
- False Positives (FP):誤って検出された陽性の数。つまり、実際には正しくないキーポイントを検出した数(過剰に検出してしまったキーポイントの数)
このTrue Positives(真陽性)とFalse Positives(偽陽性)が、一定のOKS閾値を超えるかどうかによって決まります。
これは、各キーポイントの距離 $d_i$ が小さいほど、すなわち検出が正確であるほど、OKSの値が大きくなることを示し、スケール $s$ と正規化定数 $k_i$ を用いて、距離を正規化します。
このAPの平均値を計算するとmAPになります.
現在,pycocotoolsのmAP算出式を確認しているので,内容が分かり次第,そちらもアップしたいと思います.
他の評価指標についても随時、書いていきたいと思います。