3D Gaussian Splatting as MCMC 與gsplat中的應用實現

3D高斯潑濺(3D Gaussian splatting)自2023年提出以后,相關研究paper井噴式增長,盡管出現了許多改進版本,但依舊面臨著諸多挑戰,例如實現照片級真實感、應對高存儲需求,而 “懸浮的高斯核” 問題就是其中之一。浮動高斯核通常由輸入圖像中的曝光或顏色不一致引發,也可能源于運動恢復結構(SfM)過程中產生的離群值。此外,嚴格意義上的高斯潑濺更偏向于 3D 重建而非新視圖合成,它僅能為輸入圖像序列覆蓋良好的場景部分生成新視角。

本文將聚焦于 3D 高斯潑濺的一個實際應用 ——高斯潑濺中的物體插入,并詳細解讀論文《3D Gaussian Splatting as Monte Carlo Markov Chain》,詳見 3dgs-mcmc/,進一步展示MCMC與3dgs結合在gsplat第三方工具中的應用。

0. 3DGS MCMC 簡介

3DGS 作為 MCMC 論文的前提如下:

  • ADC 的概率概念:盡管自適應密度控制 (ADC) 是一種有效的致密化和修剪策略,但它缺乏堅實的數學基礎。MCMC 引入了一個概率框架來解決這一缺陷。
  • 收斂與探索: MCMC 論文并不單純依賴基于優化的方法,而是將優化與探索相結合,從而能夠找到問題的多個最優解決方案。
  • 將死高斯變為活高斯: ADC 啟發式方法被通過重新定位死高斯來實現的狀態轉換所取代。
  • 引入正則化:論文還向損失函數引入了兩種正則化:尺度正則化不透明度正則化

3d 高斯濺射訓練 MCMC + 雙邊網格 3D 高斯濺射作為馬爾可夫鏈蒙特卡洛無浮動高斯濺射

圖 1:3DGS 與 3DGS + MCMC 的比較

本文從回顧 MCMC 開始,逐步引入到3DGS中。

1. MCMC概念回顧

MCMC 抽樣是一種眾所周知的近似算法,在機器學習中,廣泛應用于概率建模。MCMC 的全稱是蒙特卡洛馬爾可夫鏈。蒙特卡洛和馬爾可夫鏈是兩種不同的算法。

有時,由于諸如空間復雜性、高維性等原因,一些積分和很難直接計算。在這些情況下,我們會對其進行近似——要么采用采樣方法,比如MCMC,要么使用參數化分布,就像在變分推斷中所做的那樣。

例如,在貝葉斯統計中,計算后驗分布需要對模型參數的所有可能值進行積分,并由先驗和觀測數據的似然性加權。隨著參數數量的增加或似然函數變得復雜,這種積分很快就會變得難以處理。

                        先驗、似然和后驗 3DGS MCMC 論文解釋

圖 2:先驗、似然和后驗

從上圖可以看出,先驗、后驗和似然在數學上的含義。

2. 3DGS中先驗/似然與后驗的引入

在3D 高斯潑濺 (3DGS) 的貝葉斯視圖中,可以將模型參數(所有高斯潑濺的位置、大小、顏色、不透明度等)解釋為隨機變量。

3DGS 3d 高斯濺射訓練 MCMC + 雙邊網格中的先驗、似然和后驗

圖 3:3DGS 中的先驗、似然和后驗

  • 這些參數的先驗分布p(θ)編碼了在看到實際圖像數據之前的任何假設偏好。例如,可能希望高斯函數的大小不受限制,或者它們的顏色位于合理范圍內,或者總的 splats 數量不會激增,等等。
  • 可能性p(Data|θ) 衡量了特定的splats 配置參數θ對實際觀察到的圖像(訓練視圖)的解釋程度。
  • 后驗分布為:

                                        p(\theta|Data)=\frac{p(Data|\theta)p(\theta)}{p(Data)}

換句話說,后驗分布就是基于數據的初始假設,然后如何通過觀察到的圖像數據進行更新。

3. 單純融合 VS 融合+探索參數空間

自適應密度控制 (ADC) 是一種解決問題的啟發式方法,但并未完全優化,并且缺乏堅實的數學基礎。MCMC 通過為致密化和修剪策略提供更強大的數學基礎來解決相同的核心問題。

具體來說,它通過將這些策略概念化為采樣過程,為這些策略引入了一個概率框架。

“采樣是一種通過研究大群體的一小部分來估計其整體特征的方法。”
例如,假設需要找到一條曲線下的面積(如下圖所示)。通過積分計算它可能需要處理一個復雜的公式。相反,使用蒙特卡羅方法,則可以在曲線邊界的矩形內隨機散布紅點。那么使用的點越多,估計就越準確。通過計算曲線下的點與矩形中總點數的比例,就可以確定曲線下的面積,因為這個比例對應于矩形面積的比例。”

                         高斯分布中的對象插入

