?

單幀圖像下的環境光遮蔽估計

2019-02-20 08:47郭雨瀟陳雷霆
計算機研究與發展 2019年2期
關鍵詞:光照卷積物體

郭雨瀟 陳雷霆, 董 悅

1(電子科技大學計算機科學與工程學院 成都 611731)2(電子科技大學廣東電子工程信息研究院 廣東東莞 523808)3 (微軟亞洲研究院 北京 100080)

在真實三維場景中,每個點的顏色不僅取決于光源的直接照射,也包括周圍環境全局光照的貢獻.快速評估周圍環境全局光照產生的亮度,對實時繪制、求解直射分量都有很重要的作用.環境光遮蔽在計算機圖形學和視覺中用于近似場景中每個點對環境的總體可見性.常常用于快速計算在低頻環境光照下的全局光照.

在圖形學中,一系列算法從已知的3維場景幾何形狀中直接計算環境光遮蔽.這些算法雖然可以做到實時,但是都需要知道場景幾何信息,因而無法直接用于計算幾何未知的真實場景中環境光遮蔽.針對真實場景,計算機視覺的算法主要通過觀察和統計不同方向光源照射下,物體上同一點的光照強度變化從而對場景中每個點的環境光遮蔽屬性進行估計.這類方法具有以下2點主要缺陷:1)輸入圖像數量過多.為了有效地統計物體隨光照變換的趨勢,已有方法往往需要對單個視點在不同光照下采集多達數十幀的圖像.2)場景光照限制.該類方法往往要求場景中存在一個或者數個已知位置和滿足特定分布的方向光源.同時,對場景的環境光強度亦做出了限制.顯然,以上2點要求在難以在大部分的應用場景中得到滿足,限制了該類方法的應用場景以及輔助其他計算機視覺問題求解的可行性.

針對以上不足,本文提出了一種基于單幅輸入圖像的環境光遮蔽估計算法.給定在自然光照下的單幅輸入圖像,我們設計了一個多層的卷積神經網絡,直接估計圖像中每個像素對應點的環境光遮蔽值.為了有效地訓練這一卷積神經網絡,我們算法利用大量的3維物體模型,通過真實感渲染生成大量的仿真圖像和對應的環境光遮蔽貼圖作為訓練數據.我們提出了3種不同的網絡結構和相應的訓練方法.通過分析和比較,得到了針對這一問題非常有效的一種卷積神經網絡結構.仿真和對比實驗證明了本文提出的方法在任意光照單張圖像的輸入條件下,能夠取得比現有多幀估計算法在更多輸入條件下更好的結果.同時,在真實圖像中的測試表明該方法能夠對真實世界的物體進行較為準確環境光遮蔽的估計.和已有的算法相比,我們的算法極大地減少了輸入圖像的數目并放寬了圖像的光照條件,加快了求解速度,擴展了算法的普適性.

1 相關工作

在圖形學繪制中,給定場景幾何信息,一些算法在場景在當前視點下的深度圖像上直接快速計算環境光遮蔽[1-4].這些方法通過對相鄰像素間進行采樣,通過像素間的深度變化對沿各個方向的可視角進行估計,進而計算環境光遮蔽.

針對幾何未知的真實場景,一些視覺算法利用場景在不同光照下的圖像計算環境光遮蔽[5-6].文獻[7]通過假設物體由單一材質構成,利用同一方向光源在不同視點下的多幀圖像中求解其環境光遮蔽.文獻[8-9]假設環境光照均勻且光照強度固定,通過單張圖像針對人臉的環境光遮蔽進行計算.文獻[10]借助多幀圖像重建的點云信息對環境光遮蔽進行估計,并且將其帶入到了光照與物體表面反射率的估計中.在該類方法中,環境光遮蔽常作為其算法流程的中間步驟.通過在特定的輸入條件下對環境光遮蔽求解,從而進一步優化光照或者幾何結構估計精度.

