Topic: GIRAFFE: Representing Scenes as Compositional Generative Neural Feature Fields
Editor: George Wu
Resources: GIRAFFE paper GIRAFFE github GRAF paper GRAF github NeRF paper NeRF github
Label: Deep generative models, 3D reconstruction, NeRF, GAN, GRAF

大意
generative adversarial network (GAN)自2014年發表以來已經是眾多研究領域如影像生成或轉換, 場景合成或圖像super resolution等的根基. GAN雖然強大但大多數網路對於生成出來的圖像可控性還是太少, 也無法真正將生成圖像視為3D物品與3D場景間的合成. 譬如無法單獨去平移圖像中的汽車, 或直接改變他的外貌顏色, 也無法旋轉場景用不同的視角去觀察. 在今年的CVPR大會上Niemeyer及Geiger的論文GIRAFFE就跨出了這一大步, 也因此獲得了2021 CVPR best paper! 可以簡單理解成將三維重建中的NeRF(Neural Radiance Fields, 神經輻射場)與GAN中的Generator結合而做到可控的圖像合成. 按照作者的說法就是將3D場景視為compositional generative neural feature fields(GIRAFFE), 讓我們能從圖像的背景中分離出多個物體, 並允許在場景中平移旋轉他們或用不同視角觀察3D物體. 以下將簡單介紹一下GIRAFFE以及一些相關研究.
3D reconstruction以及NeRF
三維重建(3D reconstruction)是傳統computer vision重要且發展多年的子領域, 通常是指從單個或多角度二維影像去重建三維影像的技術, 譬如有從深度圖, Mesh或3D點雲等方式. 近幾年也是有一系列基於深度學習的技術, 譬如利用單張影像去預測深度圖, 用單張影像去重建3D點雲, 用圖神經網路(GCN)預測3D Mesh(Pixel2Mesh)等等. 以上的3D reconstruction技術基本上是直接輸出三維幾何模型. 2020年ECCV的NeRF神經輻射場令人驚艷的結果將3D渲染及3D重建帶到一個新高度, 也越來越多基於implicit scene representation隱式場景表示的研究及技術出現. NeRF簡單來說可以分成兩個步驟, 首先通過一系列單一場景不同角度的2D影像去訓練(x,y,z,θ,ϕ)到(R,G,B,σ)的MLP映射函數, 而優化過的一系列RGB顏色及體積密度所組成的場就是neural radiance field, 可以直接對該場景進行積分去做渲染(volume rendering)而生成任何視角的模擬圖片.

GRAF
Niemeyer及Geiger在2020年的NeurIPS就提出了GRAF – Generative Radiance Fields for 3D-Aware Image Synthesis用於3D感知圖像生成的生成輻射場. 就是將GAN與NeRF結合的生成模型. GRAF的Discriminator仍與GAN中的相同, 但在Generator部分則引進NeRF的概念, 以相機定位角度及距離等參數以及由圖像sampling取得的一系列3D座標點為input, 輸入至Generator中按照NeRF映射函數的方式建立帶有RGB顏色及體積密度場的Conditional radiance field. 這裡的conditional跟Conditional GAN類似, 藉由引入latent variable增加對Generator的控制, 在這裡加入了zs跟za增加對物體形狀跟材質顏色的控制. 最後在Generator裡將建立的radiance field用volume rendering做渲染就產生predicted patch. 而Discriminator則是比較真實圖像產生的patch以及predicted patch. 總結來說藉由結合NeRF到GAN的Generator, GRAF實現了高質量的可控圖像生成.


GIRAFFE
雖然2020年的GRAF已經實現了高質量的可控圖像生成, 但以真實場景3D渲染的目的來說仍然自由度不足, 譬如GRAF只限於單一場景單一物體的生成及控制. GIRAFFE在GRAF的基礎下將Generator內部單一的Conditional radiance field改良為N個獨立的generative neural feature fields的合成(包含場景內N-1個物體及background), MLP映射函數輸出的不再是RGB跟體積密度而是feature跟體積密度, 除此之外也為每個物體的feature field引入縮放平移及旋轉operator, 讓物體可以獨立在場景內平移或縮放等. 而新的scene composition operator則將N-1個物體及background合成在一起. GIRAFFE在渲染步驟則分為3D volume rendering及2D neural rendering. 在3D volume rendering中因為原本radiance field的RGB變成features, 所以經過積分先生成feature image I, 之後再經過2D neural rendering產生最後的生成圖像. 其他的部分大致上和GRAF相差不大. 就結果來講GIRAFFE相當接近於我們所期待3D渲染的功能性, 對生成出來的高品質圖像中的物體及背景都能個別控制, 無論是移動旋轉或改變材質形狀或加入新的物體. 算是真正實現多物體合成的3D場景生成.



