CVPR 2021 | pixelNeRF:一種基于NeRF的多視圖三維重建網(wǎng)絡(luò)
概述
作者提出了pixelNeRF,一個只需要輸入單張或多張圖像,就能得到連續(xù)場景表示的學(xué)習(xí)框架。由于現(xiàn)存的構(gòu)建神經(jīng)輻射場【1】的方法涉及到獨立優(yōu)化每個場景的表示,這需要許多校準(zhǔn)的視圖和大量的計算時間,因此作者引入了一種新的網(wǎng)絡(luò)架構(gòu)。實驗結(jié)果表明,在所有情況下,pixelNeRF在新視圖合成和單圖像三維重建方面都優(yōu)于當(dāng)前最先進(jìn)的工作。
簡介
該項目主要研究的問題是如何從一個稀疏的輸入視圖集中合成這個場景的新視圖,在可微神經(jīng)渲染出現(xiàn)之前,這個長期存在的問題一直沒有得到進(jìn)展。同時,最近的神經(jīng)渲染場NeRF通過編碼體積密度和顏色,在特定場景的新視圖合成方面表現(xiàn)出很好的效果。雖然NeRF可以渲染非常逼真的新視圖,但它通常是不切實際的,因為它需要大量的位姿圖像和冗長的場景優(yōu)化。
在這篇文章中,作者對上述方法進(jìn)行了改進(jìn),與NeRF網(wǎng)絡(luò)不使用任何圖像特征不同的是,pixelNeRF將與每個像素對齊的空間圖像特征作為輸入。這種圖像調(diào)節(jié)允許框架在一組多視圖圖像上進(jìn)行訓(xùn)練,學(xué)習(xí)場景先驗,然后從一個或幾個輸入圖像中合成視圖,如下圖所示。
PixelNeRF具有很多特點:首先,Pixel可以在多視圖圖像的數(shù)據(jù)集上面進(jìn)行訓(xùn)練,而不需要任何額外的監(jiān)督;其次,PixelNeRF預(yù)測輸入圖像的攝像機(jī)坐標(biāo)系中的NeRF表示,而不是標(biāo)準(zhǔn)坐標(biāo)系,這是泛化看不見的場景和物體類別的必要條件,因為在有多個物體的場景中,不存在明確的規(guī)范坐標(biāo)系;第三,它是完全卷積的,這允許它保持圖像和輸出3D表示之間的空間對齊;最后,PixelNeRF可以在測試時合并任意數(shù)量的輸入視圖,且不需要任何優(yōu)化。
相關(guān)工作
新視圖合成:這是一個長期存在的問題,它需要從一組輸入視圖中構(gòu)建一個場景的新視圖。盡管現(xiàn)在有很多工作都已經(jīng)取得了逼真的效果,但是存在比較多的問題,例如需要密集的視圖和大量的優(yōu)化時間。
其他方法通過學(xué)習(xí)跨場景共享的先驗知識,從單個或少數(shù)輸入視圖進(jìn)行新的視圖合成,但是這些方法使用2.5D表示,因此它們能夠合成的攝像機(jī)運動范圍是有限的。在這項工作中,作者提出了PixelNeRF,能夠直接從相當(dāng)大的基線中合成新視圖。
基于學(xué)習(xí)的三維重建:得益于深度學(xué)習(xí)的發(fā)展,單視圖或多視圖的三維重建也得到快速的發(fā)展。問題是,很多表示方法都需要3D模型進(jìn)行監(jiān)督,盡管多視圖監(jiān)督限制更小、更容易獲取,其中的很多方法也需要物體的mask。相比之下,PixelNeRF可以單獨從圖像中訓(xùn)練,允許它應(yīng)用到含有兩個對象的場景而不需要修改。
以觀察者為中心的三維重建:對于3D學(xué)習(xí)任務(wù),可以在以觀察者為中心的坐標(biāo)系(即視圖空間)或以對象為中心的坐標(biāo)系(即規(guī)范空間)中進(jìn)行預(yù)測。大多數(shù)現(xiàn)存的方法都是在規(guī)范空間中進(jìn)行預(yù)測,雖然這使得學(xué)習(xí)空間規(guī)律更加容易,但是會降低不可見對象和具有多個對象場景的預(yù)測性能。PixelNeRF在視圖空間中操作,這在【2】中已經(jīng)被證明可以更好地重建看不見的對象類別,并且不鼓勵對訓(xùn)練集的記憶。下表是PixelNeRF和其他方法的對比:
背景介紹:NeRF
NeRF【1】將場景編碼為顏色和密度的連續(xù)體積輻射場f。特別地,對于一個3D點x和
觀察方向單位向量d,f返回微分密度σ和RGB顏色c:f(x, d) = (σ, c)。體積輻射場可以通過下面的函數(shù)渲染成2D圖像:
其中T(t)處理遮擋。對于具有姿態(tài)P的目標(biāo)視圖,相機(jī)光線可以參數(shù)化為r(t)=o+td,o為光線原點(相機(jī)中心)。沿著相機(jī)光線在預(yù)定義的深度邊界[tn,tf]之間計算積分。在實踐中,這種積分是通過沿每個像素射線采樣點的數(shù)值求積來近似的。
然后,將攝影機(jī)光線r的渲染像素值與對應(yīng)的真實像素值C(r)進(jìn)行比較,最后的loss定義如下:
其中R(P)是具有目標(biāo)姿態(tài)的所有相機(jī)光線的集合。雖然NeRF實現(xiàn)了最新的視圖合成,但它是一種基于優(yōu)化的方法,每個場景必須單獨優(yōu)化,場景之間沒有知識共享。這種方法不僅耗時,而且在單個或極稀疏視圖的限制下,無法利用任何先驗知識來加速重建或完成形狀。
基于圖像的NeRF
為了克服上面提到的關(guān)于NeRF的問題,作者提出了一種基于空間圖像特征的NeRF結(jié)構(gòu)。該模型由兩個部分組成:一個完全卷積的圖像編碼器E(將輸入圖像編碼為像素對齊的特征網(wǎng)格)和一個NeRF網(wǎng)絡(luò)f(給定一個空間位置及其對應(yīng)的編碼特征,輸出顏色和密度)。
單視圖pixelNeRF:首先固定坐標(biāo)系為輸入圖像的視圖空間,并在這個坐標(biāo)系中指定位置和攝像機(jī)光線。給定場景的輸入圖像I,首先提取出它的特征量W=E(I)。然后,對于相機(jī)光線上的一個點x,通過使用已知的內(nèi)參,將x投影到圖像坐標(biāo)π(x)上,然后在像素特征之間進(jìn)行雙線性插值來提取相應(yīng)的圖像特征向量W(π(x))。最后把圖像特征連同位置和視圖方向(都在輸入視圖坐標(biāo)系統(tǒng)中)傳遞到NeRF網(wǎng)絡(luò):
其中γ()是x上的位置編碼。
合并多個視圖:多個視圖提供了有關(guān)場景的附加信息,并解決了單視圖固有的三維幾何歧義。作者擴(kuò)展了該模型,不同于現(xiàn)有的在測試時只使用單個輸入視圖的方法,它允許在測試時有任意數(shù)量的視圖。
在有多個輸入視圖的情況下,只假設(shè)相對的相機(jī)姿態(tài)是已知的,為了便于解釋,可以為場景任意固定一個世界坐標(biāo)系。把輸入圖像記為I,其相關(guān)聯(lián)的攝像機(jī)記為P=[R t]。對于新的目標(biāo)攝影機(jī)光線,將視圖方向為d的點x轉(zhuǎn)換到每個輸入視圖i的坐標(biāo)系,轉(zhuǎn)換如下:
為了獲得輸出的密度和顏色,作者獨立地處理每個視圖坐標(biāo)幀中的坐標(biāo)和相應(yīng)的特征,并在NeRF網(wǎng)絡(luò)中聚合視圖。將NeRF網(wǎng)絡(luò)的初始層表示為f1,它分別處理每個輸入視圖空間中的輸入,并將最終層表示為f2,它處理聚合視圖。
和單視圖類似,作者將每個輸入圖像編碼成特征體積W(i)=E(I(i))。對于點x(i),在投影圖像坐標(biāo)π(x(i))處從特征體W(i)中提取相應(yīng)的圖像特征,然后將這些輸入傳遞到f1,以獲得中間向量:
最后用平均池化算子ψ將中間向量V(i)聚合并傳遞到最后一層f2,得到預(yù)測的密度和顏色:
效果和對比
特定類別的單視圖重建
特定類別的雙視圖重建
特定類別的單視圖和雙視圖重建結(jié)果對比
參考文獻(xiàn):
【1】Ben Mildenhall, Pratul P. Srinivasan, Matthew Tancik,Jonathan T. Barron, Ravi Ramamoorthi, and Ren Ng. Nerf: Representing scenes as neural radiance fields for view synthesis. In Eur. Conf. Comput. Vis., 2020
【2】Daeyun Shin, Charless Fowlkes, and Derek Hoiem. Pixels, voxels, and views: A study of shape representations for single view 3d object shape prediction. In IEEE Conf. Comput.Vis. Pattern Recog., 2018.
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。