香港城大+Meta提出高保真實時視圖合成的NeRF渲染
查看引用/信息源請點擊:映維網(wǎng)Nweon
與原始NeRF相比,所述方法將運行時間性能提高了1萬倍,同時保持高質(zhì)量的渲染效果
(映維網(wǎng)Nweon?2023年07月04日)通過僅使用少數(shù)posed圖像就能從未觀察到的視點渲染的表示方法來重建三維場景,這一直是計算機圖形和計算機視覺界的一個長期目標。
神經(jīng)輻射場NeRF近來已經(jīng)取得了重大進展,它能夠生成逼真的新視角,并對view-dependent效果進行建模,如鏡面反射。特別是,輻射場是一個由MLPs參數(shù)化的體三維函數(shù),它可以估計在給定方向采樣的三維位置的密度和發(fā)射的輻射度。然后,微分體三五i渲染允許通過最小化真實觀察到的顏色和渲染的顏色之間的光度差異來優(yōu)化這個函數(shù)。
盡管NeRF及其各種擴展的成功和巨大潛力前景,但一個不可回避的問題是渲染新視圖的高計算成本。例如,即便是采用強大的現(xiàn)代GPU,NeRF渲染一張800×800像素的圖像都需要30秒左右,這使得它無法用于AR/VR等交互式應(yīng)用。
渲染NeRF表示的巨大計算成本主要來自兩個方面:一是,對于每個單獨的像素,NeRF需要沿著相應(yīng)的射線采樣數(shù)百個位置,查詢密度,然后使用體三維渲染累積輻射度;二是,為了表示復(fù)雜場景的幾何細節(jié),需要大的模型尺寸,所以NeRF架構(gòu)中使用的MLPs相對較深和寬,這為每個點樣本的評估帶來了大量計算。
在名為《Learning Neural Duplex Radiance Fields for Real-Time View Synthesis》的論文中,香港城市大學(xué)和Meta提出了一種可以實現(xiàn)高保真實時視圖合成的方法。
為了避免沿每條射線的密集采樣,一個解決方案是通過預(yù)訓(xùn)練的NeRF模型生成一個幾何代理。通過利用高度優(yōu)化的圖形管道,團隊幾乎可以立即獲得每條射線的采樣位置。但由于表面周圍的密度場不準確,提取的網(wǎng)格可能不能忠實地代表真實的底層幾何,并可能包含偽影,如圖2所示。

密集的局部采樣可以在一定程度上緩解錯誤,但不能處理缺失的幾何體或遮擋物。另一種方法是使用柵格化進行快速的神經(jīng)渲染,直接將神經(jīng)特征烘烤到表面。這通常伴隨著一個深度CNN來將柵格化的特征轉(zhuǎn)化為顏色,并學(xué)習(xí)解決現(xiàn)有的錯誤。這對評估而言成本昂貴,而且會阻礙實時渲染。

