不可思議!英偉達新技術(shù)訓(xùn)練NeRF模型最快只需5秒,單張RTX 3090實時渲染,已開源
英偉達將訓(xùn)練 NeRF 模型從 5 小時縮至 5 秒。
你曾想過在 5 秒內(nèi)訓(xùn)練完成狐貍的 NeRF 模型嗎?現(xiàn)在英偉達做到了!
令人不可思議的是,就如谷歌科學(xué)家 Jon Barron 在推特上表示的:18 個月前,訓(xùn)練 NeRF 還需要 5 小時;2 個月前,訓(xùn)練 NeRF 最快也需要 5 分鐘;就在近日,英偉達的最新技術(shù)——基于多分辨率哈希編碼的即時神經(jīng)圖形基元,將這一過程縮減到只有 5 秒?。???
NeRF 是在 2020 年由來自加州大學(xué)伯克利分校、谷歌、加州大學(xué)圣地亞哥分校的研究者提出,其能夠?qū)?2D 圖像轉(zhuǎn) 3D 模型,可以利用少數(shù)幾張靜態(tài)圖像生成多視角的逼真 3D 圖像。之后又出現(xiàn)了改進版模型 NeRF-W(NeRF in the Wild),可以適應(yīng)充滿光線變化以及遮擋的戶外環(huán)境。
然而,NeRF 的效果是非常消耗算力的:例如每幀圖要渲染 30 秒,模型用單個 GPU 要訓(xùn)練一天。因此,后續(xù)的研究都在算力成本方面進行了改進,尤其是渲染方面。
現(xiàn)在,英偉達訓(xùn)練 NeRF,最快只需 5 秒(例如訓(xùn)練狐貍的 NeRF 模型)!實現(xiàn)的關(guān)鍵在于一種多分辨率哈希編碼技術(shù),英偉達在論文《 Instant Neural Graphics Primitives with a Multiresolution Hash Encoding》進行了詳細解讀。
論文地址:https://nvlabs.github.io/instant-ngp/assets/mueller2022instant.pdf
項目地址:https://github.com/NVlabs/instant-ngp
項目主頁:https://nvlabs.github.io/instant-ngp/
英偉達在 4 個代表性任務(wù)中對多分辨率哈希編碼技術(shù)進行驗證,它們分別是神經(jīng)輻射場(NeRF)、十億(Gigapixel)像素圖像近似、神經(jīng)符號距離函數(shù)(SDF)和神經(jīng)輻射緩存(NRC)。每個場景都使用了 tiny-cuda-nn 框架訓(xùn)練和渲染具有多分辨率哈希輸入編碼的 MLP。
首先是 NeRF 場景。大型的、自然的 360 度場景(左)以及具有許多遮蔽和鏡面反射表面的復(fù)雜場景(右)都得到了很好的支持。實時渲染這兩種場景模型,并在 5 分鐘內(nèi)通過隨意捕獲的數(shù)據(jù)進行訓(xùn)練:左邊的一個來自 iPhone 視頻,右邊的一個來自 34 張照片。
接著是十億(Gigapixel)像素圖像近似。結(jié)果顯示,多分辨率哈希編碼實現(xiàn)了幾個數(shù)量級的綜合加速,能夠在幾秒鐘內(nèi)訓(xùn)練高質(zhì)量的神經(jīng)圖形基元,并在數(shù)十毫秒內(nèi)以 1920x1080 的分辨率進行渲染:如果你眨眼可能會錯過它!
然后是神經(jīng)符號距離函數(shù)(SDF)。如下動圖展示了各種 SDF 數(shù)據(jù)集的實時訓(xùn)練進度,訓(xùn)練數(shù)據(jù)是使用 NVIDIA OptiX 光線追蹤框架從真值網(wǎng)格動態(tài)生成的。
最后是神經(jīng)輻射緩存(NRC)的直接可視化,其中網(wǎng)絡(luò)預(yù)測每個像素路徑的首個非鏡面反射頂點的出射輻射,并根據(jù)實時路徑跟蹤器生成的光線進行在線訓(xùn)練。圖左為使用 Müller 等人在 2021 論文《Real-time Neural Radiance Caching for Path Tracing》中的三角波編碼的效果,圖右為本文多分辨率哈希編碼技術(shù)的效果,允許網(wǎng)絡(luò)學(xué)習(xí)更清晰細節(jié),如陰影區(qū)域。
效果如此驚艷,特斯拉 AI 高級總監(jiān) Andrej Karpathy 也對這項研究感嘆道:「令人印象深刻的架構(gòu)組合和手工制作的元執(zhí)行。我仍然不相信這項研究進展的這么好、這么快?!?/p>
更多的網(wǎng)友認為不可思議,可以預(yù)見下一步是在設(shè)備上運行,然后在設(shè)備上訓(xùn)練!
從 5 小時縮至 5 秒,英偉達在技術(shù)上做了哪些突破?
計算機圖形基元基本上是由數(shù)學(xué)函數(shù)表征的,這些數(shù)學(xué)函數(shù)對外觀(appearance)進行參數(shù)化處理。數(shù)學(xué)表征的質(zhì)量和性能特征對視覺保真度至關(guān)重要,因此英偉達希望在捕獲高頻、局部細節(jié)的同時保持快速緊湊的表征。多層感知機(MLP)表征的函數(shù)可以用作神經(jīng)圖形基元,并已經(jīng)被證明可以滿足需求,比如形狀表征和輻射場。
上述方法的一個重要共性是將神經(jīng)網(wǎng)絡(luò)輸入映射到更高維空間的編碼過程,這是從緊湊模型中提取高近似精度的關(guān)鍵。在這些編碼中,最成功的是那些可訓(xùn)練、特定于任務(wù)的數(shù)據(jù)結(jié)構(gòu),它們承擔(dān)了很大一部分學(xué)習(xí)任務(wù)。有了這些數(shù)據(jù)結(jié)構(gòu),便可以使用更小、更高效的多層感知機。但是,這類數(shù)據(jù)結(jié)構(gòu)依賴于啟發(fā)式和結(jié)構(gòu)改變(如剪枝、分割或合并),從而導(dǎo)致訓(xùn)練過程復(fù)雜化、方法局限于特定任務(wù)、甚至限制 GPU 性能。
針對這些問題,英偉達提出一種多分辨率哈希編碼(multiresolution hash encoding),這是一種自適應(yīng)、高效且獨立于任務(wù)的技術(shù)。該技術(shù)僅包含兩個值,分別是參數(shù)量 T 和預(yù)期最佳分辨率 N_max。
英偉達的神經(jīng)網(wǎng)絡(luò)不僅有可訓(xùn)練的權(quán)重參數(shù) Φ,還有可訓(xùn)練的編碼參數(shù) θ。這些被排列成 L 個級別(level),每個級別包含多達 T 個 F 維 的特征向量。這些超參數(shù)的典型值如下表 1 所示:
多分辨率哈希編碼的顯著特征在于獨立于任務(wù)的自適應(yīng)性和高效性。
首先來看自適應(yīng)性。英偉達將一串網(wǎng)格映射到相應(yīng)的固定大小的特征向量陣列。低分辨率下,網(wǎng)格點與陣列條目呈現(xiàn) 1:1 映射;高分辨率下,陣列被當(dāng)作哈希表,并使用空間哈希函數(shù)進行索引,其中多個網(wǎng)格點為每個陣列條目提供別名。這類哈希碰撞導(dǎo)致碰撞訓(xùn)練梯度平均化,意味著與損失函數(shù)最相關(guān)的最大梯度將占據(jù)支配地位。因此,哈希表自動地優(yōu)先考慮那些具有最重要精細尺度細節(jié)的稀疏區(qū)域。與以往工作不同的是,訓(xùn)練過程中數(shù)據(jù)結(jié)構(gòu)在任何點都不需要結(jié)構(gòu)更新。
然后是高效性。英偉達的哈希表查找是,不需要控制流。這可以很好地映射到現(xiàn)代 GPU 上,避免了執(zhí)行分歧和樹遍歷中固有的指針雕鏤(pointer-chasing)。所有分辨率下的哈希表都可以并行地查詢。
下圖 3 展示了多分辨率哈希編碼中的執(zhí)行步驟:
2D 多分辨率哈希編碼示意圖。
如上圖所示,每個級別(其中兩個分別顯示為紅色和藍色)都是獨立的,并在概念上將特征向量存儲在網(wǎng)格頂點處,其中最低和最高分辨率之間的幾何級數(shù) [N_min, N_max] 表示為:
實驗效果
英偉達在下面 4 個代表性任務(wù)中驗證了多分辨率哈希編碼:
十億(Gigapixel)像素圖像:MLP 學(xué)習(xí)從 2D 坐標(biāo)到高分辨率圖像的 RGB 顏色的映射;
神經(jīng)符號距離函數(shù)(Neural signed distance function, SDF):MLP 學(xué)習(xí)從 3D 坐標(biāo)到表面距離的映射;
神經(jīng)輻射緩存(Neural radiance caching, NRC):MLP 從 Monte Carlo 路徑跟蹤器中學(xué)習(xí)給定場景的 5D 光場;
神經(jīng)輻射場(NeRF):MLP 從圖像觀察和相應(yīng)的****變換中學(xué)習(xí)給定場景的 3D 密度和 5D 光場。
結(jié)果表明,在經(jīng)過幾秒鐘的訓(xùn)練后,英偉達的多分辨率哈希編碼在各類任務(wù)實現(xiàn)了 SOTA 效果,如下圖 1 所示:
下圖 6 中,英偉達使用多分辨率哈希編碼近似一張分辨率為 20,000 × 23,466(469M RGB 像素)的 RGB 圖像。
下圖 7 展示了四個場景中,神經(jīng)符號距離函數(shù)(SDF)訓(xùn)練 11000 步后的效果:
圖 8 展示了神經(jīng)輻射緩存(Neural radiance caching, NRC)應(yīng)用的流程:
下圖 12 為模塊化合成器和大型自然 360 度場景的 NeRF 渲染效果。圖左在使用一張 RTX 3090 的情況下,僅需 5 秒即累積了 128 個 1080p 分辨率的樣本;圖右使用同一張 GPU,以每秒 10 幀的速度運行交互式進程(動效圖見文章開頭)。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。