來自位元組跳動視覺技術團隊的研究者將 NeRF 和 Multiplane Image(MPI)結合,提出了一種新的三維空間表達方式 MINE。該方法透過對單張圖片做三維重建,實現新視角合成和深度估算。
位元組跳動視覺技術團隊結合 NeRF 和 Multiplane Image(MPI),提出了一種新的三維空間表達方式 MINE。MINE 透過對單張圖片做三維重建,實現新視角合成和深度估算。透過引入隱式神經場(NeRF),研究者將 Multiplane Images (MPI)擴充套件成連續的深度平面。給定單個圖片作為輸入,MINE 能在相機視錐中的任意深度,預測出一個四通道的影像,四通道包括 RGB 顏色和空間密度。這種任意深度的四通道預測,實際上是對輸入圖片的視錐的三維重建,以及對被遮擋內容的填充(inpainting)。我們可以利用被重建和填充的視錐方便地渲染出新視角下的 RGB 圖片和深度圖,並且渲染過程是可導的。在 RealEstate10K,KITTI 和 Flowers Light Fields 資料集上的實驗表明,MINE 在新視角合成的效能上大幅超越了當前最前沿的方法。同時,在 iBims-1 和 NYU-v2 的實驗表明,團隊在沒有使用真值深度做監督訓練的情況下,獲得了和前沿方法接近的深度估計效能。該研究的訓練程式碼與 pretrain model 已經開源。近年來,在新視角合成這個領域裡,最火爆的方法無疑是 ECCV 2020 的 NeRF [5]。與傳統的一些手工設計的顯式三維表達(Light Fields,LDI,MPI 等)不同,NeRF 把整個三維空間的幾何資訊與 texture 資訊全部用一個 MLP 的權重來表達,輸入任意一個空間座標以及觀察角度,MLP 會預測一個 RGB 值和 volume density。目標圖片的渲染透過 ray tracing 和 volume rendering 的方式來完成。儘管 NeRF 的效果非常驚豔,但它的缺點也非常明顯:一個模型只能表達一個場景,且最佳化一個場景耗時久;
per-pixel 渲染較為低效;
泛化能力較差,一個場景需要較多的照片才能訓練好。
另外一個與該研究較相關的是 MPI(Multiplane Image)[1, 2, 3]。MPI 包含了多個平面的 RGB-alpha 圖片,其中每個平面表達場景在某個深度中的內容,它的主要缺點在於深度是固定及離散的,這個缺點限制了它對三維空間的表達能力。[1, 2, 3] 都能方便地泛化到不同的場景,然而 MPI 各個平面的深度是固定且離散的,這個缺點嚴重限制了它的效果。該團隊採用一個 encoder-decoder 的結構來生成三維表達:Encoder 是一個全卷積網路,輸入為單個 RGB 圖片,輸出為 feature maps;
Decoder 也是一個全卷積網路,輸入為 encoder 輸出的 feature map,以及任意深度值(repeat + concat),輸出該深度下的 RGB-sigma 圖片;
最終的三維表達由多個平面組成,也就是說在一次完整的 forward 中,encoder 需要 inference 一次,而 decoder 需要 inference N 次獲得個 N 平面。
獲得三維表達後,不再需要任何的網路 inference,渲染任意 target 相機 pose 下的視角只需要兩步:利用 homography wrapping 建立畫素點間的 correspondence。可以想象,從 target 相機射出一條光線,這條光線與 target 圖片的一個畫素點相交,然後,研究者延長這條射線,讓它與 source 相機視錐的各個平面相交。相交點的 RGB-sigma 值可以透過 bilinear sampling 獲得;
利用 volume rendering 將光線上的點渲染到目標圖片畫素點上,獲得該畫素點的 RGB 值與深度。
MINE 可以利用 structure-from-motion 計算的相機引數與點雲進行場景的學習,在這種情況下,深度是 ambiguous 的。由於在這個方法中,深度取樣的範圍是固定的。所以需要計算一個 scale factor,使網路預測的 scale 與 structure-from-motion 的 scale 進行對齊。團隊利用透過 Structure from Motion 獲得的每個圖片的可見 3D 點 P 以及網路預測的深度圖 Z 計算 scale factor:獲得 scale factor 後,對相機的位移進行 scale:需要注意的是,由於需要和 ground truth 比較,所以在訓練和測試時需要做 scale calibration。而在部署時不需要做這一步。MINE 可以僅透過 RGB 圖片學習到場景的三維幾何資訊,訓練 Loss 主要由兩部分組成:1.Reconsturction loss——計算渲染出的 target 圖片與 ground truth 的差異:2.Edge-aware smoothness loss——確保在圖片顏色沒有突變的地方,深度也不會突變,這裡主要參考了 monodepth2 [6] 種的實現:3.Sparse disparity loss——在訓練集各場景的 scale 不一樣時,利用 structure-from-motion 獲得的稀疏點雲輔助場景幾何資訊的學習:在 KITTI 資料集上,可以看出,此方法在生成質量上大幅超越了當前的 SOTA——把 SSIM 從 0.733 提高到了 0.822。同時,可看出增加預測的平面數,生成圖片的質量也會提高,由於這並不會改變模型的引數量,所以可以看出,取樣平面的深度越稠密,就越利於場景表達的學習。在圖片視覺化上,MINE 生成的圖片形變和 artefacts 明顯更少。利用在 RealEstate10K 上訓練的模型,在 NYU 以及 iBims-1 資料集上測試了單目深度估計的結果。雖然只有 RGB 和 sparse 深度監督,但 MINE 在單目深度估計任務上取得了非常接近全監督的 3DKenBurns 的效能,並大幅超越了其他弱監督的方法。其中,和 MPI 相比,此方法更不受圖片 texture 的影響,在 texture 豐富的區域依然能生成平滑的深度圖。MINE 是 MPI 的一種連續深度的擴充套件,相比於 MPI 和 NeRF,MINE 有幾個明顯的優勢:與 NeRF 相比,MINE 能夠泛化到訓練集沒有出現過的場景;
與 NeRF 的逐點渲染相比,MINE 的渲染非常高效;
與 MPI 相比,MINE 的深度是連續的,能稠密地表示相機的視錐;
MPI 透過 alpha 合成(alpha compositing)進行渲染,但該方法與射線上點之間的距離無關,而 MINE 利用 volume rendering 解決了這個限制。
由於輸入是單張圖片,MINE 無法表達相機視錐以外的三維空間;
由於 MINE 的輸入裡沒有觀察角度,所以其無法對一些複雜的 view-dependent 效果(如光碟上的彩虹等)進行建模。
[1]. Tinghui Zhou, Richard Tucker, John Flynn, Graham Fyffe, Noah Snavely. Stereo Magnification: Learning View Synthesis using Multiplane Images. (SIGGRAPH 2018)[2]. Ben Mildenhall, Pratul P. Srinivasan, Rodrigo Ortiz-Cayon, Nima Khademi Kalantari, Ravi Ramamoorthi, Ren Ng, Abhishek Kar. Local Light Field Fusion: Practical View Synthesis with Prescriptive Sampling Guidelines. (SIGGRAPH 2019)[3]. Richard Tucker, Noah Snavely. Single-View View Synthesis with Multiplane Images. (CVPR 2020)[4]. Meng-Li Shih, Shih-Yang Su, Johannes Kopf, Jia-Bin Huang. 3D Photography using Context-aware Layered Depth Inpainting. (CVPR 2020)[5]. Ben Mildenhall, Pratul P. Srinivasan, Matthew Tancik, Jonathan T. Barron, Ravi Ramamoorthi, Ren Ng. NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis. (ECCV 2020)[6]. Clement Godard, Oisin Mac Aodha, Michael Firman, Gabriel Brostow. Digging Into Self-Supervised Monocular Depth Estimation. (ICCV 2019)