人體運動軌跡的人工智慧動畫模擬
作為部落格文章的處女秀,我將簡要介紹一下我的研究領域。從現在起,我將之命名為“人體運動軌跡的人工智慧動畫模擬”(Physically-Based Animation ,下文簡稱PBA)。
譯註:
這篇文章最早是在Media看到的,文中,作者將這一方法命名為Physically-Based Animation,但稍後卻不知為何刪除了Media上的文章,於是我們找到了作者的部落格,在上面找到了這篇文章,但在部落格中,這一方法被描述為Procedural Animation,即程式性動畫。我個人較願意以最新的名稱來命名這一動畫,因為Physically,既可以理解為物理反饋式的,也可以理解為人體的,因此更符合目前的研究方向和案例。
一、關於我的一點介紹
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研究的任何評論或問題。
原文釋出時間為:2018-11-23
本文作者:Amin Babadi
本文來自雲棲社群合作伙伴“ ofollow,noindex">EAWorld ”,瞭解相關資訊可以關注“ EAWorld ”。