3D Gaussian Splatting

3D高斯濺射(3D Gaussian Splatting )是一種基于顯式三維高斯分布的場景表示與渲染方法。與傳統的三維重建技術(如多邊形網格、點云或隱式神經輻射場NeRF)不同,3DGS將場景表示為大量帶有屬性的3D高斯橢球的集合,每個高斯橢球包含位置、形狀(協方差矩陣)、顏色(球諧系數)和不透明度等信息。

3DGS的核心思想源自計算機圖形學中的"濺射"(Splatting)技術,這是一種將離散的點數據轉換為連續圖像的方法。在3DGS中,每個3D高斯橢球被"濺射"到二維圖像平面上,通過可微分的渲染流程生成最終的圖像。這種方法結合了點云的直觀性和神經渲染的高質量,同時克服了傳統方法的諸多限制。

與傳統方法相比,3DGS具有幾個顯著優勢:

  • 渲染效率高:支持實時渲染(30FPS以上),比NeRF快數百至數千倍

  • 訓練速度快:通常只需幾分鐘到幾十分鐘即可完成一個場景的訓練

  • 顯式表示:場景由明確的高斯橢球構成,便于編輯和控制

  • 高質量細節:能夠捕捉場景的精細幾何和復雜外觀

什么是Splatting?

Splatting流程

選擇雪球

為什么選擇3D高斯橢球?

3d高斯為什么是橢球?

協方差矩陣?

  • μ表示高斯中心的位置(3D坐標)

  • Σ是協方差矩陣,控制高斯的形狀和方向

  • x是空間中的任意點

各向同性和各向異性?

協方差矩陣如何控制橢球形狀?

協方差矩陣為什么能用旋轉和縮放矩陣表達?

A是旋轉R乘以縮放S,已知協方差矩陣可以通過特征值分解來求R,S。

計算協方差矩陣代碼

左邊是CUDA代碼,右邊是用Python代碼重寫。mod是縮放,rot是旋轉。協方差矩陣可以控制橢球形狀,用旋轉和縮放控制協方差矩陣

如何參數估計?

3D到像素

觀測變換

投影變換

視口變換

光柵化

3D高斯的觀測變換

3D高斯投影變換

均值可以正常變到NDC的坐標系因為他是一個數,但協方差矩陣不行。

雅可比矩陣

投影變換的雅可比矩陣

對高斯核中心做視口變換

高斯中心變換:

觀測變換->投影變換->視口變換->光柵化

3D高斯球的顏色

合成圖片

  • 不透明度(α):控制該高斯對最終圖像的貢獻程度

  • 球諧系數(SH):用于表示視角相關的顏色,支持復雜光照效果的建模

  • 顏色(c):基礎顏色值

nerf

為什么3dgs更快

機器學習與參數評估

?

3DGS的渲染流程是將3D高斯投影到2D圖像平面的過程,主要包括以下步驟:

  1. 投影變換:將3D高斯根據相機參數投影到2D圖像平面。投影后的2D高斯協方差矩陣Σ'可表示為:
    Σ' = JWΣW^TJ^T
    其中J是投影變換的雅可比矩陣,W是視圖變換矩陣

  2. 光柵化:對每個像素,收集所有重疊的2D高斯,按深度排序后,采用alpha混合公式計算最終顏色:
    C = Σ(ci αi Π(1-αj))
    其中ci是第i個高斯的顏色,αi是其不透明度,j遍歷所有前面的高斯

  3. 梯度回傳:渲染過程是完全可微分的,允許通過反向傳播優化所有高斯參數

3DGS的完整技術流程

3DGS的實現包含一系列精心設計的步驟,從數據準備到最終渲染。下面我們將詳細剖析3DGS的完整技術流程,幫助您理解這一技術如何從多視角圖像重建出高質量的三維場景。

1. 數據預處理與相機標定

3DGS流程的第一步是場景數據的準備和相機參數的標定。這一階段通常使用運動恢復結構(Structure from Motion, SfM)技術完成:

  • 輸入數據:一組從不同視角拍攝的場景圖像(通常需要一定重疊度)

  • 特征提取與匹配:檢測圖像中的特征點并在多視圖間建立對應關系

  • 稀疏重建:通過多視圖幾何計算相機參數(位置、朝向、內參)和稀疏3D點云

  • 輸出:校準后的相機參數和初始稀疏點云(如COLMAP格式)