為了大幅減少采樣數(shù)量,同時有效地處理幾何錯誤,研究人員的第一個關(guān)鍵技術(shù)創(chuàng)新是根據(jù)沿射線的雙聯(lián)點的輻射度來推斷最終的RGB顏色。如圖3所示,NeRF表示沿每條射線的連續(xù)密度分布。盡管一般情況下很難確定沿射線的表面的確切位置,但通過使用對幾何形狀的underestimation和overestimation,將更容易提取對最終預(yù)測貢獻最大的可靠區(qū)間。
在這個想法的引導(dǎo)下,香港城市大學(xué)和Meta沒有選擇一個特定的位置進行外觀計算,同時沒有在這個區(qū)間內(nèi)進行昂貴的密集體三維渲染,而是在一條射線與二維幾何體的兩個交匯點上使用可學(xué)習(xí)的特征來表示場景,并使用神經(jīng)網(wǎng)絡(luò)從這個聚合的二維輻射度信息中學(xué)習(xí)顏色。
盡管只考慮了兩個采樣點,但團隊發(fā)現(xiàn),即便沒有深度神經(jīng)網(wǎng)絡(luò),這種神經(jīng)雙工輻射度場在補償幾何體代理的誤差方面同樣穩(wěn)健,并且有效地保留了基于柵格化方法的效率。
NeRF MLP已經(jīng)成為大多數(shù)神經(jīng)隱含表征的最標準架構(gòu)。但由于只考慮了沿射線的幾個點,MLP很難約束所提出的神經(jīng)雙工輻射場。相反,團隊使用了一個淺層卷積網(wǎng)絡(luò),它可以有效地捕獲鄰近像素的局部幾何信息,并帶來了相當好的渲染質(zhì)量。
團隊發(fā)現(xiàn),直接從零開始訓(xùn)練神經(jīng)雙工輻射場會導(dǎo)致明顯的偽影。所以,他們提出了一個多視圖蒸餾優(yōu)化策略,從而能夠有效地接近原始NeRF模型的渲染質(zhì)量。值得注意的是,與原始NeRF相比,所述方法將運行時間性能提高了1萬倍,同時保持高質(zhì)量的渲染效果。
方法
團隊的主要目標是學(xué)習(xí)一種可以令高質(zhì)量的、實時的、基于給定的NeRF模型的新視點合成成為可能的高效三維場景表征。為此,他們提出了神經(jīng)雙工輻射場(Neural Duplex Radiance Fields/NDRF)。這個新穎的概念可以將沿射線的采樣點數(shù)量從數(shù)百個大幅減少到兩個,同時很好地保留了復(fù)雜場景的現(xiàn)實細節(jié)。
盡管通過使用兩層網(wǎng)格可以約束查詢頻率,但NeRF中基于每個樣本的深度MLP的前向傳遞依然是一個負擔,而且缺乏表現(xiàn)力,尤其是對于高分辨率的渲染場景。因此,研究人員提出了一種更有效的混合輻射度表示和著色機制。
為了進一步抑制潛在的偽影并提高渲染質(zhì)量,他們利用多視圖蒸餾信息來指導(dǎo)優(yōu)化過程。最后,他們展示了完整的渲染過程和基于著色器的實現(xiàn),從而實現(xiàn)實時的跨平臺渲染。
我們先快速回顧一下NeRF的基本原理。簡而言之,NeRF用一個可學(xué)習(xí)的MLP來近似計算5D全光函數(shù),它將空間位置x∈R3和視圖方向d∈S2映射為輻射度c∈R3和密度σ∈R。在從camera中心投出一條射線,通過一個像素進入場景后,其顏色是通過評估網(wǎng)絡(luò)FΘ沿射線的多個位置進行計算,并使用體三維渲染來聚合輻射度。
影響NeRF渲染效率的一個關(guān)鍵因素是每條射線的3D采樣位置的數(shù)量。由于NeRF的體三維表示法可以通過行進立方體轉(zhuǎn)換為三角形網(wǎng)格,一個自然的想法是直接烘烤幾何表面的外觀,即只考慮射線-表面交叉點的輻射度。

