Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
3D Gaussian Splatting for Real-Time Radiance Fi...
Search
frkake
March 05, 2024
Research
0
820
3D Gaussian Splatting for Real-Time Radiance Field Rendering
frkake
March 05, 2024
Tweet
Share
More Decks by frkake
See All by frkake
Removing Reflections from RAW Photos
frkake
0
200
[CorrMLP] Correlation-aware Coarse-to-fine MLPs for Deformable Medical Image Registration
frkake
0
1.4k
Neural Network Diffusion
frkake
0
240
Segment Anything + Alpha
frkake
0
270
[RetNet] Retentive Network: A Successor to Transformer for Large Language Models
frkake
0
300
Muse: Text-To-Image Generation via Masked Generative Transformers
frkake
0
120
Other Decks in Research
See All in Research
Galileo: Learning Global & Local Features of Many Remote Sensing Modalities
satai
3
400
論文紹介:Safety Alignment Should be Made More Than Just a Few Tokens Deep
kazutoshishinoda
0
110
[CV勉強会@関東 CVPR2025] VLM自動運転model S4-Driver
shinkyoto
2
550
まずはここから:Overleaf共同執筆・CopilotでAIコーディング入門・Codespacesで独立環境
matsui_528
2
670
アニメにおける宇宙猫ミームとその表現
yttrium173340
0
110
なめらかなシステムと運用維持の終わらぬ未来 / dicomo2025_coherently_fittable_system
monochromegane
0
4.3k
LLM-jp-3 and beyond: Training Large Language Models
odashi
1
500
Submeter-level land cover mapping of Japan
satai
3
460
Pythonでジオを使い倒そう! 〜それとFOSS4G Hiroshima 2026のご紹介を少し〜
wata909
0
1k
When Learned Data Structures Meet Computer Vision
matsui_528
1
160
多言語カスタマーインタビューの“壁”を越える~PMと生成AIの共創~ 株式会社ジグザグ 松野 亘
watarumatsuno
0
140
地域丸ごとデイサービス「Go トレ」の紹介
smartfukushilab1
0
290
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The Cost Of JavaScript in 2023
addyosmani
55
9.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
BBQ
matthewcrist
89
9.9k
How GitHub (no longer) Works
holman
315
140k
Java REST API Framework Comparison - PWX 2021
mraible
34
8.9k
Mobile First: as difficult as doing things right
swwweet
225
10k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
Transcript
3D Gaussian Splatting for Real-Time Radiance Field Rendering 2024/3/6 飯田啄巳
概要 タイトル :3D Gaussian Splatting for Real-Time Radiance Field Rendering
著者 :Bernhard Kerbl, Georgios Kopanas, Thomas Leimkühler, George Drettakis 所属 :Inria, Université Côte d'Azur, MPI Informatik 学会 :SIGGRAPH 2023 特徴: • 高速な学習 • 高速な描画(>=30fps) • 高解像度(1080p)
わかりやすい記事でまず紹介 初期状態:SfMで得られたスパースな点群 点群を増やしたり減らしたりする 3D Gaussian 3D Gaussians 一つ一つ違う • 位置
• 形状(共分散行列) • 色 • 透明度(α) 透明度αを0とした場合 3D Gaussian(今回) Triangle(通常) プリミティブを3D Gaussianにしてシーンを構成 https://huggingface.co/blog/gaussian-splatting より引用
処理フロー 1. SfMの点群を初期値として開始 2. 3Dガウシアンをカメラ座標系に投影 3. 投影したガウシアンをラスタライズ 4. 描画画像とGTとで損失計算 5.
ガウシアンの密度制御 繰り返す
処理フロー 1. SfMの点群を初期値として開始 2. 3Dガウシアンをカメラ座標系に投影 3. 投影したガウシアンをラスタライズ 4. 描画画像とGTとで損失計算 5.
ガウシアンの密度制御 こういうやつを使う ランダム値でもそこそこ良いらしい 3Dガウシアンの形状表現形式 × 𝛼 三次元共分散行列(これがガウシアンの形状を決める) 他に以下の情報を持つ • 位置 • 透明度(𝛼) • 球面調和係数(色) 3Dガウシアンは 異方性をもつオブジェクトも表現可能
処理フロー 1. SfMの点群を初期値として開始 2. 3Dガウシアンを2Dに投影 3. 投影したガウシアンをラスタライズ 4. 描画画像とGTとで損失計算 5.
ガウシアンの密度制御 世界座標系での 3D共分散 カメラ座標系での 2D共分散 視点変換行列 透視投影変換のアフィン近似のヤコビアン Zwicker[2001a]によるとこういう変換形式になる projection 共分散行列は半正定値でないと 物理的な意味を持たない =最適化しにくい → 楕円体として表せば良いのでは? 最適化の対象なんだけど… スケール行列&回転行列
処理フロー 1. SfMの点群を初期値として開始 2. 3Dガウシアンを2Dに投影 3. 投影したガウシアンをラスタライズ 4. 描画画像とGTとで損失計算 5.
ガウシアンの密度制御 rasterize ポリゴン(ガウシアン)で深度ソート (Radix Sort) カスタムCUDAカーネルを作ったり、 GPUアクセラレートフレームワークを使ったり 自動微分はせず、予め微分の式を作っておいたり… タイルベースのラスタライズ … 16x16 ビュー台形との信頼区間が99%のガウシアンだけ残す (意味わかってない) 16x16 16x16 16x16 16x16 … タイルごとにスレッドを立ち上げてラスタライズ
処理フロー 1. SfMの点群を初期値として開始 2. 3Dガウシアンをカメラ座標系に投影 3. 投影したガウシアンをラスタライズ 4. 描画画像とGTとで損失計算 5.
ガウシアンの密度制御
処理フロー 1. SfMの点群を初期値として開始 2. 3Dガウシアンをカメラ座標系に投影 3. 投影したガウシアンをラスタライズ 4. 描画画像とGTとで損失計算 5.
ガウシアンの密度制御 100イテレーションごとに緻密化、𝛼 < 𝜖𝛼 (透明)の場合ガウシアンを破棄 小さいガウシアンは クローン 大きいガウシアンは 分割
処理フロー 1. SfMの点群を初期値として開始 2. 3Dガウシアンをカメラ座標系に投影 3. 投影したガウシアンをラスタライズ 4. 描画画像とGTとで損失計算 5.
ガウシアンの密度制御 繰り返す • NNは使ってない • 自動微分はやらない • 全部のガウシアンが勾配を受け取る=制限なし=シーン依存のハイパラ不要 手計算してます
結果:実データ Mip-NeRF360 :高品質だけど、時間かかる Plenoxels, InstantNGP :速いけど低品質 3D Gaussian Splatting :高品質かつ速い
7Kイテレーションでもそこそこ良い=収束速い
Ablation Study:初期値の重要性 合成データ(Blender)だと いい加減な初期値(ランダム)でも良い結果 ランダムな初期値でも全体的には良い結果 しかし、背景部分にモヤ(floaters)が出現
Ablation Study:ガウシアンの分割やクローンをやらない場合などの違い 大きなガウシアンを分割しないと 背景がだめになる (細かい部分に適応できない?) 小さなガウシアンをクローンしないと 収束が弱くなる
Ablation Study:3Dガウシアンが異方性を持つ必要性 割りと露骨に球体が現れる
Ablation Study:諸々の効果 • 球面調和関数(Spherical Harmonics, SH) 視点依存の効果を付与できる
Limitations(というより性質に近い) • 観測シーンが少ない場合はアーチファクトが発生 • 大きなガウシアンが作られた場合にポッピングが発生(LODの切り替えタイミングで起きるアーチファクト) • 視点位置のアピアランスの影響? • ラスタライザのガードバンドで棄却される?(説明省きました) •
細長いアーチファクトやポツポツとしたアーチファクトになりがち
思ったこと メタボールっぽい Fuzzy Metaballsというのが1年前にあった https://kanamori.cs.tsukuba.ac.jp/jikken/inner/metaball.pdf
補足
Plenoxels https://alexyu.net/plenoxels/
None
Fuzzy Metaballs https://leonidk.com/fuzzy-metaballs/