3D Gaussian Splatting
- 又稱: 3DGS, Gaussian Splatting, Gaussian splats, Gaussian radiance field
- 類別: Sensing › 3D maps & reconstruction
- 標籤: scene-representation, 3d-reconstruction, rendering, slam, computer-vision, simulation
一種場景表示法,把 3D 環境建模為大量帶有顏色、半透明的高斯團塊,可從照片最佳化而得,並能以擬真照片級畫質即時渲染。
定義
3D 高斯潑濺(3D Gaussian Splatting,3DGS)是一種重建與渲染 3D 場景的方法,由 Bernhard Kerbl、Georgios Kopanas、Thomas Leimkühler 與 George Drettakis 於 SIGGRAPH 2023 發表。場景以一群 3D 高斯來表示,每個高斯具有一個位置、一個決定其大小與方向的共變異數、一個不透明度,以及以球諧係數儲存、隨視角而變的顏色。要渲染一張影像時,這些高斯會被投影到影像平面上,依深度排序,再由前往後混合,這個過程稱為潑濺(splatting)。
此表示法是從已知相機姿態的照片中學習而來,相機姿態通常以 COLMAP 這類運動回復結構(structure-from-motion)軟體求得,該軟體也會提供一個稀疏點雲,用來初始化這些高斯。由於光柵化器是可微分的,每個高斯的參數都能以梯度下降進行最佳化,以縮小渲染影像與真實影像之間的差異。訓練期間,會在重建不足的區域加入高斯,在高斯過大之處將其分裂,並在其幾乎變得透明時將其移除。
神經輻射場(NeRF)把場景儲存在一個沿著相機光線查詢的神經網路中;相較之下,高斯潑濺是一種顯式表示法,以快速的分塊(tile-based)光柵化而非光線步進(ray marching)來渲染。這帶來高解析度下的即時渲染與更快的訓練,代價是較高的記憶體用量,因為一個場景可能包含數量極為龐大的高斯。由於高斯是顯式的,它們可以被移動、編輯、附著到物體上或刪除,而這在隱式網路上較難做到。
機器人領域以多種方式使用 3DGS。作為地圖表示法,它支援能在追蹤相機的同時建立擬真照片級地圖的稠密 SLAM 系統。作為模擬素材,重建出的真實場景可與物理模擬器搭配,讓視覺策略能在實際部署環境的逼真影像上進行訓練或測試。其限制包括反光或透明的表面、幾何精度不如渲染外觀所呈現的那麼高,以及需要相機對場景有良好的涵蓋。
為何重要
3DGS 讓真實場所的擬真照片級重建快到足以即時渲染,使機器人能建立逼真的地圖,也讓團隊能把真實房間的掃描轉成視覺訓練資料。它已成為以視覺為基礎的機器人學習中,連接真實環境與模擬的一座廣泛使用的橋樑。
主要應用
- 擬真照片級模擬 — 渲染逼真的相機視角,用於訓練與測試視覺策略
- 稠密 SLAM — 在追蹤相機姿態的同時建立擬真照片級地圖
- 數位孿生 — 重建真實的工作空間、工廠或住家,用於規劃與檢查
- 無人機導航 — 為以視覺為基礎的飛行提供逼真的視覺環境
- 場景編輯 — 插入、移動或移除物體,以建立多樣的訓練場景
實際應用
團隊通常會先拍攝機器人工作空間的一段影片或一組照片,用 COLMAP 或類似工具估計相機姿態,再以開源實作(例如原作者的程式碼或 Nerfstudio 的 splatfacto)訓練高斯潑濺模型。訓練好的場景可從任何視角渲染,因此他們會放置與機器人機載相機相符的虛擬相機來產生訓練影像,或將潑濺場景與物理模擬器的碰撞幾何對齊,讓模擬中的機器人在移動時看到逼真的畫面。在建圖方面,團隊會使用搭配 RGB-D 或單眼相機的高斯潑濺 SLAM 系統,並以深度感測器驗證幾何,因為渲染出的影像可能看起來正確,底層的形狀卻不準確。
常見誤解
- 高斯潑濺是一種神經網路 — 它是一組經過最佳化的顯式基元;渲染它不需要任何神經網路
- 擬真照片級的渲染代表幾何準確 — 外觀可能正確,但深度與表面並不精確,因此幾何需要另外驗證
- 3DGS 取代了物理模擬 — 它處理的是外觀與渲染;接觸與動力學仍需要物理引擎與碰撞幾何
- 它適用於任何一組照片 — 它需要良好的視角涵蓋與準確的相機姿態,且難以處理反光、透明或移動中的內容
誰需要了解
- 建立地圖與場景表示法的感知工程師
- 訓練以視覺為基礎之策略的機器人學習研究人員
- 打造逼真環境的模擬工程師
- 無人機導航開發者
相關技術
- 神經輻射場(Neural Radiance Fields,NeRF)
- 運動回復結構(Structure from Motion,COLMAP)
- SLAM
- 可微分渲染(Differentiable Rendering)
- 點雲(Point Cloud)
- Nerfstudio
相關術語
相關專案
- GENESIS: World's fastest physics engine: 43M FPS for embodied AI learning
- LeRobot: HuggingFace ML library for real-world robotics in PyTorch
- LingBot-Map: Streaming 3D reconstruction from one camera: pose and depth for every frame, live
- PyBullet: Python physics simulator for robotics and RL research with fast CPU-based simulation
- oomwoo: Open-source DIY robot vacuum: 3D-printed, ROS2 + 2D LiDAR, fully local.
- Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
影片
- 3D Gaussian Splatting - Why Graphics Will Never Be The Same: IndividualKex
- 3D Gaussian Splatting! - Computerphile: Computerphile