只需訓練一次,即可生成3D新場景!谷歌「光場神經渲染」進化史

編輯:LRS

【新智元導讀】NeRF的泛化性難題再被Google攻克!

檢視合成(view synthesis)

是計算機視覺和計算機圖形學交叉領域的一個重點難題,指的是從一個場景的多張圖片中建立該場景的新檢視。

要準確地合成一個場景的新檢視,一個模型需要從一小部分參考圖片中捕捉多種型別的資訊,比如

詳細的三維結構、材料和光照

等。

自2020年研究人員提出

神經輻射場(NeRF)

模型以來,這個問題也受到了越來越多的關注,大大推動了新檢視合成的效能。

只需訓練一次,即可生成3D新場景!谷歌「光場神經渲染」進化史

其中一個超級大玩家就是

Google

,在NeRF領域也發表了諸多論文,本文將為大家介紹兩篇Google發表在CVPR 2022和ECCV 2022上的論文,講述

光場神經渲染模型的進化

第一篇論文提出一個

基於Transformer的兩階段模型

來學習組合參考畫素顏色,首先獲得沿對極線(epipolar lines)的特徵,然後獲得沿參考檢視的特徵以產生目標射線的顏色,

極大提升了檢視重現的準確率

只需訓練一次,即可生成3D新場景!谷歌「光場神經渲染」進化史

論文連結:

https://arxiv。org/pdf/2112。09687。pdf

經典

光場渲染(Light Field Rendering)

可以準確地再現與檢視有關的效應,如反射、折射和半透明,但需要對場景進行密集的檢視取樣。基於幾何重建的方法只需要稀疏的檢視,但不能準確地模擬non-Lambertian效應,即

非理想散射

只需訓練一次,即可生成3D新場景!谷歌「光場神經渲染」進化史

文中提出的新模型結合了這兩個方向的優勢並

緩解了其侷限性

,透過對光場的四維表示進行操作,模型可以學會準確地表示與檢視有關的效應。透過在訓練和推理過程中強制執行幾何約束,場景幾何被隱含地從一組稀疏的檢視中學習。

只需訓練一次,即可生成3D新場景!谷歌「光場神經渲染」進化史

該模型在多個正向和360°資料集上的表現優於最先進的模型,並且在具有嚴重的視線依賴性變化的場景上有較大的餘地。

另一篇論文透過使用

具有規範化(canonicalized)位置編碼的Transformer序列

來解決合成未見過的場景的

泛化性問題

。模型在一組場景上訓練後就可以用來合成新場景的檢視。

只需訓練一次,即可生成3D新場景!谷歌「光場神經渲染」進化史

論文連結:

https://arxiv。org/pdf/2207。10662。pdf

文中提出了一個不同的正規化,不需要深度特徵和類似NeRF的體積渲染,該方法只需從場景中取樣patch集合就能直接預測新場景中目標射線的顏色。

首先利用

對極幾何學

,沿著每個參考檢視的

對極線提取patch

,並將每個patch都線性地投射到一個一維特徵向量中,然後由一系列的Transformer處理這個集合。

對於

位置編碼

,研究人員採用和光場表示方法類似的方式

對射線進行引數化

,區別在於座標是相對於目標射線的規範化,也使得該方法獨立於參考框架並

提高了通用性

模型的創新點在於,它是進行基於影象的渲染,結合參考影象的顏色和特徵來渲染新的檢視,而且純粹是基於Transformer的,在影象patch集上操作。並且它們利用4D光場表示來進行位置編碼,有助於模擬與檢視相關的效果。

最後實驗結果表明,該方法在未見過的場景的新檢視合成方面優於其他方法,即使在用比

少得多的資料進行訓練

時也是如此。

光場神經渲染

模型的輸入包括一組參考影象、相應的相機引數(焦距、位置和空間方向),以及使用者想要確定其顏色的目標射線的座標。

為了生成一個新的影象,我們需要從輸入影象的相機引數開始,先獲得目標射線的座標(每一個都對應一個畫素),併為每一個座標進行模型查詢。

研究人員的解決方法是,不完全處理每張參考影象,而只看可能影響目標畫素的區域。這些區域可以透過對極幾何學確定,將每個目標畫素對映到每個參考框架上的一條線。

