引入:三維圖形學的基本要素與研究方法
圖形學的一個核心課題是如何在計算機裡有效地產生和表達可視的三維內容。遵循對物理世界的觀察,我們可以把研究物件進一步解構為如下研究課題:
第一方面是幾何,就是三維空間中的形狀;第二就是材質,它決定了當光打到這個物體上的時候,最後呈現出什麼樣的顏色;第三是動態,我們做出來的東西應當有一些複雜逼真的動態效果。最後,當我們想把這個場景呈現到螢幕上時,我們必須模擬光在這個虛擬場景中進行傳輸的整個過程,最後生成一幅具有真實感的影像,這個過程由繪製完成。
因為真實世界是三維的,很自然的我們可以按照真實世界的物理規律去在計算機中進行建模和模擬,這樣產生了基於物理的方法。這個方法構建了圖形學研究的基石,能對圖形物件進行很好的建模和模擬,但是仍有一些缺點。第一,一個簡潔的物理公式可以描述非常多的現象,但當用一個簡單的物理公式去描述真實世界中所有這些細節的時候,導致過程複雜和龐大的計算量。第二,當藝術家想創造一些完全屬於想象中的虛擬世界時候,如何放寬這些物理限制,同時還能生成看起來合理的非常漂亮的影像,就變成了一個很大的挑戰。
上個世紀末,隨著捕捉裝置的發展,大家開始直接從真實世界中捕捉到高質量的圖形學內容,比如用於記錄幾何資料的三維掃描器,和在影視行業中廣泛應用的運動捕捉技術。我把這一類方法叫做基於資料的方法(data-based approach)。它基本策略是對目標物件做一個非常直接、緻密的取樣,在使用時只需要做插值,就可以生成想要的結果。其好處是結果質量高,重構很快,計算很簡單。缺點就是裝置昂貴,使用起來也很複雜,對於使用者的專業性有很高的要求。更麻煩是,即便只是捕捉一個物件,生成的資料量也非常大,並且資料之間缺乏聯絡,很難把使用者的編輯傳遞到所有資料中去。因此這種方法只能滿足一些特定應用,在大多數情況下還是很不方便的。
2000年左右,大家開始嘗試一種新的方法,還是從真實世界中捕捉一些樣本,然後運用這些樣本結合機器學習的方法學習到欲求解空間中的一個模型,再用這個模型來推出新結果。我們把這個方法叫做資料驅動的方法(data-driven approach),它並不是簡單地直接用資料進行插值,而是從資料首先利用機器學習得到解空間的一個模型出來,由此生成新的結果。這個方法有兩個好處。第一,由於資料是從真實世界中捕捉來的,所以結果質量高。第二,可以透過模型對資料進行有效的編輯維護。這個方法過去多年被廣泛應用,但它仍有一個一直解決不了的問題就是:到底應該用什麼方法去學習模型,這個模型又應該具有什麼特性?
在過去幾年,我們組在 data-driven approach 方面做了一系列研究工作,結合自己和同行們的探索漸漸總結出了一些思路。下面我們先做個考古,看看在深度學習出現之前資料驅動的圖形學研究,然後再講深度學習和圖形學結合面臨的挑戰和我們的探索;最後展望未來這一領域中還存在哪些問題和挑戰。
資料驅動的圖形學的過去
深度學習出現以前,基於資料驅動圖形學主要聚焦於如何從稀疏和少量資料中有效構建模型。這方面有三個常用的解決技巧:第一:利用稀疏性先驗,找到一個空間,資料在空間的投影是稀疏的,第二,對問題分解,透過構建一些區域性模型;三,如果一個問題的維度比較高,就把它 decompose 成一系列比較低維度的問題。
利用稀疏性求解表面材質
在這個工作[1]中,我們假設物體的幾何,光照已知,希望從儘可能少的圖片中恢復物體表面的反射屬性。同時,我們想回答一個理論問題,給定一個物體的材質,最少需要多少張影像才能恢復出結果。
透過觀察真實世界物體表面材質,我們發現:第一,大量的物體表面材質都可以由若干種基礎材質組成,基礎材質非常稀疏;第二。當我們建模每一個點的 BRDF 屬性的時候,這些基也並不需要全部用到,每個點可以表達為其中幾個基礎材質的線性組合。利用這個表達,我們可以透過最小化重構的材質渲染的圖片與拍攝圖片的差來重建材質。為此,我們開發了專門的最佳化演算法,來求解這個具有稀疏性約束的非線性最佳化問題。同時,基於這個求解框架,我們進行了一些分析。結論是所需要的影像數由每個點的所需要的基礎材質數目決定。所以如果有一個物體,它表面的材質分成很多塊,每一塊都是一樣的,比如足球,那理論上只要一張影像就夠了。
利用區域性模型和空間解構構建手部動畫
在這個工作[2]中,給定少量的不同手部姿勢的三維掃描結果,我們希望能夠推匯出這隻手在所有可能姿勢下的動畫效果,同時生成手部表面所有的細節。這非常有挑戰性,原因有二:第一,手有21個關節,變形的自由度非常高;第二,隨著手的變化,褶皺細節的變化也很豐富。但是我們有的資料只包含十幾個或二十幾個手的姿勢。
為解決這個問題,我們注意到兩點:第一,所有變形都是由內部骨骼驅動的,一些控制點的變形可以決定其他所有點的變形,存在一個函式關係;第二,函式關係雖然可知,但比較複雜。於是我們把它分成幾個部分,每一個區域性區域都由一個獨立的函式來控制。同時,對不同的姿態,我們用單獨的區域性函式控制它附近的變形。透過這樣的分解,我們得到一些非線性的區域性函式,再把一些細節運動、大尺度運動分解,最後得到一系列小模型,它們都可以從稀疏的資料中經過訓練得到。在實驗中,我們的模型可以有效地學習並生成合理手的動畫,表面的細節也恢復得非常好。
小結
傳統的基於資料驅動的方法優點是所需要的資料量小,獲得的模型比較簡潔,同時對輸入噪聲比較魯棒。但是,這些方法缺乏通用性,需要針對每個特定的問題進行專門的設計。同時,每個模型以來於特定的假設。如果假設本身和資料有偏差,那麼得到的模型無法獲得很好的建模效果。
資料驅動的圖形學的現在
隨著深度學習技術的發展,在過去幾年中,深度學習也被應用於資料驅動的圖形學研究中。但深度學習在圖形學上的應用並不簡單。根本的問題在於資料的高維度。不同於影像和影片,幾何形體是三維的,它的形變動畫就是4維的,而表面材質更是6維或8維的函式,光線的傳輸也是一個8維函式。資料的高維特性造成了一系列的問題,第一,因為資料維度比較高,無法用現有的捕捉裝置捕捉到所有資料,因此三維資料沒有統一的基於規則取樣的表達。第二,資料捕捉難導致已有的三維資料的規模很小。第三,標註高維資料比標註二維資料難得多。我們認為,只有一步步把這些問題都解決了,深度學習在圖形學中才可能發揮它的威力,推動圖形學的發展。在過去幾年中,我們也對這三個方面的挑戰做了一些工作。
面向深度學習的有效幾何表達
對於幾何形狀的表達,我們提出了基於八叉樹[3],自適應八叉樹[4],以及基於表面座標架的卷積神經網路框架。這些框架可以直接繼承已有的面向影像的卷積神經網路的架構,同時可以利用 GPU 進行有效的訓練和推理。這些框架也被用於三維形狀分析和重建中,驗證了這些表達的有效性。
在今年的 CVPR 2019 的工作[5]中,我有幸參加了韓曉光博士、賈奎教授的團隊的一個工作。這個工作提出了一種層次混合的表達來表達三維形狀,並將這一表達應用於基於單張影像的三維重構中,取得了非常好的效果。透過這個工作,我們感到在 3D 形狀上學習時,只用單個的底層表達可能不太充分,多層的表達可能可以更好的揭示形狀空間的屬性,因而更加有效。
透過跨越影像和三維的鴻溝解決資料問題
為了解決資料集和資料量的問題,我們希望能夠利用大量圖片來完成一些三維的學習任務,從而提供解決資料問題的一個新的思路。在今年的 CVPR 2019 工作[6]中,我們提出了一個多投影方法,可以從一類物體的圖片集中學習一個三維生成網路,生成此類物體的三維形狀。這個問題主要有3個挑戰:第一,輸入只有 2D 影像,而輸出需要是 3D 形狀;第二,我們沒有輸入影像中直接的一致性,或者說沒有同一只鳥不同視角的圖片,這導致很多傳統的多視角重建方法不適用。第三,每張影像的視角資訊也是未知的。
為了解決這些挑戰,我們設計了兩個模組。第一個是 Multiple Projection GAN。我們先假設每張影像的視角已知,把所有輸入影像根據視角分類,然後對每個視角類訓練一個鑑別器。我們訓練一個生成器來生成 3D 形狀,然後把它投影到不同視角上,再透過這個視角下的鑑別器比較和這個視角的影像是否一致。但影像視角是未知的,所以第二個模組就是視角預測網路。這樣我們先從生成器得到 3D 形狀作為視角預測網路的訓練資料,訓練好的視角預測網路可以用來預測 2D 影像的視角,從而把 3D 形狀生成器訓練得更好。這個過程不斷迭代進行,就能互相最佳化提高,得到最終的結果。目前我們的演算法利用物體的輪廓線來進行訓練。
充分利用無標註資料參與訓練
針對標註資料少,我們也進行了一些研究。在 SIGGRAPH 2017, 我們提出了 Self-Augment CNN 用於從單張圖片中自動構建高維的表面材質貼圖[7]。為解決沒有足夠多的標註資料(圖片和對應的材質貼圖)問題,我們利用了少量的標註資料和大量的材質圖片,利用訓練中的神經網路和繪製演算法,生成大量的訓練資料,來最佳化訓練過程,有效地提高了結果質量。在今年的 SIGGRAPH ASIA 2019 上,我們也提出了一個基於無監督的三維形狀的結構抽取演算法[8],透過將形狀抽象近似為若干個長方體盒子的表達,來抽取和構建資料集中同一類物體共有的形體結構。
小結
深度學習方法具有很好的通用性,可以自動地從大量資料中提取模型。但是,這一方法需要大量的資料,模型本身是個黑箱,難以理解。當測試資料和訓練資料有偏差時,模型的效果會變差。如何利用圖形學裡有效的合成和模擬技術幫助深度學習,跨越圖片影片和圖形內容的鴻溝是值得探索的問題。
資料驅動的圖形學未來
深度學習給資料驅動的圖形學研究注入了新的活力,並推動著圖形學應用的升級和變革。同時,也帶來了挑戰。展望未來,我們在如下幾個方面還需要更加努力:
第一是資料。資料是推動領域發展的一大障礙。如何進一步減少資料捕捉和建模的難度,讓我們可以更加有效地獲取大量資料仍然是個難題。另一方面,如何突破圖片、影片和三維資料之間的鴻溝也是一個值得研究的方向。只有解決了資料的問題,才能形成一個閉環,更多的資料能幫助學習更好的模型,而更好的模型又能使資料獲取更加高效。
第二就是表達。已有的圖形學研究已經建立了對單個圖形學物件的有效表達。但是,對於所有物件構成的空間的表達還遠遠不夠。如何有效表達與構建所有合理的三維形體的形體空間,所有表面材質的材質空間,所有衣物,人體等變形的動畫空間都是非常值得探索的問題。另外,如何構建這些空間的有效的基於深度網路的表達,也是一個好的問題。
第三是深度學習的演算法本身。如何結合深度網路和人的互動輸入,如何結合深度學習與已有的物理先驗,以及如何將不同的跨媒體輸入集合在一起,如語言、圖片、三維模型等,來完成真正的創作任務,仍然是沒有解決的問題,也是未來的發展方向。
參考文獻
1. Zhiming Zhou, Guojun Chen, Yue Dong, David Wipf, Yong Yu, John Snyder, Xin Tong, Sparse as Possible SVBRDF Acquisition, ACM SIGGRAPH ASIA 2016
2. Haoda Huang, Ling Zhao, KangKang Yin, Yue Qi, Yizhou Yu, Xin Tong, Controllable Hand Deformation from Sparse Examples with Rich Details, ACM Symposium on Computer Animation, 2011
3. Peng-Shuai Wang, Yang Liu, Yu-Xiao Guo, Chun-Yu Sun, Xin Tong: O-CNN: Octree-based Convolutional Neural Networks for 3D Shape Analysis, ACM Transactions on Graphics (SIGGRAPH), 36(4), 2017
4. Pengshuai Wang, Chunyu Sun, Yang Liu, Xin Tong, Adaptive O-CNN: A Patch-based Deep Representation of 3D Shapes, SIGGRAPH ASIA 2018
5. Jiapeng Tang, Xiaoguang Han, Junyi Pan, Kui Jia, Xin Tong: A Skeleton-bridged Deep Learning Approach for Generating Meshes of Complex Topologies from Single RGB Images, CVPR 2019
6. Xiao Li, Yue Dong, Pieter Peers, Xin Tong, Synthesizing 3D Shapes from Unannotated Image Collections using Multi-projection Generative Adversarial Networks , CVPR 2019
7. Xiao Li, Yue Dong, Pieter Peers, Xin Tong, Modeling Surface Appearance from a Single Photograph using Self-Augmented Convolutional Neural Networks, ACM Transactions on Graphics(SIGGRAPH), 36(4), 2017
8. Chunyu Sun, Qian-Fang Zou, Xin Tong, Yang Liu, Learning Adaptive Hierarchical Cuboid Abstractions of 3D Shape Collections, ACM SIGGRAPH ASIA 2019