035棋牌

2019-09-03 | 作者:董悅

編者按:紋理材質建模是計算機圖形學中的一個重要研究課題。關于紋理材質建模的技術發展曆程,以及前期的一些科研工作,可以參考之前文章《從洪荒到智能——數據驅動的材質屬性建模發展曆程》,今天我们将介绍微軟亞洲研究院在纹理材质建模领域的最新论文,该论文在 ACM SIGGRAPH 2019 大会上进行了报告。

研究背景

傳統紋理材質建模主要對目標材質樣本進行大量圖像采集,並進行數據驅動的重建,在不同光照、視角下對目標材質樣本進行拍攝,將拍攝結果擬合成既定的紋理材質模型。需要采集的照片數量往往與紋理材質模型的本征自由度有關,重建算法需要采集足夠的照片,使得模型的擬合過程保持一個超定(Overdetermined)系統,這樣能夠保證擬合結果不出現由于二義性導致的錯誤結果。而當采集圖像數量不足,系統出現二義性的時候,就會出現擬合失敗的情況。

圖1給出了一個渲染結果示例,三欄分別對應三種不同的光照條件,這些光照的情況沒有包含在采集數據中。上排是真實材質的渲染結果,下排是在欠定(Underdetermined)情況下擬合材質的渲染結果。可以看到在欠定情況下,擬合算法對求解結果的“合理性”沒有估計,因此擬合的結果雖然符合輸入圖片,但在采集數據沒有包含新的光照的情況下,可能會出現錯誤的渲染結果。

圖1:由于二義性導致擬合失敗的示例

另一方面,隨著深度學習技術的發展,學界也提出了一系列通過神經網絡從單張輸入圖片來預測紋理材質的方法。深度學習可以充分利用訓練數據中真實世界的材質屬性的分布信息,即使存在二義性,也可以根據先驗知識給出“合理”預測。這裏的“合理”表示預測的紋理材質看起來和實際測量目標的紋理材質非常相似,並且不存在明顯的瑕疵(artifacts),但是,這種預測的結果不一定能精確反應實際測量目標的材質屬性,尤其是在二義性較強,或者單一輸入圖片不能反映材質的全部材質屬性時,這一誤差將會很大,並在一些特殊的光照條件下得以體現。

圖2列舉了一個“合理”的材質屬性預測結果的渲染圖像,三欄分別對應三種不同的光照條件,上排是真實材質的渲染結果,下排是深度學習方法給出的“合理”建模材質的渲染結果。可以看到,兩組結果在視覺觀感上大體相似,預測結果並沒有出現明顯不合理的瑕疵,但是兩者之間依然存在一定的差異。然而,當前基于深度學習的方法,尚不能利用更多圖像信息來進一步改進這一“合理”的預測結果。

圖2:“合理”預測的材質屬性示例

結合深度學習與傳統方法,利用任意數量的輸入進行建模

我們的目標就是要設計一種紋理建模的方法,將基于深度學習的方法和傳統重建方法的優勢相結合,並且給定任意數量的輸入,均可進行紋理材質建模。當輸入圖片數量較少,並不能完全確定目標樣本的完整材質屬性時,算法會給出一個“合理”的建模結果,而且能夠隨著輸入圖片的增多越來越精確,最終收斂到一個准確的材質重建結果上。

針對這一目標,我們提出了一種基于深度學習的優化重建算法,其核心思想在于,利用深度學習建立一個紋理材質的本征空間,在這個本征空間上進行優化重建。傳統的優化重建之所以會在系統欠定時産生非常不合理的結果,重要原因正是因爲其解空間中包含了大量不符合真實世界紋理材質分布的情況。而通過深度學習,建立一個真實世界紋理材質的本征空間,可以極大地避免産生不合理的結果。同時,由于整體算法依然符合優化重建的框架,因此可以自然地支持不同數量的輸入,解決傳統深度學習方法僅能獲得“合理”預測的問題。

然而,在这个核心思想下,依然存在两个技术难点:一是如何建立一个适合优化重建算法的本征空间;二是如何为优化重建算法提供初始化。针对技术难点,我们提出了一种改进的 Autoencoder 训练方法来训练纹理材质的本征空间。我们设计的 Autoencoder 网络仅在本征编码(Latent code)之前采用了一个特殊的归一化 Normalization 层,并对本征编码空间提出空间连续性限制。这一空间连续性项使得在本征空间中相邻的点与外观上相似的纹理材质相对应,保证了本征空间的连续性,有利于优化重建算法在本征空间中进行连续的搜索。而对于初始化,我们利用了现有的基于深度学习的单张图片纹理材质预测的方法,将预测到的纹理材质通过 Autoencoder 中的编码器得到对应的本征编码,以这个本征编码作为初始值来进行优化。

对于 Autoencoder 训练,以及优化重建算法中的大量实现细节和设计分析,我们在论文中都给出了详细的讨论和实验证明,感兴趣的读者可以深入阅读,就不在这里赘述(点击阅读原文,即可阅读论文)。

實驗結果

這種方法是否真正達到了我們的目標呢?圖3給出了一個重建結果的實例。

圖3:比較不同輸入圖像數目對應的結果

從圖中我們可以看出,對于單一輸入圖片,我們的算法能夠給出一個相對合理的估計,各個貼圖的預測結果均與參考值較爲接近;同時,渲染結果和參考值非常相似,達到了“合理”的估計目標。隨著輸入圖像數目的增多,算法會給出更加精確的重建結果,尤其是法向貼圖和粗糙度貼圖,可以看到較爲明顯的質量提升;我們也可以看到渲染結果質量的提升,渲染的圖像逐漸接近參考值。值得注意的是圖4中四個黃色金屬扣的重建結果,隨著輸入的增多,渲染結果在這些細節區域得到了明顯的改善。

圖4:重建的賀卡材質的渲染結果

圖5:重建的木頭材質的渲染結果

我們還利用該方法對一些真實世界的材質表面進行了采集,圖4和圖5分別展示了賀卡和木頭材質的渲染結果,每一組圖片中,上圖是真實拍攝的照片,下圖是算法重建後的渲染結果。算法不僅非常准確地重建了真實材質的大量細節,所需的輸入圖片數量還遠遠小于傳統的材質采集方法,其中賀卡僅用了20張圖片,木材僅用了10張圖片。

值得注意的是,我們設計的真實世界材質的本征空間是一個與分辨率無關的表達,這意味著我們的算法可以支持任意高的輸入輸出分辨率。這一特點也是傳統的基于深度學習神經網絡難以實現的,正是因爲能夠支持任意分辨率,我們的算法才能應用到真實拍攝的圖像,並且做到不損失任何輸入圖片中的細節。

綜上,我們在本論文中提出了一種基于深度學習的紋理材質優化重建方法,支持任意分辨率、任意數量的輸入圖片,而且隨著輸入圖像數目的增加,其重建結果可以從“合理”到越來越精確。這一方法可以廣泛適用于不同的用戶需求,並極大地簡化了紋理材質的采集過程。同時,本文提出的訓練本征空間並在本征空間中進行優化重建的方法,也可以對其他優化重建問題中引入深度學習帶來一定的啓發。

了解更多技術細節,請閱讀我們的論文:

Deep Inverse Rendering for High-resolution SVBRDF Estimation from an Arbitrary Number of Images
論文鏈接:https://aka.ms/AA5z4zm

?