博客專欄

EEPW首頁 > 博客 > 不可思議!英偉達(dá)新技術(shù)訓(xùn)練NeRF模型最快只需5秒,單張RTX 3090實(shí)時(shí)渲染,已開源

不可思議!英偉達(dá)新技術(shù)訓(xùn)練NeRF模型最快只需5秒,單張RTX 3090實(shí)時(shí)渲染,已開源

發(fā)布人:機(jī)器之心 時(shí)間:2022-01-21 來源:工程師 發(fā)布文章

英偉達(dá)將訓(xùn)練 NeRF 模型從 5 小時(shí)縮至 5 秒。

你曾想過在 5 秒內(nèi)訓(xùn)練完成狐貍的 NeRF 模型嗎?現(xiàn)在英偉達(dá)做到了!

1.gif

令人不可思議的是,就如谷歌科學(xué)家 Jon Barron 在推特上表示的:18 個(gè)月前,訓(xùn)練 NeRF 還需要 5 小時(shí);2 個(gè)月前,訓(xùn)練 NeRF 最快也需要 5 分鐘;就在近日,英偉達(dá)的最新技術(shù)——基于多分辨率哈希編碼的即時(shí)神經(jīng)圖形基元,將這一過程縮減到只有 5 秒?。???

2.png

NeRF 是在 2020 年由來自加州大學(xué)伯克利分校、谷歌、加州大學(xué)圣地亞哥分校的研究者提出,其能夠?qū)?2D 圖像轉(zhuǎn) 3D 模型,可以利用少數(shù)幾張靜態(tài)圖像生成多視角的逼真 3D 圖像。之后又出現(xiàn)了改進(jìn)版模型 NeRF-W(NeRF in the Wild),可以適應(yīng)充滿光線變化以及遮擋的戶外環(huán)境。

然而,NeRF 的效果是非常消耗算力的:例如每幀圖要渲染 30 秒,模型用單個(gè) GPU 要訓(xùn)練一天。因此,后續(xù)的研究都在算力成本方面進(jìn)行了改進(jìn),尤其是渲染方面。

現(xiàn)在,英偉達(dá)訓(xùn)練 NeRF,最快只需 5 秒(例如訓(xùn)練狐貍的 NeRF 模型)!實(shí)現(xiàn)的關(guān)鍵在于一種多分辨率哈希編碼技術(shù),英偉達(dá)在論文《 Instant Neural Graphics Primitives with a Multiresolution Hash Encoding》進(jìn)行了詳細(xì)解讀。

3.png

論文地址:https://nvlabs.github.io/instant-ngp/assets/mueller2022instant.pdf

項(xiàng)目地址:https://github.com/NVlabs/instant-ngp

項(xiàng)目主頁:https://nvlabs.github.io/instant-ngp/

英偉達(dá)在 4 個(gè)代表性任務(wù)中對多分辨率哈希編碼技術(shù)進(jìn)行驗(yàn)證,它們分別是神經(jīng)輻射場(NeRF)、十億(Gigapixel)像素圖像近似、神經(jīng)符號(hào)距離函數(shù)(SDF)和神經(jīng)輻射緩存(NRC)。每個(gè)場景都使用了 tiny-cuda-nn 框架訓(xùn)練和渲染具有多分辨率哈希輸入編碼的 MLP。

首先是 NeRF 場景。大型的、自然的 360 度場景(左)以及具有許多遮蔽和鏡面反射表面的復(fù)雜場景(右)都得到了很好的支持。實(shí)時(shí)渲染這兩種場景模型,并在 5 分鐘內(nèi)通過隨意捕獲的數(shù)據(jù)進(jìn)行訓(xùn)練:左邊的一個(gè)來自 iPhone 視頻,右邊的一個(gè)來自 34 張照片。

4.gif

接著是十億(Gigapixel)像素圖像近似。結(jié)果顯示,多分辨率哈希編碼實(shí)現(xiàn)了幾個(gè)數(shù)量級(jí)的綜合加速,能夠在幾秒鐘內(nèi)訓(xùn)練高質(zhì)量的神經(jīng)圖形基元,并在數(shù)十毫秒內(nèi)以 1920x1080 的分辨率進(jìn)行渲染:如果你眨眼可能會(huì)錯(cuò)過它!

5.gif

然后是神經(jīng)符號(hào)距離函數(shù)(SDF)。如下動(dòng)圖展示了各種 SDF 數(shù)據(jù)集的實(shí)時(shí)訓(xùn)練進(jìn)度,訓(xùn)練數(shù)據(jù)是使用 NVIDIA OptiX 光線追蹤框架從真值網(wǎng)格動(dòng)態(tài)生成的。

6.gif

最后是神經(jīng)輻射緩存(NRC)的直接可視化,其中網(wǎng)絡(luò)預(yù)測每個(gè)像素路徑的首個(gè)非鏡面反射頂點(diǎn)的出射輻射,并根據(jù)實(shí)時(shí)路徑跟蹤器生成的光線進(jìn)行在線訓(xùn)練。圖左為使用 Müller 等人在 2021 論文《Real-time Neural Radiance Caching for Path Tracing》中的三角波編碼的效果,圖右為本文多分辨率哈希編碼技術(shù)的效果,允許網(wǎng)絡(luò)學(xué)習(xí)更清晰細(xì)節(jié),如陰影區(qū)域。

7.gif

效果如此驚艷,特斯拉 AI 高級(jí)總監(jiān) Andrej Karpathy 也對這項(xiàng)研究感嘆道:「令人印象深刻的架構(gòu)組合和手工制作的元執(zhí)行。我仍然不相信這項(xiàng)研究進(jìn)展的這么好、這么快?!?/p>

