神經渲染最新進展與演算法(一):語義影像合成

摘要
語義影像合成是神經渲染技術的重要分支。在生成對抗網路等深度學習方法基礎上,語義影像合成近兩年取得了許多令人印象深刻的進展,比如GauGAN等。本文簡單介紹了神經渲染,著重分析了語義影像合成的一些最新應用。本文還分析了語義影像合成的最新演算法實現結構、新型運算元及計算特徵。透過深入理解神經渲染相關技術,我們也期望能借鑑和吸收其中的創新思路,應用到物理模擬等AI融合科學計算領域。我們將持續關注這一領域的發展,並不定期分享我們的認識。
介紹
傳統計算機圖形學技術經過幾十年的發展,主要技術路線已經相對穩定。隨著深度學習技術的發展,新興的神經渲染技術給計算機圖形學帶來了新的機遇,受到了學界和工業界的廣泛關注。在近幾年的計算機視覺和圖形學頂會上,我們都可以看到各種令人耳目一新的神經渲染應用。業界領導者如Nvidia、Intel也都提出了融合神經渲染的新型渲染pipeline和專利創新。Nvidia已經將深度超解析度方法(DLSS)加入了新一代的圖形渲染引擎,而Intel也提出了面向神經渲染的計算機圖形硬體架構[1]。
此外,計算機圖形學和科學計算中的物理模擬有著天然的聯絡。我們也希望透過深入理解神經渲染的技術和演算法,借鑑和吸收其創新思路,從而推動融合深度學習的物理模擬的進一步發展。
神經渲染及分類
神經渲染是深度網絡合成影像的各類方法的總稱。神經渲染透過資料驅動而非物理定律獲得渲染函式,其函式一般用深度神經網路透過學習構建。結合新興的可微渲染方法,神經渲染可以和傳統渲染方法融合為完整的渲染流程。
2020年歐洲圖形學大會的一篇綜述[2]給出了一個較為完整的定義:
(神經渲染是) Deep image or video generation approaches that enable explicit or implicit control of scene properties such as illumination, camera parameters, pose, geometry, appearance, and semantic structure.
神經渲染的分類
報告[2]進一步將神經渲染的各種技術被歸納為照片語義合成、新視角影像合成、光照調整、自由視角影片以及面部和身體重演等幾個應用領域。
此外,我們也可以從計算機圖形的任務實現層次對神經渲染相關技術總結分類。計算機圖形的任務可以簡單理解為由內容產生真實感影像或影片。進一步細分,圖形渲染的整個流水線可以大致分為兩個環節:根據內容定義物體與場景的網格化和材質(3D建模);在模型上新增紋理、光照等形成真實感影像(渲染)。各類神經渲染的目標是實現其中全部或部分的功能。
圖1 神經渲染技術的型別
根據上述理解,我們可以把現有神經渲染技術分為如下幾種型別:語義影像合成(Semantic Image Synthesis)、場景和物體等圖形建模(CG Modeling)、紋理與光線等圖形渲染(CG Rendering)影像重渲染(Rerendering)。本文將側重分析神經渲染中語義影像合成應用的發展,以及支撐這些應用的深度學習模型架構與計算特點。
語義影像合成
(Semantic Image Synthesis)
語義影像合成是當前進展較多的神經渲染領域。Semantic image synthesis可以簡單理解為計算機圖形的全流程實現,即由語義圖直接產生真實感(photo-realistic)影像。
語義圖用簡單的幾何形狀表達場景內容。語義圖可以來自於已有自然影像的語義分割,也可以手工合成或編輯而得。語義影像合成技術再根據給定的語義圖產生新的真實感影像。本文重點介紹了三個最新的語義影像合成工作:GauGAN[3],Infinite Future[4]和GANcraft[5]。其中後兩者利用了GauGAN的方法,並都收錄於今年的ICCV2021。

圖2 語義影像合成(來源:文獻[3],圖1)
1.GauGAN
語義影像合成方法中,GauGAN是影響較大的工作[3]。自2019年釋出以來,GauGAN在學界引起很大反響,許多後續工作借鑑和利用了它的演算法。
GauGAN方法整體上是一種生成對抗網路,用語義圖和自然影像訓練網路。訓練中自然影像由 encoder生成隱空間變數,與語義圖一起在生成器產生真實感影像,並在判別器比較。訓練好的生成器可以根據輸入的語義圖產生真實感影像。
模型架構:
GauGAN的整體架構如下。

