圖形學頂會高分收錄!天美聯合提出基於深度學習的間補動畫實時生成技術

語言: CN / TW / HK

1. 導語

人體動畫廣泛應用於遊戲互動電影等場景中。業界為了做出足夠合理逼真的動畫姿態,通常會利用動作捕捉對真實人體姿態進行記錄,並由動畫師手動編輯已經記錄好的姿態,生成可以在遊戲中使用的動畫序列。

儘管這一套流程所產生的動畫序列能夠真實地表現遊戲角色特定動作,但在遊戲角色從一個動作切換到另一個動作的過程中,由於缺少動作捕捉資訊,一般只能通過啟發式的手段進行程式生成,例如利用blending的方式混合前後兩個動作姿態。但啟發式的方法容易產生不真實的動作表現,並且使用專家系統難以避免所有可能造成的不真實問題。

為了解決這個問題,天美J1&F1工作室和騰訊遊戲學堂牽頭成立的「浙江大學-騰訊遊戲智慧圖形創新技術聯合實驗室」金小剛教授團隊聯合提出了一種 基於神經網路的動畫間補演算法 ,希望通過深度學習在一個大規模的動作捕捉資料庫中 學習動作生成內在邏輯 ,並能夠 實時生成真實可信的動作

天美J1&F1工作室在動畫技術的遊戲應用方面有著多年的積澱,而金小剛教授團隊是動畫技術領域學術研究的先驅。作為工業界與學術界的結合,雙方的合研論文 “ Real-time Controllable Motion Transition for Characters ” 被SIGGRAPH 2022 Technical Paper 高分收錄

演示視訊 https://www.zhihu.com/video/1542556567375675392

2. 現有工具及方案不足

現有多種不同的動作插值問題的處理形式,比如說把插值問題當作動作計劃(planning)問題,通過複雜的帶約束優化過程求解,效率比較低。

另一方面,資料驅動方法通過在結構化的資料集中搜索,避免了較慢的優化過程,但是由於控制和約束是多樣的,需要的資料集非常龐大。

在深度學習領域,動作插值被當成了動作流形的學習問題或者控制問題,但這些方法很難轉換為一個動作插值生成器。

2.1 基於深度學習的離線方法

離線方法可以把間補問題類比成一個影象補全問題。用卷積網路或者Transformer補全動作序列中的缺失部分。離線問題中時間不是主要目標,也可以使用後處理方法對結果進行修改。

2.2 基於深度學習的線上方法

一種把深度學習動作生成器改成間補動作生成器的方式是新增約束項。但是簡單的新增約束難以保證高質量的結果。新增時序編碼的方式,並藉助GAN網路能夠基本保證動作生成的質量。但是,之前的方法沒有顯式的提取人體骨骼的動態層級,也沒有利用關節的相互關係,生成序列的泛化性較差。

2.3 訴求總結

出於以上目的,我們需要探索一個 基於深度學習的快速高質量的動作間補演算法 ,能夠包含如下要求:

利用前後兩個動畫序列間補出中間長度為(0.2s ->0.8s)的動作序列。生成的動畫序列如果不滿足60fps,在不損失逼真程度的情況下可以通過blending方式進行補充。該動作捕捉的真實性由如下幾條判斷:

(1)第一條所述的動作序列不能存在骨骼交錯,姿態超過人體極限等明顯視覺不真實的情況。

(2)如果作為程式輸入的是動作捕捉的訓練集,則結果應該符合該動作捕捉的ground truth,如果相似的動捕資料太多最後會趨於這些動作的平均動作(平均動作也應該是合理的動作)。

(3)使用者調研,生成效果應該至少好於blending方式。

(4)生成過程中,耗費在該演算法上的峰值不應該超過1/60s。即保證完全另外開一個執行緒的前提下能夠做到實時生成的要求。

3. 基於神經網路的動作間補演算法

3.1 演算法實現

我們的方法包括兩個主要部分:自然運動流形模型和用於運動生成的取樣器。我們首先介紹了學習自然運動流形。然後,我們引入從學習的流形中生成滿足目標幀和目標過渡持續時間的運動的取樣策略。

