論文 · arXiv 2308.04079
3D Gaussian Splatting for Real-Time Radiance Field Rendering
3行まとめ
- 🎯 NeRFのような放射輝度場手法は高い画質を誇る一方、低速なボリュームレイマーチングと長い最適化時間に悩まされており、グリッドベースの高速手法は品質や描画速度を犠牲にしている。
- 🔧 疎なSfM点群から初期化した異方性3Dガウスでシーンを明示的に表現し、適応的密度制御(複製と分割)で最適化し、可視性を考慮したタイルベースの微分可能GPUラスタライザで描画する。
- 📈 Mip-NeRF360に匹敵する最先端の視覚的品質を達成しつつ、1080p解像度で130〜160 FPS以上の実時間レンダリングと1時間未満の学習時間を実現。
概要
放射輝度場(Radiance Field)手法は、複数の写真や動画から撮影されたシーンの新規視点合成に近年大きな変革をもたらしました。しかし、高い視覚的品質を得るには依然として学習とレンダリングにコストがかかるニューラルネットワークが必要であり、近年の高速化手法は品質とのトレードオフを余儀なくされています。また、境界のない完全なシーン(独立したオブジェクトではなく)かつ1080pの解像度において、実時間の表示レートを達成できる既存手法はありませんでした。本研究では、競争力のある学習時間を維持しながら最先端の視覚的品質を達成し、さらに重要な点として、1080p解像度での高品質かつ実時間(30 fps以上)の新規視点合成を可能にする3つの主要要素を導入します。第1に、カメラキャリブレーション時に生成される疎な点群から開始し、不要な空間の計算を排除しつつシーン最適化のための連続ボリューム放射輝度場の望ましい特性を保持する3Dガウス(3D Gaussians)でシーンを表現します。第2に、3Dガウスの最適化と密度制御をインターリーブして行い、特に異方性共分散を最適化することでシーンの正確な表現を実現します。第3に、異方性スプラッティングをサポートし、学習の高速化と実時間レンダリングの両方を可能にする、可視性を考慮した高速レンダリングアルゴリズムを開発しました。複数の確立されたデータセットにおいて、最先端の視覚的品質と実時間レンダリングを実証します。
英語の原文概要
Radiance Field methods have recently revolutionized novel-view synthesis of scenes captured with multiple photos or videos. However, achieving high visual quality still requires neural networks that are costly to train and render, while recent faster methods inevitably trade off speed for quality. For unbounded and complete scenes (rather than isolated objects) and 1080p resolution rendering, no current method can achieve real-time display rates. We introduce three key elements that allow us to achieve state-of-the-art visual quality while maintaining competitive training times and importantly allow high-quality real-time (>= 30 fps) novel-view synthesis at 1080p resolution. First, starting from sparse points produced during camera calibration, we represent the scene with 3D Gaussians that preserve desirable properties of continuous volumetric radiance fields for scene optimization while avoiding unnecessary computation in empty space; Second, we perform interleaved optimization/density control of the 3D Gaussians, notably optimizing anisotropic covariance to achieve an accurate representation of the scene; Third, we develop a fast visibility-aware rendering algorithm that supports anisotropic splatting and both accelerates training and allows realtime rendering. We demonstrate state-of-the-art visual quality and real-time rendering on several established datasets.
論文解説
問題設定と動機
Neural Radiance Fields(NeRFs)は、多層パーセプトロン(MLP)を介して連続的な暗黙的シーン表現を最適化することで、新規視点合成に革新をもたらしました。しかし、これらの連続的な場をレンダリングするには確率的ボリュームレイマーチングに依存する必要があり、レイあたり数十から数百のサンプルを評価しなければなりません。これにより計算負荷が極めて大きくなり、長い学習時間(例: Mip-NeRF360で最大48時間)と非常に遅い推論速度(フレームあたり数秒)が生じ、1080pなどの高解像度での実時間ナビゲーションは困難でした。
PlenoxelsやInstantNGPのような放射輝度場の高速化手法は、ボクセルやハッシュグリッドを利用して学習を加速させますが、視覚的忠実度とトレードオフになることが多く、何もない空間や高周波なディテールの扱いに苦戦します。逆に、ポイントベースのアプローチはGPUに適した明示的な幾何構造を提供しますが、従来のポイントラスタライゼーションは穴を避けるために密なMulti-View Stereo(MVS)幾何形状が必要であったり、時間的フリッカーを引き起こすCNN後処理に依存したりしていました。
本論文では、3D Gaussiansを用いた非構造化で明示的なシーン表現と高速なタイルベースラスタライザを組み合わせることで、トップクラスの暗黙的放射輝度場と同等の描画忠実度を、実時間フレームレートおよび実用的な最適化時間とともに達成することを提案します。
主なアイデア
- 非構造化3Dガウス表現: 連続的な座標ネットワークや密なグリッドの代わりに、完全な異方性共分散行列を持つ離散的な3Dガウスによって放射輝度場をパラメータ化します。法線や密なMVSを必要とせず、疎なStructure-from-Motion(SfM)点群から初期化されます。
- スケールと回転によるパラメータ化: 勾配降下法全体を通じて共分散行列が半正定値であり続けるよう、3Dスケーリングベクトルと単位四元数(クォータニオン)に分解します。
- 適応的密度制御: 視点空間の位置勾配を追跡することで、最適化中にシーンの密度を動的に管理します。再構築が不十分なガウスは複製し、過剰に再構築されたガウスは分割する一方、透明または大きすぎるスプラットを除去(枝刈り)します。
- 可視性を考慮したタイルベースラスタライゼーション: 専用のGPUラスタライザが画面ピクセルをのタイルに分割し、高速基数ソート(Radix sort)を用いてフレームごとにスプラットを深度順にソートし、勾配の更新を受け取るスプラットの数を制限することなく、異方性投影を手前から奥へアルファブレンディングします。
手法
1. 3Dガウスによるシーン表現
平均を中心とする3Dガウスは、ワールド空間における共分散行列によって定義されます:
最適化中にが半正定値を維持することを保証するため、回転行列とスケーリング行列に因数分解します: ここで、は指数関数で評価される3Dベクトルとして保持され、は正規化された単位四元数によってパラメータ化されます。
レンダリング時、3DガウスはEWAスプラッティングの枠組みに従って2D画像座標に投影されます。視点変換と射影変換のアフィン近似のヤコビ行列が与えられると、スクリーン空間における2D共分散行列は次のようになります: 3行目と3列目を破棄することで、平面スプラッティング用の共分散行列が得られます。
2. レンダリングと画像生成
各ガウスは、不透明度(シグモイド関数によりに制限)と、視点依存の色を記述する球面調和関数(Spherical Harmonics: SH)係数を持ちます。ピクセル上でソートされた個の重なり合うガウスのブレンディングは、標準的なボリューム定式化に従います: ここでは、2Dに投影されたガウスを評価し、学習された点ごとの不透明度を乗算することによって決定されます。
3. 最適化と適応的制御
損失関数は、損失とD-SSIM損失を組み合わせたものです():
視点空間での平均位置勾配がを超えるガウスに対し、100イテレーションごとに適応的密度制御を実行します:
- 複製(Under-reconstruction): 小さなガウスの場合、複製を作成して位置勾配の方向に移動させます。
- 分割(Over-reconstruction): 大きなガウスの場合、そのプリミティブをスケールが係数で縮小された2つの小さなガウスに置き換え、親ガウスから初期位置をサンプリングします。
- 枝刈り(Pruning): のガウスや、ワールド/視点空間で過度に大きいガウスを削除します。浮遊アーティファクトを除去するため、イテレーションごとに不透明度をゼロ近くにリセットします。
4. 高速で微分可能なタイルベースラスタライザ
- 画面はピクセルのタイルに分割されます。
- 99%信頼区間の視錐台カリングを通過したガウスには、タイルIDと視点空間の深度をエンコードした64ビットキーが割り当てられます。
- 単一のGPU基数ソート(Radix sort)により、フレーム全体のすべてのインスタンスをソートします。
- スレッドブロックは、が飽和するまで(を超える手前で停止)、タイルごとに手前から奥へと色を蓄積します。
- バックワードパスではタイルを奥から手前へ逆走し、最終的な蓄積不透明度を各プリミティブので割ることで中間状態の不透明度を復元するため、メモリ負荷の高いピクセル単位の動的バッファを回避できます。
結果
- Mip-NeRF360データセット: 30Kイテレーション後(平均学習時間41分33秒)、3D Gaussian Splattingは平均でSSIM 0.815、PSNR 27.21 dB、LPIPS 0.214を達成し、Mip-NeRF360(SSIM 0.792、PSNR 27.69 dB、LPIPS 0.237、学習時間48時間)と同等以上の性能を示しながら、Mip-NeRF360の0.06 FPSに対して134 FPSでレンダリングを行いました。
- 高速設定(7Kイテレーション): わずか6分25秒でSSIM 0.770、PSNR 25.60 dB、160 FPSを達成し、同等の学習時間内においてInstantNGP-Base(SSIM 0.671、11.7 FPS)やPlenoxels(SSIM 0.626、6.79 FPS)を上回りました。
- Tanks&TemplesおよびDeep Blending: Tanks&Templesでは30KイテレーションでSSIM 0.841、PSNR 23.14 dB、154 FPSに達しました。Deep BlendingではSSIM 0.903、PSNR 29.41 dB、137 FPSを達成しました。
- Synthetic Blender: 10万点の完全なランダム初期化から平均PSNR 33.32 dBを記録し、180〜300 FPSで描画しました。
限界と未解決の課題
- 未観測の視点と外れ値: カバレッジが疎な領域や学習軌道から大きく離れた視点では、引き伸ばされたガウスや斑点状(splotchy)のガウスなど、目に見えるアーティファクトが生じる可能性があります。
- ポッピング現象: 深度順の急な切り替わりや積極的なガードバンドカリングにより、カメラ移動中にポッピングが発生することがあり、アンチエイリアシングのさらなる改善が必要です。
- メモリ消費量: 従来の密な点群と比較すればコンパクトですが、明示的な表現には数百メガバイト(例: 100万〜500万個のガウスを含むシーンで400〜750 MB)が必要であり、最適化されていないプロトタイプの実装では学習時のGPUメモリが20 GBを超えることがあります。
- 正則化の欠如: 幾何学的滑らかさや密度の明示的な正則化項が含まれていないため、カメラ光線による制約が弱い領域に背景の浮遊物(フローター)が残りやすい傾向があります。
重要用語
- 3D Gaussians
- 中心位置、異方性共分散行列、不透明度、および球面調和関数による外観係数によって定義される、核となる非構造化で微分可能な3Dプリミティブ。
- Anisotropic Covariance
- 個別のスケーリングベクトルと単位回転クォータニオンとしてパラメータ化された方向性を持つ3Dの広がり。物理的な表面に沿って平らな楕円体に変形することを可能にする。
- Adaptive Density Control
- 位置勾配が大きいプリミティブを複製または分割してガウスを追加し、透明または過大になったプリミティブを枝刈りするインターリーブ最適化戦略。
- Tile-Based Rasterization
- ビューポートをピクセルのビンに分割し、重なり合うガウススプラットを並列かつ効率的にソート・ブレンドするGPU主導のレンダリングパイプライン。
- Alpha-Blending
- ソートされた2D投影スプラットに対して、標準的なNeRFのボリューム積分を模倣して色と透過率を手前から奥へ累積する処理。
- Radix Sort
- タイルIDと視点空間の深度を組み合わせた64ビットキーに基づき、ガウス全体を並列にグローバルソートするGPUソートアルゴリズム。
- Spherical Harmonics (SH)
- 各ガウスプリミティブにおいて、最大4バンドにわたり視点依存の色を表現するために使用される周波数ベースの方向関数基底。
よくある質問
3Dガウスは最適化前にどのように初期化されますか?
Structure-from-Motion(SfM)カメラキャリブレーションの副産物として生成される疎な点群を用いて初期化され、最も近い3つの隣接点までの平均距離から初期の等方性スケールが決定されます。合成シーンの場合は、一様ランダムな初期化も使用できます。
ガウスの複製(クローン)と分割(スプリット)の違いは何ですか?
複製は小さなガウスをコピーして位置勾配に沿って移動させ、欠落している幾何学的特徴をカバーします(under-reconstruction)。分割は、過度に大きなガウスをスケールを1.6倍縮小した2つの小さなガウスに分割し、分散の大きなディテールをより適切に捉えます(over-reconstruction)。
ラスタライザがピクセル単位ではなくタイル単位でソートを行うのはなぜですか?
タイルと深度を組み合わせたキーに対して単一のグローバルGPU基数ソート(Radix sort)を用いてタイル単位でソートを行うことで、ピクセルごとにプリミティブをソートする高い計算負荷を回避し、視覚的な近似を最小限に抑えながら高いフレームレートを実現できます。
バックワードパスでは、ピクセルごとの長いプリミティブリストをグローバルメモリに保存するのをどのように回避していますか?
ラスタライザはソート済みのタイル単位リストを奥から手前へ再度走査し、最終的な蓄積不透明度を各ガウスのアルファ値で除算して中間不透明度を復元するため、ピクセルあたり一定のメモリオーバーヘッドしか必要としません。
このページの解説は AI が論文から作成したもので、誤りを含む場合があります。詳細は原文をご確認ください。