博客專欄

EEPW首頁(yè) > 博客 > CVPR2023,手機(jī)上即可部署NeRF?更加高效輕捷的三維重建技術(shù)

CVPR2023,手機(jī)上即可部署NeRF?更加高效輕捷的三維重建技術(shù)

發(fā)布人:計(jì)算機(jī)視覺(jué)工坊 時(shí)間:2023-08-20 來(lái)源:工程師 發(fā)布文章

圖片

NeRF

NeRF(Neural Radiance Fields)是一種新興的三維重建技術(shù),僅用2D的posed images作為監(jiān)督,即可表示復(fù)雜的三維場(chǎng)景。NeRF的主要任務(wù)是新視角合成,通過(guò)輸入一系列不同角度的同個(gè)物體的圖像及對(duì)應(yīng)的位姿,我們可以獲得一些新視角的圖像。

1 前言

本文提出了一種基于紋理多邊形的神經(jīng)輻射場(chǎng)(NeRF)的新表示形式,該多邊形可以通過(guò)標(biāo)準(zhǔn)渲染管道高效合成新圖像。本文使用的方法是將NeRF表示為一組多邊形,其紋理代表二進(jìn)制不透明度和特征向量。使用 z 緩沖區(qū)對(duì)多邊形進(jìn)行傳統(tǒng)渲染會(huì)生成具有每個(gè)像素特征的圖像,這些圖像由在片段著色器中運(yùn)行的依賴視圖的小型 MLP 進(jìn)行解釋,以生成最終的像素顏色。本文提出了一種基于紋理多邊形的神經(jīng)輻射場(chǎng)(NeRF)的新表示形式MobileNeRF(Mobile Neural Radiance Fields)。本文的主要貢獻(xiàn)如下:

  • MobileNeRF 相比與名為 SNeRG 的最先進(jìn)方法,在保持相同輸出質(zhì)量的同時(shí)。就速度而言,比SNeRG快10倍,這使得在移動(dòng)設(shè)備上實(shí)時(shí)渲染 3D 場(chǎng)景成為可能。這里也推薦「3D視覺(jué)工坊」新課程《徹底搞****覺(jué)三維重建:原理剖析、代碼講解、及優(yōu)化改進(jìn)》
  • 通過(guò)存儲(chǔ)表面紋理而不是體素紋理,MobileNeRF 比其他方法消耗更少的內(nèi)存。這使得在內(nèi)存和功率有限的集成 GPU 上運(yùn)行該方法成為可能。對(duì)于移動(dòng)設(shè)備來(lái)說(shuō),這是一個(gè)重要的優(yōu)勢(shì),與臺(tái)式計(jì)算機(jī)相比,移動(dòng)設(shè)備的資源有限。
  • MobileNeRF  在網(wǎng)絡(luò)瀏覽器上運(yùn)行,并且與所有經(jīng)過(guò)測(cè)試的設(shè)備兼容。這是因?yàn)椴榭雌魇且粋€(gè) HTML 網(wǎng)頁(yè),可以從任何裝有 Web 瀏覽器的設(shè)備上訪問(wèn)該網(wǎng)頁(yè)。
  • MobileNeRF 允許對(duì)重建的物體/場(chǎng)景進(jìn)行實(shí)時(shí)操作,因?yàn)樗鼈兪呛?jiǎn)單的三角形網(wǎng)格。
2 相關(guān)背景