圖 4:蒙特卡洛估計曲線下面積

3DGS 的一般方法是:

  • 尋找單一最佳解決方案: 3DGS 遵循一種簡單的優化方法。它初始化高斯函數,然后通過計算渲染圖像和真實圖像之間的 L1 損失來優化其配置。此損失用于更新高斯函數。然而,這種方法往往會產生單一最佳解決方案,并且可能會陷入局部最小值的問題。

MCMC 提出了一種不同的視角,它不是專注于尋找單一的最佳解決方案,而是旨在通過從后驗分??布中抽樣來確定一系列能夠同樣好地解釋數據的配置。

4. 用于概率 3DGS 建模的 MCMC

MCMC 引入了一個后驗分布 G(θ),它表示在給定訓練數據的情況下,高斯參數配置 g (位置、顏色、形狀等)正確的概率。換句話說:

                        G(\theta)=P(\theta|Data)

這里,克\θ對應相同的配置。

這種分布G(θ) 的設計使得\θ能夠很好表示場景的配置將具有較高的值 G(θ),而不能很好表示場景的配置將具有較低的G(θ)值。

通過將問題轉化為從分布中進行抽樣,可以使用馬爾可夫鏈蒙特卡羅 (MCMC) 方法(如隨

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

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

相關文章

【軟件測試】Postman中如何搭建Mock服務

在 Postman 中,Mock 服務是一項非常有用的功能,允許你在沒有實際后端服務器的情況下模擬 API 響應。通過創建 Mock 服務,你可以在開發階段或測試中模擬 API 的行為,幫助團隊成員進行前端開發、API 測試和集成測試等工作。 Mock 服…

Spring-MVC

Spring-MVC 1.SpringMVC簡介 - SpringMVC概述 SpringMVC是一個基于Spring開發的MVC輕量級框架,Spring3.0后發布的組件,SpringMVC和Spring可以無縫整合,使用DispatcherServlet作為前端控制器,且內部提供了處理器映射器、處理器適…

關于Spring MVC中@RequestParam注解的詳細說明,用于在前后端參數名稱不一致時實現參數映射。包含代碼示例和總結表格

以下是關于Spring MVC中RequestParam注解的詳細說明,用于在前后端參數名稱不一致時實現參數映射。包含代碼示例和總結表格: 1. 核心作用 RequestParam用于顯式綁定HTTP請求參數到方法參數,支持以下場景: 參數名不一致&#xff1…

MySQL主從復制技術詳解:原理、實現與最佳實踐

目錄 引言:MySQL主從復制的技術基礎 MySQL主從復制的實現機制 復制架構與線程模型 復制連接建立過程 數據變更與傳輸流程 MySQL不同復制方式的特點與適用場景 異步復制(Asynchronous Replication) 全同步復制(Fully Synch…

ROS Master多設備連接

Bash Shell Shell是位于用戶與操作系統內核之間的橋梁,當用戶在終端敲入命令后,這些輸入首先會進入內核中的tty子系統,TTY子系統負責捕獲并處理終端的輸入輸出流,確保數據正確無誤的在終端和系統內核之中。Shell在此過程不僅僅是…

Trae + LangGPT 生成結構化 Prompt

Trae LangGPT 生成結構化 Prompt 0. 引言1. 安裝 Trae2. 克隆 LangGPT3. Trae 和 LangGPT 聯動4. 集成到 Dify 中 0. 引言 Github 上 LangGPT 這個項目,主要向我們介紹了寫結構化Prompt的一些方法和示例,我們怎么直接使用這個項目,輔助我們…

《安富萊嵌入式周報》第352期:手持開源終端,基于參數陣列的定向揚聲器,炫酷ASCII播放器,PCB電阻箱,支持1Ω到500KΩ,Pebble智能手表代碼重構

周報匯總地址:嵌入式周報 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬漢嵌入式論壇 - Powered by Discuz! 視頻版 https://www.bilibili.com/video/BV1DEf3YiEqE/ 《安富萊嵌入式周報》第352期:手持開源終端&#x…

python 淺拷貝copy與深拷貝deepcopy 理解

一 淺拷貝與深拷貝 1. 淺拷貝 淺拷貝只復制了對象本身(即c中的引用)。 2. 深拷貝 深拷貝創建一個新的對象,同時也會創建所有子對象的副本,因此新對象與原對象之間完全獨立。 二 代碼理解 1. 案例一 a 10 b a b 20 print…

day22 學習筆記

文章目錄 前言一、遍歷1.行遍歷2.列遍歷3.直接遍歷 二、排序三、去重四、分組 前言 通過今天的學習,我掌握了對Pandas的數據類型進行基本操作,包括遍歷,去重,排序,分組 一、遍歷 1.行遍歷 intertuples方法用于遍歷D…

SpringMVC的請求-文件上傳

文件上傳客戶端三要素 1. 表單項type“file” 2. 表單的提交方式是post 3. 表單的enctype屬性是多部分表單形式&#xff0c;及enctype“multipart/form-data” <% page contentType"text/html;charsetUTF-8" language"java" %> <html> <he…

在Ubuntu系統如何讓MySQL服務器支持遠程連接

目錄 問題描述 解決方案 步驟一&#xff1a;檢查MySQL配置文件 ?編輯 步驟二&#xff1a;修改bind-address參數 ?編輯 步驟三&#xff1a;重啟MySQL服務 步驟四&#xff1a;驗證更改 步驟五&#xff1a;檢查防火墻設置 步驟六&#xff1a;測試遠程連接 注意事項 …

JSON工具-JSONUtil

對象轉JSON JSONUtil.toJsonStr可以將任意對象&#xff08;Bean、Map、集合等&#xff09;直接轉換為JSON字符串。 如果對象是有序的Map等對象&#xff0c;則轉換后的JSON字符串也是有序的。 //region 處理POST請求&#xff0c;將TreeMap轉換為JSON字符串返回/*** 處理POST請求…

死鎖 手撕死鎖檢測工具

目錄 引言 一.理論聯立 1.死鎖的概念和原因 2.死鎖檢測的基本思路 3.有向圖在死鎖檢測中的應用 二.代碼實現案例&#xff08;我們會介紹部分重要接口解釋&#xff09; 1.我們定義一個線性表來存線程ID和鎖ID 2.表中數據的查詢接口 3.表中數據的刪除接口 4.表中數據的添…

Java 中 SQL 注入問題剖析?

一、引言? 在當今數字化時代&#xff0c;數據是企業和組織的核心資產之一。許多應用程序都依賴于數據庫來存儲和管理數據&#xff0c;而 Java 作為一種廣泛使用的編程語言&#xff0c;常被用于開發與數據庫交互的應用程序。然而&#xff0c;SQL 注入這一安全漏洞卻如同隱藏在…

安全理念和安全產品發展史

從安全理念的發展歷史來看,技術與產品的演進始終圍繞 “威脅對抗” 與 “業務適配” 兩大核心展開。以下從七個關鍵階段解析安全技術與產品的發展脈絡,并結合最新實踐與未來趨勢提供深度洞察: 一、密碼學奠基階段(1970s 前) 安全理念:以 “信息保密” 為核心,防御手段…

【Ansible自動化運維】二、Playbook 深入探究:構建復雜自動化流程

? 在 Ansible 自動化運維體系中&#xff0c;Playbook 是極為關鍵的部分。它允許我們以一種結構化、可重復的方式定義和執行一系列復雜的任務&#xff0c;從而構建高效的自動化流程。本篇文章將深入探究 Ansible Playbook 的各個方面&#xff0c;助您掌握構建復雜自動化…

springboot項目中常用的工具類和api

在Spring Boot項目中&#xff0c;開發者通常會依賴一些工具類和API來簡化開發、提高效率。以下是一些常用的工具類及其典型應用場景&#xff0c;涵蓋 Spring 原生工具、第三方庫&#xff08;如Hutool、Guava&#xff09; 和 Java 自帶工具。 1. Spring Framework 自帶工具類 (…

23種設計模式-行為型模式-模板方法

文章目錄 簡介場景解決代碼關鍵優化點 總結 簡介 模板方法是一種行為設計模式&#xff0c;它在超類中定義了一個算法的框架&#xff0c;允許子類在不修改結構的情況下重寫算法的特定步驟。 場景 假如你正在開發一款分析文檔的數據挖掘程序。用戶需要向程序輸入各種格式&…

解決Long類型前端精度丟失和正常傳回后端問題

在 Java 后端開發中&#xff0c;可能會遇到前后端交互過程中 Long 類型精度丟失的問題。尤其是在 JavaScript 中&#xff0c;由于其 Number 類型是雙精度浮點數&#xff0c;超過 16 位的 Long 類型值就會發生精度丟失。 問題背景 假設有如下實體類&#xff1a; public class…

PowerPhotos:拯救你的Mac照片庫,告別蘋果原生應用的局限

如果你用Mac管理照片&#xff0c;大概率被蘋果原生「照片」應用折磨過——無法真正并行操作多個圖庫。每次切換圖庫都要關閉重啟&#xff0c;想合并照片得手動導出導入&#xff0c;重復文件更是無處可逃…… 直到我發現了 PowerPhotos&#xff0c;這款專為Mac設計的照片庫管理…