這一步驟為后續的高斯初始化提供了幾何基礎視角約束,對最終重建質量至關重要。相機標定的準確性直接影響3DGS的重建效果,因此在實際應用中常需要精心調整SfM參數或進行人工校驗。

2. 3D高斯初始化

基于SfM輸出的稀疏點云,3DGS開始構建初始的高斯表示:

  • 高斯創建:為每個稀疏3D點創建一個初始高斯橢球

  • 初始參數設置

    • 位置(μ):直接使用點云中的3D點坐標

    • 協方差(Σ):初始化為各向同性小橢球(通常基于點云密度自動確定)

    • 不透明度(α):初始設為中等值(如0.5)

    • 顏色(c):從輸入圖像中采樣對應點的顏色

    • 球諧系數(SH):初始化為產生視角無關的基礎顏色

初始高斯的數量通常與稀疏點云中的點數相同,但在后續優化過程中會通過自適應密度控制動態調整。

3. 可微分渲染與優化

初始化后,系統進入迭代優化階段,通過可微分渲染不斷調整高斯參數:

  1. 前向渲染

    • 對于每個訓練視角,將3D高斯投影到圖像平面

    • 使用alpha混合光柵化生成預測圖像

    • 計算預測圖像與真實圖像之間的差異(L1、SSIM等損失)

  2. 反向傳播

    • 通過可微分渲染管道回傳梯度

    • 更新高斯的位置、形狀、顏色和不透明度等參數

    • 采用類似Adam的優化器進行參數更新

  3. 自適應密度控制

    • 定期評估各高斯對最終渲染的貢獻

    • 移除不重要的高斯(透明度高或視角一致性差)

    • 在重建不足的區域分裂高斯(將一個大高斯分裂為多個小高斯)

    • 在過度重建的區域克隆高斯(復制并略微偏移)

這一階段通常需要數萬次迭代,但在現代GPU上只需幾分鐘到幾十分鐘即可完成。

4. 場景渲染與后處理

優化完成后,3DGS場景可以高效渲染新視角:

  • 實時渲染:使用優化后的高斯集合,任何新視角都可以通過GPU光柵化管道快速渲染

  • 抗鋸齒處理:通過各向異性濾波或超采樣減少邊緣鋸齒

  • 動態效果:支持運動模糊、景深等后處理效果

值得注意的是,3DGS的渲染不需要預先烘焙或復雜預處理,使得它特別適合交互式應用。

流程總結

3DGS的完整流程可以概括為:數據采集→相機標定→高斯初始化→可微分渲染優化→自適應密度控制→最終渲染。這一流程巧妙結合了傳統多視圖幾何與現代可微分渲染技術,實現了高質量且高效的三維重建

3DGS的關鍵技術與創新點

3DGS之所以能夠取得突破性進展,得益于其多項關鍵技術設計。這些創新點共同解決了傳統三維表示和渲染中的諸多難題,使3DGS在質量、速度和靈活性方面都達到了新高度。

1. 自適應密度控制

自適應密度控制是3DGS最核心的創新之一,它動態調整場景中高斯點的分布和密度,以平衡重建質量和計算效率:

  • 高斯分裂:在重建不足的區域(如高頻細節處),將大高斯分裂為多個小高斯,提升局部細節表現

  • 高斯克隆:在需要更多覆蓋的區域(如邊緣處),復制現有高斯并略微偏移,增強連續性

  • 高斯修剪:定期移除對渲染貢獻小的高斯(透明度高于閾值或視角一致性差),提高存儲和計算效率

這一機制使3DGS能夠自動適應不同復雜度的場景區域,無需人工干預。與需要預設分辨率的網格或體素方法不同,3DGS的自適應密度控制使其在簡單區域節省資源,在復雜區域增加容量。

2. 可微分高斯濺射渲染

3DGS設計了完全可微分的濺射渲染管道,這是實現端到端優化的關鍵:

  • 精確投影:將3D高斯準確投影到2D圖像平面,保持幾何一致性

  • 高效光柵化:利用現代GPU的并行計算能力,快速計算各像素受哪些高斯影響

  • Alpha混合:沿深度方向正確混合重疊高斯的顏色和不透明度

  • 梯度傳播:精心設計的導數計算,確保梯度能夠有效回傳到所有高斯參數

與傳統點云渲染不同,3DGS的濺射渲染考慮了高斯形狀和視角變化,避免了空洞和走樣問題。同時,其可微分特性使優化過程能夠同時考慮幾何和外觀因素。

3. 基于球諧函數的視角相關外觀

