機器之心報道
編輯:杜偉、陳萍
酷炫的神經動作合成技術,單個序列就能完成。
生成逼真且多樣化的人體動作是計算機圖形學的長期目標。對于動作建模和合成來說,研究者通常使用概率模型來捕獲有限的局部變化或利用動作捕捉(mocap)獲得的大型動作數據集。在階段設置(stage-setting)和后期處理(例如,涉及手動數據清理)中,使用動作捕捉系統捕獲數據的成本很高,并且動作數據集通常是有限制的,即它們缺乏所需的骨骼結構、身體比例或樣式。利用動作數據集通常需要復雜的處理,例如重新定位,這可能會在原始捕獲的動作中引入錯誤。
近日,來自蘇黎世聯邦理工學院、谷歌、芝加哥大學等機構的研究者開發了一個框架 GANimator,該框架能夠產生不同且逼真的動作,只使用一個單一的訓練序列。這一框架大大簡化了數據收集過程,同時允許創建逼真的動作變化,還可以準確地捕捉單獨動作序列細節。該研究入選 SIGGRAPH 2022。
論文地址:https://arxiv.org/pdf/2205.02625.pdf 項目地址:https://peizhuoli.github.io/ganimator/我們先來看如下效果圖,左邊輸入的是單個動作序列,右邊是生成結果:
GANimator 框架也可以處理動物類的輸入:
群體動畫。GANimator 框架訓練了一個單一的螃蟹舞蹈序列,可以生成各種新穎的運動:
GANimator 框架也可以混合不同的序列,生成一個動作序列:
上述示例說明 GANimator 框架是生成新動作的有效工具,它可以僅使用短動作序列作為輸入來合成較長、多樣和高質量的動作序列。
方法概覽
研究者提出的生成模型可以從單個動作序列中學習,采用的方法受到了圖像領域最近使用漸進式生成的工作以及在單個示例上訓練深度網絡的工作的啟發。接下來詳細介紹分層框架、動作表征和訓練流程的主要構建塊。
動作表征
研究者通過一個姿勢的時序集來表征動作序列,該時序集由足部關節位移 O ? R^×3 和關節旋轉 R ? R^×組成,其中表示關節數,表示旋轉特征數。
為了減少常見的足部滑動偽影,研究者在表征中加入了足部接觸標簽。并且,為了簡化注釋,他們還將連接特征的度量空間表示成了 M_ ≡ R^×( ++3)。
漸進式動作生成架構
研究者提出的動作生成框架如下圖 2 所示。該框架由個粗放到精細(coarse-to-fine)對抗生成網絡組成,每個負責生成具有特定幀數 {_ }^_=1 的動作序列。
第一層負責純生成,也即_1 將隨機噪聲_1 ? M__1 映射為粗放動作序列,如下公式(1)所示。
然后,更精細層_ (2 ≤ ≤ ) 中的生成器通過如下公式(2)漸進式地采樣 Q_1。
重復上述過程,直到最精細輸出序列 Q_ ? M__通過_生成。
網絡構建塊
首先是生成器。研究者采用的生成器_包含一個全卷積神經網絡_ (·),該網絡由具有一些骨骼感知卷積層和其后的非線性層。由于該網絡的主要作用是添加缺失的高頻細節,因此他們使用殘差結構,因此對于 2 ≤ ≤ ,得到如下公式(4)。
下圖為 3 則為生成器架構概覽。
其次是鑒別器。雖然經典 GAN 架構中的鑒別器輸出單個標量,指示輸入被分類為「真」或「假」。但對于訓練數據中單個序列的情況,這種結構會導致模式崩潰,原因是生成器通常過擬合序列。
最后是骨骼感知算子。研究者采用骨骼感知卷積作為框架基礎構建塊。骨骼感知算子需要一個由一組關節(頂點)和臨接表(邊)定義的固定骨骼拓撲。由于網絡在單個序列上運行,他們調整該拓撲以匹配輸入序列。這允許在任何骨骼拓撲上操作,并且不需要將輸入動作重新定位到特定的骨骼結構。
損失函數
對抗性損失。研究者使用 WGAN-GP 損失來訓練層,如下公式(5)所示。
重建損失。為了確保網絡生成涵蓋所有不同時序 patch 的變化,并且生成特定動作子集時不會崩潰,研究者要求網絡從一組預定義的噪聲信號 {^?_ }^_=1 中重建輸入動作。為了鼓勵系統這樣做,他們重新定義了重建損失,如下公式(6)所示。
接觸一致性損失。由于準確的足部接觸是保證動作質量的主要因素之一,研究者在框架中預測足部接觸標簽并使用 IK 后處理來確保接觸。由于關節接觸標簽 L 被集成到動作表征 M 中,骨骼感知網絡可以直接在 M 上操作并學習將接觸標簽預測為動作的一部分。
研究者注意到,接觸標簽的隱式學習可以導致激活和非激活接觸標簽轉換過程中產生偽影。因此,他們提出了一種新的損失來鼓勵接觸標簽和足部速度之間的一致性。具體地,研究者要求在每一幀中通過如下公式(7)最小化接觸標簽或足部速度。
訓練
用于訓練的完整損失如下公式(8)所示。
為了提升結果的穩健性和質量,研究者將每兩個連續層組合成一個塊并逐塊地訓練框架。
實驗結果
下圖 4 展示了動作序列外推能力,并與 acRNN 和經典統計模型 MotionTexture 進行了比較:可以看出,GANimator 產生了全局結構變化,姿態和過渡看起來很自然。
下表 1 為 GANimator 與 MotionTexture 和 acRNN 定量比較結果。可以看出,acRNN 由于收斂于靜態位姿,覆蓋范圍有限,而 GANimator 生成的動作很好地覆蓋了訓練序列。此外,GANimator 模型在生成可信動作和保持多樣性之間取得了良好的平衡。
下圖展示了該模型使用兩個序列進行訓練。第一個序列(左)包含相對靜態動作,第二個序列(右)包含較大的動作。該研究在相應的序列中可視化生成的結果(藍色)及其修補后的最近鄰(綠色)的骨骼動畫??梢钥闯?,生成的結果包含來自兩個訓練序列的內容(參見上述生成大象的動圖)。
下圖展示了該研究生成結果與輸入內容相同,同時生成結果更逼真,例如人走路時手肘位置較高。
責任編輯:Rex_08