CVPR 2024 | 文本一鍵轉(zhuǎn)3D數(shù)字人骨骼動畫,阿爾伯塔大學(xué)提出MoMask框架
想象一下,你僅需要輸入一段簡單的文本描述,就可以生成對應(yīng)的 3D 數(shù)字人動畫的骨骼動作。而以往,這通常需要昂貴的動作捕捉設(shè)備或是專業(yè)的動畫師逐幀繪制。這些骨骼動作可以進(jìn)一步的用于游戲開發(fā),影視制作,或者虛擬現(xiàn)實應(yīng)用。來自阿爾伯塔大學(xué)的研究團隊提出的新一代 Text2Motion 框架,MoMask,正在讓這一切變得可能。
MoMask 框架是基于多層離散化動作表示的,利用生成式掩碼技術(shù),能夠生成更高質(zhì)量的 3D 人體動作。如視頻 1 中展示,MoMask 可以根據(jù)文本描述,精細(xì)控制生成的動作內(nèi)容。在 HumanML3D 數(shù)據(jù)集上,MoMask 的生成質(zhì)量可達(dá)到 FID 為 0.045,超過了現(xiàn)有的最優(yōu)工作如 T2M-GPT(0.141)和 ReMoDiffuse(0.103)。這項研究成果已被 CVPR 2024 收錄,并且其代碼和模型已在 GitHub 上開源,擁有 500 + 星標(biāo)。
- 論文題目: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 框架結(jié)構(gòu)與訓(xùn)練流程
MoMask 框架主要包含三個關(guān)鍵的神經(jīng)網(wǎng)絡(luò)模塊:
- 殘差量化模型 (Residual VQ-VAE),將人體動作轉(zhuǎn)換為多層離散的動作標(biāo)記(Token)。基層(即第一層)的動作標(biāo)記包含了動作的基本信息,而殘差層則對應(yīng)更細(xì)粒度的動作信息。
- Masked Transformer:對基層的動作標(biāo)記進(jìn)行建模,采用隨機比例的隨機掩碼,并根據(jù)文本信息預(yù)測被掩碼的動作標(biāo)記,用于生成基層動作標(biāo)記。
- Residual Transformer:對殘差層的動作標(biāo)記進(jìn)行建模,根據(jù)前 j 層的動作標(biāo)記預(yù)測第 j 層的動作標(biāo)記,以此來建模殘差層的動作序列。
圖 3: T2M-GPT 的動作離散化模型 (VQ-VAE)
動作序列離散化。MoMask 采用基于離散表達(dá)的生成式框架,首先將連續(xù)的動作表達(dá)進(jìn)行離散化。如圖 3,傳統(tǒng)的 VQ-VAE 在量化(Quantization)過程中存在信息損失問題,因為它將每個隱向量替換為碼書(Codebook)中最相近的碼向量,這兩個向量之間的差異導(dǎo)致了信息的丟失。為了解決這個問題,MoMask 采用了多層量化的方法(圖 2.a),逐層對隱向量和碼向量之間的殘差進(jìn)一步量化,從而提高了隱向量的估計精度。隨著層數(shù)加深,每一層所建模的信息量(即殘差)也逐步減少。訓(xùn)練時,為了盡可能增加每一個量化層的容量,我們隨機丟棄掉末尾的若干個殘差層。最終,動作序列被轉(zhuǎn)化為多層的離散動作標(biāo)記,其中基層標(biāo)記包含了動作的主要內(nèi)容,而殘差層則用于填補動作的細(xì)節(jié)。接下來,MoMask 使用 Masked Transformer 生成基層動作標(biāo)記,并使用 Residual Transformer 逐層預(yù)測殘差層的動作標(biāo)記。
生成式掩碼建模。如圖 2.b,文本描述首先通過 CLIP 編碼成語義向量,同時基層的動作標(biāo)記序列被隨機掩碼。然后,這些掩碼的動作標(biāo)記序列和 CLIP 文本向量一起輸入到 Transformer 中進(jìn)行訓(xùn)練,其目標(biāo)是準(zhǔn)確預(yù)測被掩碼掉的動作標(biāo)記。與以往基于掩碼的預(yù)訓(xùn)練模型不同的是,這里掩碼標(biāo)記的比例是隨機的,并且可以在 0 到 1 的區(qū)間取值,這意味著掩碼的程度也是隨機的。最壞情況下,所有標(biāo)記都被掩碼,而最好情況下,所有標(biāo)記都被保留。
殘差層標(biāo)記預(yù)測。由于殘差層包含了更細(xì)粒度的動作信息,因此根據(jù)前面 j > 1 層的動作標(biāo)記內(nèi)容,可以基本確定第 j 層的動作標(biāo)記。在訓(xùn)練時,隨機選擇一個殘差層 j 進(jìn)行預(yù)測,將已知的前 j 層的動作標(biāo)記、CLIP 文本向量以及第 j 層的編碼輸入到 Transformer 中,使用交叉熵?fù)p失函數(shù)來優(yōu)化模型。
圖 4: MoMask 推斷流程
生成過程。圖 4 描述了 MoMask 框架中的生成過程。從基層的動作標(biāo)記序列開始,所有的動作標(biāo)記都被掩碼,然后通過 Masked Transformer 進(jìn)行預(yù)測,得到完整的標(biāo)記序列。接著,僅置信度最高的一部分標(biāo)記被保留,剩下的標(biāo)記將被重新掩碼(Remask),并重新預(yù)測。通過一個預(yù)設(shè)的調(diào)度函數(shù) (Schedule function),在經(jīng)過一定次數(shù)的掩碼與預(yù)測后,得到最終的基層動作標(biāo)記序列。然后,Residual Transformer 根據(jù)基層的標(biāo)記序列,逐層地預(yù)測殘差層的標(biāo)記序列。最終,所有標(biāo)記序列被輸入到 RVQ-VAE 的解碼器中,并解碼獲得對應(yīng)的動作序列。因此,無論動作序列的長度為多少,MoMask 只需要固定步數(shù)去生成該序列。通常情況下,MoMask 僅需要進(jìn)行不超過 20 步的迭代,包括基礎(chǔ)與殘差層的生成。
實驗結(jié)果
在視頻 2 中,MoMask 與其他三個基線方法進(jìn)行了對比,包括主流的擴散模型(MDM、MLD)和 GPT 模型(T2M-GPT)。MoMask 在應(yīng)對挑戰(zhàn)性動作(如絆腳和抱腳)以及更精細(xì)的文本控制方面表現(xiàn)更出色。
在下表中,我們對 MoMask 在 HumanML3D 和 KIT-ML 數(shù)據(jù)集上的性能進(jìn)行了更全面的分析??梢钥闯?,MoMask 框架在 R-Precision 和 FID 等指標(biāo)上始終表現(xiàn)最優(yōu),在 HumanML3D 數(shù)據(jù)集上,生成質(zhì)量達(dá)到了 FID 為 0.045。
圖 5 展示了 Masked Transformer 推斷步數(shù)對生成動作的整體質(zhì)量影響,其中 FID 和 MM-Dist 分別指示了動作生成質(zhì)量以及動作與文本內(nèi)容的匹配程度,值越低代表性能越好。從圖中可以看出,僅需要進(jìn)行 10 步推斷,生成質(zhì)量就可以收斂到最優(yōu)水平。
圖 5: 推斷步數(shù)對生成質(zhì)量影響
應(yīng)用:動作時序補齊
MoMask 還可用于動作序列的時序補齊,即根據(jù)文本對動作序列指定的區(qū)間進(jìn)行編輯或修改。在視頻 3 中,展示了基于 MoMask 對動作序列的前綴、中間部分和后綴,根據(jù)給定的文本進(jìn)行內(nèi)容補齊。
本文轉(zhuǎn)自 機器之心 ,作者:機器之心
