implicit function
implicit function とは、Occupancy Networks などでも提案されている関数で、
3D空間上のメッシュの各頂点に対して、その頂点がメッシュ表面の内側にあるか外側にあるかの分類確率を出力する関数のことである。この implicit function を利用してメッシュの等値面を算出することにより、メッシュ表面の詳細(細かな凹凸など)の3D再構築が実現できるようになる。
PIFu での implicit function は、メッシュ再構成のための implicit function とテクスチャー推論のための implicit function が存在するが、これらを一般化すると以下の式のように定義される。
※ 入力画像から enocode された特徴量 F とカメラ空間上の z 軸方向での depth 値 z に対しての implicit function になっている点に注意
入力人物画像の大域的な特徴量ではなく、入力人物画像のピクセルアライメントされた特徴量をもつ3D空間上の implicit function を学習している点に注目。
これにより、任意のトポロジーに対してメモリ効率よく3D再構成を実現することが出来る?
Single-view Surface Reconstruction
メッシュ表面を3D再構成するための PIFu での implicit function f_v の具体的は形は、以下の式で定義される。
※ 画像 encoder のネットワーク構成としては、stacked hourglass ネットワークが採用されている。
この implicit function f_v は、以下の式のような MSE loss で定義される損失関数で学習が行われる。
実際のメッシュ表面(=等値面 [iso-surface] )は、下図のように、この implicit function の値が 0.5 になる領域で定義される。
そして、implicit function で密にサンプリングされた確率場から、この 0.5 での等値面 [iso-surface] を Marching Cube アルゴリズムで算出し、メッシュを生成する。
implicit function での n 個のサンプリング点として、どのようなサンプリング点を選択するかは重要な事柄の1つである。
即ち、3D空間を一様にサンプリングすれば、大部分のサンプリング点がメッシュ表面と離れてしまい、ネットワークが不必要なサンプリング点で過度に学習してしまう。
一方で、メッシュ表面周辺のみでサンプリングすれば、ネットワークが過学習してしまう。
そのため、本手法では、一様サンプリングとメッシュ表面周辺サンプリングを組み合わせた適合的サンプリング [adaptive sampling] を行う。
この適合的サンプリングは、具体的には以下の手順で行われる。
1. まずメッシュ表面上の点をランダムにサンプリングする
2. 3D空間の (x,y,z) 軸に対して、正規分布 N(0,δ=5cm) のオフセットを加え、メッシュ表面位置を変化させながらサンプリングする。
3. 上記でサンプリングされたメッシュ表面&表面周辺のサンプリング点と、メッシュ全体の BBOX 内で一様サンプリングされたサンプリング点とを、16 : 1 の比率で混合する。
Texture Inference
画像 encoder で encode した入力人物画像に対して、implicit function f でメッシュ表面3D頂点位置での RGB 値(頂点カラー)を学習&推論することで、任意のトポロジーに対してテクスチャー推論が実現出来る。
※ UVテクスチャーマッピングによるテクスチャー推論ではなく、RGB 頂点カラーでのテクスチャー推論であることに注意
※ Texture Inference での 画像 encoder のネットワーク構成としてはは、CycleGAN のネットワークが採用されている。
Texture Inference での implicit function f_c は、以下の式のように、L1 loss での損失関数で学習される。
Multi-View への対応
本手法のアーキテクチャは、single-view な入力画像(=1枚の入力画像)と multi-view な入力画像(=複数視点からのn 枚の入力画像)の両方に対応している。
multi-view な入力画像が与えられた場合の処理は、以下のような処理になり、更に品質の高い3D再構成が実現出来る。
1. implicit function f を2つの写像 f_1, f_2 に分解する。
2. 1つ目の写像 f_1 は、i 番目の視線(i=1~n)からの画像特徴量 F_i (x_i ) と depth 値 z_i を encode する関数であり、これによりこれらの情報を集約した潜在特徴量 Φ_i が得られる
3. n 個の異なる視点からの潜在特徴量 Φ_i (i=1,2,…,n) を average pooling で平均化して集約する
4. 2つの写像 f_2 は、メッシュ再構成のための implicit function or テクスチャー推論のための implicit function である。
メッシュ再構成のための implicit function の場合は、集約された潜在特徴量 Φ ̅ から、メッシュ表面の内側 or 外側占有確率を出力する。
テクスチャー推論のための implicit function の場合は、集約された潜在特徴量 Φ ̅ から、頂点カラー RGB 値を出力する。
0. 論文情報・リンク
1. どんなもの?
2. 先行研究と比べてどこがすごいの?
3. 技術や手法の"キモ"はどこにある?
アーキテクチャの全体像
implicit function implicit function とは、Occupancy Networks などでも提案されている関数で、 3D空間上のメッシュの各頂点に対して、その頂点がメッシュ表面の内側にあるか外側にあるかの分類確率を出力する関数のことである。この implicit function を利用してメッシュの等値面を算出することにより、メッシュ表面の詳細(細かな凹凸など)の3D再構築が実現できるようになる。
PIFu での implicit function は、メッシュ再構成のための implicit function とテクスチャー推論のための implicit function が存在するが、これらを一般化すると以下の式のように定義される。 ※ 入力画像から enocode された特徴量 F とカメラ空間上の z 軸方向での depth 値 z に対しての implicit function になっている点に注意
Single-view Surface Reconstruction
Texture Inference
Multi-View への対応
4. どうやって有効だと検証した?
本手法での3D再構成とテクスチャー推論の定性的品質検証
既存の image-to-3D モデルとの定性的な3D再構成品質比較
既存のモデルとの定性的なテクスチャー推論品質比較
5. 議論はあるか?
6. 次に読むべき論文はあるか?
7. 参考文献