昝曉菲
(北京交通大學 計算機與信息技術學院,北京 100044)
隨著虛擬現實及動畫產業的高速發展,人體運動捕捉技術扮演著越來越重要的角色。然而,由于人體運動捕捉設備價格昂貴、設備的使用對場地及人員的要求過高等因素,人體運動捕捉數據的獲取是一件成本很大、門檻很高的事情。這大大制約了相關產業的發展。人體運動捕捉數據的重用技術則是解決運動數據獲取成本較高的有效手段。通過人體運動捕捉數據的重用技術,可以利用運動數據庫中已經存在的運動捕捉數據生成逼真的新的指定運動序列,從而提高數據的利用率,擺脫運動捕捉設備的限制。
在動畫制作中,虛擬角色的運動往往需要具有鮮明的風格。但是,傳統的人體運動捕捉技術很難滿足眾多的人體運動風格需求;如果依靠動畫師進行人工處理,這項工作也十分繁瑣,需要耗費大量的精力。
本文所研究的人體運動風格轉換這一運動數據重用技術,可以通過計算機自動地將一段普通的運動序列轉換為具有指定的鮮明運動風格的新運動。例如,把一段正常行走的運動序列轉換成具有垂頭喪氣行走風格的運動序列。人體運動非常復雜,人體運動捕捉數據由大量的骨骼關節數據組成,這些對生成自然且符合期望的新運動帶來了很大的挑戰。
本文將功能強大的深度學習網絡應用到人體運動數據重用領域,構建出一個基于深度卷積自編碼器的模型來解決人體運動風格轉換問題。
在人體運動合成領域,Kovar等[1]最早提出運動圖的合成方法。運動圖是由大量的運動數據生成的表示運動數據之間相關關系的一種數據結構。根據用戶的需求可以在所構造的運動圖中搜索最優的運動路徑,最后生成具有獨特風格的新運動。但是,這類方法容易產生腳步滑動、運動不自然等問題。參數化的合成方法可以有效地解決這些問題。Kwon[2]等將運動速度、加速度、落腳點等因素構造為參數,添加到合成模型中。通過這樣的控制可以使新合成的運動大大減少腳步滑動、漂移等問題。Min等[3]使用主成分分析法對運動數據進行降維,得到與人體運動緊密相關的低維參數,然后通過對低維參數的修改達到合成的目的,最后將處理后的數據恢復到原來的空間。
近年來,各種深度學習模型的出現對圖像處理及自然語言處理等領域的發展有很大的推動作用。深度學習模型重要的優點之一就是它可以自動地從數據集中學習到數據的特征,這為數據的編輯和處理提供了新的研究方向。Gatys等[4]利用深度網絡模型分別在隱層提取圖像的風格特征和內容特征,然后通過在隱層的編輯處理,最后可以得到保持原來圖像的內容但風格不同的新圖像。在運動數據重用領域,Taylor等[5]構建出一個受限玻爾茲曼機的模型,通過提取運動的相關參數來進行運動混合,以生成新的運動。Holden等[6]提出一種基于深度網絡框架的模型,該方法通過對大量運動數據的學習得到一個關于數據集的運動特征空間,在特征空間進行特征編輯最后達到運動合成的目的。
運動流形是大量有效的自然運動所構成的一個子空間,它也是由大量人體運動數據提取構造出的特征空間。在本文中,運動流形由深度卷積自編碼器的隱層單元所表示。該隱層單元可以表示運動數據時序與姿態的高度相關性。經此深度卷積自編碼器的隱層單元處理重新生成的運動序列具有生動自然、流暢逼真的特點。
本文使用的人體運動捕捉數據來自于卡內基梅隆大學運動捕捉數據庫(CMU Motion Capture Datebase)[7]。該數據庫共有2605組人體運動序列。其運動數據所對應的人體骨骼架構如圖1所示。為了處理方便,把原來120幀每秒的數據調整為60幀每秒,同時對所有的數據進行歸一化處理。