3DGS使用球諧函數(Spherical Harmonics, SH)建模視角相關的光照效果:

  • 低階SH系數(通常2-3階)表示基礎顏色和簡單光照變化

  • 高階SH系數捕捉更復雜的光照變化和材質特性

  • 每個高斯存儲一組SH系數,在渲染時根據視角方向計算實際顏色

這種方法使3DGS能夠以相對緊湊的表示(相比存儲所有可能視角的顏色)實現真實的視角相關效果,如鏡面高光和漫反射變化。

4. 顯式與隱式表示的融合

3DGS巧妙結合了顯式和隱式表示的優勢

  • 顯式方面:高斯參數直接控制幾何形狀和空間分布,便于編輯和分析

  • 隱式方面:通過可微分渲染和優化,隱式地編碼復雜外觀和光照效果

  • 混合特性:自適應密度控制實現了類似隱式表示的連續適應性,同時保持顯式表示的效率

這種融合使3DGS既能像傳統點云一樣直接操控,又能達到神經渲染的視覺質量,開辟了三維表示的新范式

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/86617.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/86617.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/86617.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

鴻蒙5:布局組件

注意:博主有個鴻蒙專欄,里面從上到下有關于鴻蒙next的教學文檔,大家感興趣可以學習下 如果大家覺得博主文章寫的好的話,可以點下關注,博主會一直更新鴻蒙next相關知識 專欄地址: https://blog.csdn.net/qq_56760790/…

Flink狀態和容錯-基礎篇

1. 概念 flink的狀態和容錯繞不開3個概念,state backends和checkpoint、savepoint。本文重心即搞清楚這3部分內容。 容錯機制是基于在狀態快照的一種恢復方式。但是狀態和容錯要分開來看。 什么是狀態,為什么需要狀態? 流計算和批計算在數…

【若依學習記錄】RuoYi后臺手冊——分頁實現

目錄 若依系統簡介 前端調用實現 前端調用舉例 后臺邏輯實現 若依系統簡介 RuoYi 是一個基于 Spring Boot、Apache Shiro、MyBatis 和 Thymeleaf 的后臺管理系統,旨在降低技術難度,助力開發者聚焦業務核心,從而節省人力成本、縮短項目周…

從臺式電腦硬件架構看前后端分離開發模式

在軟件開發領域,前后端分離早已成為主流架構設計理念。它將系統的業務邏輯處理與用戶界面展示解耦,提升開發效率與系統可維護性。有趣的是,我們日常生活中常見的臺式電腦硬件架構,竟與這一理念有著異曲同工之妙。今天,就讓我們從臺式電腦的硬件組成出發,深入探討其與前后…

可觀測性的哲學

在現代系統架構中,“可觀測性(Observability)”已不僅僅是一個工程實踐,是一種關于“理解世界”的哲學姿態, 還是一種幫助架構演變的認知工具。從柏拉圖的“洞穴寓言”出發,我們可以構建起一條從被動接受投影&#xff…

開疆智能CCLinkIE轉ModbusTCP網關連接傲博機器人配置案例

本案例是通過CClinkIE轉ModbusTCP網關,連接傲博機器人的配置案例 PLC配置 打開三菱PLC組態軟件GXWORK3設置CClinkIE一側的參數配置,首先設置PLC的IP地址 雙擊詳細設置進入CClinkIE配置 添加通用從站IP地址以及占用點數 設置好分配的軟元件,確…

Bash Shellshock

CVE-2014-6271(Bash Shellshock遠程命令注入漏洞) 該服務啟動后有路徑http://your-ip:port/victim.cgi和http://your-ip:port/safe.cgi。其中safe.cgi是新版頁面,victim是bash4.3生成的頁面。 漏洞位置在User-Agent中victim.cgi: User-Agent: () { foo; }; echo C…

以軟件系統開發為例,解釋PMO 與IPD、CMMI、項目管理什么區別和聯系

以「開發一套智能倉儲管理系統(WMS)」為例,拆解軟件項目經理視角下的IPD、CMMI、項目管理和PMO如何協同運作: 場景設定 項目目標:6個月內交付WMS系統,支持日均10萬訂單處理關鍵角色: 你&#x…

TDengine 3.3.5.0 新功能 —— 查看庫文件占用空間、壓縮率

1. 背景 TDengine 之前版本一直沒有通過 SQL 命令查看數據庫占用的磁盤空間大小,從 3.3.5.0 開始,增加了這個方便且實用的小功能,這里詳細介紹下。 2. SQL 基本語法 select expr from information_schema.ins_disk_usage [where condtion]…

