0. 筆者個(gè)人體會(huì)
NeRF確實(shí)很火,但現(xiàn)有工作主要還是面向室內(nèi)場(chǎng)景。因?yàn)槭彝猸h(huán)境是一個(gè)典型的無(wú)邊界問(wèn)題,這樣NeRF射線就沒(méi)辦法采樣,而且室外環(huán)境的計(jì)算量也是很大的問(wèn)題。
今天,筆者將為大家分享一篇NeurlPS 2023開(kāi)源的最新工作UE4-NeRF,是一種大規(guī)模室外場(chǎng)景的實(shí)時(shí)NeRF框架,還支持交互式的編輯渲染。希望能對(duì)NeRF領(lǐng)域的小伙伴有所幫助~
1. 效果展示
先介紹一下UE4-NeRF的輸入輸出,輸入是無(wú)人機(jī)采集的大規(guī)模場(chǎng)景,輸出是在UE4中進(jìn)行的實(shí)時(shí)渲染,還有場(chǎng)景編輯功能。
然后看看具體的重建效果對(duì)比,UE4-NeRF渲染的清晰度很高,但之前的Mobile-NeRF和Mega-NeRF就比較模糊模糊。
即使是對(duì)玻璃這種半透明物體,也可以渲染的很好。
代碼已經(jīng)開(kāi)源了,目前支持Windows和20/30系列顯卡,感興趣的小伙伴可以測(cè)試一下效果。下面我們來(lái)看具體的論文信息。
2. 摘要
神經(jīng)輻射場(chǎng) (NeRF)是一種新穎的隱式三維重建方法,顯示出巨大的潛力,受到越來(lái)越多的關(guān)注。它能夠僅從一組照片中重建3D場(chǎng)景。然而,它的實(shí)時(shí)渲染能力,尤其是對(duì)于大規(guī)模場(chǎng)景的交互式實(shí)時(shí)渲染,仍然具有顯著的局限性。為了應(yīng)對(duì)這些挑戰(zhàn),本文提出了一種新的神經(jīng)渲染系統(tǒng)UE4-NeRF,專門用于大規(guī)模場(chǎng)景的實(shí)時(shí)渲染。我們把每個(gè)大場(chǎng)景分成不同的子場(chǎng)景。為了表示分割后的獨(dú)立場(chǎng)景,我們通過(guò)在場(chǎng)景中構(gòu)造多個(gè)正八面體來(lái)初始化多邊形網(wǎng)格,并在訓(xùn)練過(guò)程中不斷優(yōu)化多邊形面的頂點(diǎn)。從細(xì)節(jié)層次(LOD)技術(shù)中汲取靈感,我們?yōu)椴煌挠^察層次訓(xùn)練了不同細(xì)節(jié)層次的網(wǎng)格。我們的方法與Unreal Engine4 (UE4)中的光柵化管道相結(jié)合,實(shí)現(xiàn)了4K分辨率的大規(guī)模場(chǎng)景的實(shí)時(shí)渲染,幀率高達(dá)43 FPS。UE4中的渲染也有助于后續(xù)階段的場(chǎng)景編輯。此外,通過(guò)實(shí)驗(yàn),我們證明了我們的方法實(shí)現(xiàn)了可與最先進(jìn)的方法相媲美的渲染質(zhì)量。
3. 算法解析
UE4-NeRF的核心思想是將大場(chǎng)景分塊為多個(gè)小場(chǎng)景,將小場(chǎng)景表征為多面體,然后再不斷優(yōu)化網(wǎng)格頂點(diǎn)位置。
具體的Pipeline包含三個(gè)模塊:
(1) 訓(xùn)練模塊,劃分子NeRF并初始化每個(gè)小場(chǎng)景的網(wǎng)格。整個(gè)訓(xùn)練過(guò)程不斷優(yōu)化編碼器-解碼器網(wǎng)絡(luò)的參數(shù)和網(wǎng)格頂點(diǎn)位置;
(2) 預(yù)渲染,提取不同細(xì)節(jié)層次的多邊形網(wǎng)格,為最終渲染做準(zhǔn)備;
(3) 渲染模塊,由推理子模塊和UE4子模塊組成,通過(guò)通信來(lái)實(shí)現(xiàn)最終的實(shí)時(shí)渲染。
Pipeline里有幾個(gè)trick:
1、分割block時(shí),實(shí)際訓(xùn)練區(qū)域要比提取區(qū)域稍大一些,這樣來(lái)保證不同block邊界的平滑過(guò)渡;
2、初始化是先建立一個(gè)128×128×128的網(wǎng)格,然后選擇每個(gè)網(wǎng)格的中心點(diǎn)及其六個(gè)相鄰的網(wǎng)格(前、后、左、右、上、下)來(lái)創(chuàng)建多邊形網(wǎng)格。
3、為了解決Mobile-NeRF在處理傾斜表面時(shí)遇到的收斂速度慢且不穩(wěn)定的問(wèn)題,使用具有20個(gè)面的正八面體,包括8個(gè)外部面和12個(gè)內(nèi)部面。
然后說(shuō)一下具體的訓(xùn)練過(guò)程:
對(duì)于從相機(jī)原點(diǎn)發(fā)射到像素的每條射線,計(jì)算與多邊形網(wǎng)格的交點(diǎn)作為采樣點(diǎn)。對(duì)于每個(gè)模塊,編碼器以位置信息pi作為輸入,輸出包含不透明度的8D特征向量Mi,解碼器以Mi和射線方向作為輸入,輸出采樣點(diǎn)的顏色。射線方向編碼用的球諧系數(shù)。
渲染就和傳統(tǒng)NeRF很相似了,包括光度損失和深度損失兩部分。不同點(diǎn)一個(gè)是把體密度換成了不透明度,另一個(gè)是光度損失分成了兩個(gè)級(jí)別。第一級(jí)就是傳統(tǒng)的光度損失,Vp是頂點(diǎn)位置:
為了提高三角形網(wǎng)格與物體表面的接近度,設(shè)計(jì)了光度損失的第二個(gè)分量:
這個(gè)損失的原理是,僅選擇不透明度大于閾值的采樣點(diǎn)。并且當(dāng)累積的不透明度超過(guò)0.8時(shí),直接停止渲染過(guò)程。剛開(kāi)始訓(xùn)練時(shí)其實(shí)第二個(gè)損失沒(méi)有什么影響,隨著訓(xùn)練進(jìn)行,第二個(gè)成分的權(quán)重逐漸增加,將不透明度集中在有限數(shù)量的特定網(wǎng)格上,并將其向目標(biāo)壓縮,從而改善渲染結(jié)果。
下面再說(shuō)這個(gè)預(yù)渲染是啥?
先一句話總結(jié)一下:利用來(lái)自加速網(wǎng)格的預(yù)測(cè)值來(lái)識(shí)別和移除不具有顯著幾何表面的網(wǎng)格。目的是提高網(wǎng)格利用率、渲染推理速度,降低存儲(chǔ)成本。
具體流程是:
1、對(duì)每個(gè)block,除了用于訓(xùn)練的相機(jī)視角外,引入上方各個(gè)角度的平行射線。計(jì)算每條射線與多邊形網(wǎng)格的交點(diǎn),當(dāng)累積不透明度超過(guò)0.8時(shí),光線的遍歷停止。如果一個(gè)三角形面上所有交點(diǎn)的不透明度都低于0.3,那就直接裁掉這個(gè)面。
2、進(jìn)行坐標(biāo)變換,對(duì)齊獲得的網(wǎng)格和現(xiàn)實(shí)世界的尺度。
3、將三角形的頂點(diǎn)坐標(biāo)映射到它們?cè)赨V坐標(biāo)中的相應(yīng)位置。
最后,就可以將預(yù)渲染的多邊形網(wǎng)格與Unreal Engine 4 (UE4)中可用的光柵化pipeline相結(jié)合。隨后,應(yīng)用解碼器網(wǎng)絡(luò)將每個(gè)像素的17D特征(8個(gè)通道和9D觀察方向)轉(zhuǎn)換為RGB顏色。
4. 實(shí)驗(yàn)
訓(xùn)練在3090上進(jìn)行,每個(gè)block大約需要訓(xùn)練40分鐘。UE4-NeRF是面向室外大場(chǎng)景,具體的實(shí)驗(yàn)環(huán)境包括無(wú)人機(jī)采集的農(nóng)村(FL)、建筑工地(CS)、工業(yè)園區(qū)(IP)。采集的圖像分辨率為6000×4000像素并且包含GPS信息(用來(lái)轉(zhuǎn)換尺度)。使用4k分辨率實(shí)時(shí)重建的速度為43 FPS(論文中提到提升續(xù)航后可以更快)。
重建精度的定量對(duì)比,UE4-NeRF的重建速度和精度都非常好,并且對(duì)GPU要求很低。這也是實(shí)時(shí)性的一個(gè)體現(xiàn),畢竟無(wú)人機(jī)不能真頂一個(gè)4090去飛。
UE4-NeRF和其他3個(gè)NeRF重建效果的定性對(duì)比,NeRFacto和Instant-NGP(NVIDIA提出的5s訓(xùn)練)也是實(shí)時(shí)方案。結(jié)果顯示UE4-NeRF特別擅長(zhǎng)渲染小、密集、半透明的物體。
訓(xùn)練時(shí)間和FPS的對(duì)比,Mobile-NeRF訓(xùn)練一個(gè)塊就需要2天時(shí)間,并且需要4塊3090ti。而且Mega-NeRF在訓(xùn)練過(guò)程中會(huì)生成幾百G的臨時(shí)文件。
低紋理區(qū)域的渲染質(zhì)量也很不錯(cuò)。
最后是一個(gè)交互性的編輯實(shí)驗(yàn),UE4-NeRF允許導(dǎo)入和編輯渲染的場(chǎng)景,還能自動(dòng)處理遮擋場(chǎng)景(因?yàn)槭褂昧薝nreal Engine4)。而且當(dāng)目標(biāo)遮擋NeRF渲染的場(chǎng)景時(shí),由于NeRF計(jì)算量減少,渲染幀率略有提高。這里也推薦「3D視覺(jué)工坊」新課程《基于深度學(xué)習(xí)的三維重建MVSNet系列 [論文+源碼+應(yīng)用+科研]》。
5. 總結(jié)
UE4-NeRF提出了一個(gè)面向室外大場(chǎng)景的實(shí)時(shí)NeRF渲染系統(tǒng),主要思想是將場(chǎng)景劃分為多個(gè)block,并為每個(gè)block訓(xùn)練單獨(dú)的NeRF。感覺(jué)這項(xiàng)工作還是挺有意思的,但是模型設(shè)計(jì)上用了特別多的trick。此外,作者也提到了一些他們工作的問(wèn)題:
1、依賴GPU,渲染幾平方公里的大場(chǎng)景時(shí)內(nèi)存開(kāi)銷太大(這好像不是問(wèn)題吧?);
2、在預(yù)渲染過(guò)程中,很難捕捉到任何視角的射線,導(dǎo)致最終的渲染場(chǎng)景存在空洞。
-
模型
+關(guān)注
關(guān)注
1文章
3306瀏覽量
49223 -
無(wú)人機(jī)
+關(guān)注
關(guān)注
230文章
10515瀏覽量
182411 -
渲染系統(tǒng)
+關(guān)注
關(guān)注
0文章
2瀏覽量
5680
原文標(biāo)題:NeurlPS'23開(kāi)源 | 大規(guī)模室外NeRF也可以實(shí)時(shí)渲染
文章出處:【微信號(hào):3D視覺(jué)工坊,微信公眾號(hào):3D視覺(jué)工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論