本文的工作屬于視圖合成領(lǐng)域,涵蓋光場(chǎng)、基于圖像的渲染和神經(jīng)渲染。本文重點(diǎn)關(guān)注實(shí)時(shí)渲染輸出視圖的方法。光場(chǎng)的方法通過(guò)存儲(chǔ)密集的圖像網(wǎng)格,從而實(shí)現(xiàn)高質(zhì)量場(chǎng)景的實(shí)時(shí)渲染,盡管相機(jī)自由度有限且存儲(chǔ)開(kāi)銷很大。其他方法利用顯式 3D 幾何結(jié)構(gòu)來(lái)實(shí)現(xiàn)更多的相機(jī)自由度。早期的方法將依賴于視圖的紋理應(yīng)用于 3D 網(wǎng)格,但后來(lái)的方法將卷積神經(jīng)網(wǎng)絡(luò)作為后處理步驟來(lái)提高質(zhì)量。或者,輸入幾何體可以簡(jiǎn)化為帶有 alpha 的紋理平面的集合?;邳c(diǎn)的表示通過(guò)在訓(xùn)練后處理網(wǎng)絡(luò)時(shí)聯(lián)合細(xì)化場(chǎng)景幾何形狀來(lái)進(jìn)一步提高質(zhì)量。然而,由于這種卷積后處理在每個(gè)輸出幀上獨(dú)立運(yùn)行,因此通常會(huì)導(dǎo)致缺乏3D 一致性。此外,與本文的工作不同,它們需要強(qiáng)大的桌面 GPU,并且尚未被證明可以在移動(dòng)設(shè)備上運(yùn)行。最后,與上述絕大多數(shù)方法不同,MobileNeRF不需要重建的3D 幾何形狀作為輸入。NeRF 將場(chǎng)景表示為連續(xù)不透明場(chǎng)和與視圖相關(guān)的顏色,并通過(guò)體積渲染生成圖像。這種表示是3D一致且高質(zhì)量的結(jié)果。然而,渲染一個(gè)NeRF涉及在每個(gè)像素的多個(gè)3D位置評(píng)估大型神經(jīng)網(wǎng)絡(luò),使得實(shí)現(xiàn)實(shí)時(shí)渲染變得困難。最近的工作提高了 NeRF 的訓(xùn)練速度。FastnerF 使用從粗到精的方法來(lái)加快渲染過(guò)程,而 PlenocTrees 使用分層八叉樹(shù)結(jié)構(gòu)來(lái)表示場(chǎng)景并加速渲染。另一方面,SNeRG 使用稀疏網(wǎng)格表示,并使用小型神經(jīng)網(wǎng)絡(luò)作為后處理來(lái)評(píng)估視圖依賴性。在這些實(shí)時(shí)方法中,只有 SNeRG 已被證明可以在無(wú)需訪問(wèn) CUDA 的低功耗設(shè)備上工作。由于本文的方法直接針對(duì)低功耗硬件上的渲染,因此在實(shí)驗(yàn)中主要與 SNeRG 進(jìn)行比較。

3 方法

給定一組校準(zhǔn)的圖像,尋求優(yōu)化表示以實(shí)現(xiàn)高效的新視圖合成。MobileNeRF的隱式特征表示由多邊形網(wǎng)格組成,其紋理圖用于存儲(chǔ)特征和不透明度。在渲染時(shí),給定相機(jī)姿勢(shì),采用兩階段延遲渲染過(guò)程:渲染階段 1 – 將網(wǎng)格柵格化到屏幕空間并構(gòu)建特征圖像(圖 2c),即我們?cè)?GPU 內(nèi)存中創(chuàng)建延遲渲染緩沖區(qū);渲染階段 2 – 通過(guò)在片段著色器(即小型 MLP)中運(yùn)行的(神經(jīng))延遲渲染器將這些特征轉(zhuǎn)換為彩色圖像,該渲染器接收特征向量和視圖方向并輸出像素顏色(圖 2d)。圖片本文的視圖表示是在三個(gè)訓(xùn)練階段構(gòu)建的,逐漸從類似 NeRF 的連續(xù)表示轉(zhuǎn)向離散表示:訓(xùn)練階段 1——訓(xùn)練一個(gè)具有連續(xù)不透明度的類似 NeRF 的模型,其中體積渲染正交點(diǎn)是從多邊形網(wǎng)格導(dǎo)出的;訓(xùn)練階段2——對(duì)不透明度進(jìn)行二值化,因?yàn)殡m然經(jīng)典光柵化可以輕松丟棄片段,但它們無(wú)法有效地處理半透明片段。訓(xùn)練階段3——提取稀疏多邊形網(wǎng)格,將不透明度和特征烘焙到紋理圖中,并存儲(chǔ)神經(jīng)延遲著色器的權(quán)重。網(wǎng)格存儲(chǔ)為 OBJ 文件,紋理貼圖存儲(chǔ)為 PNG,延遲著色器權(quán)重存儲(chǔ)為JSON 文件。當(dāng)使用標(biāo)準(zhǔn) GPU 光柵化管道時(shí),本文的實(shí)時(shí)渲染器只是一個(gè) HTML 網(wǎng)頁(yè)。

3.1  Continuous training(Training Stage 1)

