骨格推定、及びそのトラッキングに使うメトリクスのまとめ

# はじめに
骨格推定やそのトラッキングで使用するメトリクスのまとめ

以下のメトリクスに関してまとめる
1. PCP
2. PCPm
3. PCK
4. PCKh
5. MOTA


#keypoint位置の正確さを表すメトリクス

## 1. PCP 
[1]の論文中３章に以下のような記述がある。

『A body part returned by the algorithm is considered correct if its segment endpoints lie within 50% of the length of the ground-truth segment from their annotated location.』

例えば左肘の場合、ground truthの左肘を中心として、左の２の腕の半分を半径とする円内に左肘の推定値が入ってる場合、正しいとする。

このような画像の場合

<img width="461" alt="pose_metrics_00.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116706/d9f7cd9f-dfc2-a39a-44ce-3c9e7aff4418.png">

<img width="461" alt="pose_metrics_01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116706/7f6ac3c0-1c63-a2ce-d8a1-ca05e5fbbb20.png">

このような青い円内に左肘の推定値が入っていればよい。

## 2.PCPm 
PCPだと画像中に人が小さく写ってる場合、円が小さくなって正しいと判定されるのが困難になる。この点を改善したのがPCPm。

[2]の論文中２章に以下のような記述がある。

『We define a new metric denoted as “PCPm” that uses 50% of the mean ground-truth segment length over the entire test set as a matching threshold, but otherwise follows the definition of “PCP”.』

PCPの上記青い円の半径をテストデータ全体の平均値に変更するだけ。

## 3.PCK 
[3]の論文中7.2章に以下のような記述がある。

『We define a candidate keypoint to be correct if it falls within α · max(h, w) pixels of the ground-truth keypoint, where h and w are the height and width of the bounding box respectively, and α controls the relative threshold for considering correctness.』

まず Pase dataset とかいうものは ground truth が以下のように keypoints とその bounding box が与えられてるみたい。

<img width="513" alt="pose_metrics_02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116706/963dcf97-24f6-133d-b9fb-f00bddb53892.png">

頭のてっぺんの keypoint に注目すると、この矩形の長辺のα倍（例えば0.1とか0.2）の中に推定値が入っていればいい。

この青い円内に入っていればいいか？

<img width="529" alt="psoe_metrics_03.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116706/5c6e7170-7380-e426-25b5-6ae67c728326.png">

## 4. PCKh 
[2]の論文中２章に以下の記述がある。

『We use a slight modification of the “PCK” and define the matching threshold as 50% of the head segment length. We denote this metric as “PCKh”.』

PCKh の h は head のことか？

この図でいうと

<img width="527" alt="pose_metrics_04.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116706/f6e2772c-2866-8a5d-1ad1-ada06a6a0ead.png">

このようにground truth の頭頂を中心として、頭の長さの半分の半径の円内に、頭頂の推定値が入った場合を正しい、とする？

PCPに近いね。

# トラッキングにおける状況
あるkeypoint（例えば頭頂）をトラッキングするタスクの場合、メトリクスの定義は簡単でない。

まず時間軸が増えるし、IDが入れ替わる状況も存在する。

例えば以下の論文[5]のFig4で考える。

<img width="897" alt="pose_metrics_05.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116706/13bfbe49-b960-9f7c-ffa4-57d100d0d4cc.png">

まず横軸の数字がフレーム番号。

黒の点線がground truthの奇跡で、灰色の領域はトラッキングできたと判定するエリア。

ground truthがトラッキングできた場合に、その円は塗りつぶされる。

一方で赤とか青とかは推論値の奇跡。それが灰色のエリアに入った場合、TP(true positive)となり、エリアから外れるとFP(false positive)となる。

### 事例１ (a)

まず(a)では

<img width="284" alt="pose_metrics_06.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116706/59635248-54a2-b1b8-78fb-6721b682506c.png">

frame 1 で推定した位置（赤の奇跡）がずれたためFPとなった。

frame 2 ではそれがエリアに入ったため TP。

frame 3 ではよりground truthに近い位置に推論された。もちろん TP。だが離れた位置にも物体があると誤認している。こちらはFP。

frame 4 では赤い方は依然TP。一方で青いFP側がground truthの奇跡に近づいてきていると捉えられている。

