模拟狗狗的“魔鬼步伐”,比更真还更真
翻譯 | 林椿眄
編輯 | 阿司匹林
出品 | AI科技大本營(公眾號ID:rgznai100)
閉上眼睛,回想一下,自家的狗狗是怎樣走路的?
?
如果這難不倒你,那么再試著回憶下,它是怎樣跑步的?和走路的步伐是一樣的嗎?
?
雖然只比人類多了兩條腿,但是四足動物的“魔鬼步伐”卻足以讓人凌亂。要知道,在動畫領域,想要創作一個四足動物的角色,絕對是勞心勞力的一件苦差事。
?
針對四足運動控制的問題,來自愛丁堡大學的團隊研發了一種被稱為“模式自適應神經網絡”的新型神經網絡架構,它可以通過學習實際的非結構化的運動數據,端到端地生成出自然的動畫,整個過程無需用于相位或運動步態的標簽,也無需對一組固定的權重值進行優化。整個研究使用 Unity3D / Tensorflow 完成開發。
這樣逼真的模擬效果到底是如何實現的?我們現在就來一起解讀下這篇論文。(論文地址:http://homepages.inf.ed.ac.uk/tkomura/dog.pdf)
▌摘要
四足動作包括各種步態,如行走,踱步,快步和慢跑,以及跳躍,坐姿,轉身和打轉等動作。應用現有的特性控制框架來解決四足運動問題需要大量的數據及繁瑣的數據預處理,例如動作的標注和對齊等。在本文中,我們提出了一種新型的神經網絡架構,稱為模式自適應神經網絡(Mode-Adaptive Neural Networks),用于控制動物的四足運動特性。
該系統由運動預測網絡(motion prediction network)和門控網絡(gating network)組成。給定前一幀的運動狀態和用戶提供的控制信號,運動預測網絡會計算出當前每一幀的運動特性狀態。而門控網絡通過選擇和混合專家權重(expert weigts)來動態地更新運動預測網絡的權重值,每個專家權重都對應特定的動作。由于靈活性增加,系統可以通過非結構化運動捕捉數據,以端到端的方式,在各種非周期性/周期性操作中學習一致的專家權重。另外,用戶也可以從標記不同步態中的相位這一復雜任務種解脫出來。我們證明,這種體系結構適合編碼多模態的四足運動及實時動作響應的合成。
圖1.我們的方法所產生的四足動畫結果。 我們展示了一些不同的四足動作模式,從左往右依次是坐姿,轉圈,快步,踱步,慢跑,跳躍和站立。?這些運動步態不是逐一標記的,而是由運動速度的控制自然產生的。
▌簡介
四足動畫是計算機動畫領域中未解決的關鍵問題之一。它與電腦游戲和電影等應用息息相關,同時也是機器人領域一個具有挑戰性的話題。當制作四足動物動畫時,動畫師 (animator) 必須經過專門的訓練才能設計各種復雜的動作。本質上,這種復雜性是來自于四足動物的多種運動形式。如圖2所示,一些諸如行走,踱步,快步,慢跑,疾馳等運動模式,它們的軀干和四肢部分都隨著運動而發生復雜的變化。
據我們所知,先前沒有任何研究工作是基于數據驅動的方式來系統地構建四足運動控制器。造成這個困難原因是上面提到的復雜性,以及四足動物的運動數據采集,畢竟動物不會像人那樣配合。因此,所捕獲的數據通常缺乏結構化,所包含的隨機動作并不是一個接一個地進行著。當使用這些非結構化數據設計動作特性控制器時,工程師需要手動或半自動地提取步態周期,通過數據轉換將不連續的動作縫合在一起,并調整運動樹及有限狀態機的參數。
最近,基于神經網絡的運動控制研究表明,使用明確的周期來為雙足動物運動提供高質量動畫的方法是可行的 [Holden et al.?2017]。但是,這種框架無法應用于四足動物的運動控制,因為無法定義單一階段中四條腿在不同的腳步模式間的過渡步態。這也使得手動對四足運動的非結構化數據進行復雜的步態標記變得不切實際。
在本文中,我們提出了一種新型網絡體系結構,稱為模式自適應神經網絡?(MANN)。它可以從大量的非結構化四足運動數據中學習一個運動控制器。該系統由運動預測網絡和門控網絡組成。給定前一幀的運動狀態和用戶提供的控制信號,運動預測網絡會計算出當前每一幀的運動特性狀態。而門控網絡通過選擇和混合專家權重來動態地更新運動預測網絡的權重值,每個專家權重都對應特定的動作。
這個架構具有足夠的靈活性,以便系統能夠學習一致的專家權重值,來捕捉大量的周期/非周期行動動作數據。由于所捕獲的非結構化四足運動數據必須將不同步態類型沿著時間軸對齊,因此,我們的框架能夠大大緩解開發者進行復雜而繁瑣的動作數據標記工作。此外,我們的模型不需要為不同步態給定單獨標簽,從而節省了數據預處理過程中對步態錯位的處理時間。
圖2.生成不同四足運動模式下的足跡 [Huang et al.?2013]。 橫條表示每條腿站立的階段。?圖像的右邊表示步態周期中一系列的腳印。
這篇論文的貢獻如下:
我們構建了一個基于數據驅動的四足運動特性控制器,這種系統可以合成多種運動模式及其過渡狀態的高質量動畫。
我們提出了一種新穎的、端到端的神經網絡結構,它能夠從非結構化的四足動作中捕捉數據,而不需要任何階段和運動步態的標簽。
我們將所構建的四足運動特性控制器與現有的方法進行了全面地評估對比。
▌模型系統
我們的系統是一個時間序列模型,給定前一個幀的狀態?x 和用戶的控制信號,模型可以預測當前每一幀的運動特性狀態 y。為了產生各種各樣的周期性和非周期性的四足運動特性,我們提出了一種新型的神經網絡,稱為模式自適應神經網絡的結構?MANN (如下圖3所示,詳見原文章節6)。當前每一幀的運動由運動預測網絡得到 (如下圖3右,詳見原文第6.1節),其網絡權重是通過一個門控結構的神經網絡結構 (如下圖3左,詳見原文第6.2節) 來動態地計算獲取。門控網絡收到一個動作特征 ?( x 的子集),并計算專家權重的混合系數?(圖3),其中每一個權重都是為特定的動作訓練而準備的。
為了準備訓練所需的數據集,我們首先對狗的運動數據集進行預處理,并為這些數據添加標簽 (詳見原文第4節),然后準備網絡的輸入和輸出向量?(詳見原文第5節)。在訓練期間,整個網絡以端到端的方式進行訓練?(詳見原文第7節)。在運行期間,系統使用前一幀的運動狀態和用戶提供的控制信號,能夠實時地展現當前每一幀中運動特性的動畫 (詳見原文第8節)。
圖3.由門控網絡和運動預測網絡組成的神經網絡結構體系。門控網絡以當前腳部末端速度,期望速度和動作向量作為輸入。運動預測網絡將前一幀的動作姿勢和運動軌跡作為輸入,并預測當前每一幀更新后的姿勢和軌跡。
▌數據準備
為了后續研究的進行,這里我們介紹下動作捕捉和動作分類階段所要用到的數據。
狗的動作捕捉。我們的動作捕捉數據由?30 分鐘的非結構化的狗的動作捕捉數據組成,包括各種運動模式,如行走,踱步,快步和慢跑等,以及其他類型的動作,如坐著,站立,打轉,躺著和跳躍。通過鏡像,數據的大小增加了一倍。由于捕捉設施的限制,所有的運動數據僅在平坦的地形上捕捉。如圖4所示,這是一個由 27 塊骨頭構成的骨架模型,它總共有 81 個自由度,非常適用于數據采集工作。
?圖4. 實驗用到的構模型的骨架結構。它由 27 塊骨頭構成,總計 81 個自由度。
動作分類。首先,將動作類型分為運動,坐著,站著,打轉,躺著,跳躍等等。在運行階段,用戶可以通過指定相應的標簽來控制動作特性。這個過程是手動完成的,但想自動化實現這個過程也并不困難,因為這些動作類型中的每一種動作都具有獨特性。關于動作數據的具體比率可以參見表1。
表1. 狗的動作訓練數據集的細分。這個數據集包含原始的和鏡像得到的狗動作捕捉數據,這些都是未結構化的數據。
運動模式。在我們的論文中,我們專門研究四種運動模式的類型:行走,踱步,快步和慢跑。盡管我們的系統在運行時不需要運動模式的標簽來控制角色,但我們分析了數據集中模式的分布。由于復雜的運動過渡狀態和一些模棱兩可的情況,將數據分類為不同的運動模式是一件相對困難的操作。首先,基于速度曲線,我們對運動模式進行大致的分類,然后手動地將它們歸入相應的模式。最終,速度與其運動模式的可視化關系結果如圖5所示。這種相關性與 Coros 等人在 2011 年提出的模型完美匹配。
▌四足動作控制的模式自適應神經網絡模型
運動預測網絡
運動預測網絡表示為 Θ(·),它是一個簡單的三層神經網絡,接收字符?x的前一狀態,并按照如下格式輸出數據?y:
?
其中網絡?α 的參數由?α= {W0∈R^(h×n),W1∈R^(h×h),W2∈R^(m×h),b0∈R^h,b1∈R^h,b2∈R^m} 定義。此外,這里的 h?表示網絡中隱藏層所用的單元數,我們的模型把它設為 512。網絡的激活函數采用指數型的修正線性單元 (ReLU) [Clevert et al. 2015],其數學表達式如下:
?
門控網絡
門控網絡表示為?Ω (·),它是一個三層的神經網絡?;诮o定的輸入 x,它可以計算混合系數?ω,其數學表達式如下:
?其中 x(hat) ∈R^19是?x 的子集,x?表示腳部末端速度,當前動作標量和期望動作速度的特性。σ (?)?是一個 softmax 算子,用于歸一化輸入以使得它們相加的和為1,這是為了進一步線性混合所必需的操作。
我們已經以多種不同的輸入測試了我們的模型,理想的情況下,網絡可以從輸入中學習信息特征,盡管由于我們的數據量相對較少,這可能會導致我們的訓練過程變得非常困難。但與此同時,我們觀察到使用動作變量和期望值速度能夠有助于提高動作特性的可控性和響應性。
▌訓練
整個網絡使用處理后的動作捕獲數據,以端對端的方式進行訓練。每個幀的輸入 x 和 y 被堆疊成矩陣形式:X = [x1x2 ...],Y = [y1y2 ...]。我們使用它們的均值和標準差,對這些值進行平移和縮放操作,以便標準化數據。由于快步和慢跑的周期非常短,我們對這些動作的數據復制 11 次,這有助于增強我們模型的魯棒性。
訓練網絡的目標是對于給定的一組輸入 X,我們可以產生相應的輸出變量 Y。這是一個典型的回歸任務,目的是求取預測值和真實值之間的均方誤差,該損失函數的數學表達式如下所示:
?
借助 Tensorflow 深度學習框架,我們部署了模型的訓練過程。我們使用 AdamWR 技術中的隨機梯度下降算法,這是由 Loshchilov 和 Hutter 提出的能夠自動計算損失函數關于 β 和 μ 導數的一種優化技術。正如 AdamWR 算法在優化過程中所做的正則化一樣,我們使用兩個參數 Ti 和 Tmult來控制學習率 η 和權重衰減率 λ 的下降和重啟動,其初始值設置為 η = 1.0×10^-4和 λ = 2.5×10^-3。Ti 表示第i次運行/重新啟動時的迭代總數,其初始值設為10。在每次重啟動時,Ti 都乘上一個因子 Tmult?= 2,即Ti?+ 1?= 2Ti。
我們總共進行150次迭代,因此重啟動過程一共發生3次,分別在第11次,第31次和第71次迭代。在訓練期間,我們使用大小為32的小批量數據反復迭代,每個批量中的訓練樣本都是隨機選擇的。我們使用 Dropout 技術,其保留概率設為0.7。 整個訓練過程使用4或8個專家網絡,在 NVIDIA GeForce GTX 970 GPU 上運行了 20 或 30 個小時。下圖5顯示了不同方法的學習曲線,請注意較高的運動質量并以一定意味著較低的訓練損失和測試損失。
圖5.?Vanilla neural network,PFNN 和?MANN 網絡的學習曲線。
▌?實驗結果及展望
在實驗階段,我們設置了不同的運動特性控制方案,在運行過程中交互式地查看不同運動特性控制的結果。我們通過與現有方法比較,來評估我們的系統在運動質量,足部滑動偽影,腿部僵硬度及運動響應等性能,評估結果如下表2,表3,表4所示。我們還進一步研究了專家的激活權重,并在運動期間抑制它分析專家權重的功能特性。
?
表2.?使用 vanilla?NN,PFNN 和?MANN 模型,以4或8個專家權重所得到的所有腿部真實的平均滑行數據。
表3.?使用?vanilla NN,PFNN 和 MANN 模型,以4或8個專家權重所得到的所有腿部每個關節真實的平均角度更新數據。
表4. 使用?vanilla NN,PFNN 和 MANN 模型,沿著預定義的不同曲線軌跡所得到的平均位置和角度偏差數據。
?
雖然實驗結果展示了出色的性能及其系統優越性,但是我們的系統仍存在一些局限性,如時間序列模型的學習,稀疏數據庫的構建以及數據庫局限性等,我們將在未來的工作中進一步探討這些問題。除了我們提出的方法以外,對于四足運動動畫領域,還有幾個有趣的方向值得進一步研究,如重定向不同的四足動物大小和形態,計算生成對抗運動的損失并用于優化,復雜的動態障礙環境下的四足運動控制研究等。
?
最后,附上 GitHub 鏈接:https://github.com/sebastianstarke/AI4Animation
——【完】——
關注AI科技大本營,獲取更多精彩內容添。加小助手csdnai,加入讀者群
總結
以上是生活随笔為你收集整理的模拟狗狗的“魔鬼步伐”,比更真还更真的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: arcgis api for JavaS
- 下一篇: 名片互赞软件(安卓版)