CVPR 2024 | 文本一鍵轉3D數字人骨骼動畫,阿爾伯塔大學提出MoMask框架
想象一下,你僅需要輸入一段簡單的文本描述,就可以生成對應的 3D 數字人動畫的骨骼動作。而以往,這通常需要昂貴的動作捕捉設備或是專業的動畫師逐幀繪制。這些骨骼動作可以進一步的用于游戲開發,影視制作,或者虛擬現實應用。來自阿爾伯塔大學的研究團隊提出的新一代 Text2Motion 框架,MoMask,正在讓這一切變得可能。
MoMask 框架是基于多層離散化動作表示的,利用生成式掩碼技術,能夠生成更高質量的 3D 人體動作。如視頻 1 中展示,MoMask 可以根據文本描述,精細控制生成的動作內容。在 HumanML3D 數據集上,MoMask 的生成質量可達到 FID 為 0.045,超過了現有的最優工作如 T2M-GPT(0.141)和 ReMoDiffuse(0.103)。這項研究成果已被 CVPR 2024 收錄,并且其代碼和模型已在 GitHub 上開源,擁有 500 + 星標。

- 論文題目:MoMask: Generative Masked Modeling of 3D Human Motions
- 論文鏈接:https://arxiv.org/abs/2312.00063
- 代碼鏈接:https://github.com/EricGuo5513/momask-codes
- Huggingface Space 鏈接:https://huggingface.co/spaces/MeYourHint/MoMask
MoMask 模型介紹

圖 2:MoMask 框架結構與訓練流程
MoMask 框架主要包含三個關鍵的神經網絡模塊:
- 殘差量化模型 (Residual VQ-VAE),將人體動作轉換為多層離散的動作標記(Token)。基層(即第一層)的動作標記包含了動作的基本信息,而殘差層則對應更細粒度的動作信息。
- Masked Transformer:對基層的動作標記進行建模,采用隨機比例的隨機掩碼,并根據文本信息預測被掩碼的動作標記,用于生成基層動作標記。
- Residual Transformer:對殘差層的動作標記進行建模,根據前 j 層的動作標記預測第 j 層的動作標記,以此來建模殘差層的動作序列。

圖 3: T2M-GPT 的動作離散化模型 (VQ-VAE)
動作序列離散化。MoMask 采用基于離散表達的生成式框架,首先將連續的動作表達進行離散化。如圖 3,傳統的 VQ-VAE 在量化(Quantization)過程中存在信息損失問題,因為它將每個隱向量替換為碼書(Codebook)中最相近的碼向量,這兩個向量之間的差異導致了信息的丟失。為了解決這個問題,MoMask 采用了多層量化的方法(圖 2.a),逐層對隱向量和碼向量之間的殘差進一步量化,從而提高了隱向量的估計精度。隨著層數加深,每一層所建模的信息量(即殘差)也逐步減少。訓練時,為了盡可能增加每一個量化層的容量,我們隨機丟棄掉末尾的若干個殘差層。最終,動作序列被轉化為多層的離散動作標記,其中基層標記包含了動作的主要內容,而殘差層則用于填補動作的細節。接下來,MoMask 使用 Masked Transformer 生成基層動作標記,并使用 Residual Transformer 逐層預測殘差層的動作標記。
生成式掩碼建模。如圖 2.b,文本描述首先通過 CLIP 編碼成語義向量,同時基層的動作標記序列被隨機掩碼。然后,這些掩碼的動作標記序列和 CLIP 文本向量一起輸入到 Transformer 中進行訓練,其目標是準確預測被掩碼掉的動作標記。與以往基于掩碼的預訓練模型不同的是,這里掩碼標記的比例是隨機的,并且可以在 0 到 1 的區間取值,這意味著掩碼的程度也是隨機的。最壞情況下,所有標記都被掩碼,而最好情況下,所有標記都被保留。
殘差層標記預測。由于殘差層包含了更細粒度的動作信息,因此根據前面 j > 1 層的動作標記內容,可以基本確定第 j 層的動作標記。在訓練時,隨機選擇一個殘差層 j 進行預測,將已知的前 j 層的動作標記、CLIP 文本向量以及第 j 層的編碼輸入到 Transformer 中,使用交叉熵損失函數來優化模型。

圖 4: MoMask 推斷流程
生成過程。圖 4 描述了 MoMask 框架中的生成過程。從基層的動作標記序列開始,所有的動作標記都被掩碼,然后通過 Masked Transformer 進行預測,得到完整的標記序列。接著,僅置信度最高的一部分標記被保留,剩下的標記將被重新掩碼(Remask),并重新預測。通過一個預設的調度函數 (Schedule function),在經過一定次數的掩碼與預測后,得到最終的基層動作標記序列。然后,Residual Transformer 根據基層的標記序列,逐層地預測殘差層的標記序列。最終,所有標記序列被輸入到 RVQ-VAE 的解碼器中,并解碼獲得對應的動作序列。因此,無論動作序列的長度為多少,MoMask 只需要固定步數去生成該序列。通常情況下,MoMask 僅需要進行不超過 20 步的迭代,包括基礎與殘差層的生成。
實驗結果
在視頻 2 中,MoMask 與其他三個基線方法進行了對比,包括主流的擴散模型(MDM、MLD)和 GPT 模型(T2M-GPT)。MoMask 在應對挑戰性動作(如絆腳和抱腳)以及更精細的文本控制方面表現更出色。
在下表中,我們對 MoMask 在 HumanML3D 和 KIT-ML 數據集上的性能進行了更全面的分析。可以看出,MoMask 框架在 R-Precision 和 FID 等指標上始終表現最優,在 HumanML3D 數據集上,生成質量達到了 FID 為 0.045。

圖 5 展示了 Masked Transformer 推斷步數對生成動作的整體質量影響,其中 FID 和 MM-Dist 分別指示了動作生成質量以及動作與文本內容的匹配程度,值越低代表性能越好。從圖中可以看出,僅需要進行 10 步推斷,生成質量就可以收斂到最優水平。

圖 5: 推斷步數對生成質量影響
應用:動作時序補齊
MoMask 還可用于動作序列的時序補齊,即根據文本對動作序列指定的區間進行編輯或修改。在視頻 3 中,展示了基于 MoMask 對動作序列的前綴、中間部分和后綴,根據給定的文本進行內容補齊。
本文轉自 機器之心 ,作者:機器之心

