圖3 GauGAN整體架構(來源:文獻[3],圖15)
其中Image Encode是一個卷積網路,包括6層stride-2卷積和兩層線性層,輸出為代表輸入影像隱空間分佈的均值和方差。
在對抗網路中, Generator由輸入的語義和隱空間取樣點生成真實感影像。Generator是一個包含了多層殘差模組 SPADE ResBlk的卷積網路,也稱為SPADE網路。SPADE模組集成了特殊定義的Batch Norm運算元spatial adaptive normalization(SPADE) 。SPADE運算元是GauGAN方法的重要創新點,因此SPADE也被用於指代GauGAN模型。我們會在後文詳細分析SPADE模組。
對抗網路的判別器是基於patch的多層卷積模型,用於對比語義圖和生成的真實感影像。判別器結構中卷積層啟用的歸一化採用了Instance Norm(IN),以避免一個batch中其它樣本的影響。IN運算元常常用於生成對抗網路中。
2.Infinite Nature影片合成
語義影像合成技術的一個有趣的進展是2020年底提出的“Infinite Nature”[4]。該方法利用了SPADE模型,可以從單張影像及對應的視差圖產生視角連續變化的影片。連續影片透過如下的渲染-最佳化的兩步迭代過程來實現。
首先在渲染階段,該方法根據輸入的自然影像和視差圖,可微渲染器產生一組渲染影像,包括:另一視角的紋理對映圖,新的視差圖及視差mask。Infinite Nature中的可微渲染器是一個在可微框架上實現的傳統三維網格渲染器[6]。
圖4 渲染-最佳化流程(來源:文獻[4],圖3)
其次在最佳化步驟,將第一步生成的新紋理圖、視差及mask作為輸入,該方法用SPADE模型產生下一幀真實感影像及視差圖。
上述過程反覆迭代就可以產生影片序列。讀者們可以在網站上看到更多的影片:
https://infinite-nature.github.io/
3.由畫素到真實感影像:GANcraft
GANcraft是2021年上半年提出的一項有影響力的工作[5]。它以MineCraft風格的語義畫素塊作為輸入,輸出的不僅僅是對應的單張真實感影像,而是任意視角的真實感影像。
嚴格來講,GANcraft是一種重渲染技術。神經重新渲染是將已經渲染的影像根據要求重新再渲染的技術。這類技術依靠深度神經網路來恢復渲染影像中丟失的細節。Nvidia已經整合到現有渲染流水的超解析度模型DLSS可以看作是一個成功應用。GANcraft整合了神經渲染多個方向的最新進展,將神經重渲染推進了一大步。
圖5 由MineCraft圖到真實感圖(來源:文獻[5],圖1)
除了對神經渲染最新技術的整合,GANcraft的一個創新點是構建偽真實圖作為訓練標籤。由於是從MineCraft的虛擬圖來產生真實感影像, GANcraft訓練的一個問題是難以獲得實際的ground truth。GANcraft 從minecraft圖產生的分割蒙版作為語義圖,再用預訓練SPADE產生真實感影像作為偽ground truth。這樣就解決了真實圖的來源問題。也就是說,GANcraft將預訓練的SPADE作為了真實影像的來源。
GANcraft的實現結構
GANcraft對輸入的minecraft影像的每個塊中都分配一個風格標籤,例如土、草或水等,進而構建 3D 世界的容積函式,從任意給定角度渲染與方塊世界場景一致的真實感影像。
整個方法實現框架如圖6所示。其中,MLP用於從體素模型構建3D Neural radiance filed,根據視角引數產生二維feature map,由CNN渲染器產生任意視角真實感影像。而神經渲染的風格特徵由SPADE生成偽真實影像後經由style encoder 和network產生的。
圖6 GANcraft架構(來源:文獻[5],圖3)
三維容積資訊構建
GANcraft模型的場景volume資訊由MLP模型表徵。透過訓練該MLP構建了包含場景的神經輻射場(Neural radiance filed),用於場景投影影像產生。由於該容積場不能表現極遠處的天空。因此 GANcraft單獨訓練了一個天空渲染的MLP模型。神經容積表徵也是神經渲染的一個重要研究方向。篇幅所限,不再展開。
CNN渲染器
用於輸出最終影像的渲染器是一個深度卷積網路。其輸入是由MLP產生的影像feature map和風格編碼器產生的風格特徵。
風格Encoder
風格Encoder產生用於渲染器的影像風格特徵。這是一個兩步的網路。首先SPADE產生風格編碼,即由分割map得到的隱空間統計特徵值。該編碼經過一個風格網路產生風格特徵。
圖7 風格網路(來源:文獻[5],圖9)
判別器
與GauGAN不同,GANcraft的判別器是基於多級語義特徵的Unet結構模型。基於語義特徵可實現minecraft和真實感影像間的對比。
圖8 feature pyramid semantics-embedding (FPSE) 判別器(來源:文獻[5],圖11)
由上可見,GANcraft巧妙的利用了神經輻射場、SPADE和StyleGAN等最新神經渲染方法,最終取得令人印象深刻的效果。有興趣的讀者可在如下網站看到更多介紹:
https://nvlabs.github.io/GANcraft/
GauGAN的計算特點
SPADE運算元
GauGAN的生成器採用了SPADE運算元對卷積層啟用做歸一化。SPADE運算元的提出是為了克服BN後語義資訊丟失問題。SPADE運算元中batch norm的控制引數與對應的語義圖特徵相關:
其中,m是語義圖,i是網路層,h為輸入feature,c,y,x為feature通道及二維座標。由公式可知,歸一化計算中控制變數γ和β是空間座標和特徵通道的函式,需要根據輸入的語義圖由卷積網路計算而得。
圖9 SPADE運算元(來源:文獻[3],圖2和圖10)
將經典卷積殘差模組中的BN用SPADE運算元代替,則可以構建出SPADE Residual Block並用於GauGAN生成器網路。

圖10 SPADE ResBlk(來源:文獻[3],圖11)
Spectral Norm
與許多GAN實現一樣,GauGAN使用了對網路權重的Spectral Norm來保證收斂。具體來看,GauGAN方法對Generator和BatchNorm中的卷積運算元都作了Spectral Norm處理。Spectral Norm操作將卷積核矩陣權重除以該矩陣最大奇異值來歸一化。
矩陣奇異值一般需要透過矩陣奇異值分解獲得。這是一個計算代價很大的過程。因為Spectral Norm僅需計算最大奇異值,我們可以透過冪迭代近似來計算,該操作透過多次矩陣乘迭代來逼近結果,減少了計算量。
小結
語義影像合成是神經渲染的重要技術領域,當前各種新的演算法與應用層出不窮。語義影像合成的進步推動了神經渲染的應用發展,其技術在遊戲、電影工業等領域已經得到了初步應用。
語義影像合成的發展也推動了深度學習技術的創新,比如生成對抗網路的Spectral Norm以及SPADE歸一化運算元等。相信透過借鑑神經渲染的新思路,AI的其它應用領域如融合深度學習的物理模擬等方向也會得到推動和促進。這些發展無疑會對深度學習軟硬體實現提出更多需求,從而推動整個AI生態的發展與革新。
參考文獻
[1] Labbre et al.,Graphics Architecture Including aNeural Network Pipeline, US20200051309。
[2] A. Tewari, et. al., State of the Art on NeuralRendering, EUROGRAPHICS 2020.
[3] T.Park et.al., Semantic Image Synthesis with Spatially-AdaptiveNormalization, arXiv:1903.07291v2
[4] A. Liu, Infinite Nature: Perpetual View Generation of Natural Scenes from a Single Image, arXiv:2012.09855v2
[5] Z. Hao, et.al., GANcraft: Unsupervised 3D NeuralRendering of Minecraft Worlds, arXiv:2104.07659
[6] Olano and Greer, "Triangle ScanConversion using 2D Homogeneous Coordinates," HWWS 1997.
關於壁仞科技研究院
壁仞科技研究院作為壁仞科技的前沿研究部門,旨在研究新型智慧計算系統的關鍵技術,重點關注新型架構,先進編譯技術和設計方法學,並將逐漸拓展研究方向,探索未來智慧系統的各種可能。壁仞科技研究院秉持開放的原則,將積極投入各類產學研合作並參與開源社群的建設,為相關領域的技術進步做出自己的貢獻。
掃碼關注我們

相關文章