然而,由于行進立方體的離散誤差和NeRF固有的floater artifact,生成的網(wǎng)格質(zhì)量往往不夠理想。基于光柵化的神經(jīng)渲染方法使用深度CNN糾正屏幕空間的錯誤,但這不可避免地犧牲了渲染效率。由于幾何代理已經(jīng)傳達了近似的三維結(jié)構(gòu),另一種方法是在表面周圍進行局部采樣。盡管這有助于應(yīng)對低質(zhì)量的網(wǎng)格,但它在處理缺失的幾何體或可見的遮擋物時十分吃力,如圖5所示。
Representation
值得注意的是,NeRF的密度分布決定了發(fā)射的輻射度對射線最終顏色的貢獻,它可能包含多個峰值。這使得用單一的射線-表面交點來近似計算一個像素的顏色成為一個具有挑戰(zhàn)性的主張。
為了顯著減少每個像素的采樣點,同時保證渲染保真度,團隊提出了神經(jīng)雙工輻射場FΘ∶R8 × R3來表示光線,其中FΘ學(xué)習(xí)將由其兩個端點x1和x2定義的光線段映射到集成的view-dependent顏色。
具體地說,目標是直接從密度分布的可靠區(qū)間定義的射線段中學(xué)習(xí)任何像素的顏色。研究人員將射線投射到兩個代理網(wǎng)格表面,即inner的Mi(Vi, Ti)和outer的Mo(Vo, To),頂點位置為V●和三角形面為T●,從而獲取射線段的端點。
所述網(wǎng)格是從NeRF的密度場的不同水平集中提取。更具體地說,射線顏色c可以通過以下公式計算:

其中x1和x2是給定射線與Mi和Mo網(wǎng)格的深度排序相交,d表示視圖方向。
考慮到不是所有的光線都會擊中兩個表面代理,團隊依然附加了視圖方向。然后,顯式三角形網(wǎng)格將允許他們有效地獲取光線表面相交,并受益于圖形光柵化管道的完全并行性。在大多數(shù)隱式神經(jīng)表示中,由于多層感知器的平滑性和緊湊性,不同的屬性(如SDF、輻射或像素顏色)由多層感知器編碼。然而,考慮到推理的高計算成本,密集地評估深度MLP并不是實時應(yīng)用的明智選擇。
由于輻射場是通過兩個幾何曲面定義,編碼是通過直接將可學(xué)習(xí)的特征fk∈ RN附加到每個網(wǎng)格頂點vk來定義。為了獲得三角形上任意點x的特征f(x),團隊通過硬件柵格化并使用質(zhì)心坐標在三角形內(nèi)插值特征。因此,渲染方程可以重寫為

其中Θ參數(shù)化一個淺層網(wǎng)絡(luò)來學(xué)習(xí)給定每條射線的輻射特征的聚合。
卷積著色
許多基于NeRF的方法使用視圖方向條件MLP來學(xué)習(xí)view-dependent外觀效果。沿著光線的密集采樣提供了一種可行的方法,通過共享3D位置來約束輻射場的學(xué)習(xí),并最終實現(xiàn)跨不同視圖的高質(zhì)量和連貫渲染。然而,這種隱式約束并不適用于團隊的情況。
為了高度優(yōu)化運行時效率,神經(jīng)雙工輻射對每條投射光線只考慮兩個點,這大大降低了訓(xùn)練中捕獲內(nèi)部相關(guān)性的能力,并經(jīng)常導(dǎo)致空間偽影和渲染質(zhì)量下降。
研究人員通過卷積著色網(wǎng)絡(luò)解決了這個問題。其中,它使用一個小感受野來將雙工特征和視圖方向轉(zhuǎn)換為圖像空間中的逐像素顏色。所述方法有效地提高了三維場景樣本間的相關(guān)性。
為了確保高推理速度,只使用2 ~ 3個卷積層,并將卷積核限制在一個2×2窗口內(nèi),以獲得最佳的視覺保真度和視圖一致性。
多視圖蒸餾
研究人員觀察到,從零開始訓(xùn)練的神經(jīng)雙工輻射場無法匹配原始NeRF的高保真度,并產(chǎn)生諸多空間高頻偽影。為了克服這個問題,他們使用預(yù)訓(xùn)練的NeRF作為Teacher模型來指導(dǎo)神經(jīng)雙工輻射場的優(yōu)化??紤]到NeRF和團隊模型的不同參數(shù)化,研究人員使用渲染的多視圖圖像來從Teacher模型中蒸餾knowledge。
一個重要的問題是如何基于訓(xùn)練數(shù)據(jù)集生成有效的蒸餾視圖進行渲染。為了產(chǎn)生有意義的插值視點,團隊首先將所有camera的視角方向與原點對齊,并將camera姿態(tài)轉(zhuǎn)換為相對于原點的球坐標(r, θ, φ)。
對于每個蒸餾視圖,根據(jù)球坐標范圍隨機采樣半徑rs ~ U(rmin,rmax),角度θs ~ U(θmin,θmax)和φs ~ U(φmin,φmax)。從球面坐標轉(zhuǎn)換到笛卡爾坐標后,得到了眾多符合原始視點分布的合適的插值姿態(tài)。
他們在所有設(shè)置中將蒸餾視圖的數(shù)量定義為1000。模型將首先在蒸餾的視圖上進行訓(xùn)練,然后使用訓(xùn)練圖像進行微調(diào),以產(chǎn)生更清晰的外觀。
實時渲染
一個完全訓(xùn)練的神經(jīng)雙工輻射場包括兩個網(wǎng)格,每個頂點的特征以及淺著色CNN。當通過PyTorch訓(xùn)練模型時,在WebGL中使用GLSL著色器實現(xiàn)了跨平臺兼容性的實時渲染器。為了合成一個新的視圖,使用硬件柵格化在輸出圖像分辨率下有效地呈現(xiàn)兩個特征緩沖區(qū)。所述緩沖區(qū)與每個像素的視圖方向一起發(fā)送到CNN中,以聚合局部輻射特征并產(chǎn)生view-dependent RGB顏色。為了提高效率,在兩個渲染通道中實現(xiàn)CNN,每層一個通道。由于卷積核的緊湊尺寸,每個卷積層都可以以像素并行的方式執(zhí)行。
結(jié)果
表1中提供了廣泛的定量比較。與基于CUDA的KiloNeRF相比,團隊的CUDA版本在PSNR(超過1 dB)和SSIM方面取得了明顯更好的渲染性能,運行時FPS更高,訓(xùn)練時間更短。