圖1 人體骨骼架構
為了得到運動的流形空間和提取運動數據的特征,本文構建了一個具有三個隱層的卷積自編碼器[8]。自編碼器的網絡結構如圖2所示。在此卷積網絡中,網絡的每一個隱層都表示了不同層次的運動流形。網絡的L1、L2、L3隱層對應的濾波器的大小分別設置為3063、3064、30128。此卷積自編碼器提供了前向操作和反向操作。前向操作就是自編碼器的編碼過程,把輸入的運動序列X編碼成在隱層空間的值H;反向操作就是自編碼器的解碼過程,把在隱層的值H進行解碼生成運動序列。

圖2 深度卷積自編碼器的網絡結構
在對網絡的每一層進行前向操作時,首先對輸入的數據進行卷積操作;然后再用一維最大池化方法來進行時域約減;最后,再對約減后的數據進行非線性映射操作ReLu[9]。這樣,就得到了運動數據在隱層的運動流形。
對于第k層網絡,給定卷積操作*、最大池化操作Ψ、權重矩陣Wk和偏置bk,前向操作的定義如下式所示:
Φk(X)=ReLu(Ψ(X*Wk+bk))
(1)
其中,矩陣在對每一層進行反向操作時,只需要把前向操作反轉即可。需要特別注意的是反池化操作。在單獨訓練每一層網絡時,反池化操作就是在每個隱層單元所對應的兩個單元中隨機選取一個賦予池化值,然后把另一個單元置零;在最后進行網絡的微調訓練階段或者是使用網絡生成新的運動序列時,反池化操作和平均池化一樣將兩個對應的單元都設為池化值。這樣,新生成的運動序列會更加流暢。
(2)
權重矩陣Kk初始化[10]為一些小的數值,偏置bk初始化為0。
網絡模型的訓練通過輸入的運動序列X經過前向操作和反向操作來完成。訓練分為兩個階段。首先對網絡的每一層進行單獨訓練,然后再對整個網絡進行微調訓練。網絡訓練可以視為一個最優化問題,通過最小化下面的損失函數可以求得網絡對應的參數θ={W,b}。
(3)
在這個式子中,第一項度量的是生成運動序列與輸入運動序列誤差的平方;第二項是對網絡參數數量的限制,用來保證盡可能使用最少數目的參數來構建網絡。
在使用CMU運動捕捉數據庫的2605組運動序列完成網絡的訓練后[11],這些濾波器可以表示運動庫中各種運動的時序與姿態的強相關特征。網絡中隱層的層級越深,得到的這種運動特征就越抽象、越具有概括性。
在進行運動風格轉換時,需要輸入一段具有鮮明運動風格的運動序列,即運動風格序列;同時,還需要輸入期望它的運動風格發生轉換的序列,即運動內容序列。在進行運動風格轉換之后,新生成的運動序列同時具有前者的運動風格和后者的運動內容。因此,在轉換時需要先使用訓練好的深度卷積自編碼器把運動內容序列的內容特征和運動風格序列的風格特征分別提取出來;然后,在深度卷積自編碼器的隱層單元對隨機初始化生成的運動數據建立約束進行訓練;最后,再通過反向操作輸出風格轉換后的新運動序列。
根據深度卷積網絡的特性,運動序列的內容特征可以定義為運動序列在深度卷積網絡中的隱層值。由于池化操作減小了運動數據在時域上的分辨率,所以層級越淺的隱層對運動內容的完成性的保持就越好。由于網絡的層級越深,隱層值所表達的內容就越抽象。所以,層級越深對運動風格的概括性就越好。運動序列的風格特征具體可以使用Gram矩陣來計算。
利用訓練好的深度卷積自編碼器,可以分別提取運動內容序列的內容特征和運動風格序列的風格特征。根據網絡層級與特征的關系,本文使用深度卷積自編碼器的L1隱層也就是最淺的隱層來提取運動序列的內容特征,使用L3隱層也就是最深的隱層來提取運動序列的風格特征。這樣會得到更為準確的內容及風格特征。
對運動風格轉換建立的約束包括運動內容約束和運動風格約束兩個部分。首先,為了避免生成的轉換后的運動序列偏向于運動內容或者是偏向于運動風格,在網絡的L2隱層利用白噪聲初始化得到得隱層值Ht。網絡最后輸出的轉換后的運動序列就是由Ht通過反向操作生成的。對于運動內容約束,即是Ht在L1隱層的值與運動內容序列在L1隱層的值建立的約束。內容約束的定義如下:
(4)

