見出し画像

3D Gaussian Splatting の概要

以下の記事が面白かったので、かるくまとめました。

Introduction to 3D Gaussian Splatting


1. 3D Gaussian Splatting の概要

3D Gaussian Splatting」は、画像の小さなサンプルで学習したデータから、フォトリアリスティックなシーンのリアルタイムレンダリングする手法です。

本質的にはラスター化手法 (他のデータ形式からのピクセル画像生成) になります。

(1) シーンを説明するデータを用意
(2) データを画面上に描画

これは、画面上に多数の三角形を描画するために使用される、コンピュータ グラフィックスの三角形ラスタライズに似ています。

ただし、三角形ではなくガウスです。 これは、明確にするために境界線が描かれた、ラスター化された単一のガウス分布になります。


これは次のパラメータで構成されています。

・Position : どこにあるか (XYZ)
・Covariance どのように拡張 / スケーリングされるか (3x3 行列)
・Color : 何色か (RGB)
・Alpha : 透明度 (α)

実際には、複数のガウスが一度に描画されます。以下は3ガウスです。

700万ガウスは以下のようになります。

各ガウスを完全に不透明にラスタライズすると、次のようになります。

2. 3D Gaussian Splatting の詳細

論文に記載されている完全な手順をベースに解説します。

2-1. 2次元画像の集合からの3次元点群の推定

最初に「SfM」(Structure from Motion) 法を使用して、一連の画像から点群を推定します。2次元画像の集合から3次元点群を推定する手法になります。これは「COLMAP」ライブラリで実行できます。

2-2. ガウスへの変換

次に、各点をガウスに変換します。ラスタライズにはこれで十分です。ただし、SfMデータから推定できるのは位置と色のみです。高品質の結果を生み出す表現を学習するには、それを学習する必要があります。

2-3. 学習

学習には、ニューラル ネットワークに似た確率的勾配降下法を使用しますが、レイヤーは使用しません。

(1) 微分可能ガウスラスタライズを使用してガウスを画像にラスタライズ
(2) ラスター化された画像とグラウンドトゥルース画像の差をもとに損失を計算
(3) 損失に応じてガウスパラメータを調整
(4) 自動化された高密度化とプルーニングを適用

(1) ~ (3) は概念的には非常に簡単です。 (4)には以下が含まれます。

・特定のガウスに対して勾配が大きい場合 (つまり、不正確すぎる場合)、分割 / クローンを作成
 ・ガウスが小さい場合はクローンを作成
 ・ガウスが大きい場合は分割
・ガウスのアルファが低すぎる場合は削除

この手順により、不必要なガウスを削除しながら、ガウスをより詳細に適合させることができます。

2-4. ラスタライズ

「3D Gaussian Splatting」はデータを画面に描画するラスター化手法です。いくつかの重要な要素は次のとおりです。

・高速
・微分可能

ラスタライザーの元の実装はここにあります。ラスタライズには以下が含まれます。

(1) カメラの視点から各ガウスを2Dに投影
(2) ガウス分布を深さ順に並べ替える
(3) ピクセルごとに各ガウスを前から後ろに繰り返しそれらをブレンド

追加の最適化については論文で説明されています。

また、確率的勾配降下法で学習できるように、ラスタライザーが微分可能であることも重要です。ただし、これは学習にのみ関係し、学習されたガウスは非微分可能アプローチでレンダリングすることもできます。

3. 3D Gaussian Splatting の長所と短所

「3D Gaussian Splatting」の長所と短所は、次のとおりです。

・長所

・高品質でフォトリアルなシーン
・高速、リアルタイムのラスタライゼーション
・比較的高速に学習可能

・短所

・VRAMの使用量が多い (表示用に4GB、学習用に12GB)
・大きなディスクサイズ (シーンあたり1GB以上)
・既存のレンダリングパイプラインと互換性がない
・静的 (今のところ)

・レンダリングパイプライン
元のCUDA 実装は Vulkan、DirectX、WebGPU などのレンダリングパイプラインに適応されていないため、どのような影響があるかはまだわかりません。

すでに次のような適応が行われています。

(1) Remote viewer
(2)
WebGPU viewer
(3)
WebGL viewer
(4)
Unity viewer
(5)
Optimized WebGL viewer

これらは、リモートストリーミング(1)、または従来のクワッドベースのラスタライゼーションアプローチ(2 ~ 5) のいずれかに依存します。クアッドベースは数十年にわたるグラフィックステクノロジと互換性がありますが、品質やパフォーマンスが低下する可能性があります。ただし、ビューア(5)は、クワッドベースにもかかわらず、最適化トリックにより高い品質とパフォーマンスが得られることを示しています。

・運用環境でのボトルネック
運用環境での主なボトルネックは、数百万のガウスのソートです。これは、CUDAでのみ使用できる高度に最適化されたソートである CUB デバイス基数ソートを使用して、元の実装で効率的に実行されます。ただし、十分な努力をすれば、他のレンダリングパイプラインでもこのレベルのパフォーマンスを達成することは可能です。

4. 3D Gaussian Splatting の今後

4-1. 3D Gaussian Splatting でのアニメーション

「3D Gaussian Splatting」でアニメーションができるかどうかについては、論文「Dynamic 3D Gaussians: tracking by Persistent Dynamic View Synthesis」では、それが可能であることが示唆されています。

4-2. Embodied AI への影響

Embodied AI」の研究への関心も高まっています。これはAI研究の分野であり、最先端のパフォーマンスは依然として人間のパフォーマンスよりも低く、課題の多くは3D空間の表現にあります。「3D Gaussian Splatting」によって3D空間の非常に高密度な表現が得られることを考えると、「Embodied AI」の研究にも影響を与えるかもしれません。



この記事が気に入ったらサポートをしてみませんか?