frame 5 赤い方は奇跡が上側と捉えられ、青い方がground truthの奇跡に近いと推定されたため、青い方がTPと判定された。赤い方がFP。よってIDが入れ替わった。（ID switch）

frame 6 青い方はそのままTP。

以上から、６つのフレームにおいてTPが５、FPが４、FNが１、IDのswitchが１回。

### 事例２ (b)

次に(b)では

<img width="295" alt="pose_metrics_07.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116706/ea3d6df0-a4ce-1adf-0816-d76b94623d01.png">

frame 1, 2 では赤い奇跡のように物体が動いていると推定されている。(TP)

frame 3 で奇跡の推定位置がずれたためground truthと同一の物体と見なされなかった。(FP 及び FN)

frame 4 でもずれた場所に推定されているため FP 及び FN。

frame 5 では範囲内に物体を推定しているが、一度見失ったため別の物体だと判定されている（TP 及び ID switch）

frame 6 ではTP。

以上から、６つのフレームにおいてTPが４、FPが２、FNが２、IDのswitchが１。

### 事例３ (c)

<img width="298" alt="pose_metrics_08.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116706/051a495f-2a02-0f2a-1660-be037224eea4.png">

(c)ではground truth として２つの物体が与えられている。

frame 1 では２つの物体を領域内に推定しているため、上側（赤）に推定された物体をground truthの上側、下側（青）に推定された物体をground truthの下側に対応づけられた。(TP２つ）

frame 2 でも２つの物体を領域内に推定している。（TP２つ)

frame 3 では１つの物体に対して赤のような奇跡を推定した。(TP)そうすると、もう１つの推定した物体（青）は下側のground truthの範囲から外れてしまった。(FP及びFN)

frame 4, 5 でも同様。（TP, FP, FN)

frame 6 では赤を見失い、青は相変わらず範囲外に推定したため、FP, FN2

以上から、６つのフレームにおいてTPが７、FPが４、FNが５、IDのswitchが１。

### 事例４ (d)

(d)では

<img width="294" alt="pose_metrics_09.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116706/3f32a17c-df24-c6f2-e2ff-32211900d46f.png">

frame 1, 2, 3 でground truthから近い位置に物体（赤）を推定している。TP

frame 4 では ground truthが一度消えた（occulutionなど？）。だがアルゴリズムによっては赤のように奇跡を予測して推定するだろう。別の位置にも物体（青）が推定されている。FP2

frame 5 では ground truthが再び現れたが、最も近くに推定された物体（青）にIDがふられてしまったため、ID switchが起きた。TP, FP, ID switch。

frame 6 では前フレームからの青にIDが振られている。TP, FP

以上から、６つのフレームにおいてTPが５、FPが４、IDのswitchが１。

# keypointのトラッキングの正確さを表すメトリクス
以下のMOTAは論文[4]で提案された。

## 5. MOTA (multiple object tracking accuracy)

前節の事例集から、トラッキングの場合はFP, FN 以外に ID switchがあるとわかった。

これら３つをerrorとして考慮したのがMOTA。具体的には以下の式。

```math
\rm MOTA = 1 - \frac{\sum_t (FN_t + FP_t + IDSW_t)}{\sum_t GT_t}
```

分数の部分は ground truth に対するFNとFPとID switch を足したerrorの割合。

なのでground truth以上にめっちゃ物体を誤認するとFPが大きくなって１を超える。そうするとMOTAはマイナスの値となる。つまりMOTAの値域は $(\infty, 1]$ 。



# reference 
[1] V.Ferrari,M.Marin-Jimenez,andA.Zisserman.Progressive search space reduction for human pose estimation. In CVPR, 2008.

[2] M. Andriluka, L. Pishchulin, P. Gehler, and B. Schiele. 2d human pose estimation: New benchmark and state of the art analysis. In CVPR’14.

[3] Y. Yang and D. Ramanan. Articulated pose estimation with flexible mixtures-of-parts. In CVPR, 2011.

[4] K. Bernardin and R. Stiefelhagen. Evaluating multiple object tracking performance: The CLEAR MOT metrics. Image and Video Processing, 2008(1):1–10, May 2008.

[5] A. Milan, L. Leal-Taixe, I. Reid, S. Roth, and K. Schindler. Mot16: A benchmark for multi-object tracking. arXiv preprint arXiv:1603.00831, 2016.