自打伯克利和谷歌聯合打造的NeRF橫空出世,江湖上靜態圖變動圖的魔法就風靡開來。
不過,想要像這樣依靠AI來簡化3D動態效果的制作,算力開銷可不小:
以NeRF為例,想要在1440 x 1600像素、90Hz的VR頭盔中實現實時渲染,需要37 petaFLOPS(每秒10^15次浮點運算)的算力——這在目前的GPU上根本不可能實現。
怎么降低點計算復雜度?
現在,來自奧地利格拉茲科技大學部和Facebook的研究人員,就想出一招:引入真實深度資訊,
就這一下,很快的,推理成本最高能降低48倍,并且只用1個GPU,就能以每秒20幀的速度實現交互式渲染。
畫質什么的,也沒啥影響,甚至還能有所提升:
具體是怎樣一招,咱們往下接著聊。
基于深度預言網路的NeRF
首先需要說明的是,NeRF,即神經輻射場(neural radiance field)方法,是沿相機射線采樣5D坐標,來實現圖像合成的,
也就是說,在NeRF的渲染過程中,需要對每條射線都進行網路評估,以輸出對應的顏色和體積密度值等資訊。
這正是造成NeRF在實時渲染應用中開銷過大的主要原因,
而現在,格拉茲科技大學部和Facebook的研究人員發現,引入真實深度資訊,只考慮物體表面周圍的重要樣本,每條視圖射線(view ray)所需的樣本數量能夠大大減少,并且不會影響到圖像質量,
基于此,他們提出了DONeRF。
DONeRF由兩個網路組成,其一,是Sampling Oracle Network,使用分類法來預測沿視圖射線的最佳采樣位置,
具體來說,這個深度預言網路通過將空間沿射線離散化,并預測沿射線的采樣概率,來預測每條射線上的多個潛在采樣對象,
如下圖所示,3個顏色通道編碼了沿射線的3種最高采樣概率,灰度值表明其中可能只有一個表面需要被采樣,而彩色數值則表明這些樣本需要在深度上展開,
其二,是一個著色網路,使用類似于NeRF的射線行進累積法來提供RGBA輸出。
為了消除輸入的模糊性,研究人員還將射線轉換到了一個統一的空間,并使用非線性采樣來追蹤接近的區域,
另外,在兩個網路之間,研究人員對局部采樣進行扭曲,以使著色網路的高頻預測被引導到前景上,
本文還引入了視圖單元(view cell)的概念,一個視圖單元被定義為一個具有主要方向和最大視角的邊界框,
簡單來說,這個邊界框能夠捕捉到所有源于框內、并且在一定旋轉范圍內的視圖射線。
利用這樣的方法,就可以對大場景進行分割,解決NeRF沒有辦法應用于大場景的問題。
此外,較小的視圖單元減少了場景中的可見內容,因此可能會進一步提高成像質量。
對比結果
所以,DONeRF相較于前輩NeRF,到底能快多少?
不妨直接來看對比結果,
在相似的質量下,NeRF總共使用了256個樣本,而DONeRF只用到了4個樣本,在速度上可以實現20-48倍的提升。
并且在成像細節方面,DONeRF的圖像邊緣更為清晰,
研究人員還指出,在16個樣本的情況下,從峰值信噪比(PSNR)來看,幾乎所有場景中DONeRF都超越了NeRF,
傳送門
論文地址:https://arxiv.org/abs/2103.03231
項目地址:https://depthoraclenerf.github.io/