另外,一些工作旨在對光照做有限假設和未知物體幾何結構、表面材質的條件下,通過引入額外先驗求解環境光遮蔽.文獻[11]提出了一種多幀圖像的估計方法.通過假設物體的局部可見面呈圓錐形和獨立統計各像素光照強度的變化,建立了物體反射率與環境光遮蔽關系的數學模型,進而使用優化方法求解問題.該方法最大的問題在于對要求輸入大量不同光照方向下相同視角的圖像,在實際的應用中難以滿足.同時,該方法還存在全局模糊等問題.文獻[12]允許在單張圖像中存在多個光源,結合壓縮感知技術同時求解滿足該圖像成立最稀疏的光源分布和局部可見性關系,有效地減少了對輸入圖像數量的依賴.然而,其需要預先知道所有光源在3維空間中的位置,使其難以推廣和擴展.文獻[13]在文獻[11]的基礎上,通過約束各像素在多幀圖像中對應的光照入射角也應該滿足均勻分布,使其在10幀左右圖像的輸入條件下亦能取得較為合理的效果.基于圖像估計的方法往往需要從多張圖像中推測物體的光照和陰影關系,同時還需要對光照進行特殊布置或滿足一些基本條件(例如無環境光以及光源分布均勻等).與該類方法相同,本文通過圖像對物體的環境光遮蔽進行估計.但是,本文使用單張圖像作為輸入,對物體的環境光遮蔽屬性進行估計.同時,本文算法能夠在自然光照的條件下適用.

環境光遮蔽計算可以被看作本征圖像分解的擴展和延伸.本征圖像假設場景材質為漫反射,從而將輸入圖像分解為場景的反射率圖和光照圖.環境光遮蔽計算是對本征圖像恢復的光照圖像的進一步分解和求解.本征圖像最早由文獻[14]提出,并衍生了一些具有代表性的工作[14-18].對于該類問題,由于未知量多于已知等式,重點在引入合理的假設和先驗使得問題可解.近年來,由深度學習在相關視覺任務中的進展啟發[19-22],文獻[23-24]將卷積神經網絡作為特征提取器,引入到了本征圖像分解中.隨后,文獻[25]提出了以光照貼圖和反射率貼圖為卷積神經網絡輸出的端到端網絡結構.在此基礎上,文獻[26]通過在大量仿真數據中訓練網絡,實現了非漫反射場景下本征圖像的分解.目前,尚未見算法將深度學習引入環境光遮蔽的計算中.

2 基于單幀圖像的環境光遮蔽算法

2.1 問題定義

對于環境光遮蔽,通常定義如下:

其中,x為物體表面上的點;AO為該點對應的環境光遮蔽值,其取值范圍AO∈[0,1];S+是以該點法向量n為中心的上半球面積分區域;V(·)為一個布爾函數,表示該點與當前環境光源方向w間是否被其他幾何結構遮擋;·為點乘操作.由定義可知,環境光遮蔽的值僅由物體的幾何形狀決定,與光照強度和物體表面反射率無關.

給定輸入的圖像I,假設對應場景的表面為漫反射表面,其像素值I(x)為

本文并不假設環境光位于無窮遠,所以對于每一像素,其環境光強度可能不同.

我們的目標是從輸入圖像I(x)中恢復每個像素的環境遮蔽值AO(x).與本征圖像的其他問題相似,對于單個等式存在多個未知量,是一個典型的病態問題.我們將問題形式化為一個輸入圖像I到環境遮蔽圖AO的映射.采用卷積神經網絡對這一映射進行建模,并通過基于大量數據的訓練對模型進行回歸.

2.2 編碼器-解碼器設計

本文采用了多層編碼器-解碼器卷積神經網絡結構,如圖1所示:

Fig. 1 Encoder-decoder network structure圖1 編碼器-解碼器結構示意圖