3.1.1 自然運動流形模型

自然運動流形模型利用CVAE和多模態對映解碼器學習人體運動內在關係,將已知下一幀速度的人體運動編碼到流形空間,使得可以通過對流形空間取樣恢復出運動姿態。

3.1.2 間補動畫取樣器

雖然CVAE可以學習自然流形,但它只能執行不受控制的生成,所以我們訓練了一個取樣器使得能夠自動生成間補動畫。

在訓練過渡取樣器時,我們在每個學習步驟中從一個視窗中取樣5到30幀的過渡長度,以便網路能夠從不同的過渡長度和目標幀中學習。

3.2 最終成果

圖中 橙色 的人體為關鍵幀, 藍色 的為間補出來的動作幀。給定目幀和到目標的時間,角色能夠自動調整腳步大小,前進速度和動作型別,在規定的時間內平滑地運動到目標幀。

3.2.1 生成質量

我們在兩個資料集上進行了和其他方法的對比,我們使標準的插值作為基準,分別對比了RTN,添加了腳步滑動約束的RTN (+skating loss),並替換我們的條件變分自編碼器為自編碼器(AE)和變分自編碼器(VAE),驗證了我們生成的質量並不是簡單的擴充套件先前的方法和使用任意的編碼器均能實現的。

我們測試了三個不同的指標,分別是所有關節的全域性位置的L2範數,NPSS指標和腳步滑動指標。下面為這些方法在Lafan1資料集上的指標對比:

關節位置的L2範數

間補幀長度 5 15 30
插值 0.37 1.24 2.31
RTN 0.22 0.59 1.16
+Skating Loss 0.28 0.68 1.27
AE 0.28 0.63 1.16
VAE 0.20 0.56 1.11
我們的方法 0.20 0.56 1.12

NPSS

間補幀長度 5 15 30
插值 0.0073 0.1135 0.5229
RTN 0.0056 0.0719 0.3495
+Skating Loss 0.0071 0.0799 0.3715
AE 0.0078 0.0835 0.3721
VAE 0.0055 0.0701 0.3420
我們的方法 0.0055 0.0702 0.3455

滑步損失

間補幀長度 5 15 30
插值 1.708 2.081 2.144
RTN 0.483 0.698 0.930
+Skating Loss 0.249 0.349 0.455
AE 0.294 0.485 0.649
VAE 0.255 0.353 0.502
我們的方法 0.244 0.343 0.469

可以看到,綜合三個評價,我們的方法是唯一能在三個評價中都接近最好評價的方法。

3.2.2 泛化性

我們的方法可以在輸入條件改變,甚至變得不太合理的時候(例如非常長或者非常短的時間間隔,目標在初始的反方向或者距離初始非常遠),我們的方法總是能生成合理自然的結果。

3.2.3 不同的動作姿態

我們測試不同動作姿態的指標,我們將Lafan1資料集中的跑步和行走序列歸類為步行,跳舞序列包括Lafan1的舞蹈序列,搏擊序列和體育序列,跳躍序列包括所有跳躍動作,障礙序列包括所有角色避開障礙物的動作。

對於間補長度為30幀的結果,指標如下表所示:

L2範數

動作 步行 跳舞 跳躍 障礙
插值 2.76 2.40 1.89 2.23
RTN 0.99 1.51 1.21 1.21
我們的方法 0.95 1.48 1.18 1.15

NPSS

動作 步行 跳舞 跳躍 障礙
插值 0.6430 0.6405 0.4000 0.4513
RTN 0.3380 0.5197 0.3123 0.3158
我們的方法 0.3306 0.5141 0.3205 0.3085

滑動損失

動作 步行 跳舞 跳躍 障礙
插值 2.743 1.844 1.381 2.024
RTN 1.187 1.103 0.640 0.657
我們的方法 0.589 0.571 0.326 0.293

可以看出我們的方法相比起RTN,在位置的平均損失下略有提升,在動作質量上,我們的滑步顯著減少,在實際效果中幾乎看不出滑動。

3.2.4 不同時間長度

