谷歌“升維打擊”:還原任意角度光照立體效果,2D變“4D”
本文經(jīng)AI新媒體量子位(公眾號(hào)ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)聯(lián)系出處。
2D變3D,還不用建模,今年谷歌用NeRF做到了以假亂真的程度:
感覺就像是視頻里截出來的是不是?神經(jīng)網(wǎng)絡(luò)只需要幾張靜態(tài)照片就能生成這樣的結(jié)果。
但,總感覺離真實(shí)的場景還差點(diǎn)什么?
沒錯(cuò),缺的就是光影變換效果,NeRF只高度還原了空間,沒有給人時(shí)間上的直觀感受:

上面的結(jié)果,同樣是用幾張2D照片作為輸入,但有實(shí)時(shí)光影效果的生成結(jié)果,更加逼真生動(dòng),讓人有些“斗轉(zhuǎn)星移”的錯(cuò)覺。
這項(xiàng)讓2D照片變“4D”的研究,是谷歌團(tuán)隊(duì)聯(lián)合MIT、UC伯克利對(duì)之前的NeRF做出的重要改進(jìn),稱為NeRV,即用于照明渲染和視圖合成的神經(jīng)反射場和可見光場。

下面我們嘗試用最簡潔易懂的方式介紹NeRV,除了最關(guān)鍵重要的推導(dǎo),盡量少做數(shù)學(xué)推理,讓你一文看懂。
谷歌“升維”打擊
光影變幻給了我們對(duì)于場景直觀的時(shí)間感受,而研究團(tuán)隊(duì)實(shí)現(xiàn)這個(gè)效果的方法,就是在原先的NeRF上,添加了光模擬過程。
在NeRF中,沒有將場景建模為吸收和發(fā)射光的連續(xù)的3D粒子場,而是將場景表示為吸收和反射外部光源定向粒子3D場。

這樣的模型模擬光傳輸是低效的,并且無法擴(kuò)展到全局照明的場景。
研究人員引入神經(jīng)能見度場參數(shù)來彌補(bǔ)這一點(diǎn),它允許有效查詢模擬光傳輸所需的光線和像素點(diǎn)之間的能見度。
具體來說,NeRV網(wǎng)絡(luò)還原4D效果有3步,分別對(duì)應(yīng)著3D場景生成、光影效果模擬、渲染。
神經(jīng)反射場
NeRF并沒有將入射光線的效果與表面的材料屬性分開。
這意味著NeRF只能在輸入圖像中呈現(xiàn)的固定光照條件下呈現(xiàn)場景的視圖。

修改NeRF以實(shí)現(xiàn)動(dòng)態(tài)光照是很直接的:將場景表示為反射入射光的粒子場。
給定一個(gè)任意的光照條件,就可以用一個(gè)標(biāo)準(zhǔn)的體積渲染積分來模擬光在粒子反射時(shí)在場景中的傳輸:

其中,方程(1)中的視圖相關(guān)發(fā)射項(xiàng)Le(x, ωo)被替換為物體表面S上,光射入方向的積分,即來自任何方向的進(jìn)光輻射度Li和反射函數(shù) R的乘積,它描述了從某一個(gè)方向ωi入射的光有多少被反射到方向ωo。
神經(jīng)可視場的光傳輸
雖然修改NeRF實(shí)現(xiàn)一定程度的光照效果是很直接的,但對(duì)于像NeRF這樣的連續(xù)體積表示法,一般照明場景的體積渲染積分,在計(jì)算上是有難度的。

上圖直觀地展示了模擬光照?qǐng)鼍暗目s放特性,這使得模擬體積光傳輸特別困難。
即使只考慮從光源到場景點(diǎn)的直接照明,對(duì)于超過單點(diǎn)光源的情況下,暴力計(jì)算的方案也很吃力,因?yàn)樗枰刂鴱拿總€(gè)場景點(diǎn)到每個(gè)光源的路徑,反復(fù)查詢形狀MLP的體積密度。
暴力采樣渲染一束間接照明下的單條光線將需要一個(gè)petaflop的計(jì)算量,而訓(xùn)練過程中渲染大約十億條光線。
所以團(tuán)隊(duì)通過用學(xué)習(xí)的近似值替換幾個(gè)體積密度積分來改善這個(gè)問題:引入一個(gè) “能見度 “多層神經(jīng)網(wǎng)絡(luò),它可以對(duì)任意輸入方向的照明能見度給出近似值,以及相應(yīng)光線的預(yù)期終止深度的近似值。
這種方法,大大降低將直接照明和間接照明的計(jì)算復(fù)雜度,使得在優(yōu)化連續(xù)照明場景表示的訓(xùn)練循環(huán)中,可以同時(shí)模擬直接照明和其反彈的間接照明。
渲染
假設(shè)現(xiàn)在有一條通過NeRV的相機(jī)射線x(t)=c tωo,使用以下過程來渲染:
1) 沿射線繪制256個(gè)分層樣本,并查詢每個(gè)點(diǎn)的體積密度、表面法線和BRDF(雙向反射分布函數(shù))參數(shù)的形狀和反射神經(jīng)網(wǎng)絡(luò)。
2)沿射線對(duì)每個(gè)點(diǎn)進(jìn)行直接照明的遮擋。
3) 用間接照明對(duì)射線沿線的每個(gè)點(diǎn)進(jìn)行遮擋。
4) 沿著攝影機(jī)光線的每個(gè)點(diǎn)的總反射輻射度 Lr(x(t), ωo)是步驟 2 和步驟 3 的數(shù)量之和。將這些沿射線復(fù)合起來,用同樣的正交規(guī)則計(jì)算像素顏色。
通俗的說,就是對(duì)一條入射光線在整個(gè)場景所有像素點(diǎn)上的反射情況分別計(jì)算,然后整合起來。
測試結(jié)果
在最后的測試結(jié)果上,NeRV的表現(xiàn)遠(yuǎn)遠(yuǎn)超過了NeRF和NLT:

團(tuán)隊(duì)分別在不同的數(shù)據(jù)集上訓(xùn)練模型,然后對(duì)雕像、推土機(jī)、熱狗三個(gè)圖像進(jìn)行還原。

從結(jié)果中可以看出,峰值信噪比(PSNR)、MS-SSIM(多尺度結(jié)構(gòu)比)損失函數(shù)這兩個(gè)指標(biāo),普遍優(yōu)于之前的方法。
對(duì)于個(gè)人視頻制作者、游戲開發(fā)人員,以及缺乏3D建模經(jīng)驗(yàn)的動(dòng)畫公司來說,這類技術(shù)的成熟,可謂“福音”。
通過AI技術(shù),讓3D效果的實(shí)現(xiàn)進(jìn)一步簡化,這也是Facebook、Adobe及微軟等公司紛紛投入這方面研究的原因所在。
最后,研究人員透露,這個(gè)算法即將開源,直接把項(xiàng)目主頁給你,先馬后看:
https://people.eecs.berkeley.edu/~pratul/nerv/
這是最近最酷的3D圖片方面的突破了。