這一結構被廣泛應用于計算機視覺中的不同圖像解構問題.具體地,我們使用的編碼器由5層獨立編碼單元構成,各編碼單元包含卷積層、向下采樣層(down sampling)、批單位化層(batch normalization)以及線性激活單元(ReLU)等操作.經過編碼單元后,特征圖的大小變為輸入的一半,但是特征圖數量變為2倍.即對于通過5層編碼器的輸入特征圖邊長依次變為256,128,64,32,16,其對應的輸入輸出特征圖數目為38,816,1632,3264,64128.隨后,將經過編碼器的特征圖進行特征提取,特征提取階段包含3個連續的卷積層、批單位化層以及線性激活單元操作.在此階段,保持特征圖的數量以及大小不變.解碼器階段亦包含5層結構,其解碼單元包含卷積層、批單位化層、線性激活單元以及向上采樣層等操作.根據文獻[24],采用近道連接(shortcut connection)能夠很好地處理利用卷積神經網絡求解圖像回歸問題中的輸出圖像模糊問題.在本文中,

亦使用了近道連接對網絡進行改進,將編碼器的特征圖直接并聯到同尺度的解碼單元中.故對于各解碼器,其輸入特征圖邊長依次為16,32,64,128,256,對應的輸入輸出特征圖數目為128128,25664,12832,6416,328.隨后,將根據不同的網絡結構設計方案對編碼器-解碼器進行組合和擴展.

2.3 損失函數

由于圖像分解中各分量僅保持了相對關系,故估計值和真實值間往往具有一個全局放縮量,該任意性的存在使得均方估計損失函數(MSE)并不適用于本征圖像相關的工作中.為了同時確保訓練精確性和收斂性,本文采用了放縮不變性L2損失函數[25]作為損失函數:

其中,Y*為預測值;Y為真實值;y=Y*-Y為兩者間的估計誤差;i,j分別對應圖像長寬坐標;n為參與誤差估計的總像素個數(僅包含圖像中屬于目標物體的部分);λ是調節系數.當λ=0時,該聯合損失函數變為均方損失函數;當λ=1時,該函數為一個純粹的放縮不變損失函數.考慮到訓練數據集中包含各種光照條件下的樣本,較大的λ能夠取得更好的效果.在本文中,所有的損失函數均采用了λ=0.95的聯合損失函數.

2.4 卷積網絡結構設計

基于編碼器-解碼器結構,本文設計了3種不同的網絡結構來嘗試求解這一問題.

一個直接的解決方案是將該問題建模為本征圖像分解的擴展問題,這樣將映射分解為2步:1)由單張圖像估計物體的光照貼圖;2)由光照貼圖估計物體的環境光遮蔽結果.基于這一分解,設計一種2級的編碼-解碼器結構,結構如圖2所示:

Fig. 2 Cascade training network structure圖2 多級訓練網絡結構示意圖

每一級網絡針對單一問題進行求解,并且輸出結果作為下一級網絡的輸入.具體地,第1級網絡以圖像為輸入,以光照貼圖為預測目標進行訓練;第2級以第1級預測的光照貼圖為輸入,以環境光遮蔽結果為預測目標進行訓練.在優化時,采用了交替優化的策略.即首先以光照貼圖為標簽,訓練第1級網絡.隨后,以環境光遮蔽為標簽,在固定第1級網絡參數的條件下,對第2級網絡進行訓練.最后,以環境光遮蔽為標簽,同時優化第1第2級網絡.本文亦嘗試了同時優化的策略,發現訓練過程無法收斂.

在本征圖像中,文獻[26]通過共享參數,對反射率、高光以及光照3種不同屬性使用聯合優化的方法進行求解.在第2個設計中,我們嘗試了使用類似方法對網絡進行改進,如圖3所示:

Fig. 3 Union training network structure圖3 聯合訓練網絡結構示意圖

