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