李寧謙,丁建
(西華大學(xué)計(jì)算機(jī)與軟件工程學(xué)院,成都610039)
從場景模型中產(chǎn)生一幅真實(shí)感圖像需要在圖像的每個(gè)像素點(diǎn)計(jì)算一個(gè)復(fù)雜的高維積分。蒙特卡洛渲染(MC)系統(tǒng)通過在多維空間中追蹤光線(采樣)去估算積分值。雖然可以通過少量采樣快速產(chǎn)生渲染結(jié)果,但是估算的結(jié)果相對于真實(shí)值具有較大的誤差,這些誤差在渲染結(jié)果中表現(xiàn)為大量噪點(diǎn),因?yàn)槊商乜骞烙?jì)方法的方差根據(jù)采樣數(shù)量的增加而線性減小,所以為了得到更加精確的估計(jì)結(jié)果往往需要大量采樣。計(jì)算大量采樣需要消耗較長的渲染時(shí)間,這種時(shí)間消耗局限了蒙特卡洛方法在現(xiàn)代渲染工業(yè)中的應(yīng)用范圍。其中一種解決方法是對場景投放少量光線快速渲染出一副噪聲圖像然后使用濾波器作為后驗(yàn)方法來對噪聲圖像進(jìn)行過濾,從而得到無噪聲的結(jié)果。這種方法也被稱為圖像空間降噪方法,是近年來廣泛研究的課題[1]。雖然已經(jīng)提出了大量的圖像空間蒙特卡洛渲染降噪方法,但是其中表現(xiàn)較為優(yōu)秀的是基于回歸的方法[6],高階回歸提升了一定的渲染質(zhì)量,然而這些質(zhì)量的提升是以不斷增加的復(fù)雜度為代價(jià),同時(shí)回報(bào)卻越來越小,這是因?yàn)楦唠A回歸容易造成過擬合從而引入噪聲導(dǎo)致。為了避免對噪聲過擬合問題提出了一種基于監(jiān)督學(xué)習(xí)的蒙特卡洛降噪方法[7],通過一組低采樣的噪聲圖像和相應(yīng)的高采樣圖像作為訓(xùn)練數(shù)據(jù),最終得出回歸模型,然而這種方法使用一個(gè)相對簡單的多層感知機(jī)作為學(xué)習(xí)模型,并且僅用了少量的場景圖像產(chǎn)生訓(xùn)練數(shù)據(jù),除此之外,這種方法將濾波器進(jìn)行硬編碼也限制了降噪系統(tǒng)的靈活性。
本文為了應(yīng)對這些缺陷提出了基于卷積神經(jīng)網(wǎng)絡(luò)的直接降噪監(jiān)督學(xué)習(xí)框架,本框架的輸入向量僅需要三個(gè)輔助特征,即深度、視角空間法線、反照率。本文所提出的網(wǎng)絡(luò)訓(xùn)練方法,簡單、穩(wěn)定,收斂時(shí)間將近36小時(shí)。除此之外,為了應(yīng)對訓(xùn)練深度卷積神經(jīng)網(wǎng)絡(luò)時(shí)梯度消失的問題,本文將殘差結(jié)構(gòu)應(yīng)用于卷積網(wǎng)絡(luò)結(jié)構(gòu)對此問題做出了改善。
本文的主要貢獻(xiàn)如下:
(1)提出了一種魯棒性更高的單幀蒙特卡洛渲染降噪方法,訓(xùn)練數(shù)據(jù)的輸入大為簡化,僅僅需要常見渲染器提供的少量輔助特征。
(2)驗(yàn)證了直接降噪的有效性,同時(shí)也證明了輔助特征對神經(jīng)網(wǎng)絡(luò)的降噪效果有一定的提升作用。
(3)將殘差網(wǎng)絡(luò)應(yīng)用于渲染降噪,增加了卷積神經(jīng)網(wǎng)絡(luò)的深度,使神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力更加強(qiáng)大。
本節(jié)具體介紹基于深度學(xué)習(xí)渲染降噪的方法,其中包含網(wǎng)絡(luò)結(jié)構(gòu)的關(guān)鍵設(shè)計(jì)思路,輔助特征的選擇。
蒙特卡洛降噪的目標(biāo)是獲取盡可能接近真實(shí)像素顏色值Cˉp的被過濾像素顏色C?p的值,為了獲取這個(gè)估計(jì)值,通常對每像素矢量塊Xp的鄰域進(jìn)行操作來產(chǎn)生過濾輸出的像素顏色p,給定降噪函數(shù)g(Xp;θ),參數(shù)θ代表降噪?yún)?shù),每像素理想降噪?yún)?shù)能夠被表示成:
被過濾的像素顏色值為C?p=g(Xp;θ?p),l(Cˉ,C?)是真實(shí)顏色值與被降噪顏色值之間的損失函數(shù)。輸入向量Xp由以下組成:
Cp:像素顏色值
zi:深度值
ni( x,y ):視角空間法線
ai(r,g,b):反照率
公式(1)中的函數(shù)g 即為需要學(xué)習(xí)的降噪模型。
本文所使用的網(wǎng)絡(luò)結(jié)構(gòu)于圖1 中顯示。卷積神經(jīng)網(wǎng)絡(luò)在網(wǎng)絡(luò)的每一層都使用多個(gè)卷積核,具有圖像空間共享的可訓(xùn)練權(quán)重,卷積結(jié)構(gòu)相對于傳統(tǒng)圖像降噪方法更加適合降噪任務(wù)。此外,通過激活函數(shù)將多個(gè)層連接在一起,卷積神經(jīng)網(wǎng)絡(luò)能夠?qū)W習(xí)高度非線性函數(shù),這樣的函數(shù)對于獲得高質(zhì)量的輸出非常重要。
圖1 卷積網(wǎng)絡(luò)模型設(shè)計(jì)
基于反向傳播法計(jì)算梯度優(yōu)化的神經(jīng)網(wǎng)絡(luò),由于反向傳播求隱藏層梯度時(shí)利用了鏈?zhǔn)椒▌t,梯度值會(huì)進(jìn)行一系列的連乘,導(dǎo)致淺層隱藏層的梯度會(huì)出現(xiàn)劇烈的衰減,這也就是梯度問題的本源,殘差網(wǎng)絡(luò)通過跳躍連接有效地將梯度流動(dòng)到淺層網(wǎng)絡(luò)中,使得淺層部分的網(wǎng)絡(luò)權(quán)重參數(shù)能夠得到很好的訓(xùn)練。本文在上文提出的卷積神經(jīng)網(wǎng)路中加入殘差塊,并將網(wǎng)絡(luò)深度加深有效地改善了最終的降噪效果,殘差網(wǎng)絡(luò)[8-9]如圖2所示。
圖2 加入殘差塊的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
對于HDR 圖像的輸入,根據(jù)對數(shù)變換將圖像進(jìn)行范圍壓縮,此變換步驟對于最終結(jié)果有一定的平滑效果,總而言之,輸入向量由以下9 個(gè)通道組成:
(1)輸入噪聲圖像(3 通道,需范圍壓縮處理)
(2)深度圖像(1 通道,需范圍壓縮處理)
(3)視角空間向量(2 通道)
(4)反射率(3 通道)
為了使深度神經(jīng)網(wǎng)絡(luò)能夠?qū)W習(xí)輸入與輸出數(shù)據(jù)之間復(fù)雜的關(guān)系,同時(shí)也要避免過擬合出現(xiàn),因此進(jìn)行本實(shí)驗(yàn)需要獲取大量數(shù)據(jù)。目前,基于深度學(xué)習(xí)的渲染降噪實(shí)驗(yàn)沒有公共數(shù)據(jù)集,本文在進(jìn)行實(shí)驗(yàn)之前需要花費(fèi)大量時(shí)間去準(zhǔn)備一個(gè)數(shù)據(jù)量較大的數(shù)據(jù)集(渲染器選用Tungsten),數(shù)據(jù)集中包含的物體類型較為多樣,也有各種分布式效果(運(yùn)動(dòng)模糊、焦散等)圖3 顯示了本數(shù)據(jù)集中的部分訓(xùn)練數(shù)據(jù)。
本文實(shí)驗(yàn)選用深度學(xué)習(xí)框架為TensorFlow,操作系統(tǒng)環(huán)境為Windows,采用GPU 加速,設(shè)置patch size 為128×128,步長為80,最終得到57k 個(gè)patch 塊用來訓(xùn)練。網(wǎng)絡(luò)優(yōu)化器使用Adam,動(dòng)量值設(shè)置為0.9,L1-loss作為損失函數(shù)。訓(xùn)練使用最小批次量為10,訓(xùn)練迭代次數(shù)為106,學(xué)習(xí)率表如下:
(1)對于首1000 次迭代使用0.01 的學(xué)習(xí)率
(2)對于次1000 次迭代使用0.001 的學(xué)習(xí)率
(3)其余迭代使用104的學(xué)習(xí)率
本網(wǎng)絡(luò)一共有13847296 個(gè)可訓(xùn)練參數(shù),訓(xùn)練一共耗時(shí)36 個(gè)小時(shí)。
圖3 部分訓(xùn)練數(shù)據(jù)集示例
本文方法與NFOR、LBF、KPCN[10]進(jìn)行對比,對于NFOR 使用作者的開源代碼,作者已經(jīng)將源代碼加入Tungsten 渲染器,對于KPCN,直接選用作者已訓(xùn)練模型,對于LBF 方法,作者已將該方法集成到PBRT2。本文的主要關(guān)注點(diǎn)在快速渲染高質(zhì)量圖像,例如:游戲渲染、虛擬現(xiàn)實(shí)、原型設(shè)計(jì)等,這些應(yīng)用渲染速度非常重要,然而每像素采樣(SPP)過高將會(huì)降低渲染速度,因此選用的噪聲圖像以及特征圖像都是以4SPP 渲染,真實(shí)圖像(Ground Truth)以32K SPP 或者更高的采樣數(shù)量渲染,確保圖像在人眼感知上沒有噪聲存在。為了衡量這些方法的表現(xiàn),本文使用RelMSE(Relative MSE)與SSIM(Structural Similarity Index)作為降噪結(jié)果的衡量標(biāo)準(zhǔn),兩者數(shù)值變化范圍為0 到1,1 代表具有與真實(shí)圖像完美的匹配程度,圖4 顯示了降噪結(jié)果,數(shù)據(jù)顯示為降噪時(shí)間,不包含渲染時(shí)間。
圖4
在所有的降噪測試中,本文選用的方法始終優(yōu)于其他幾種解決方案,表1 顯示了所有降噪結(jié)果的SSIM數(shù)值。NFOR 在少部分場景中RelMSE 效果更好,但是漫反射效果卻有很多污斑,KPCN 方法魯棒性不強(qiáng),因?yàn)檫@種方法需要大量的輔助特征,如果不能有效地利用輔助特征,往往會(huì)造成降噪圖像過度模糊。
表1
因?yàn)楸疚牡姆椒ㄡ槍τ趩螏商乜邃秩緢D像,如果直接將本方法應(yīng)用于動(dòng)畫序列幀,那么降噪結(jié)果并不具有時(shí)域連貫性,其中一種解決思路是使用視頻時(shí)域一致性濾波器。然而,更好的解決思路是通過前后兩幀之間添加循環(huán)連接(Recurrent Connections)來解決神經(jīng)網(wǎng)絡(luò)中的時(shí)間一致性問題,未來的工作將圍繞這種方法展開。