在解碼器后,額外接入了2個獨立輸出通道分別為3和1的卷積操作,預測光照貼圖和環境光遮蔽.在訓練時,采用同時優化的方式進行訓練.2優化目標均采用了2.3節中提到了混合損失函數,整體優化目標Ltotal:

Ltotal=αLshading+(1-α)LAO,

(5)

其中,Lshading為光照貼圖部分的損失函數;LAO為環境光遮蔽部分的損失函數;α負責調節因光照和環境光遮蔽輸出通道不同帶來的數值不平衡問題.針對該問題,取α=0.25.

2.4.3 環境光遮蔽端到端訓練結構

2.4.1節和2.4.2節的2種設計分別代表了串行和并行的方法,對將該問題視作一個本征圖像的擴展問題進行求解.在第3種設計中,本文直接將該問題作為一個獨立問題進行端到端的求解.為此,我們將編碼器-解碼器的輸出結果直接與一個輸出通道為1的卷積層相連,輸出預測的環境光遮蔽估計值.結構如圖4所示:

Fig. 4 End-to-end training network structure圖4 端到端訓練網絡結構示意圖

2.5 仿真數據生成

卷積神經網絡需要大量的標注數據作為訓練樣本,從訓練數據中抽取相關任務所需的特征.文獻[27]中所提出數據集包含了大約50 000個物體的3維模型,近年來被計算機圖形學用于訓練數據的生成.考慮到環境光遮蔽與物體的幾何特點相關,而ShapeNet中的大部分物體的幾何構成簡單,難以作為訓練樣本.本文從中選取了6類物體共計2 500余模型作為訓練目標,包含飛機、摩托車、洗手臺、耳機、照相機以及吉他.其中,飛機和吉他的幾何構成與環境光遮蔽分布的相似性較高.其余4類具有更加復雜的幾何結構和環境光遮蔽強弱分布.對于環境光照,為了保證光照的隨機性和復雜性,本文選取了計算機圖形學研究中一些常見的環境光貼圖.其包含了室內室外以及晴天、陰天等各種條件下的環境光照情況,共計92張.

本文使用MITSUBA作為物理渲染引擎,使用路徑追蹤作為光線追蹤渲染算法,單像素采樣次數為512次.渲染時,對于每個模型,將其置于世界坐標中心.對于每一張環境光貼圖,隨機挑選位于上半球面中半徑為2(所有模型已經歸一化)的一點作為攝像機位置.同時,使用采樣次數512次的環境光遮蔽采樣結果作為真實值進行訓練和評估.仿真數據共計生成約270 000左右的數據,對于每個模型,我們按8020的比例劃分訓練測試數據集.

3 實驗結果與討論

本文在1臺PC上用Torch實現了上述的算法.訓練使用AdaDelta算法作為梯度更新方法,對3個模型,設置初始學習率為0.01,初始L2正則懲罰項為0.000 1.同時,設定單次迭代的批樣本數量為32,總迭代為40次全數據周期(epoch).對于輸入圖像,將其放縮到256×256.訓練網絡消耗的內存大約為4 GB,訓練使用的顯卡為Nvidia TITAN X.

3.1 模型評估

首先對提出的3個模型進行了評估,從數據集中選擇摩托車作為訓練數據集,因為其具有更復雜的幾何結構以及精細的局部特征,能夠較好地反映估計結果.

3種網絡的數值對比結果如表1所示,發現端到端的模型在給定的數據集上得到了最好的訓練和測試結果.而另外2個基于本征圖像分解擴展的模型對環境光遮蔽回歸結果與端到端直接訓練相比并無提高,甚至還略微有下降.一個可能的原因來自于本征分解和環境遮蔽估計的問題屬性決定的.本征圖像分解具有較高的難度,因為在反射屬性和光照中都同時包含高頻和低頻屬性,例如深色貼圖和陰影的區分.而在環境遮蔽中只包含低頻量.所以,與端到端的訓練相比,以上2種網絡結構如果在本征分解精度不高的時候,很難再從光照圖中得到準確的環境遮蔽結果.同時網絡層數的增多導致參數增多,導致網絡的訓練變得更加困難和不穩定.使得在同樣的訓練數據集后,其結果不如端到端的直接訓練準確有效.一些具有代表性的視覺對比結果如表2所示.