我們丟棄每個sample的30幀長的序列,要求網路分別用15幀,8幀和60幀的時間恢復出來,並衡量不同方法的腳步損失誤差。

同時,我們測試了一個極端例子,我們丟棄一幀,但要求網路用100幀的時間將它恢復回來。

時間 8 15 60 100
插值 7.302 3.917 1.075 0.004
RTN 4.050 2.087 0.814 0.522
我們的方法 3.363 1.350 0.438 0.110

對於放慢100倍來說,因為兩幀間隔非常短,所以對於插值方法來說,兩幀之間的腳步差值減小了100倍,所以指標上最好。對於其他所有例子,我們的方法都顯著好於RTN。在時間非常短的情況下,很難生成合理的動作,但我們的方法仍能表現最好。

在視覺上,當開始幀和結束幀在一個步行週期的同一個階段(比如都是左腳在前),RTN就有可能生成滑動的動作,而我們的方法能夠快速生成一小步,使其行走到目標位置。

3.2.5 不同的目標位置

對於不同的目標位置,我們測試了兩種情況。一是將目標位置向前移動到兩倍遠於初始目標位置的地方,二是將目標位置向前移動到初始位置的反方向。

在向前測試中,我們的方法傾向於生成幾個大步伐或者更多的步伐來彌補多出來的距離,RTN總是生成和資料集類似的相同的步長,通過滑動來彌補距離。

向後的實驗要更困難一些,因為我們的資料集中沒有太多類似的資料,並且,由於兩個姿態面朝同向且時間不夠進行兩次轉身,所以所有生成的動作都傾向於往後退。

這種情況下,RTN總是生成可辨認的滑動而我們的不會。我們認為這是因為我們的自然流形模型成功捕捉了訓練集中的速度向後的姿態動作,使得能夠合成。

我們也測試了一個極端例子,設定目標幀在初始幀的10m遠,並讓角色以60幀的時間移動過去。在訓練集中,最遠距離只有5.79m,最長的時間長度只有30幀。下圖展示了RTN(第一行),VAE(第二行)和我們的方法(第三行)的結果:

因為目標距離太遠,RTN生成滑動的動作,沒有髖關節作為條件輸入;VAE生成的結果類似於混合了爬行和跑步的結果;而我們的方法能夠生成快速奔跑的結果。

最後附官網連結:

浙江大學-騰訊遊戲智慧圖形創新技術聯合實驗室

浙江大學是教育部直屬、省部共建的普通高等學校,經過一百多年的建設與發展,學校已成為一所基礎堅實、實力雄厚,特色鮮明,居於國內一流水平,在國際上有較大影響的研究型、綜合型大學。騰訊遊戲學堂致力於打造遊戲知識分享和行業交流的平臺,通過遊戲行業專業人才培養、高校產學研合作、行業交流及開發者生態建設等,推動遊戲行業良性發展,助力遊戲人“成就遊戲夢想”。騰訊遊戲學堂為了進一步促進產學融合,實現雙方人才、技術、資訊、資源的全面共享與互動,共同建設了“浙江大學-騰訊遊戲智慧圖形創新技術聯合實驗室,實驗室將利用浙江大學在電腦科學、機械、數學等方面的雄厚科研實力,結合騰訊互動娛樂在產業化與技術推廣方面的優勢,在虛擬現實、計算機圖形與視覺計算、計算機輔助設計等領域解決重大技術問題,促進行業技術進步,聚焦前沿技術探索,將研發實驗室建設成為在國內具有一定影響力的科學研究和人才培養基地。

金小剛教授

教授、博士生導師,來自浙江大學電腦科學與技術學院。是“十三五”國家重點研發計劃首席科學家,浙江大學-騰訊遊戲智慧圖形創新技術聯合實驗室主任,浙江省虛擬現實產業聯盟理事長,中國計算機學會虛擬現實與視覺化專委會副主任委員,杭州錢江特聘專家。在ACM TOG (Proc. of Siggraph)、IEEE TVCG等國際重要學術刊物上發表論文140多篇,多次獲得國內外重要獎項。