為了穩妥起見,需要在對極線上的一些點周圍選取小區域,從而形成將被模型實際處理的patch集合,然後將Transformer作用於這組patch上以獲得目標畫素的顏色。

只需訓練一次,即可生成3D新場景!谷歌「光場神經渲染」進化史

Transformer在這種情況下特別有用,因為其中的自注意力機制可以自然地將patch集合作為輸入,注意力權重本身就可以用來結合參考檢視顏色和特徵來預測輸出畫素的顏色。

在光場神經渲染(LFNR)中,研究人員使用兩個Transformer序列將patch集合對映到目標畫素顏色。

第一個Transformer沿著每條對極線聚合資訊,第二個Transformer沿著每張參考影象聚合資訊。

這種方法可以把第一個Transformer解釋為在每個參考幀上尋找目標畫素的潛在對應關係,而第二個Transformer則是對遮擋和視線依賴效應的推理,這也是基於影象的渲染的常見難題。

只需訓練一次,即可生成3D新場景!谷歌「光場神經渲染」進化史

LFNR在最流行的檢視合成基準(NeRF的Blender和Real Forward-Facing場景以及NeX的Shiny)上相比sota模型在峰值信噪比(PSNR)的提升幅度高達5dB,相當於將畫素級的誤差減少了1。8倍。

LFNR可以重現一些NeX/Shiny資料集中比較難的視線依賴性效果,比如CD上的彩虹和反射,瓶子上的反射、折射和半透明。

只需訓練一次,即可生成3D新場景!谷歌「光場神經渲染」進化史

與之前的方法如NeX和NeRF相比,它們就沒辦法重現與視線相關的效果,如NeX/Shiny資料集中的實驗室場景中的試管的半透明性和折射率。

只需訓練一次,即可生成3D新場景!谷歌「光場神經渲染」進化史

一次訓練,泛化新場景

但LFNR也有侷限性。

第一個Transformer對每個參考影象獨立地沿每條對極線摺疊資訊,這也意味著模型只能根據每個參考影象的輸出射線座標和patch來決定要保留哪些資訊,這在單一場景的訓練中效果很好(和大多數神經渲染方法一樣),但它無法泛化到不同場景中。

可通用的模型很重要,因為可以直接應用於新的場景而不需要重新訓練。

研究人員提出可通用的基於patch的神經渲染(GPNR)模型解決了LFNR的這個缺陷。

只需訓練一次,即可生成3D新場景!谷歌「光場神經渲染」進化史

透過在模型中增加一個Transfomre,使其在其他兩個Transformer之前執行,並在所有參考影象的相同深度的點之間交換資訊。

只需訓練一次,即可生成3D新場景!谷歌「光場神經渲染」進化史

GPNR由三個Transformer序列組成,這些Transformer將沿對極線提取的一組patch對映為畫素顏色。影象patch透過線性投影層被對映到初始特徵,然後這些特徵被模型連續細化和聚合,最終形成特徵和顏色。

舉個例子,第一個Transformer從「公園長椅」上提取出patch序列後,新模型可以使用在兩個檢視中出現在相應深度的「花」這樣的線索,表明存在潛在的匹配。

只需訓練一次,即可生成3D新場景!谷歌「光場神經渲染」進化史

這項工作的另一個關鍵idea就是根據目標射線將位置編碼規範化,因為想要在不同的場景中進行泛化,就必須以相對而非絕對的參照系來表示quantities

為了評估模型的泛化效能,研究人員在一組場景上訓練GPNR,並在新場景上進行測試。

GPNR在幾個基準(遵照IBRNet和MVSNeRF協議)上平均提高了0。5-1。0 dB,尤其是在IBRNet基準上,GPNR 在只使用11%的訓練場景的情況下,就超過了基線模型。

只需訓練一次,即可生成3D新場景!谷歌「光場神經渲染」進化史

GPNR在NeX/Shiny和LLFF的保持場景上生成的檢視細節,沒有進行任何微調。與IBRNet相比,GPNR可以更準確地再現葉片上的細節和透過鏡頭的折射。

只需訓練一次,即可生成3D新場景!谷歌「光場神經渲染」進化史

參考資料:

https://ai。googleblog。com/2022/09/view-synthesis-with-transformers。html