螞蟻百寶箱體驗:如何快速創建“旅游小助手”AI智能體

螞蟻百寶箱作為站式智能體應用開發平臺,致力于為AI開發者提供簡單、高效、快捷的智能體創作體驗。作為業內領先的AI應用開發平臺,開發者可以根據自身的個性化需求,基于各式各樣的大模型來創建一個屬于自己的智能體應用。 螞蟻百寶箱&#xf…

AI助力JMeter—從靜態參數化到智能動態化的進化之路

Apache JMeter作為開源利器被廣泛應用于Web系統、API接口、數據庫及消息隊列等多場景性能驗證。而“變量的使用”作為測試腳本靈活性和可維護性的核心手段,決定了腳本的復用性、可擴展性和數據驅動能力。傳統的變量管理手段已難以應對大規模復雜測試任務中“動態化、…

第十六屆藍橋杯C/C++程序設計研究生組國賽 國二

應該是最后一次參加藍橋杯比賽了,很遺憾,還是沒有拿到國一。 大二第一次參加藍橋杯,印象最深刻的是居然不知道1s是1000ms,花了很多時間在這題,后面節奏都亂了,抗壓能力也不行,身體也不適。最后…

OpenCV計算機視覺實戰(12)——圖像金字塔與特征縮放

OpenCV計算機視覺實戰(12)——圖像金字塔與特征縮放 0. 前言1. 高斯金字塔1.1 應用場景1.2 實現過程 2. 拉普拉斯金字塔2.1 應用場景2.2 實現過程 3. 圖像融合實例3.1 應用場景3.2 實現過程 小結系列鏈接 0. 前言 圖像金字塔技術通過對原始圖像按不同分…

【案例】基于Python的生源數據可視化分析:從Excel處理到動態地圖展示

文章目錄 需求分析技術要點程序流程一些細節核心代碼表格的一些操作 心得體會代碼匯總 需求分析 請設計一個程序,要求能夠統計分析分散在不同表格中的數萬條信息,以信息中的身份證號碼或生源地代碼字段為目標字段,統計每一年全國各省份及本省…

設計模式 | 原型模式

原型模式通過克隆機制實現對象高效創建,是性能敏感場景的利器。本文結合C示例詳解實現原理、深拷貝陷阱、應用場景,并與工廠模式對比分析。 為何需要原型模式? 當遇到以下場景時,傳統構造方法面臨挑戰: 創建成本高&am…

Go 語言中的單元測試

1、如何編寫單元測試 在任何生產級別的項目開發中,單元測試都扮演著至關重要的角色。盡管許多初創項目在早期可能忽略了它,但隨著項目逐漸成熟并成為核心業務,為其編寫健壯的單元測試是保障代碼質量和項目穩定性的必然選擇。本文將帶您快速掌…

8. 接口專業測試報告生成pytest-html

pytest-html 終極指南:打造專業級接口測試報告 在接口自動化測試中,清晰的測試報告是質量保障的關鍵。本文將深入解析如何通過pytest-html插件生成專業級測試報告。 一、核心安裝與基礎使用 快速安裝(國內鏡像) pip install -i …

Day45 Tensorboard使用介紹

目錄 一、tensorboard的發展歷史和原理及基本操作 1.1 發展歷史 1.2 tensorboard的原理 1.3 日志目錄自動管理 1.4 記錄標量數據(Scalar) 1.5 可視化模型結構(Graph) 1.6 可視化圖像(Image) 1.7 記…

用AI給AR加“智慧”:揭秘增強現實智能互動的優化秘密

用AI給AR加“智慧”:揭秘增強現實智能互動的優化秘密 引子:增強現實,到底還能怎么更聰明? 還記得當年Pokmon GO火爆全球的場景嗎?玩家們手機對準街頭,虛擬小精靈活靈活現地跳出來,那就是增強現實(AR)最經典的應用之一。隨著硬件發展和算法進步,AR正逐步從“炫酷玩具…

1 Studying《Computer Vision: Algorithms and Applications 2nd Edition》1-5

目錄 Chapter 1 Introduction 1.1 什么是計算機視覺? 1.2 簡史 1.3 書籍概述 1.4 樣本教學大綱 1.5 符號說明 1.6 其他閱讀材料 Chapter 2 Image formation 2.1 幾何基本元素和變換 2.2 光度圖像形成 2.3 數碼相機 2.4 其他閱讀材料 2.5 練習 Chapter…