新視角圖像生成:討論基于NeRF的泛化方法
新視角圖像生成(NVS)是計算機視覺的一個應用領域,在1998年SuperBowl的比賽,CMU的RI曾展示過給定多攝像頭立體視覺(MVS)的NVS,當時這個技術曾轉讓給美國一家體育電視臺,但最終沒有商業化;英國BBC廣播公司為此做過研發投入,但是沒有真正產品化。
在基于圖像渲染(IBR)領域,NVS應用有一個分支,即基于深度圖像的渲染(DBIR)。另外,在2010年曾很火的3D TV,也是需要從單目視頻中得到雙目立體,但是由于技術的不成熟,最終沒有流行起來。當時基于機器學習的方法已經開始研究,比如Youtube曾經用圖像搜索的方法來合成深度圖。
幾年前我曾介紹過深度學習在NVS的應用:基于深度學習的新視角圖像生成方法
?最近一段時間,神經輻射場(NeRF)已經成為表示場景和合成照片逼真圖像的有效范例,其最直接的應用就是NVS。傳統NeRF的一個主要限制是,通常無法在訓練視點顯著不同的新視點生成高質量的渲染。下面以此展開討論NeRF的泛化方法,這里忽略基礎的NeRF原理介紹。有興趣的請參考綜述論文:
- 神經渲染的進展綜述
- 神經體繪制:NeRF及其以外方法
?
論文【2】提出了一種通用的深度神經網絡MVSNeRF,實現跨場景泛化,推斷從僅三個附近的輸入視圖重建輻射場。該方法利用平面掃描成本體(廣泛用于多視圖立體視覺)進行幾何感知場景推理,并與基于物理的體渲染相結合,用于神經輻射場重建。
該方法利用深度MVS的成功,在成本體上應用3D卷積來訓練用于3D重建任務的可泛化神經網絡。與MVS方法不同的是,MVS方法僅對這樣的成本體進行深度推斷,而該網絡對場景幾何和外觀進行推理,并輸出神經輻射場,從而實現視圖合成。具體而言,利用3D CNN,重建(從成本體)神經場景編碼體,由編碼局部場景幾何和外觀信息的體素神經特征組成。然后,多層感知器(MLP)在編碼體內用三線性插值的神經特征對任意連續位置處的體密度和輻射度進行解碼。本質上,編碼體是輻射場的局部神經表征;其一旦估計,可直接用于(丟棄3D CNN)可微分光線行進(ray-marching)進行最終渲染。
與現有的MVS方法相比,MVSNeRF啟用可微分神經渲染,在無3D監督的情況下進行訓練,并優化推斷時間,以進一步提高質量。與現有的神經渲染方法相比,類似MVS的體系結構自然能夠進行跨視圖的對應推理,有助于對未見測試場景進行泛化,引向更好的神經場景重建和渲染。
如圖1是MVSNeRF的概覽:(a)基于攝像頭參數,首先將2D圖像特征warp(單應變換)到一個平面掃描(plane sweep)上,構建成本體;這種基于方差的成本體編碼了不同輸入視圖之間的圖像外觀變化,解釋了由場景幾何和視圖相關明暗效果引起的外觀變化;(b)然后,用3D CNN重建逐體素神經特征的一個神經編碼體;3D CNN 是一個3D UNet,可以有效地推斷和傳播場景外觀信息,從而產生有意義的場景編碼體;注:該編碼體是無監督預測的,并在端到端訓練中用體渲染進行推斷;另外,還將原圖像像素合并到下一個體回歸階段,這樣可恢復下采樣丟失的高頻;(c)用MLP,通過編碼體插值的特征,在任意位置回歸體密度和RGB輻射度,這些體屬性由可微分光線行進做最終的渲染。
論文【3】提出立體視覺輻射場(SRF),一種端到端訓練的神經視圖合成方法,可泛化到新場景,并且在測試時只需要稀疏視圖。其核心思想是一種受經典多視圖立體視覺(MVS)方法啟發的神經架構,在立體圖像中找到相似的圖像區域來估計表面點。輸入編碼器網絡10個視圖,提取多尺度特征。多層感知器(MLP)替換經典的圖像塊或特征匹配,輸出相似性分數的集成。在SRF中,每個3D點給定輸入圖像中立體視覺對應的一個編碼,預先預測其顏色和密度。通過成對相似性的集成,該編碼被隱式地學習——模擬經典立體視覺。
已知攝像頭參數,給定一組N個參考圖像, SRF預測3D點的顏色和密度。構造SRF模型f,類似于經典的多視圖立體視覺方法:(1)為了編碼點的位置,將其投影到每個參考視圖中,并構建局部特征描述符;(2) 如果在一個表面上并且照片一致,,特征描述符應該互相匹配;用一個學習的函數模擬特征匹配,對所有參考視圖的特征進行編碼;(3) 該編碼由一個學習的解碼器進行解碼,成為NeRF表征。如圖2給出SRF的概覽:(a)提取圖像特征;(b)通過一個學習的相似度函數模擬尋找照片一致性的過程,得到一個立體特征矩陣(SFM);(c)聚集信息,獲取多視圖特征矩陣(MFM);(d)最大池化獲取對應和顏色的緊湊編碼,解碼后得到顏色和體密度。
論文【4】提出DietNeRF,一個從幾個圖像估計的3D神經場景表征。其引入一種輔助語義一致性損失,鼓勵新姿態進行真實的渲染。
當NeRF只有少數視圖可用時,渲染問題是未約束的;除非嚴格正則化,否則NeRF通常會出現退化解。如圖3所示:(A) 從均勻采樣的姿態中對一個目標進行了100次觀察時,NeRF估計一個詳細而準確的表征,允許純粹從多視圖一致性進行高質量視圖合成;(B) 在只有8個視圖的情況下,將目標放置在訓練攝像頭的近場中,相同的NeRF過擬合,導致在訓練攝像頭附近的姿態出現目標錯位,并退化;(C) 當正則化、簡化、調整和手工重新初始化時,NeRF可以收斂,但不再捕獲精細細節;(D) 如果沒有關于類似目標的先驗知識,單場景視圖合成無法合理地完成未觀察區域。
如圖4是DietNeRF工作示意圖:基于“從任何角度看,一個物體都是那個物體”的原則,DietNeRF監控任意姿態的輻射場(DietNeRF攝像頭);計算語義一致性損失,是在捕獲高級場景屬性的特征空間中,而不是在像素空間中;所以用CLIP這個視覺Transformer提取渲染的語義表征,然后最大化與真值視圖表征的相似性。
實際上,單視圖2D圖像編碼器學習的場景語義先驗知識,就可以約束一個3D表征。DietNeRF在自然語言監督下,從網絡挖掘的數億單視圖2D照片集進行訓練:(1)給定來自相同姿態的給定輸入視圖,可正確地渲染,(2)不同隨機姿態下匹配高級語義屬性。語義損失函數能夠從任意姿態監督DietNeRF模型。
論文【5】提出DS-NeRF,采用一種學習輻射場的損失,利用現成的深度圖監督,如圖5所示。有這樣一個事實,即當前的NeRF流水線需要具有已知攝像頭姿態的圖像,這些姿態通常通過運動恢復結構(SFM)來估計。至關重要的是,SFM還產生了稀疏的3D點,在訓練期間用作“自由”深度監督:增加一個損失,鼓勵一個光線的終止深度分布與一個給定的3D關鍵點相匹配,包括深度不確定性。
論文【6】提出pixelNeRF,一個基于一或多輸入圖像預測連續神經場景表征的學習框架。其引入一種全卷積方式在圖像輸入上調節NeRF架構,使得網絡能夠跨多場景進行訓練來學習一個場景的先驗知識,從而能夠從稀疏的一組視圖(最少就一個)以前饋方式進行新視圖合成。利用NeRF的體渲染方法,pixelNeRF可以直接從圖像中訓練,無需額外的3D監督。
具體地講,pixelNeRF首先從輸入圖像計算全卷積圖像特征網格(feature grid),在輸入圖像上調節NeRF。然后,對于視圖坐標系中感興趣的每個3D查詢空間點x和視圖方向d,通過投影和雙線性插值采樣相應的圖像特征。查詢規范與圖像特征一起發送到輸出密度和顏色的NeRF網絡,其中空間圖像特征作為一個殘差饋送到每個層。當有多個圖像可用時,首先將輸入編碼為每個攝像頭坐標系的潛表征,在預測顏色和密度之前將其合并在中間層中。該模型訓練基于一個真值圖像和一個體渲染視圖之間的重建損失。
pixelNeRF框架如圖6所示:對于沿視圖方向d、一個目標攝像頭光線的一個3D查詢點x,通過投影和插值從特征體W提取對應的圖像特征;然后將該特征與空間坐標一起傳遞到NeRF網絡f中;輸出RGB和密度值被用于體渲染,并與目標像素值進行比較;坐標x和d在輸入視圖的攝像頭坐標系中。
可以看出,PixelNeRF和SRF用從輸入圖像提取的局部CNN特征,而MVSNeRF通過image warping獲得3D成本體,然后由3D CNN處理。這些方法需要許多不同場景的多視圖圖像數據集進行預訓練,獲取成本可能很高。此外,盡管預訓練階段很長,但大多數方法都需要在測試時微調網絡權重,并且當測試域發生變化時,新視圖的質量很容易下降。
當然,DS-NeRF增加額外的深度監督來提高重建精度。Diet-NeRF比較了CLIP在低分辨率下渲染的未見視點嵌入。這種語義一致性損失只能提供高級信息,不能改善稀疏輸入的場景幾何。
論文【7】提出的IBRNet,其核心包括MLP和光線transformer(經典Transformer架構:位置編碼和自注意),用于估計連續5D位置(3D空間位置和2D觀看方向)的輻射度和體密度,并從多個源視圖實時渲染外觀信息。
在渲染時,該方法可以追溯到經典的基于圖像渲染(IBR)工作。不同于神經場景表征,其為渲染優化每個場景函數,IBRNet學習一種通用的視圖插值函數,可泛化到新場景。還是經典的體渲染來合成圖像,其完全可微分,并且用多視圖姿態圖像作為監督來訓練。
光線transformer沿整個光線考慮這些密度特征來計算每個樣本的標量密度值,實現更大空間尺度上的可見性推理(visibility reasoning)。單獨地,一個顏色調和(color blending)模塊用2D特征和源視圖的視線向量導出每個樣本的視圖相關顏色。最后,體渲染為每條光線計算最終顏色值。
如圖7是IBRNet概覽:1) 為渲染目標視圖(標記“?”圖像),首先識別一組相鄰的源視圖(例如,標記為A和B的視圖)并提取圖像特征;2) 然后,對目標視圖中的每條光線,用IBRNet(黃色陰影區域)計算沿光線的一組樣本顏色和密度;具體而言,對每個樣本從相鄰源視圖中聚合相應的信息(圖像顏色、特征和觀看方向),生成其顏色c和密度特征;然后,將ray transformer應用于光線上所有樣本的密度特征,預測密度值。3) 最后,用體渲染沿光線累積顏色和密度。在重建圖像顏色上,可進行端到端的L2損失訓練。
如圖8是IBRNet用于連續5D位置的顏色+體密度預測工作:首先將所有源視圖中提取的2D圖像特征輸入到類似PointNet的MLP中,聚合局部和全局信息,產生多視圖感知特征和池化權重,用權重來集中特征,進行多視圖可見性推理,獲得密度特征;這里沒有直接從預測單個5D樣本的密度σ,而是用ray transformer模塊聚集沿光線的所有樣本信息;ray transformer模塊為光線上的所有樣本獲取密度特征,并預測其密度;ray transformer模塊能夠在更長的范圍進行幾何推理,并改進密度預測;對于顏色預測,將多視圖感知特征,與查詢光線相對于源視圖的觀看方向,連接輸入一個小網絡預測一組調和權重,輸出顏色c是源視圖的圖像顏色加權平均。
這里補充一點:與采用絕對觀看方向的NeRF不同,IBRNet考慮相對于源視圖的觀看方向,即d和 ?di 之間的差異, ?Δd=d?di 。 ?Δd 較小,通常意味著目標視圖的顏色與源視圖i相應顏色相似的可能性較大,反之亦然。
論文【8】提出的通用輻射場(GRF),僅從2D觀察中表征和渲染3D目標和場景。該網絡將3D幾何建模為一個通用輻射場,以一組2D圖像、攝像機外參姿態和內參為輸入,為3D空間每個點構建內部表征,然后渲染從任意位置觀察的相應外觀和幾何。其關鍵是學習2D圖像每個像素的局部特征,然后將這些特征投影到3D點,從而生成通用和豐富的點表征。此外,集成一個注意機制來聚合多個2D視圖的像素特征,從而隱式地考慮視覺遮擋問題。
如圖9是GRF的示意圖:GRF將每個3D點p投影到M個輸入圖像的每一個,從每個視圖收集每個像素的特征,聚集并饋送到MLP,推斷出p的顏色和體密度。
GRF由四部分組成:1)每個2D像素的特征提取器,一個基于CNN的編碼器-解碼器;2) 2D特征轉換為3D空間的重投影;3) 獲取3D點通用特征的基于注意聚合器;4)神經渲染器NeRF。
由于沒有與RGB圖像配對的深度值,因此無法確定像素特征屬于哪個特定的3D表面點。在重投影模塊中,將像素特征視為3D空間中光線沿線每個位置的表征。形式上,給定一個3D點、一個觀察2D視圖以及攝像機姿態和內參,相應的2D像素特征可以通過重投影操作進行檢索。
在特征聚合器中,注意機制學習所有輸入特征的唯一權重,然后聚合在一起。通過一個MLP,3D點的顏色和體密度可以被推斷。
論文【9】提出RegNeRF,對未觀測視點渲染的圖像塊幾何和外觀進行正則化,并在訓練期間對光線采樣空間進行退火。此外,用歸一化流模型正則化未觀測視點的顏色。
如圖10是RegNeRF模型的概覽:給定一組輸入圖像集合(藍色攝像頭),NeRF優化重建損失;然而,對于稀疏輸入,這會導致退化解;這項工作對未觀察的視圖(紅色攝像頭)進行采樣,并正則化從這些視圖渲染的圖像塊幾何和外觀;更具體地說,對于給定的輻射場,通過場景投射光線,并從未觀察的視點渲染圖像塊;然后,通過訓練的歸一化流模型,將預測的RGB圖像塊饋送,并最大化預測的對數似然,從而正則化外觀;對渲染的深度圖塊強制一個平滑度損失,可正則化幾何;該方法導致3D一致性表征,甚至對渲染真實新視圖的稀疏輸入來說,也是如此。
論文【10】研究了一種新視圖外推而不是少樣本圖像合成的方法,即(1)訓練圖像可以很好地描述目標,(2)訓練視點和測試視點的分布之間存在顯著差異,其稱為RapNeRF(RAy Priors NeRF)。
論文【10】的見解是,3D曲面任意可見投影的固有外觀應該是一致的。因此,其提出一種隨機光線投射(random ray casting)策略,允許用已見的視圖訓練未見的視圖。此外,根據沿著觀測光線的視線方向預先計算的光線圖集,可以進一步提高外推視圖的渲染質量。一個主要的限制是RapNeRF利用多視圖一致性去消除視圖強相關效應。
隨機光線投射(random ray casting)策略直觀解釋如圖11所示:左圖中,有兩個觀察3-D點v的光線,r1位于訓練空間,r2遠離訓練光線;考慮到NeRF的分布漂移和映射函數 ?Fc:(r,f)→c ,其沿r2的一些樣本輻射將是不精確的;與像素顏色相比,沿r2的輻射累積操作更有可能提供v的反顏色估計;中圖是一個簡單的虛擬視圖重投影,其遵循NeRF公式計算所涉及的像素光線,從訓練光線池中找到擊中同一3D點的虛擬光線所對應的光線,實踐中很不方便;右圖中,對于特定的訓練光線(從o投射并穿過v),隨機光線投射(RRC)策略在一個圓錐內隨機生成一條未見過的虛擬光線(從o′投射并穿過v),然后基于訓練光線在線指定一個偽標簽;RRC支持用見過的光線訓練未見過的光線。
RRC策略允許以在線方式為隨機生成的虛擬光線分配偽標簽。具體地說,對于一個訓練圖像I中的一個感興趣像素,給出其世界坐標系中的觀察方向d、相機原點o和深度值 ?tz ,并且光線 ?r=o+td 。這里,使用預訓練的NeRF對?tz預計算和存儲。
設 ?v=o+tzd 表示r命中的最近3D曲面點。在訓練階段,將v視為新原點,并在圓錐內從v隨機投射一條光線,其中心線為矢量 ?voˉ=?tzd 。這可以輕松實現,只要將 ?voˉ 轉換到球形空間并引入一些隨機干擾?φ和?θ到φ和θ。這里,φ和θ分別是?voˉ的方位角和仰角。?φ和?θ從預定義間隔 [?η, η] 均勻采樣。由此得到 ?θ′=θ+Δθ 和?φ′=φ+Δφ。因此,可以從一個隨機原點o'投射一個也通過v的虛擬光線。這樣,可以將顏色強度 ?I(r) 真值視為 ?I~(r′) 的偽標記。
基礎NeRF利用“方向嵌入”來編碼場景的照明效果。場景擬合過程使得訓練的顏色預測MLP嚴重依賴于視線方向。對于新視圖內插,這不是問題。然而,由于訓練和測試光線分布之間存在一些差異,這可能不適合于新視圖外推。一個天真的想法是直接移除方向嵌入(表示為“NeRF w/o dir”)。然而,這通常會產生偽影圖像,如意外的波紋和非平滑的顏色。這意味著光線的觀察方向也可能與表面平滑度有關。
論文【10】計算了一個光線圖集(ray atlas),并表明它可以進一步提高外插視圖的渲染質量,同時不涉及內插視圖的問題。光線圖集類似于一個紋理圖集,但它存儲每個3D頂點的全局光線方向。
特別是,對于每個圖像(例如,圖像I),對所有空間位置抓取其光線的觀察方向,從而生成一個光線圖。從預訓練的NeRF中提取一個粗糙的3D網格(R3DM),并將光線方向映射到3D頂點。以頂點V=(x,y,z)為例,其全局光線方向 ?dˉV 應表示為
其中K是攝像頭內參, ?Γw2c(Ii) 是圖像 ?Ii 的攝像頭-世界坐標系轉換矩陣, ?Vuv(Ii) 是頂點V在圖像?Ii的2-D投影位置,L是在頂點V重建中訓練圖像數。對于一個任意攝像頭姿態的每個像素,投影具有光線圖紋理的3D網格(R3DM)到2D可獲得一個全局光線先驗 ?dˉ 。
如圖12就是光線圖集的示意圖:即從訓練光線中捕獲一個光線圖集并用之對椅子的粗糙3D網格(R3DM)附加紋理;?R(Ii)是訓練圖像?Ii的光線圖。
在訓練RapNeRF時,用感興趣像素I(r)的?dˉ 來替換其在?Fc中的d,進行顏色預測。這種替代機制發生的概率為0.5。在測試階段,樣本x的輻射度c近似為:
其中映射函數?Fσ(x):x→(σ,f)。
原始NeRF獨立地優化每個場景表征,不需要探索場景之間的共享信息,而且耗時。為了解決這一問題,研究人員提出了PixelNeRF和MVSNeRF 等模型,這些模型接收多個觀察者視圖作為條件輸入,學習通用的神經輻射場。遵循分而治之(divide-and-conquer)的設計原則,其包括兩個獨立的組件:用于單個圖像的CNN特征提取器和作為NeRF網絡的MLP。對于單視圖立體視覺,在這些模型中,CNN將圖像映射到特征網格,MLP將查詢5D坐標及其對應的CNN特征映射到單個體密度和依賴于視圖的RGB顏色。對于多視圖立體視覺,由于CNN和MLP無法處理任意數量的輸入視圖,因此首先獨立處理每個視圖坐標系中的坐標和相應特征,并獲得每個視圖的圖像條件中間表征。接下來,用基于輔助池化的模型聚合這些NeRF網絡內的視圖中間表征。在3D理解任務中,多視圖提供場景的附加信息。
論文【11】提出一個編碼器-解碼器Transformer框架TransNeRF,表征神經輻射場場景。TransNeRF可以探索多視圖之間的深層關系,并通過單個基于Transformer的NeRF注意機制將多視圖信息聚合到基于坐標的場景表征中。此外,TransNeRF考慮光線投射空間和周視空間的相應信息來學習場景中形狀和外觀的局部幾何一致性。
如圖13所示,TransNeRF在一個目標視線(target viewing ray)渲染所查詢的3D點,TransNeRF包括:1)在周視空間中,密度-視圖解碼器(Density-ViewDecoder)和顏色-視圖解碼器(Color-ViewDecoder)將源視圖和查詢空間信息((x,y,z),d)融合到3D查詢點的潛密度和顏色表征中;2) 在光線投射空間中,用密度光線解碼器(Density-RayDecoder)和顏色光線解碼器(Color-RayDecoder),考慮沿目標視圖光線的相鄰點來增強查詢密度和顏色表征。最后,從TransNeRF獲得在目標視線上查詢3D點的體密度和方向顏色。
論文【12】提出一種稀疏輸入的可泛化NVS方法,稱為FWD,實時提供高質量的圖像合成。通過顯式深度和可差分渲染,FWD實現130-1000倍的速度和更好的感知質量。如果在訓練或推理期間有傳感器深度的無縫集成,可提高圖像質量同時保持實時速度。
其關鍵見解是,顯式表征每個輸入像素的深度允許用可微分點云渲染器對每個輸入視圖應用forward warping。這避免了NeRF類方法昂貴的體采樣,實現了實時速度,同時保持了高圖像質量。
SynSin【1】為單圖像新視圖合成(NVS)使用可微分點云渲染器。論文【12】將SynSin擴展到多輸入,并探索了融合多視圖信息的有效方法。
FWD估計每個輸入視圖的深度,構建潛特征的點云,然后通過點云渲染器合成新視圖。為了緩解來自不同視點觀測之間的不一致問題,將視點相關的特征MLP引入到點云中,對視點相關結果進行建模。另外一種基于Transformer的融合模塊,有效地組合來自多輸入的特征。一個細化模塊,可以修復(inpaint)缺失區域并進一步提高合成質量。整個模型經過端到端訓練,最小化光度和感知損失、學習能優化合成質量的深度和特征。
如圖14為FWD的概覽:給定一組稀疏圖像,用特征網絡f(基于BigGAN架構)、視圖相關特征MLP ?ψ 和深度網絡d為每個圖像 ?Ii 構建點云(包括視圖的幾何和語義信息)?Pi;除圖像外,d將MVS(基于PatchmatchNet)估計的深度或傳感器深度作為輸入,并回歸細化的深度;基于圖像特征?Fi和相對視圖變化 ?Δv (基于歸一化視角方向?vi和?vt,即從點到輸入視圖i和目標視圖t的中心),通過f和?ψ回歸逐像素特征?Fi′;采用可微分點云渲染器 ?π (splatting)將點云投影和渲染到目標視圖,即 ?F~i ;渲染前不是直接聚合視圖點云,而是Transformer T融合來自任意數量輸入的渲染結果,并應用細化模塊R解碼生成最終圖像結果,即以語義和幾何的方式修復輸入看不見的區域,糾正由不準確深度引起的局部誤差,并基于特征圖所包含的語義提高感知質量;模型訓練使用光度損失和內容損失。
現有用局部圖像特征重建3D目標的方法,在查詢3D點上投影輸入圖像特征來預測顏色和密度,從而推斷3D形狀和外觀。這些圖像條件模型可以很好地渲染接近輸入視角的目標視角圖。然而,當目標視角過多移動時,這種方法會導致輸入視圖的顯著遮擋,渲染質量急劇下降,呈現模糊預測。
為了解決上面的問題,論文【13】提出一種方法,利用全局和局部特征形成一個壓縮的3D表征。全局特征從視覺Transformer中學習,而局部特征從2D卷積網絡中提取。為了合成一個新視圖,訓練了一個MLP網絡,根據學習的3D表征實現體渲染。這種表征能夠重建未見過的區域,無需如對稱或規范坐標系的強制約束。
給定攝像頭s處的單個圖像Is,任務是在攝像頭t處合成新視圖It。如果一個3D點x在源圖像中可見,可以直接用其顏色Is(π(x)),其中π代表在源視圖進行投影,表示該點在一個新視圖可見。如果x被遮擋,就求助于在投影π(x)顏色以外的信息。如圖15所示,得到此類信息有三種可能的解決方案:(a)一般NeRF 基于1D潛代碼的方法,在1D向量中編碼3D目標信息,由于不同3D點共享同一個代碼,歸納偏差被限制;(b) 基于2D圖像的方法,從逐像素圖像特征重建任何3D點,這樣的表征鼓勵可見區域更好的渲染質量,計算也更有效,但是對未見區域渲染變得模糊;(c) 基于3D體素的方法將3-D目標視為體素的一個集合,并應用3-D卷積生成顏色RGB和密度向量σ,這樣渲染較快,也充分利用3D先驗去渲染未見的幾何,但是由于體素大小和有限的感受野原因限制了渲染分辨率。
如圖6是全局-局部混合渲染方法【13】的總覽圖:首先將輸入圖像劃分為N=8×8個圖像塊P;每個圖像塊扁平化并線性投影到圖像標記(token)P1;transformer編碼器將圖像標記和可學習位置嵌入e作為輸入,提取全局信息作為一組潛特征f;然后,用卷積解碼器將潛特征解碼為多級特征圖 ?WG ;除了全局特征,用另一個2D CNN 模型獲取局部圖像特征;最后,用NeRF MLP模型對體渲染的特征進行采樣。
論文【14】提出Point-NeRF,結合NeRF和MVS這兩種方法的優點,用神經3D點云以及相關的神經特征對輻射場建模。在基于光線行進的渲染流水線中聚集場景表面附近的神經點特征,可以有效地渲染Point-NeRF。此外,一個預訓練的深度網絡直接推斷可初始化Point-NeRF,生成一個神經點云;該點云可進行微調,超過NeRF的視覺質量,訓練時間快30倍。Point-NeRF與其他3D重建方法相結合,并采用生長和修剪機制,即在高體密度區域生長和在低體密度修剪,對重建點云數據進行優化。
Point-NeRF概覽如圖17所示:(a) 從多視圖圖像中,Point-NeRF用基于成本體的3D CNN 為每個視圖生成深度,并通過2D CNN 從輸入圖像中提取2D特征;聚集深度圖后,獲得基于點的輻射場,其中每個點具有空間位置、置信度和未投影的圖像特征;(b) 為合成一個新視圖,進行可微分光線行進,并只在神經點云附近計算明暗;在每個明暗位置,Point-NeRF聚集來自其K個神經點鄰居的特征,并計算輻射率和體密度,然后用體密度累積求和輻射度。整個過程端到端可訓練,基于點的輻射場可以通過渲染損失進行優化。
GRAF(Generative Radiance Field)【18】是一種輻射場的生成模型,通過引入基于多尺度patch的鑒別器,實現高分辨率3D-覺察圖像的合成,同時模型的訓練僅需要未知姿態攝像頭拍攝的2D圖像。
目標是學習一個模型,通過對未經處理的圖像進行訓練來合成新的場景。更具體地說,利用一個對抗性框架來訓練一個輻射場的生成模型(GRAF)。
圖18顯示了GRAF模型的概述:生成器采用攝像機矩陣K、攝像機姿態ξ、2D采樣模式ν和形狀/外觀代碼作為輸入并預測一個圖像patch P′;鑒別器將合成的patch P′與從真實圖像I中提取的patch P進行比較;在推理時,為每個圖像像素預測一個顏色值;然而在訓練時間這個操作太貴,因此預測一個大小為K×K像素的固定patch,其隨機縮放和旋轉,為整個輻射場提供梯度。
決定要生成虛擬K×K patch 的中心和尺度s。隨機patch中心來自一個圖像域Ω的均勻分布,而patch尺度s來自一個均勻分布,其中,其中W和H表示目標圖像的寬度和高度。形狀和外觀變量的采樣分別來自形狀和外觀分布和。在實驗中,和都使用標準高斯分布。
輻射場由深度全連接的神經網絡表示,其中參數θ映射3D位置x的位置編碼和觀察方向d到RGB顏色值c和體密度σ:
這里 ?gθ 取決于兩個附加潛代碼:一個是形狀代碼?zs決定目標形狀,一個表觀代碼?za決定外觀。這里稱?gθ為條件輻射場,其結構如圖19所示:首先根據x的位置編碼和形狀代碼計算形狀編碼h;密度頭?σθ將此編碼轉換為體密度σ;為預測3D位置x處的顏色c,將h與d的位置編碼以及表觀代碼?za連接起來,并將結果向量傳遞給顏色頭?cθ;獨立于視點d和外觀代碼計算σ,鼓勵多視圖一致性,同時形狀與外觀進行分離;這個鼓勵網絡用兩個潛代碼分別對形狀和外觀建模,并允許在推理過程中做分別處理。
鑒別器實現為一個卷積神經網絡,將預測的patch P′與從數據分布 ?pD 真實圖像I中提取的patch P進行比較。為了從真實圖像I提取K×K patch,首先從用于提取上述生成器patch的同一分布?pv中提取v=(u,s);然后,通過雙線性插值在2D圖像坐標P(u,s)處查詢I,采樣真實patch P。用 ?Γ(I,v) 表示這種雙線性采樣操作。
實驗發現一個有共享權重的單鑒別器足以用于所有patch,即使這些patch在不同尺度隨機位置采樣。注: 尺度決定patch的感受野。因此,為了促進訓練,從更大的接受野patch開始去捕捉全局上下文。然后,逐步采樣具有較小感受野的patch細化局部細節。
GIRAFFE【19】用于在原始非結構化圖像進行訓練時以可控和真實感的方式生成場景。主要貢獻有兩個方面:1) 將組合3D場景表征直接納入生成模型,實現更可控的圖像合成。2) 將這種明確的3D表征與一個神經渲染流水線相結合,實現更快的推理和更逼真的圖像。為此,場景表征為組合生成神經特征場,如圖20所示:對于一個隨機采樣的攝像頭,基于單獨特征場對場景的一個特征圖像進行體渲染;2D神經渲染網絡將特征圖像轉換為RGB圖像;訓練時只采用原始圖像,在測試時能夠控制圖像形成過程,包括攝像頭姿勢、目標姿勢以及目標的形狀和外觀;此外,該模型擴大到訓練數據范圍之外,例如,可以合成包含比訓練圖像中更多目標的場景。
將場景體渲染為分辨率相對較低的特征圖像,可節省時間和計算。神經渲染器處理這些特征圖像并輸出最終渲染。通過這種方式,該方法可以獲得高質量的圖像并尺度化到真實場景。當在原始非結構化圖像集合上進行訓練時,這個方法允許單目標和多目標場景的可控圖像合成。
場景組合時,要考慮兩種情況:N固定和N變化(其中最后一個是背景)。在實踐中,像目標那樣,背景用相同的表征法,不同的是橫跨整個場景把尺度和平移參數固定,并以場景空間原點為中心。
2D渲染算子的權重把特征圖像映射到最后合成圖像,可以參數化為一個帶泄漏ReLU激活的2D CNN,和3x 3卷積和最近鄰域上采樣結合可增加空域分辨率。最后一層應用sigmoid操作,得到最后的圖像預測。其示意圖如圖21所示。
鑒別器也是一個帶泄漏ReLU激活的CNN。