Table 1 Numerical Comparison Among Three Networks表1 3種網絡結構數值精度比較

Table 2 Visual Comparison Among Three Networks表2 3種網絡結構視覺效果比較

3.2 仿真數據評估結果

隨后,評估算法在仿真數據上的性能.由于之前沒有其他基于單張圖像的環境光遮蔽算法,我們選擇了文獻[11]的方法進行對比.為了滿足文獻[11]的輸入要求,對于每個測試項,本文在固定方向光源光照強度的情況下,在物體中心向著攝像機為中心的半徑為2半球面上,以Halton序列隨機生成約60組光源位置,并采集其在該光照下的渲染結果.由于場景中不存在環境光源,本文選擇其非迭代結果作為比較項(根據其報告,無環境光時估計結果更加準確).

由于文獻[11]對于每個測試樣本需要生成大量數據,受到計算資源限制,本文在訓練數據集中具有代表性的水龍頭、摩托車和飛機3個類別中隨機選取了約2 000個樣本進行了對比實驗.

在數值誤差評估時,選擇了RMSE (root mean square error),LMSE (local mean square error),DSSIM (district structural similarity)3種指標對結果的數值精度進行評估.其中,RMSE是均方誤差開根結果,其衡量了估計值與真實值間的像素誤差.LMSE由文獻[28]提出,其通過衡量局部均方誤差,能夠更好的表達視覺準確度與數值誤差的相關性.DSSIM是常見的衡量圖像間相似程度的指標.其對比結果如表3所示.顯然地,本文算法在仿真數據上的數值誤差遠好于測試基準線和文獻[11]的方法.值得注意的是,在本文所用的數據集中,文獻[11]的結果在數值精度上與基準值相比仍有差距,顯示出了該類方法對復雜物體的局限性.

Table 3 Numerical Error among Different Methods表3 不同方法數值誤差對比

另外,本文從視覺上將算法結果與真實值和文獻[11]方法結果進行了對比,其結果如表4所示.表4中4列分別包含了本文算法所用的輸入圖像、真實值、本文所用算法結果和文獻[11]所有算法結果(其輸入圖像為前文所述方法生成).另外,為了更好地對比局部結果,本文每個物體環境光遮蔽較為復雜和明顯的區域進行了放大比較(表4中實虛方框),同時展示了誤差熱度圖(圖像下方區域).

總的來說,本文與文獻[11]方法均能對物體大致的環境光遮蔽分布和趨勢進行估計.在飛機的環境光遮蔽估計中,2種方法均能對引擎、機身和機翼接縫處的環境光遮蔽進行準確的估計.在水龍頭的估計中,文獻[11]如其論文以及文獻[12]報告的一樣,在整體的估計上存在模糊和估計值失真等問題.然而,本文的方法能夠對其各處的環境光遮蔽進行較為準確的估計.值得注意的是,在該場景中,本文算法的輸入圖像具有明顯明暗變化,在最終的估計結果中,算法能夠準確地處理光照的變化.摩托車代表了較難的場景,其存在較多的幾何細節和復雜的局部結構.在該類場景中,我們的方法和文獻[11]方法類似,能夠對大致的環境光遮蔽趨勢進行估計,但在具體局部細節的估計上均存在著模糊的問題.但是和文獻[10]相比,本文方法只需要單張圖像作為輸入.

Table 4 Visual Comparison Among Different Methods表4 不同方法視覺效果對比

3.3 真實圖像