該部分的輸入由多邊形網(wǎng)格 M=(T , V) 和三個(gè) MLP 組成。網(wǎng)格拓?fù)?T 是固定的,但與 NeRF 類似,通過(guò)最小化訓(xùn)練圖像中像素的預(yù)測(cè)顏色和真值真實(shí)顏色之間的均方誤差,以自動(dòng)解碼方式優(yōu)化頂點(diǎn)位置 V 和 MLP圖片均方誤差:圖片亮度公式:圖片其中,涉及到的參數(shù)是由圖中的三個(gè)MLP結(jié)構(gòu)輸出的:圖片多邊形網(wǎng)格:圖片作者描述了Synthetic 360 °場(chǎng)景中使用的多邊形網(wǎng)格,并在補(bǔ)充中給出了Forward - Face和Unbounded 360 °場(chǎng)景的配置。二維示意圖如上。首先在以原點(diǎn)為中心的單位立方體中定義了一個(gè)大小為P × P × P的規(guī)則網(wǎng)格G;通過(guò)在每個(gè)體素上創(chuàng)建一個(gè)頂點(diǎn)來(lái)實(shí)例化V,通過(guò)在連接四個(gè)相鄰體素頂點(diǎn)的網(wǎng)格邊上創(chuàng)建一個(gè)四邊形(兩個(gè)三角形)來(lái)實(shí)例化T。將頂點(diǎn)位置相對(duì)于體素中心和大小進(jìn)行局部參數(shù)化,得到V∈[-.5 , +.5]P × P × P × 3自由變量。在優(yōu)化過(guò)程中,將頂點(diǎn)位置初始化為V = 0,對(duì)應(yīng)于一個(gè)規(guī)則的歐幾里得格子,并對(duì)其進(jìn)行正則化處理,以防止頂點(diǎn)退出其體素,并在優(yōu)化問(wèn)題欠約束時(shí)促使其回到中性位置:圖片正交點(diǎn):圖片由于計(jì)算MobileNeRF的MLPs是昂貴的,作者采取了一個(gè)加速網(wǎng)格來(lái)限制正交點(diǎn)的基|K|。正交點(diǎn)只針對(duì)與射線相交的體素集合生成;我們使用一個(gè)加速網(wǎng)格G來(lái)修剪那些不太可能包含幾何形狀的體素;最后,我們計(jì)算射線與M中入射到體素頂點(diǎn)的面之間的交點(diǎn),從而得到最終的求交點(diǎn)集;見(jiàn)上圖。使用重心插值將交點(diǎn)到相交三角形中三個(gè)頂點(diǎn)的梯度反向傳播。綜上,對(duì)于每一條輸入射線r:圖片B相當(dāng)于射線與被加速網(wǎng)格修剪后的正交點(diǎn)集合,K代表射線與B中正交點(diǎn)連線的交點(diǎn) 加速網(wǎng)格G的Loss圖片其中,?[ . ]是阻止加速網(wǎng)格(負(fù))影響圖像重建質(zhì)量的停止梯度算子。

3.2  Binarized training (Training Stage 2)

典型硬件實(shí)現(xiàn)的渲染通道并不天然支持半透明網(wǎng)格。渲染半透明網(wǎng)格需要繁瑣的(每幀)排序,以便按從后到前的順序執(zhí)行渲染,以保證正確的alpha合成。通過(guò)將平滑不透明度αk∈[0,1]從式(3)轉(zhuǎn)換為離散不透明度來(lái)克服這個(gè)問(wèn)題:圖片為了穩(wěn)定訓(xùn)練,作者對(duì)連續(xù)和離散模型進(jìn)行聯(lián)合訓(xùn)練:圖片圖片這里的C(r)分別是連續(xù)不透明度和離散不透明度對(duì)應(yīng)的輸出亮度,當(dāng)stage2的loss收斂時(shí),對(duì)以下兩個(gè)MLP權(quán)重進(jìn)行微調(diào),使得圖片最小化。圖片圖片

3.3.  Discretization (Training Stage 3)

經(jīng)過(guò)二值化和微調(diào)后,作者將網(wǎng)格表征轉(zhuǎn)換為顯式的多邊形網(wǎng)格(OBJ)。然后創(chuàng)建一個(gè)紋理圖像,其大小與可見(jiàn)四邊形的數(shù)量成正比,對(duì)于每個(gè)四邊形,我們?cè)诩y理中分配一個(gè)K × K的塊,類似于Disney的Ptex。作者在實(shí)驗(yàn)中使用了K = 17,使得四邊形具有16 × 16的紋理,并使用了半像素的邊界填充。然后,我們迭代紋理的像素,將像素坐標(biāo)轉(zhuǎn)換為3D坐標(biāo),并quad離散不透明度的值和特征轉(zhuǎn)化為紋理圖。我們將[0,1]量化為8位整數(shù),并將紋理存儲(chǔ)為(無(wú)損壓縮)的PNG圖像。圖片到這里相當(dāng)于得到了obj、紋理圖、和延時(shí)著色權(quán)重