8.png

更多的網(wǎng)友認(rèn)為不可思議,可以預(yù)見下一步是在設(shè)備上運(yùn)行,然后在設(shè)備上訓(xùn)練!

9.png

從 5 小時(shí)縮至 5 秒,英偉達(dá)在技術(shù)上做了哪些突破?

計(jì)算機(jī)圖形基元基本上是由數(shù)學(xué)函數(shù)表征的,這些數(shù)學(xué)函數(shù)對外觀(appearance)進(jìn)行參數(shù)化處理。數(shù)學(xué)表征的質(zhì)量和性能特征對視覺保真度至關(guān)重要,因此英偉達(dá)希望在捕獲高頻、局部細(xì)節(jié)的同時(shí)保持快速緊湊的表征。多層感知機(jī)(MLP)表征的函數(shù)可以用作神經(jīng)圖形基元,并已經(jīng)被證明可以滿足需求,比如形狀表征和輻射場。

上述方法的一個(gè)重要共性是將神經(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),便可以使用更小、更高效的多層感知機(jī)。但是,這類數(shù)據(jù)結(jié)構(gòu)依賴于啟發(fā)式和結(jié)構(gòu)改變(如剪枝、分割或合并),從而導(dǎo)致訓(xùn)練過程復(fù)雜化、方法局限于特定任務(wù)、甚至限制 GPU 性能。

針對這些問題,英偉達(dá)提出一種多分辨率哈希編碼(multiresolution hash encoding),這是一種自適應(yīng)、高效且獨(dú)立于任務(wù)的技術(shù)。該技術(shù)僅包含兩個(gè)值,分別是參數(shù)量 T 和預(yù)期最佳分辨率 N_max。

英偉達(dá)的神經(jīng)網(wǎng)絡(luò)不僅有可訓(xùn)練的權(quán)重參數(shù) Φ,還有可訓(xùn)練的編碼參數(shù) θ。這些被排列成 L 個(gè)級(jí)別(level),每個(gè)級(jí)別包含多達(dá) T 個(gè) F 維 的特征向量。這些超參數(shù)的典型值如下表 1 所示:

10.jpg

多分辨率哈希編碼的顯著特征在于獨(dú)立于任務(wù)的自適應(yīng)性和高效性。

首先來看自適應(yīng)性。英偉達(dá)將一串網(wǎng)格映射到相應(yīng)的固定大小的特征向量陣列。低分辨率下,網(wǎng)格點(diǎn)與陣列條目呈現(xiàn) 1:1 映射;高分辨率下,陣列被當(dāng)作哈希表,并使用空間哈希函數(shù)進(jìn)行索引,其中多個(gè)網(wǎng)格點(diǎn)為每個(gè)陣列條目提供別名。這類哈希碰撞導(dǎo)致碰撞訓(xùn)練梯度平均化,意味著與損失函數(shù)最相關(guān)的最大梯度將占據(jù)支配地位。因此,哈希表自動(dòng)地優(yōu)先考慮那些具有最重要精細(xì)尺度細(xì)節(jié)的稀疏區(qū)域。與以往工作不同的是,訓(xùn)練過程中數(shù)據(jù)結(jié)構(gòu)在任何點(diǎn)都不需要結(jié)構(gòu)更新。

然后是高效性。英偉達(dá)的哈希表查找是1642724014520370.png,不需要控制流。這可以很好地映射到現(xiàn)代 GPU 上,避免了執(zhí)行分歧和樹遍歷中固有的指針雕鏤(pointer-chasing)。所有分辨率下的哈希表都可以并行地查詢。

下圖 3 展示了多分辨率哈希編碼中的執(zhí)行步驟:

12.jpg

2D 多分辨率哈希編碼示意圖。

如上圖所示,每個(gè)級(jí)別(其中兩個(gè)分別顯示為紅色和藍(lán)色)都是獨(dú)立的,并在概念上將特征向量存儲(chǔ)在網(wǎng)格頂點(diǎn)處,其中最低和最高分辨率之間的幾何級(jí)數(shù) [N_min, N_max] 表示為:

13.png

實(shí)驗(yàn)效果

英偉達(dá)在下面 4 個(gè)代表性任務(wù)中驗(yàn)證了多分辨率哈希編碼:

十億(Gigapixel)像素圖像:MLP 學(xué)習(xí)從 2D 坐標(biāo)到高分辨率圖像的 RGB 顏色的映射;

神經(jīng)符號(hào)距離函數(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)練后,英偉達(dá)的多分辨率哈希編碼在各類任務(wù)實(shí)現(xiàn)了 SOTA 效果,如下圖 1 所示:

14.jpg

下圖 6 中,英偉達(dá)使用多分辨率哈希編碼近似一張分辨率為 20,000 × 23,466(469M RGB 像素)的 RGB 圖像。

15.png

下圖 7 展示了四個(gè)場景中,神經(jīng)符號(hào)距離函數(shù)(SDF)訓(xùn)練 11000 步后的效果:

16.jpg

圖 8 展示了神經(jīng)輻射緩存(Neural radiance caching, NRC)應(yīng)用的流程:

17.png

下圖 12 為模塊化合成器和大型自然 360 度場景的 NeRF 渲染效果。圖左在使用一張 RTX 3090 的情況下,僅需 5 秒即累積了 128 個(gè) 1080p 分辨率的樣本;圖右使用同一張 GPU,以每秒 10 幀的速度運(yùn)行交互式進(jìn)程(動(dòng)效圖見文章開頭)。

18.jpg

*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: AI

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