投稿

ラベル(仮想現実感)が付いた投稿を表示しています

Neural Point-Based Graphics (ECCV2020)

イメージ
 ECCV2020の新視点画像の研究と言えば NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis が有名で、コードが早い段階で公開されていたこともあり既にNeRFをベースにした研究も多く存在する。 Awesome Neural Radiance Fields NeRFはとても素晴らしい研究だと思うけれど、処理時間などの点で色々と課題が残っている。上記ページのリストに載っているものには学習にV100GPU8枚を使って1週間かかるものもある。 一方で、同じECCV2020では Neural Point-Based Grahics (NPBG) という3次元点群に対してNeural Descriptorという各視点からの見えをコード化した情報を持たせることで新視点画像を生成する手法が提案されている。この手法では、以下の図のようにNeural Descriptorを付与した点群を画像上へ投影し、その結果をUNet状のネットワークに通すことで最終的なレンダリング結果を得る。 かなりシンプルな方法にもかかわらず、良好なレンダリング結果を得ることができている。 NeRFと異なり、計算コストが低く、レンダリングはリアルタイムで実行することができる。 リアルタイムでのレンダリングが可能であることから、ARなどのアプリケーションへも応用可能であるかもしれないと思い、今回はNeural Point-Based Grahicsのコードを実行してみた。以下、windows10環境での実行までの手順を示す。 コードをgithubからクローンしてくる condaではなくvenvで仮想環境を構築したので、pipで scripts/install_deps.sh に記載されているモジュールを仮想環境へインストールする。ただし、glumpyとpycudaは、pip install glumpy, pip install pycudaしない。 glumpy のコードをgithubからクローンしてくる。glumpyディレクトリへ移動し、 python setup.py install する。 pycuda のコードをgithubからクローンしてくる。pycudaディレクトリへ移動し、 py...

PIFuHD: Multi-Level Pixel-Aligned Implicit Function for High-Resolution 3D Human Digitization (CVPR 2020)

イメージ
CVPR2020で以下の紹介したPIfuの発展版であるPIFuHDが発表された。 画像1枚から全身アバターを作る PIFuHDではより詳細な形状の復元が可能になっている。PIFuとの違いとしては、推定処理において、正面および背面の高解像度な法線マップもImage-to-Image Translationによって生成し利用している。これにより、服のしわなども再現できるようになっている(と思われる)。 PIFuHD: Multi-Level Pixel-Aligned Implicit Function for High-Resolution 3D Human Digitization (CVPR 2020) PIFuと同様にCodeが公開されており、実際に様々な画像に対して気軽に適用してみることができる。Google Colabのバージョンも公開されており、手元にGPUを搭載したPCが無い場合でも実行することができる。(GPUについては、最低8GBのメモリが必要とgithubのページに書かれている) Code:  https://github.com/facebookresearch/pifuhd 以下はサンプルの画像に対して、PIFuHDを実行した結果になっている。 入力画像,法線マップ(正面),法線マップ(背面) 復元された形状(上)と法線マップ(下) PIFuの時の結果に比べて詳細な形状が復元されていることが確認できる。ただし、PIFuと異なり形状のみの復元となっており、テクスチャ情報については復元されない。この点については、githubのissueを見る限り今後も機能が追加されることは無さそう。 ただし、ソースコードを1行変更することで、復元されたモデルを入力画像上へ投影し各頂点に対して色情報を付加することが可能になる。変更する場所はapps/recon.pyの210行目get_meshをget_mesh_imgColorである。 これにより、以下のように色付きのモデルを生成することができる。 ただし、あくまで画像上に投影した際の色情報を参照しているだけなので、背面などの見えていない部分については、後頭部に顔が出てきたりとおかしくなってしまう。なので、テクスチャについては、他のアルゴリズムで生成する、背面の画像も撮影して貼り付け、など行う必要がある。 ...