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
3次元の関節座標へ変換するを定義し、変換後の関節座標と正解関節座標の差を最小にするを求める。は、DNNでモデル化し、次の図のような構成を提案している。
図には書かれてないが、二つの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に変更。学習率はで、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次元座標が得られるので、応用もしやすそうである。