3.4.  Anti-aliasing

在經(jīng)典的柵格化流水線中,混疊是獲得高質(zhì)量渲染必須考慮的問(wèn)題。而經(jīng)典的NeRF幻覺(jué)通過(guò)半透明體來(lái)平滑邊緣,如前所述,半透明特性需要每幀多邊形排序。我們通過(guò)超采樣抗混疊來(lái)克服這個(gè)問(wèn)題。作者首先對(duì)特征(在2 ×分辨率)進(jìn)行柵格化:圖片然后平均亞像素特征來(lái)產(chǎn)生我們饋送給我們的神經(jīng)延遲著色器的反走樣表示:圖片

3.5.  Rendering

上述優(yōu)化過(guò)程的結(jié)果是一個(gè)紋理多邊形網(wǎng)格(其中,紋理圖存儲(chǔ)特征而不是顏色)和一個(gè)小的MLP (將視角方向和特征轉(zhuǎn)換為顏色)。這種表示的渲染是使用延遲渲染管道分兩次完成的:1.用零緩沖器對(duì)紋理網(wǎng)格的所有面進(jìn)行光柵化,以產(chǎn)生每像素12個(gè)通道的2M×2N的特征圖像,包括8個(gè)通道的學(xué)習(xí)特征、一個(gè)二進(jìn)制不透明度和一個(gè)3D視圖方向;2.通過(guò)渲染一個(gè)紋理化的矩形來(lái)合成一個(gè)M × N輸出的RGB圖像,該矩形使用特征圖像作為其紋理,并使用線性濾波來(lái)平均特征以抗混疊。我們對(duì)alpha非零的像素應(yīng)用小MLP將特征轉(zhuǎn)換為RGB顏色。小型MLP被實(shí)現(xiàn)為GLSL片段著色器。

4 實(shí)驗(yàn)

作者在三個(gè)數(shù)據(jù)集上進(jìn)行測(cè)試:the 8 synthetic 360? scenes from NeRF, the 8 forward-facing scenes from LLFF, and 5 unbounded 360? outdoor scenes from Mip-NeRF 360。由于SNeRG 目前所知的唯一可以在非專業(yè)設(shè)備上實(shí)時(shí)運(yùn)行的NeRF模型,所以作者在實(shí)驗(yàn)部分主要與SNeRG進(jìn)行比較。這里也推薦「3D視覺(jué)工坊」新課程《徹底搞****覺(jué)三維重建:原理剖析、代碼講解、及優(yōu)化改進(jìn)》

4.1 Comparisons

圖片圖片圖片

4.2 Ablation studies

圖片圖片

5 總結(jié)

作者提出了 MobileNeRF,這是一種利用經(jīng)典光柵化管道(即 z 緩沖區(qū)和片段著色器)在各種計(jì)算平臺(tái)上執(zhí)行基于表面的神經(jīng)場(chǎng)的高效渲染的架構(gòu)。它的幀速率比之前最先進(jìn)的技術(shù) (SNeRG) 快一個(gè)數(shù)量級(jí),同時(shí)生成同等質(zhì)量的圖像。同時(shí),該工作也還有一些局限性,MobileNeRF估計(jì)的表面可能不正確,特別是對(duì)于具有鏡面表面和/或稀疏視圖的場(chǎng)景;它使用二元不透明度來(lái)避免對(duì)多邊形進(jìn)行排序,因此無(wú)法處理半透明的場(chǎng)景;使用固定的網(wǎng)格和紋理分辨率,這對(duì)于特寫(xiě)新穎視圖合成來(lái)說(shuō)可能太粗糙;它在沒(méi)有明確分解照明和反射率的情況下對(duì)輻射場(chǎng)進(jìn)行建模,因此不能像最近的方法那樣處理光澤表面。通過(guò)高效的部分排序、細(xì)節(jié)層次、mipmap 和表面著色來(lái)擴(kuò)展多邊形渲染管道應(yīng)該可以解決其中一些問(wèn)題。此外,由于 NeRF 的 MLP 主干,MobileNeRF 目前的訓(xùn)練速度很慢。圖片

6 參考

https://zhuanlan.zhihu.com/p/559025481https://zhuanlan.zhihu.com/p/512538748


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



關(guān)鍵詞: AI

相關(guān)推薦

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

關(guān)閉