stMind

about Tech, Computer vision and Machine learning

A simple yet effective baseline for 3d human pose estimation

https://arxiv.org/pdf/1705.03098.pdf

画像から3次元の関節を推定する論文。ただし、入力は画像ではなく2次元の関節座標で、そこから3次元の関節を回帰する。

2次元から3次元へのマッピングをDNNとして学習する手法は、これまでにも提案されてきているが、それらに共通するのは、3次元座標を2次元(画像や関節座標)から直接推定することはそもそも困難という認識である。本論文では、Dropout、Batch NormalizationとReLU、Redisual Connectionを用いたシンプルなDNNにより、SOTAな手法に負けない精度で3次元座標の推定が可能であることを示している。

Network design and solution methodology

\displaystyle f^* = \min_f \frac{1}{N} \sum_{i=0}^{N} {\cal L} (f( {\bf x_i} ) -  {\bf y_i})

3次元の関節座標へ変換するfを定義し、変換後の関節座標と正解関節座標の差を最小にするf^{\ast}を求める。f^{\ast}は、DNNでモデル化し、次の図のような構成を提案している。

f:id:satojkovic:20190911081741p:plain

図には書かれてないが、二つのlinear layerが入力直後と出力直前に存在し、また図のブロックは二層存在するので、linear layerは合計で6となる。学習パラメータ数は4Mから5M。

Residual connections

Residual connectionsを設けることで、エラーが10%も低下した。

Batch normalizationとdropout

Linear-ReLuとResidual connectionsを用いたシンプルなネットワークの場合、2次元座標のGTで学習すれば良い精度を得られるが、 detectorの2次元座標で学習した場合や、2次元座標のGT で学習してdetectorの2次元座標で推論した場合には精度低下が見られた。Batch normとdropoutを併用することで、これらのケースでの精度を改善することが出来た。

Max-norm constraint

Batch normと組み合わせて、各層の重みのノルムの上限を1.0に正規化することで、汎化性能の向上が見られた。

Data preprocessing

  • 平均を引いて、標準偏差で割る一般的な正規化を入力データと出力データに適用。3次元座標は、hip jointを中心とした相対的な座標(カメラ座標系)。
  • 任意の座標系での3次元座標を2次元座標から求めることは現実的ではないので、カメラを中心としたカメラ座標系が自然な選択となる。3次元座標のGTに対応する2次元座標は、カメラの内部パラメータを用いた変換により求めることが可能。
  • 2次元座標は、Stacked Hourglass(SH)を用いて取得。Human3.6Mデータセットでは人物矩形が含まれているので、矩形の中心に対して440x440の領域をクロップ、256x256にリサイズしてSHに入力する。
  • 既存手法ではCPMを用いていて、2次元座標のGTとの誤差はSHの平均15pixelよりも小さい(平均10pixel)。しかし、MPIIデータセットではわずかに精度が良いこと、10倍の処理速度、の2点の理由でSHを採用している。
  • Human3.6Mデータセットで、SHのFine tuningも行った(SH detections FT)。
  • SHは基本的にはデフォルトの設定だが、メモリの制限でbatch sizeを6から3に変更。学習率は 2.5 x 10^{-4}で、40000iter実行。

Training details

学習時のハイパーパラメータは表のようになっている。

epochs 200
optimizer Adam
learning rate 0.001 (exponential decay)
Initialization Kaiming initialization

Evaluation

評価に使ったデータセットは、Human 3.6MとMPII。Human3.6Mはその名の通り、3.6millionの画像があり、2d / 3d jointsやカメラパラメータのground truth を含む大規模なデータセット。一方のMPIIはもう少し小規模。

Results

  • GTを用いた評価
    • GTの2次元座標で学習、テストした場合、既存手法より43%の改善(37.10mmの誤差)。
    • GTにガウシアンノイズを付加してテストした場合、当然ながら性能は低下していく(それでも比較手法よりもエラーは小さい)。
    • SHを用いてテストした場合でも、既存手法よりも20%程度改善(60.52mmの誤差)
  • detectorの2次元座標を用いた評価
    • SHで求めた2次元座標を用いて学習、テストした場合、既存手法のSOTAな結果よりも4.4mmの改善。SHをHuman3.6MでFTした場合は、9.0mmの改善。
    • 後処理(詳細は読み取れず)を加えた場合、HumanEvaで評価した場合も、既存手法よりもわずかに悪くなっている動作もあるが、総じて比較手法よりも改善されている
  • ネットワーク構成の評価
    • Data preprocessingを行わない場合が性能低下が一番大きく、その次に性能低下が大きいのはBatch normをなくした場合。各構成を含む場合が一番性能は高い。
    • ブロック数を4、8と増やしても性能向上はあまりなく、ブロック数2で頭打ちしている。

最後に

Linear-ReLu + Batch norm + Dropout + Residual connectionのシンプルな基本構成で、既存手法を超える性能を達成しているのは驚き。論文タイトルにもあるように、これらからの研究のベースラインになる(改善が色々とできそう)手法だと思われるし、detectorの2次元座標があれば手軽に3次元座標が得られるので、応用もしやすそうである。