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ディレクトリへ移動し、 python configure