損失関数
本手法でのネットワークは、Pifu のような L1 loss や L2 loss ではなく、
以下の式のように、サンプリングされた3D点集合に対しての拡張された BCE loss で学習される。
※ サンプリングされた3D点集合に対しての拡張された BCE loss : 論文「Deephuman: 3d human reconstruction from a single image」
損失関数を評価するサンプル点集合 S のサンプリングは、Pifu と同様にして、
一様な体積サンプリングと、この一様サンプリングされたメッシュ表面点周りでガウシアン摂動したメッシュ表面周りの重点サンプリング [importance sampling] を混合したサンプリングで行う。
また法線マップを推論するための PixPixHD ネットワークは、以下の式のように、正解法線マップと推論法線マップとの間の L1 loss + VGG loss の線形結合で学習する。
0. 論文情報・リンク
1. どんなもの?
2. 先行研究と比べてどこがすごいの?
3. 技術や手法の"キモ"はどこにある?
【前提知識】PIFu [Pixel-Aligned Implicit Function]
人体メッシュの3D再構成は、一般的に、3D空間内の各点が人体メッシュ表面内にあるかメッシュ表面外にあるかを決定するための緻密な [dense] 3D体積(※3D空間離散化時はボクセルに対応)の占有率(=占有確率)を推定することで実現される。 既存の3D再構成モデルでは、3D空間を離散化し、各ボクセルの占有確率を明示的に推定するアプローチを採用していた。 一方で PIFu は、以下の式のように、連続なカメラ空間 X 内において、任意の3次元位置での2値(メッシュ内 or メッシュ外)の占有率を推定する関数 f(X) を end2end で学習されるニューラルネットワークでモデル化している。
1. encode された特徴埋め込み Φ(x,I) から、3次元位置 X の占有率を以下の式で学習&推定する。
1. 上式 (2) で定義されたネットワーク f を、大規模な3D人体メッシュデータセットで end2end に学習する。
1. 推論時は、3D空間上の点を一様にサンプリングして占有率を推定する。最後に marching cubes アルゴリズムを用いて、0.5 のしきい値で等直面を抽出する。
PiFuHD のアーキテクチャ
正面から背面への推論(Front-to-Back Inference) 一般的に背面の3Dメッシュ再構成は、入力人物画像では直接観測できないために困難なタスクである。 このことは、最終的な3D点の占有確率を推定する MLP が複雑な関数を学習することが困難であるためとも解釈できる。
本手法では、PixPixHD を用いて、入力画像から正面と背面の法線マップを image-to-image 変換し、それを PiFuHD ネットワークに入力することで、背面での3D再構成の品質を向上させている。 ※ 法線マップを入力することで、最終的な MLP がより簡単に占有確率を推定できるようになる。
損失関数 本手法でのネットワークは、Pifu のような L1 loss や L2 loss ではなく、 以下の式のように、サンプリングされた3D点集合に対しての拡張された BCE loss で学習される。 ※ サンプリングされた3D点集合に対しての拡張された BCE loss : 論文「Deephuman: 3d human reconstruction from a single image」
4. どうやって有効だと検証した?
学習用データセット Pifu の RenderPeople data。 商用利用可能な 500 枚の高解像度人物スキャンデータ
既存の imge-to-3D モデルとの定性的品質比較検証
法線マップ活用有無での背面品質の定性比較検証
本手法での3D再構成の定性的品質検証
5. 議論はあるか?
6. 次に読むべき論文はあるか?
7. 参考文献