人體運動軌跡的人工智能動畫模擬

本文爲翻譯發表,轉載需要註明來自公衆號EAWorld。

作者:Amin Babadi

譯者:白小白

原題:Procedural Animation

原文:http://t.cn/E2ooivH

全文4219字,閱讀約需要10分鐘

作爲博客文章的處女秀,我將簡要介紹一下我的研究領域。從現在起,我將之命名爲“人體運動軌跡的人工智能動畫模擬”(Physically-Based Animation ,下文簡稱PBA)。

譯註:

這篇文章最早是在Media看到的,文中,作者將這一方法命名爲Physically-Based Animation,但稍後卻不知爲何刪除了Media上的文章,於是我們找到了作者的博客,在上面找到了這篇文章,但在博客中,這一方法被描述爲Procedural Animation,即程序性動畫。我個人較願意以最新的名稱來命名這一動畫,因爲Physically,既可以理解爲物理反饋式的,也可以理解爲人體的,因此更符合目前的研究方向和案例。

一、關於我的一點介紹

我是芬蘭Aalto University計算機科學系的博士生。我目前的研究重點是爲物理模擬角色在多智能體條件下的表現開發高效的,創造性的運動人工智能模擬技術。我的研究的最終目標是填補深度強化學習和在線最優化求解之間的空白。

譯註:

多智能體(multi-agent),是多個Agent組成的集合,其多個Agent成員之間相互協調,相互服務,共同完成一個任務,鳥羣、魚羣、獸羣和菌落都可以被看成是多智能體系統。(http://t.cn/E2oDTFg)

在線最優化求解:利用已有的樣本數據訓練的過程往往轉換成一個最優化求解的過程。當我們面對高維高數據量的時候,批量處理的方式就顯得笨重和不夠高效,因此需要有在線處理的方法(Online)來解決相同的問題。(http://t.cn/E2oDuZf)

累積獎勵:強化學習作爲一種機器學習方法,是通過Agent與環境交互和獲得反饋來形成學習過程,當Agent做出了正確的步驟,積累獎勵增加,錯誤則扣減。最著名的例子就是AlphaGo,以往的學習方法依賴大量的棋譜,而強化學習是通過對弈中的成敗來形成獎懲來讓機器變得更“聰明”。

二、強化學習與PBA

PBA非常類似於衆所周知的強化學習(RL)領域。我們會創建一個實驗對象,並希望它採取一些行動(比如,移動它的身體並創建一個動畫)。但是,PBA和RL之間有着巨大的區別。在RL中,最重要的目標是最大化一些累積獎勵信號。因此,例如,如果我們希望我們的對象向前推進,它只關心前進這一事實本身,而不關心移動的質量。這就是爲什麼目前最先進的RL算法也只能生成一些像是瘋狂的殭屍一樣的動畫。作爲一個例子,看看PPO算法的輸出,PPO是RL領域模擬連續狀態和動作的最新技術。

(動畫鏈接:http://t.cn/E2ogZzN)

(動畫 Proximal Policy Optimization - Robust knocked over stand up)

如果我們只使用RL方法來製作PBA的話,這已經是我們所能期望的最好的輸出效果了。PBA的目標是產生儘可能自然的運動形態。不幸的是,將自然運動軌跡編碼成累積獎勵信號幾乎是不可能的(爲此我曾經進行過幾個月的嘗試,但最終還是放棄了,只是一個簡單的擊打拳擊袋的任務我都沒能完成)。這使得使用RL算法求解PBA變得非常困難。

三、關鍵幀動畫的缺陷

有人可能會問,爲會要研究PBA,廣泛應用的關鍵幀動畫有什麼問題麼?並不能說使用關鍵幀動畫有什麼不好,但它有其自身的侷限性。我會在以下幾個方面討論最重要的限制因素:

1、關鍵幀動畫是很昂貴的。我在遊戲界工作了一些年,並有機會爲伊朗本土市場製作了三款遊戲。在所有這些項目中,動畫部分始終是開發團隊最重要的瓶頸之一。

2、關鍵幀動畫缺乏靈活性。把動畫混合在一起很容易,但這不會創造新的動畫。因此,每次我們想編輯我們的動畫或創建一個新的動畫,我們必須爲此付出代價。

3、關鍵幀動畫沒有響應性。換句話說,它不能自動適應周圍環境的變化。我想,任何玩過電子遊戲的人,都記得角色動畫看起來很愚蠢的各種情況。在這種情況下,動畫本身通常是沒問題的,只是在錯誤的時間播放了而已。

一些公司試圖突破這些限制,而且也取得了一定程度上的成功,比如FIFA系列就是很好的例子。但是這些限制仍然是遊戲動畫中最具挑戰性的問題之一。

四、PBA與遊戲

不難看出,爲什麼PBA能夠有效地解決關鍵幀動畫的侷限性。它很便宜,因爲我們不需要付錢給動畫師。也很靈活,我們可以通過改變角色/環境的力度來獲得不同類型的動畫。最後,實時運行,實時響應。

有一些遊戲已經使用PBA作爲其製作技術的一部分。其中,QWOP和Toribash 是最成功的兩個例子。(如果有其他的好例子值得一提,也請告訴我)。你可以在互聯網上找到很多這些遊戲的遊戲視頻。但是,我強烈建議你自己下載並嘗試一下,這樣你才能真正感受到遊戲中PBA的力量和複雜性。

爲了使讀者免於搜索和下載之苦,下面這個視頻顯示了一些Toribash遊戲中超級酷的動作:

(動畫鏈接:http://t.cn/E2odeDV)

(動畫 Supermoves - Toribash)

五、懸而未決的問題

目前爲止我講的都是好消息。壞消息是,幾乎關於PBA的一切都屬於懸而未決的問題。在過去的二十年裏,在這個領域已經有了很多的研究,但是我們還遠沒有強大的算法來產生高質量的動畫。在這裏,我試着列舉了這一領域中最重要的幾個問題:

1、我們如何找到PBA生成有效方法?

2、我們如何將這些方法的計算開銷降到最低,使它們在實時應用程序(特別是遊戲)中可用?

3、我們如何評估動畫的質量(從流暢性、自然度等方面)?

4、利用這一領域的最新進展可以設計怎樣的新的遊戲機制?

5、這一領域如何影響增強/混合/虛擬現實技術的發展?

六、進展如何?

瞭解了PBA的相關問題,下面介紹一下一些最新進展。從SIGGRAPH 2017大會上發表的關於這個問題的技術論文中,我選擇了3個視頻做爲例子(如果會上還有其他例子,也請讓我知曉)。我相信,通過觀看這些視頻,你可以很好地瞭解這個領域的現狀。

例1:發現和合成類人爬升的運動軌跡。

譯註:

這個視頻講解了PBA的路徑規劃方法和運動優化方法。分別採用CMA-ES和C-PBP算法來控制假人的爬行以對比效果。系統會遍歷巖點和牆面,並對運動軌跡進行脫機優化,在CPU時間35秒的時候,找到了第一條到達最終巖點的路徑。然後系統開始基於啓發式偏好來尋找更多的爬行路徑。經過對攀巖地圖的探索,系統會根據不同的參數,對所有的路徑做排序和顯示,這些參數包括最小的扭矩和力量的乘積和,或者最小的移動步數。CMA-ES在此過程中顯示了更強大的能力,但收斂過程比較緩慢。兩種算法都可以得到相對自然的爬行形態。系統也適用於強調平衡能力的直線路徑。系統支持很容易的調整假人的關節力矩來模擬身體機能的強弱,弱化假人將拖慢路徑的規劃,有些路徑的嘗試甚至因此失敗了。定性的說,越是保守的路徑,會有越高的成功率。

(動畫 SIGGRAPH 2017 climbing AI (full video))

例2:用於角色控制的相位函數神經網絡

譯註:

來自雷鋒網(http://t.cn/E2oELqf)。在大多數遊戲中,遊戲角色的動畫是提前通過動作捕捉封裝好的,這就意味着一位玩家在遊戲中會看到完全相同的動作出現上千次,確實挺無聊的。“我們的系統就完全不同。”來自愛丁堡大學的研究人員 Daniel Holden 在接受採訪時說道。

“我們會先準備一個龐大的動畫數據庫,”他說道。“隨後我們會利用機器學習打造一個系統,該系統能直接將用戶的輸入映射到遊戲角色的動作上去。因此,與將所有數據存儲起來並根據某些指令進行呈現不同,我們的系統能根據用戶輸入直接產生相應的動畫效果。”

該系統的功效確實顯而易見,在演示視頻中,即使背景地形相當複雜,那個戴三角帽的遊戲角色也能做出許多自由且自然的動作。

在這段演示視頻背後,其實是 Holden 和他的同事兩小時之內拿到的 1.5GB 動作捕捉數據。在那之後,神經網絡利用這些數據自主訓練了 30 小時,大體上學會了如何將這些通過動作捕捉獲得的動畫重新結合並運用在遊戲場景中。

“神經網絡的加入讓角色呈現出了一個姿勢該有的組成部分,玩家的輸入則隨機的讓這些組成部分相結合。”Holden 解釋道。

這樣一來,角色能做出的動作輸出就比直接前期封裝好的要多得多。就拿跳下窗臺這個動作來說,傳統的動畫系統會直接載入“跳下窗臺”的動畫文檔,但神經網絡會通過數據庫中類似場景的數據推斷四肢的不同動作,並將這些數據進行融合以便完成最終的動作輸出。

1.5GB 的訓練數據在神經網絡中以這種方式存儲只需要數十兆的空間,Holden 解釋道。“動畫數據被壓縮進了神經網絡的權重,如果數據庫中的每個姿勢都能被分解成數個組成部分的加權和,神經網絡就能輕鬆學習並大幅壓縮數據體積。”

其他的動畫處理方式也能混合不同的動作捕捉“場景”並使用在新的環境中。不過,這些方式需要在本地存儲大量的數據,因此會拖慢系統速度。一些最新的研究顯示,其他以神經網絡爲基礎的動畫模型如果沒有在混合處理過程中添加週期性階段進行協助,產出的動畫就相當粗糙,而且動作不自然。

利用神經網絡改變動作捕捉動畫可能會得到一些意想不到的結果,Holden 說道。舉例來說,研究人員並未給一個在崎嶇地形蹲着行走的角色提供專門的動作捕捉數據,但系統卻自己學會了這種情況的處理方式,它將平坦地形上蹲伏的動作與崎嶇地形中行走和奔跑的動作進行了結合。

用 AI 來處理角色動畫確實有其優勢,但 Holden 也遇到了不少困難。首先,30 小時的訓練時間就是個大麻煩,尤其是你想補錄一些動作的情況下。此外,負責動作設計的藝術家也無法直接對神經網絡的輸出進行潤色,而在傳統的方式中,這一步相當重要。最後,雖然神經網絡可以實時進行反應,但 1 秒鐘的耗時在應用時還是沒有預錄動畫來得快(Holden 認爲未來肯定能找到提速的方式)。

(動畫 Phase-Functioned Neural Networks for Character Control)

例3:DeepLoco:使用分層深度強化學習的動態運動技能

譯註:

(http://t.cn/E2odh3v)學習以物理爲基礎的運動技能是一個困難的問題,相關解決方案通常利用各種形式的先驗知識。視頻中介紹的方法,是在以有限的先驗知識學習各種環境感知的運動技能。採用兩級遞階控制框架.首先,低水平控制器會學習如何在一個良好的時間範疇內,實現穩健的步行步態,並滿足步進方向和風格的目標。其次,高階控制器通過調用低級別控制器建立的理想化的步驟目標,來規劃限定時間範圍內的步進策略。高級控制器直接基於高維輸入做出決策,包括地形圖或環境的相關指標。兩個級別的控制策略都是使用深度強化學習進行訓練的。在模擬的三維雙足動物上進行了實驗驗證。低水平控制器是針對各種運動類型學習的,並且在基於力的擾動、地形變化和樣式插值方面表現出了魯棒性。高級控制器能夠跟蹤地面軌跡,將足球運抵目標位置,並能在靜態或動態障礙之間進行導航。

(動畫 SIGGRAPH 2017 - DeepLoco paper (main video))

七、結語

在這篇文章中,我試圖簡要介紹PBA領域及其挑戰。我認爲了解這一領域與強化學習之間的區別是很重要的,儘管我並不否認兩者的相似之處。實際上,我目前的研究很大一部分是在探索在PBA中應用最新的RL技術的可行性。

我必須承認,在寫這篇文章之前,我很擔心言之無物。但現在我的腦海裏已經有了下一篇文章的主題。在我的下一篇文章中,我將嘗試解釋PBA作爲一種職業生涯可能會遇到的問題。因此,如果你正考慮進入這個領域,我的下一篇文章可能會對你有用。

最後,我很想聽聽讀者對遊戲AI研究的任何評論或問題。

參考文獻

1、Schulman, John, et al. “Proximal policy optimization algorithms.” arXiv preprint arXiv:1707.06347 (2017).

2、Naderi, Kourosh, Joose Rajamäki, and Perttu Hämäläinen. “Discovering and synthesizing humanoid climbing movements.” ACM Transactions on Graphics (TOG) 36.4 (2017): 43.

3、Holden, Daniel, Taku Komura, and Jun Saito. “Phase-functioned neural networks for character control.” ACM Transactions on Graphics (TOG) 36.4 (2017): 42.

4、Peng, Xue Bin, et al. “Deeploco: Dynamic locomotion skills using hierarchical deep reinforcement learning.” ACM Transactions on Graphics (TOG) 36.4 (2017): 41.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章