對于風格約束,即是Ht在L3隱層的值與運動風格序列在L3隱層的值建立的約束。風格約束的定義如下:
(5)
其中,Φ3(S)是輸入的運動風格序列由式(1)進行三次前向操作傳到網絡L3隱層的值,Φ3(Ht)是由網絡L2隱層的初始值Ht由式(1)進行一次前向操作傳到網絡L3隱層的值。函數G用來計算格萊姆矩陣,表示為隱層單元的內積。函數G的定義如下式所示:
(6)
其中,H是網絡隱層單元的值。
為了進行運動風格轉換,本文將式(4)中的運動內容約束和式(5)中的運動風格約束合并成整體轉換約束進行訓練。這樣,通過不斷變換L2隱層值Ht使整體轉換約束達到最小。最后,可以得到使整體轉換約束最小時對應的Ht。把Ht進行反向操作就可以得到轉換后的新運動序列。整體轉換約束定義為:
Ltranster=cLcontent+sLstyle
(7)
其中,參數c和s是約束系數,用來調節運動內容和運動風格的相對重要性。在本文中,c和s分別設置為1.00和0.01。
本文的目標是通過深度卷積自編碼器,在運動內容序列的基礎上生成具有另一種風格的新的運動序列。這段新的運動序列同時具有原來的運動內容和指定的運動風格。例如,輸入一段具有老人行走風格的運動序列S作為運動風格序列,再輸入另一段普通行走的運動序列C作為運動內容序列。經過深度卷積自編碼器處理,可以把普通行走的運動序列C轉換成也具有老人行走風格的新運動序列T。
實驗中,分別使用了老人行走風格的運動序列、僵尸行走風格的運動序列、沮喪行走風格的運動序列等分別作為運動風格序列與普通運動序列相結合,把沒有鮮明風格的普通運動序列轉換成了具有不同鮮明風格的新運動序列。部分實驗結果如圖3、圖4、圖5所示。

(a) (b)圖3 老人行走風格轉換

(a) (b)圖4 僵尸行走風格轉換

(a) (b)圖5 沮喪行走風格轉換
圖3(a)是具有老人行走風格的運動序列,圖中的動畫角色以佝僂的姿態慢慢行走;將圖3(b)左側普通的運動序列進行對應的轉換后,生成的圖3(b)右側轉換后的運動序列同樣也具有了老人行走的運動風格。圖4(a)是具有僵尸行走風格的運動序列,圖中的動畫角色手臂伸直、走路搖擺,將圖4(b)右側普通的運動序列進行對應的風格轉換后,生成的圖4(b)左側轉換后的運動序列同樣也具有僵尸行走風格。圖5(a)是具有沮喪風格的運動序列,圖中的角色垂頭喪氣地行走著,將圖5(b)右側的普通運動序列進行對應的風格轉換后,生成的圖5(b)左側轉換后的運動序列同樣也具有明顯的沮喪風格。
風格轉換后的運動序列具有了新的運動風格,同時保留著原來的運動內容,比如運動的類型和運動軌跡。但是,這些運動內容也會發生一些微小的變化。這是因為運動風格的改變會對運動的類型和軌跡帶來影響。具體來說,運動步伐的大小和頻率也是運動風格的一部分,它們的改變會對運動類型和運動軌跡有一定影響。可以通過調節式(7)中c和s的相對大小來調節轉換后的運動序列,通過調節可以使它偏向于特定的運動風格或是特定的運動內容。
本文將近幾年發展迅猛的深度學習技術應用到人體運動捕捉數據重用領域,提出了基于深度卷積自編碼器的運動風格轉換模型。該模型可以有效地實現對運動序列的運動風格的轉換。不同于傳統的人體運動捕捉數據重用技術,該模型在操作時無需對運動數據進行大量的人工處理,具有很高的工作效率。另外,它不僅具有良好的轉換效果,該模型還有著較強的泛化能力。未來將考慮把此模型推廣到視頻人體運動研究領域。