基于CUDA的模型在Tanks&Temples方面的PSNR略低于KiloNeRF,如圖7所示。這可能是由于PSNR的特性導(dǎo)致,因為它只測量像素級的差異,而忽略了結(jié)構(gòu)的相似性。在這種情況下,SSIM將是一個更好的指標來表示所述方法和KiloNeRF之間的性能差距(0.915 vs. 0.910)。
團隊同時比較了基于webgl的SNeRG。即使在1920×1080分辨率下,他們基于webgl的模型都能在桌面級GPU實現(xiàn)180+ FPS,并在使用筆記本電腦實現(xiàn)30+ FPS,同時具有比SNeRG更好的渲染保真度。

另外,與SNeRG相比,所述方法需要的訓(xùn)練計算量減少了大約兩個數(shù)量級。表2展示了高分辨率設(shè)置下內(nèi)存消耗、圖像質(zhì)量和渲染速度的權(quán)衡比較,全面展示了團隊方法的優(yōu)越性。
為了進一步驗證方法在渲染質(zhì)量方面優(yōu)于現(xiàn)有的快速渲染NeRF技術(shù),圖7中展示了定性比較??梢钥吹剑€KiloNeRF和SNeRG都不能渲染場景的高質(zhì)量細節(jié),這可能受到體素分辨率的限制。然而,單純提高體素分辨率將直接導(dǎo)致內(nèi)存成本的三次增長。另外,在基線中存在一定的紋理偽影和錯誤的view-dependent鏡面高光,在視覺上不如團隊的方法。相比之下,他們的方法可以呈現(xiàn)出一致性和高保真度的視圖,并且具有良好的視圖泛化能力。
為了驗證神經(jīng)雙工輻射的有效性,研究人員將其與僅考慮單個射線表面相交的變化進行了比較。更具體地說,只采用閾值為10-4的NeRF模型提取的網(wǎng)格,以確保幾何代理能夠覆蓋所有像素并避免孔洞偽影。

