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