複数の写真からリアルタイムレンダリング可能な高品質シーンを生成できる『3D Gaussian Splatting』

CGソフト

最近注目を集めている 3D Gaussian Splatting についての紹介です。

3D Gaussian Splatting とは

フランスの国立研究機関 Inria 、コートダジュール大学、MPI Informatikの研究者が、SIGGRAPH 2023で発表した「3D Gaussian Splatting for Real-Time Radiance Field Rendering」に基づく3D再構築とレンダリングのための技術です。この技術を使用すると、複数の写真のセットからリアルタイムでレンダリング可能な高品質シーンを作成できるため、8月頃から注目が集まっています。

論文の要約は以下のようになっています。

Radiance Field(放射輝度場)の手法は、最近、複数の写真やビデオでキャプチャされたシーンの新しい視点合成を革命的に進化させました。しかし、高い視覚的品質を実現するには、トレーニングとレンダリングにコストがかかるニューラルネットワークが必要であり、最近の高速な手法では、どうしても速度と品質がトレードオフになります。

境界のない完全なシーン(孤立したオブジェクトではなく)と1080p解像度のレンダリングにおいて、現在の手法ではリアルタイムの表示速度を実現できません。

私たちは、競争力のあるトレーニング時間を維持しつつ、1080pの解像度で高品質なリアルタイム(100 fps以上)の新しい視点合成(Novel-view synthesis)を実現するための3つの要素を導入します。

まず、カメラのキャリブレーション中に生成された疎なポイント(sparse points)から出発し、シーンを3D Gaussian で表現します。これにより、シーン最適化のための連続的な体積輝度場(volumetric radiance field)の望ましい特性を保持しつつ、空間の不必要な計算を回避します。第二に、3D Gaussianの最適化/密度制御を交互に行い、特に異方性共分散(anisotropic covariance)を最適化してシーンの正確な表現を実現します。第三に、高速で視界に注意を払ったレンダリングアルゴリズムを開発し、異方性スプラッティングをサポートし、トレーニングを高速化し、リアルタイムのレンダリングを可能にします。我々はいくつかの確立されたデータセットで最先端の視覚的品質とリアルタイムのレンダリングを実証します。

3D Gaussian Splattingでは、3Dシーンを位置/向き/スケール、不透明度、ビュー依存の色をもった何百万ものパーティクル(3D Gaussian)として表現することでリアルタイムレンダリングが可能となっています。

InstantNGP、MipNeRF360との比較では、3D Gaussian Splatting は優れた結果であることが示されています。特にFPSで顕著な優位性が見られます。

使用について

こちらのgithubリポジトリ

には、「3D Gaussian Splatting for Real-Time Radiance Field Rendering」に関連する公式の作成者による実装が公開されています。これには、トレーニングされたモデルを生成するためのオプティマイザーとトレーニングされたモデルをリアルタイムでレンダリングするための OpenGL ベースのリアルタイム ビューアが含まれています。

モデルの生成について

Python 環境で PyTorch および CUDA 拡張機能を使用したオプティマイザーで、トレーニングされたモデルを生成することができます。

利用するには以下のシステム要件を満たしている必要があります。

ハードウェア要件:

  • Compute Capability 7.0+のCUDA対応GPU
  • 24 GBのVRAM(論文評価品質のトレーニング用)

ソフトウェア要件:

  • Conda (セットアップが簡単なため推奨)
  • PyTorch拡張用のC++コンパイラ(Visual Studio 2019 for Windowsを使用しました。)
  • PyTorch拡張用のCUDA SDK 11、Visual Studioの後にインストール(11.8を使用。)
  • C++コンパイラとCUDA SDKは互換性がある必要があります。

参考品質のトレーニングには24 GBのVRAMが必要となっていますが、時間をかければ少ないメモリ (約 8GB)でも可能なようです。 VRAM の消費量は、最適化されるポイントの数によって決まり、時間の経過とともに増加します。githubのよくある質問ではメモリ不足を回避する方法も紹介されています。

以下の動画では、ビデオから使用可能なデータセットを作成する手順を確認できます。

また、メソッドにすばやく簡単にアクセスできるように有志によるColab テンプレートもこちらで提供されているようです。

リアルタイムビューアー

リモートとリアルタイムの 2 つの対話型ビューアが提供されています。比較的簡単に使用できるので、ここでは、リアルタイムビュアーを使用してみます。

Windows 用のビルド済みバイナリがこちらからダウンロード、事前トレーニング済みのモデル(14GB)をこちらからダウンロード。

次にSIBR_gaussianViewer_app.exeのある場所で[shift+右クリック]して、[Powershell ウィンドウをここで開く]をクリック。そして以下のコードを実行するだけです。

./<SIBR install dir>/bin/SIBR_gaussianViewer_app.exe -m <model path>

非公式のビューアー

公式に公開されているビューアーの他にもすでにいくつかのビューアーが作成されています。


3D Gaussian Splatting プロジェクトページへ

コメント

Translate »
タイトルとURLをコピーしました