如表3和圖8所示,由于從NeRF提取的粗糙幾何結(jié)構(gòu)無法提供合理的著色位置,因此沒有雙工輻射的渲染會大大降低新視圖合成的質(zhì)量。
與大多數(shù)NeRF方法只沿單一光線積分輻射不同,團隊通過卷積核聚合局部幾何表面的所有輻射信息。圖8和表3表明,卷積著色網(wǎng)絡(luò)可以更穩(wěn)健地呈現(xiàn)高保真的新視圖,并且在每條光線只考慮兩個樣本位置的情況下,有效地克服了約束不足的問題。
圖8中的結(jié)果表明,沒有蒸餾視圖的優(yōu)化將導(dǎo)致幾何圖形中的高頻偽影,而空間卷積核同樣無法有效地處理。

在表1中,降低輻射特征維度和網(wǎng)絡(luò)大小會導(dǎo)致一定的質(zhì)量退化。因此,一個有趣的問題是,是否可以通過增加網(wǎng)絡(luò)參數(shù)和感受野來持續(xù)提高性能。他們在Fox數(shù)據(jù)集上進行了這個實驗。更具體地說,將網(wǎng)絡(luò)層增加一倍,并用更大的感受野增強原始使用的卷積層。如圖9所示,更深的網(wǎng)絡(luò)并沒有帶來更多的質(zhì)量收益。相比之下,合成的新視圖比團隊提出的方法更加模糊,并且丟失了諸多紋理細節(jié),這可能是由于深度網(wǎng)絡(luò)的學(xué)習(xí)困難造成。

由于方法涉及多視圖蒸餾,研究人員在表4中測量了模型與Teacher模型之間的定量差異。盡管PSNR和SSIM的數(shù)值結(jié)果略遜于Teacher模型,但由于神經(jīng)雙工輻射場具有更好的泛化能力,與人類感知更相關(guān)的感知度量LPIPS出人意料地獲得了更好的性能。另一方面,Teacher模型TensoRF對于現(xiàn)實世界的交互應(yīng)用速度有限。相比之下,團隊的方法在保持相當?shù)匿秩举|(zhì)量的同時達到30+ FPS。
值得注意的是,WebGL版本比原始NeRF模型的速度提高了10000倍。另外,團隊的方法可以在幾個小時內(nèi)使用單個GPU轉(zhuǎn)換預(yù)訓(xùn)練的NeRF。
相關(guān)論文:Learning Neural Duplex Radiance Fields for Real-Time View Synthesis
總的來說,香港城市大學(xué)和Meta提出了一種從預(yù)訓(xùn)練的NeRF中學(xué)習(xí)神經(jīng)雙工輻射場的新方法,并可用于實時新視合成。他們采用卷積著色網(wǎng)絡(luò)來提高渲染質(zhì)量,并提出了一種多視圖蒸餾策略來更好地優(yōu)化。所述方法在運行時提供了顯著的改進,改善或保持了渲染質(zhì)量,同時,與現(xiàn)有的高效NeRF方法相比,計算成本要低得多。
當然,從NeRF中提取有用的雙工網(wǎng)格來表示透明或半透明場景是一項挑戰(zhàn),團隊提出的方法同樣不例外。另外,幾何代理的質(zhì)量將直接影響神經(jīng)表征的學(xué)習(xí)。同時,所述方法目前主要關(guān)注對象級和有界場景數(shù)據(jù)集,所以有效地渲染現(xiàn)實世界的無界場景是一個未來方向。最后,實驗表明,足夠的可學(xué)習(xí)參數(shù)對于獲得更好的渲染保真度至關(guān)重要。因此,為了應(yīng)對WebGL版本中的性能下降,未來的研究可以考慮提高片段著色器中較大CNN的運行效率,或者利用其他加速框架。
---
原文鏈接:https://news.nweon.com/109952