はじめに
以下の論文
[1] J. Martinez, et. al.
A simple yet effective baseline for 3d human pose estimation
のまとめ。ICCV2017にacceptされている。
2年前に発表された古い論文だが、その後の論文に与えた影響を考えて、ざっくりリサーチする。
arXivのリンク:
https://arxiv.org/abs/1705.03098
コードは著者らのかどうかわからないが
https://github.com/una-dinosauria/3d-pose-baseline
などいくつか存在。
概要
- 単眼・RGB画像から3次元骨格を推定する際に生じる誤差が、2次元骨格を推定する時の誤差に由来するのか、あるいは2次元骨格を3次元骨格に変換する時の誤差に由来するのかをリサーチした
- 結論としては、2次元骨格を推定する時の誤差に由来していた
- その際に単純なMLPでも2次元骨格を3次元骨格へ精度よく変換できることを示した
問題設定
関節の個数を $n$とする。
2次元における各関節の座標を ${\rm \bf x} \in \mathbb{R}^{2n}$ 、3次元における各関節の座標を ${\rm \bf y} \in \mathbb{R}^{3n}$ とする。
検証したい内容は $f^* : \mathbb{R}^{2n} \to \mathbb{R}^{3n}$ なる $f^*$ がどれくらいの精度をもっているか。
よって
f^* = \min_f \frac{1}{N} \sum^N_{i=1} \mathcal{L} (f({\rm \bf x}_i) - ({\rm \bf y \rm}_i))
を求める。$f^*$ はニューラルネットとする。
ニューラルネットのアーキテクチャ
$f^* : \mathbb{R}^{2n} \to \mathbb{R}^{3n}$ の $f^*$ は以下のようなアーキテクチャ。
[1]figure1より(全結合ーbatch normーreluーdropout)x2 したものに入力をaddするresicual blockが2つ。
2次元の骨格は[2]のstacked hourglassを用いて求める。
結果
結果の1つはこんな感じ。
[1]table2より他の手法よりロスがかなり低い。・・・2次元骨格から3次元骨格への変換部分は誤差が少ないと言える。
reference
[2] A. Newell, K. Yang, and J. Deng. Stacked hourglass net-
works for human pose estimation. In ECCV, 2016.