編輯:Panda W
正如米開朗基羅能用大理石雕刻出令人驚嘆、栩栩如生的作品,英偉達宣稱 Neuralangelo 生成的 3D 結構也帶有精細的細節和紋理。
對通過基于圖像的神經渲染來恢復密集的 3D 表面,神經表面重建已被證明是可行的。然而,目前的方法很難恢復真實世界場景的詳細結構。
為了解決這個問題,英偉達和約翰霍普金斯大學發布了一項研究,開發了一種命名為 Neuralangelo(即神經朗基羅)的模型,其可以將 2D 視頻片段重建成細節豐富的 3D 結構,比如生成建筑、雕塑和其它現實物體的逼真虛擬復制品。
(資料圖片僅供參考)
項目網站:/labs/dir/neuralangelo/
論文地址:/labs/dir/neuralangelo/
附加材料:/labs/dir/neuralangelo/
這項研究已入選 CVPR 2023。英偉達在其官方博客上使用了「數字文藝復興」來形容這項研究,足見其潛在的重要價值。
正如米開朗基羅能用大理石雕刻出令人驚嘆、栩栩如生的作品,英偉達宣稱 Neuralangelo 生成的 3D 結構也帶有精細的細節和紋理。創意專業人士可以將這些 3D 對象導入到設計應用中,進一步編輯它們來創造藝術作品、開發視頻游戲、創造機器人和產業數字人應用。
Neuralangelo 能將復雜的材料紋理(比如屋頂瓦、玻璃板和光滑大理石)從 2D 視頻轉譯到成 3D 結構,其能力已經顯著超越之前的方法。其具有非常高的保真度,讓開發者和創意專業人士能更輕松地快速創建可用的虛擬對象,而所需的材料不過是用手機拍攝的一段視頻。
該研究的作者之一同時也是一位高級研究主管的 Ming-Yu Liu 表示:「Neuralangelo 具備的 3D 重建能力將能極大地造福創作者,幫助他們在數字世界中創建出現實世界。這一工具最終能讓開發者將細節豐富的對象 —— 不管是小型雕像還是大型建筑 —— 導入到虛擬環境中,進而用于視頻游戲或產業數字孿生人。」
英偉達給出了一段演示視頻,可以看到該模型既能重建出米開朗基羅那著名的大衛雕像,也能重建出日常可見的平板卡車。Neuralangelo 還能重建出建筑的內部和外部 —— 視頻中給出了英偉達的灣區公園的詳細 3D 模型。
下面我們來看看 Neuralangelo 的具體方法和論文中的一些實驗結果。
方法
Neuralangelo 采用了實時 NGP 作為底層 3D 場景的一種神經 SDF 表征,并通過神經表面渲染根據多視角圖像觀察進行優化;其中 NGP 是指 Neural Graphics Primitives(神經圖形基元);SDF 是指 signed distance function(有符號的距離函數)。為了充分釋放多分辨率哈希編碼的潛力,英偉達研究者提出了兩大發現。一,使用數值梯度來計算高階導數對實現優化穩定來說至關重要,比如用于程函正則化(eikonal regularization)的表面法線。二,為了重建出不同細節程度的結構,需要一種漸進式的優化方案。研究者將這兩種思路組合到了 Neuralangelo 中,實驗也證明了這樣做確實可行,能極大提升神經表面重建的重建準確度和視圖合成質量。
Neuralangelo 重建場景的密集結構使用的是多視角圖像。它會跟隨相機視角方向采樣 3D 位置,并使用一種多分辨率哈希編碼來對這些位置進行編碼。編碼后的特征會被輸入一個 SDF MLP 和一個顏色 MLP,以使用基于 SDF 的體積渲染來合成圖像。
數值梯度計算
研究者表示,有關哈希編碼位置的解析梯度會受到局部性的影響。因此,優化更新只會傳遞給局部哈希網格,缺乏非局部的平滑性。針對這種局部性問題,英偉達提出了一種簡單的補救方案:使用數值梯度。圖 2 給出了該方法的概況。
圖 2:為高階導數使用數值梯度可將反向傳播更新散播到局部哈希網格單元之外,由此變成解析梯度的一種平滑化版本。
SDF 有一種特殊性質:其在單位范數的梯度方面是可微的。SDF 的梯度幾乎在所有地方都滿足程函方程(eikonal equation)。為了迫使經過優化的神經表征成為可行的 SDF,通過會在 SDF 預測結果上施加一個程函損失。
為了實現端到端優化,需要在 SDF 預測結果上使用一種雙重反向操作。
在計算 SDF 的表面法線時,人們事實上采用的方法就是使用解析梯度。但是,在三線性插值(trilinear interpolation)下,與位置相關的哈希編碼的解析梯度在空間上不是連續的。為了找到體素網格中的采樣位置,需要首先根據網格分辨率對每個 3D 點進行縮放。
哈希編碼的導數是局部的,即當 3D 點越過網格單元邊界時,對應的哈希項將會不同。因此,前述的程函損失就只會反向傳播到本地采樣的哈希項。當連續表面(比如平墻)橫跨多個網格單元時,這些網格單元應當產生連貫一致的表面法線,而不該有突然的過渡。為了確保表面表征中的一致性,需要對這些網格單元進行聯合優化。但是,解析梯度卻受限于局部網格單元,除非對應的網格單元碰巧能被同時采樣和優化。但我們很難保證總是能夠這樣采樣。
為了克服哈希編碼的解析梯度的局部性問題,英偉達提出的方案是使用數值梯度來計算表面法線。如果數值梯度的步長小于哈希編碼的網格大小,則數值梯度就等于解析梯度;否則,多個網格單元的哈希項就會參與到表面法線計算中。
這樣一來,通過表面法線的反向傳播就能讓多個網格單元的哈希項同時收到優化更新。直觀來說,使用精心選擇的步長的數值梯度可被解讀成在解析梯度表達式上的平滑化操作。還有另一種方法可以替代法線監督,即 teacher-student curriculum,其中要使用預測的有噪聲法線來幫助 MLP 輸出,這樣就能利用到 MLP 的平滑性。但是,這樣的教師 - 學生損失的解析梯度仍然只會反向傳播給局部網格單元。相較而言,數值梯度無需添加網絡便能夠解決局部性問題。
要使用數值梯度計算表面法線,還需要額外的 SDF 樣本。給定一個采樣過的點,還需要在該點周圍一定步長內沿正則坐標的每個軸額外采樣兩個點。
漸進式的細節水平
為了避免陷入錯誤的局部最小值,從粗到細的優化可以更好地塑造損失圖景。這樣的策略已被用于許多計算機視覺應用。Neuralangelo 也采用了一種從粗到細的優化方案來在細節上漸進式地重建表面。使用高階導數的數值梯度能自然地讓 Neuralangelo 執行從粗到細的優化,這需要考慮兩個方面。
步長:前面已經提到,數值梯度可被解釋成一種平滑化操作,其中步長控制著分辨率及重建的細節量。如果讓程函損失用更大的步長來計算數值表面法線,能在更大規模上確保表面法線的一致性,由此能得到一致和連續的表面。反過來,如果程函損失的步長更小,就只能影響更小的區域,就能避免細節平滑。在實踐中,英偉達的做法是先將步長初始化為最粗的哈希網格大小,然后在整個優化過程中指數級地降低步長以匹配不同的哈希網格大小。
哈希網格分辨率:如果從優化一開始,所有哈希網格都被激活,為了捕獲幾何細節,細粒度哈希網格就必須首先「忘記」粗粒度優化(更大步長)所學到的東西,并用更小的步長「重新學習」。如果優化收斂而導致這個過程失敗,那么就會丟失幾何細節。因此,一開始只會激活一組初始的粗粒度哈希網格,當步長縮小至其空間大小時,會在優化過程中漸進式地激活更細的哈希網格。這樣一來,就能避免「重新學習」過程,從而更好地捕獲細節。在實踐中,英偉達研究者的做法是在所有參數上應用權重衰減,以避免最終結果被單一分辨率特征主導。
優化
為了進一步促進重建表面的平滑性,他們還提出添加一個先驗,具體做法是正則化 SDF 的平均曲率。平均曲率是通過離散拉普拉斯算子計算的,類似于表面法線計算,否則當使用三線性插值時,哈希編碼的二階解析梯度在任意位置都為零。
Neuralangelo 的整體損失定義為所有損失(RGB 合成損失、程函損失、曲率損失)的加權和,如下所示:
包括 MLP 和哈希編碼在內的所有網絡參數都是以端到端方式聯合訓練的。
實驗
圖 3:在 DTU 基準上的定性比較
可以看到,Neuralangelo 得到的表面更加準確,保真度也更高。
圖 4:定性比較不同的從粗到細優化方案
當使用解析梯度時(AG 和 AG+P),粗粒度的表面通常帶有偽影。當使用數值梯度時(NG),可以得到更好的粗粒度形狀,細節也更為平滑。英偉達的新方法(NG+P)得到的表面既平滑又有精細細節。
表 1:在 DTU 數據集上的定量實驗結果
可以看到,Neuralangelo 的重建準確度最高,圖像合成質量也最好。
圖 5:在 Tanks 和 Temples 數據集上的定性比較
相比于其它對比方法會丟失表面細節或有較多噪聲,Neuralangelo 能更好地捕獲場景細節。
?THE END
轉載請聯系本公眾號獲得授權
投稿或尋求報道:content@
關鍵詞: