
傳統計算機圖形學技術經過幾十年發展,主要技術路線已經相對穩定。隨著深度學習技術的發展,新興的神經渲染技術給計算機圖形學帶來了新的機遇,受到了學界和工業界的廣泛關注。在近幾年的計算機視覺和圖形學頂會上,我們都可以看到各種令人耳目一新的神經渲染應用。神經渲染是深度網絡合成影像的各類方法的總稱。各類神經渲染的目標是實現圖形渲染中建模和渲染的全部或部分的功能。
基於神經輻射場(NeRF)的場景建模是近期神經渲染的一個熱點方向。自20年8月提出後,該研究得到了廣泛關注,成為深度學習應用的爆點。許多學者圍繞它進行了深入和拓展。在20和21年的CVPR、NeuIPS等各大AI頂會上,我們可以看到幾十、上百篇相關的高水平論文。其中GIRAFFE等更是被認為是最佳會議論文。佐治亞理工的Dellaert教授對於NeRF發展的脈絡有一篇非常深入的總結,有興趣的讀者建議跟進閱讀:https://dellaert.github.io/NeRF/

本文重點介紹了NeRF的深度學習演算法和渲染演算法的實現,同時也討論了對其演算法最佳化和可編輯性改進的一些最新進展。
NeRF[1]是一種深度渲染方法,其主要特點是場景隱式表達和影像的容積渲染。NeRF實現了全流程可微,因此可以在深度學習框架上方便地實現場景表徵的訓練最佳化。
NeRF的基本思想是將目標場景看作3D的容積,用神經網路隱式表徵。沿觀察方向投影線對3D容積取樣,由表徵函式計算色彩特徵並投影積分後,該方法就可生成渲染影像。因此,NeRF方法的實現是深度場景表徵與容積渲染方法的組合。
1.深度場景表徵
NeRF用神經輻射場來隱式表徵場景的色彩特徵。在[1]中,神經輻射場是一個深度神經網路。網路的輸入是容積化場景體素點的三維位置座標和觀察相機的二維角度座標,輸出是對應五維座標體素的色彩密度特徵。注意,NeRF網路本身並沒有直接呈現場景的內容,而是透過輸入座標間接計算出對應點場景資訊。因此NeRF是場景的隱函式表徵。

NeRF是一個多層感知器網路。注意其輸入並不僅僅是原始的3維體素位置與2維相機角度。為了更好表徵場景的細節(高頻)內容,作者們提出用各維度的高次諧波作為網路輸入,如下:

其中3維位置座標每維度包含10次諧波,又以正弦與餘弦兩種形式共計60個位置輸入;二維視角經座標轉換後有三個輸入維度,每個維度包含4次諧波,共計24維視角輸入。

2. 容積渲染
容積渲染是一種特殊的渲染方式,它將以3維體積儲存的資料沿觀察方向投影形成二維影像。最廣為熟知的例子是醫學影像中的CT成像。計算機圖形學中容積渲染可透過投影面Ray Marching方法來實現。

Ray Marching由四步組成:1.在投影影像上逐畫素產生射線Raycast;2.沿射線對容積的體素取樣;3.獲取/計算體素特性;4.累積體素特性計算投影影像的顏色灰度值。
NeRF渲染實現正是按照上述步驟實現,並透過離散取樣,投影積分過程轉換為累積求和。由於體素特性由可微的MLP函式表徵,整個渲染流程是可微的,從而方便在現代深度學習框架上實現。
NeRF的一個創新是針對場景不透明度分佈稀疏的特性採用了二次取樣的方法來提升取樣效率。NeRF方法在一條投影線上先均勻取樣64個體素,計算密度分佈。根據分佈,NeRF再取樣128個體素。畫素值由兩步取樣的體素特徵共同累加得到。
3. NeRF渲染的實現
NeRF渲染首先根據場景不同視角的影像學習到場景表徵,再由表徵生成任意指定角度的影像。因此NeRF方法的實施可以分為兩個步驟:場景表徵的學習、場景的投影成像。
場景表徵的學習是一個深度模型的訓練階段。訓練NeRF的深度MLP模型使得其預測的投影影像與作為Ground Truth(GT)的已知影像一致。訓練的代價函式是預測影像與GT影像的均方誤差。

訓練好的NeRF模型成為場景的3D表徵函式。給定觀察角度,我們就可以按照1.2介紹的容積渲染步驟產生渲染影像。
4. NeRF的優點與侷限
NeRF方法的神經網路模型是一類以座標為輸入的神經網路(Coordinated based Neural Network, CONN)。CONN並非NeRF首創,在多個領域都能找到其應用。近年來在AI融合科學計算中取得矚目進展的Physical Informed Neural Network(PINN)正是採用了CONN思路來加速微分方程求解[8]。
同樣在神經渲染領域,稍早的工作DeepSDF[9]中提出的Signed Distance Function(SDF)等方法也採用基於座標輸入的神經網路來表徵場景中體素是否屬於目標物體(occupancy)的情況。NeRF方法在這些基礎上創新地整合了場景隱式表達和可微容積渲染,用一個新的思路實現了自然場景的學習與再現。其實驗結果也非常令人印象深刻。
值得指出的是從計算特徵的角度來看,NeRF方法的網路及實現結構並不複雜,其主體網路MLP的計算以矩陣乘加為主。渲染過程僅需要簡單的反覆執行MLP網路的前向預測。這種計算特徵非常適合現代集成了tensor core等部件的AI加速器如GPU、TPU來實現。
NeRF的整體框架也很靈活,易於擴充套件。其基於座標的隱式表徵方法也進一步啟發了其他學者在光場控制、內容編輯等圖形渲染其它方向的創新。
作為一個開創性的工作,NeRF也存在一些侷限之處。除了渲染質量外,NeRF主要的兩個侷限在於計算量巨大和僅適用於靜態場景。
許多研究工作正是針對這些問題進行了創新和最佳化。本文主要分析了針對NeRF加速和可編輯渲染的一些進展。有興趣的讀者還可以在下列網站看到更多基於NeRF的最新工作:
由前述介紹可知,NeRF方法生產生影像時,每個畫素都需要近200次MLP深度模型的前向預測。儘管單次計算規模不大,但逐畫素計算完成整幅影像渲染的計算量還是很可觀的。對解析度不高的百萬畫素基本影像,高階商用顯示卡如V100也僅能實現每分鐘1,2幀的渲染速度。因此近期人們提出了許多NeRF計算最佳化的方法。比如FastNeRF[2]、Baking NeRF[3]和AutoInt[4]等。
FastNeRF的基本思路是預先儲存所有NeRF表徵函式的輸出值,這樣渲染時無需深度模型計算,查表即可。但原始NeRF是5D座標輸入,即使每維1024解析度,也需要儲存

=1024T的體素特徵。為了使得需要儲存的值減少到現代顯示卡可處理的規模,FastNeRF提出利用場景渲染的特性將NeRF模型分解為體素3D位置和投影2D視角兩個表徵網路分別計算,再組合形成體素色彩特徵(如圖6)。這樣所需尺度由

降為

。透過適當的稀疏壓縮,整個場景表徵可預存到單張顯示卡,而渲染速度也提升了3000倍!相似地,Baking NeRF也採用了類似的模型分解和預存思路,此處不再贅述。

AutoInt是一種不同的加速思路。它將容積渲染中一條射線的投影看作是定積分,並定義對應的神經網路G代表積分過程,然後對該神經網路G求導得到對應的導數網路D。顯然,神經網路G,D具有共同的網路引數。AutoInt首先訓練導數網路D,然後將最佳化的引數代入積分函式網路G。給定投影線的起始點,容積投影可透過計算神經網路函式G在兩點的差值來計算,即兩次對G的前向計算就確定了投影值。圖7很清晰的描述了該方法。
AutoInt是從基本的微積分原理出發提出的新型計算方法,充分利用了學習框架的自動微分能力。它不僅僅適用於容積渲染,相信很快我們會在其它領域發掘出它的潛力。

由前述可知,原始的NeRF從多幅不同視角投影影像學習到3D場景的靜態表徵。因此NeRF方法僅能從已有的固定的場景生成渲染影像,無法直接按照主觀意圖編輯場景內容。這無疑限制了NeRF方法在虛擬現實或內容互動等應用場景的應用。許多學者也看到了這個侷限,從不同角度提出了改進方法。本文將探討幾位德國學者的兩個相關的工作:GRAF[5]和GIRRAFE[6]。
GRAF
GRAF(Generative Radiance Fields, 生成輻射場)的基本思想是將NeRF方法與生成模型相結合,使得神經網路函式可以表徵包含相機與目標物體的相對變換、物體的shape和appearance編碼等輸入資訊的物體,生成輻射場。GRAF也構造了卷積結構的判別器,從GT影像提取具有相同shape和appearance分佈的樣本與生成影像做比較,進而訓練最佳化生成網路。訓練好的生成網路GRAF就可以用於表徵3D物體容積資訊。
GRAF輸入不同的appearance和shape編碼和相對座標,即可在容積中形成期望物體的表徵併產生投影影像。因此GRAF實現了對容積渲染內容的可控或可編輯的能力。

GIRAFFE
GRAF實現了單個物體的可控表徵。在GRAF的基礎上,幾位學者又開發了GIRAFFE方法來實現可編輯多物體場景的渲染。GIRAFFE也是一個生成模型,但更加複雜。簡而言之,GIRAFFE將場景中每個物體和背景分別用一個生成輻射場模型表達,透過appearance、shape和姿態引數控制各物體形態及姿態,透過組合多個GRAF的輸出,實現期望場景的表徵。

很容易想到,GIRRAF方法集成了多個輻射場深度模型,整體規模巨大。為了減少容積渲染的計算量,GIRAFF採用了組合渲染的方法加速。首先透過容積渲染生成低解析度(16×16)的顏色特徵圖,在根據低解析度特徵用一個2D的CNN渲染器產生最終解析度高的渲染影像。文章給出的最終影像解析度是256×256。
相信後續結合NeRF加速方法,我們能夠進一步的提升GIRAFFE影像的解析度與質量。
NeRF方法提出了一個新的場景建模與渲染的思路。這一神經渲染的開創性工作演算法簡潔,又充分利用了現代硬體的計算能力,可以稱得上是“大巧不工”。這一工作也為神經渲染開闢了新的研究方向,為神經渲染的進一步發展和實用化提供了基礎的方法框架。我們可以看到NeRF已經啟發了許多學者探索新的神經建模與渲染方法。在今年的AI和圖形學頂會上我們看到了一大批令人印象深刻的針對NeRF的改進或基於NeRF的拓展工作。相信這一熱潮還會持續下去,在不遠的將來會出現NeRF驅動的神經渲染應用於增強現實、虛擬遊戲、電影動畫等各類圖形渲染的實踐。
值得一提的是NeRF網路是一種mesh-free的表徵方法,與深度科學計算領域正在蓬勃發展的Pyhsics Informed Neural Networks(PINNs)有著內在的共通性。相信這兩類方法在模型表達和最佳化方法等方面會相互促進,進而推動神經渲染和深度科學計算領域的共同發展。
[1] B. Mildenhall, et. al., NeRF: Representing Scenes as neural Radiance Fields for View Synthesis, arXiv:2003.08934v2.
[2] S.Garbin et.al., FastNeRF: High-Fidelity NeuralRendering at 200FPS, arXiv:2103.10380v2.
[3] P. Hedman, et.al, Baking Neural Radiance Fields for real-Time View Synthesis, arXiv:2103.14645v1.
[4] D. Lindell, J. Martel and G. Wetzstein, AutoInt: Automatic Integration for Fast Neural Volume Rendering, arXiv:2012.01714v2.
[5] K.Schwar, GRAF: Generative Radiance Fields for3D-Aware Image Synthesis, NeuIPS 2020.
[6] M. Niemeyer and A.Geiger,GIRAFFE: RepresentingScenes as Compositional Generative Neural Feature Fields, arXiv:2011.12100v2.
[7] T. Gorkin, Volume Rendering using Graphics Hardware, in CIS 565: GPU Programming and Architecture, https://www.seas.upenn.edu/~cis565.
[8] M.Raissi, P.Perdikaris, G.E.Karniadakis, Physics-informed neural networks: A deep learning framework for solving forward and inverse problems involving nonlinear partial differential equations, J. Compu. Phy., 378(2), 2019.
[9] J. Park, et.al., DeepSDF: Learning Continuous SignedDistance Functions for Shape Representation, CVPR2019.


壁仞科技研究院作為壁仞科技的前沿研究部門,旨在研究新型智慧計算系統的關鍵技術,重點關注新型架構,先進編譯技術和設計方法學,並將逐漸拓展研究方向,探索未來智慧系統的各種可能。壁仞科技研究院秉持開放的原則,將積極投入各類產學研合作並參與開源社群的建設,為相關領域的技術進步做出自己的貢獻。


關鍵詞
影像
輻射場
網路
演算法
視角