最后,為評估算法在真實場景的圖像上的性能,我們從網上下載了一些常見的物體圖像,通過本文算法對其環境光遮蔽值進行估計,結果如圖5所示.其中,吉他、摩托車、飛機以及耳機等有類似物體的圖像在訓練數據集中.而玩偶和椅子2個類別均不包含在訓練數據集里.

從圖5中結果可以看出,即使作用于真實圖像中,本文所訓練的網絡能夠較為合理地估計物體的環境光遮蔽.

Fig. 5 Real cases results圖5 真實場景結果圖

在真實物體上的實驗說明了我們的估計算法有以下2個優點:1)能夠區分陰影和環境光遮蔽的關系.在飛機和玩偶的示例中,均存在一個較為明顯的方向光源.處在陰影中的區域與非陰影區域相比,亮度較低,具有與環境光遮蔽較大區域相似的特征.在估計結果中,算法準確地估計了陰影處的環境光遮蔽結果;2)能夠較為準確地區分暗色系材質與環境光遮蔽的關系.在吉他中心偏右處,玩偶眼部材質近乎黑色,與環境光較大時的表現相似.本文的算法能夠較為準確地識別該區域正確的環境光遮蔽結果(玩偶的眼部和吉他下部仍然存在一個較淺的環境光遮蔽估計值).值得注意的是,由于漫反射場景在真實世界中幾乎不存在,以上真實物體并不完全符合算法的輸入假設.但是,本文算法在一定程度內仍然能夠對環境光遮蔽結果進行合理估計.其中,耳機存在著一定的高光和反光部分,本文算法在對該物體進行預測時效果與其他物體較比相對較差.不過仍然能夠反映該物體環境光遮蔽的總體趨勢.

3.4 失敗案例

本文方法仍存在一定的局限性,現就2個典型的失敗案例進行討論,如圖6所示:

Fig. 6 Failure cases圖6 失敗案例

在飛機的例子中,網絡將機翼和機頭黑色貼圖部分誤估計為環境光遮蔽較大的區域.在本征圖像中,對于陰影區域和貼圖較暗區域的區分一直是一個較為困難的問題,在環境光遮蔽的估計中也存在相似的問題.在相機的例子中,鏡頭以及周邊存在環境光遮蔽估計失真的情況.這是由于鏡頭周圍的鏡面反射明顯,使得本文非漫反射的前提條件被破壞,使得估計出現較大誤差.

4 結 語

本文提出了一種基于卷積神經網絡的從原始圖像到環境光遮蔽估計算法.算法僅要求單幀圖像作為輸入,同時對光照沒有特別假設.本文提出并評估了3種不同的卷積神經網絡設計,其中端對端的網絡取得了最好的效果.本文對算法在仿真圖像和真實圖像上的性能進行了評估,實驗結果表明,本文方法具有較好的魯棒性.與已有方法相比,本文提出的算法結果精度更高,極大地減輕了傳統基于圖像的環境光遮蔽估計對輸入圖像數量和光照布置均有較高的限制,使得在單張圖像估計環境光遮蔽成為可能.

本文的算法假設場景為漫反射,在未來的工作中,我們將對非漫反射場景的環境遮蔽問題進行研究.另外,下一步通過將本文的方法與其他以環境光遮蔽作為中間步驟的方法進行結合,使得該類其能夠在更加通用的條件下進行求解并應用于不同的視覺應用.

致謝衷心地感謝微軟亞洲研究院的童欣老師在論文完成過程中提供的指導和幫助.在研究過程中,與他的多次討論使我受益匪淺!

猜你喜歡
光照卷積物體
肉種雞的光照不應性對養殖生產的不良影響分析
基于3D-Winograd的快速卷積算法設計及FPGA實現
卷積神經網絡的分析與設計
隱蔽的力量
從濾波器理解卷積
基于傅里葉域卷積表示的目標跟蹤算法
水禽舍的光照及其控制
揭開物體沉浮的秘密
為什么同一物體在世界各地重量不一樣?
蛋鴨的光照管理
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合