一張圖生成舞蹈視頻!字節等發布黑科技X-Dancer:零樣本音樂驅動,真實感碾壓3D方案
論文鏈接:https://arxiv.org/pdf/2502.17414
亮點直擊
- 一種基于Transformer-Diffusion的新型音樂到舞蹈人體圖像動畫方法,在運動多樣性、表現力、音樂對齊和視頻質量方面達到了最先進的性能。
- 一種跨模態Transformer模型,通過使用帶有關鍵點置信度的全身2D人體姿態的多尺度tokenization方案,捕捉與音樂特征同步的長距離舞蹈動作。
- 一種基于擴散的人體圖像動畫模型,能夠解釋時間姿態tokens并將其轉化為一致的高分辨率視頻輸出。
- 展示了引人入勝的零樣本音樂驅動人體圖像動畫,以及具有特色的編舞生成。
解決的問題
- 生成平滑、多樣的全身舞蹈動作:傳統方法主要生成3D人體動作,受限于數據集多樣性和3D姿態估計的準確性,難以捕捉到與音樂節奏復雜同步的細膩動作。
- 將生成的動作轉化為高質量視頻:需要將生成的身體動作轉化為高保真視頻,保持與參考圖像的視覺一致性,并確保時間上的平滑性。
提出的方案
- X-Dancer框架:提出了一種新穎的零樣本音樂驅動圖像動畫pipeline,能夠從單張靜態圖像生成多樣且長距離的逼真人體舞蹈視頻。
- 統一Transformer-Diffusion框架:結合自回歸Transformer模型和擴散模型,前者生成與音樂同步的2D身體、頭部和手部姿態的擴展tokens序列,后者生成連貫且逼真的舞蹈視頻幀。
應用的技術
- 自回歸Transformer模型:用于生成與音樂同步的舞蹈姿態tokens序列,結合全局注意力機制捕捉音樂風格和先前的運動上下文。
- 擴散模型:通過AdaIN(自適應實例歸一化)將生成的姿態tokens動畫化參考圖像,形成完全可微分的端到端框架。
- 多部分tokenization方案:對每幀2D全身姿態進行多部分tokenization,結合關鍵點置信度捕捉多尺度人體動作。
- 跨模態Transformer:訓練一個跨模態Transformer,自回歸預測未來N幀的姿態tokens,與每幀音樂特征配對。
達到的效果
- 多樣性和表現力:X-Dancer能夠生成多樣且具有表現力的舞蹈視頻,顯著優于現有方法在多樣性、表現力和逼真度方面的表現。
- 高分辨率和逼真視頻:通過擴散模型生成高分辨率、逼真的視頻,保持與參考圖像的視覺一致性和時間平滑性。
- 可擴展性和定制能力:展示了在不同模型和數據規模上的可擴展性,并能夠微調到特定的編舞。
方法
數據表示
在訓練中,對視頻進行以人為中心的裁剪,生成統一分辨率為896×512的圖像,涵蓋半身到全身的舞蹈。首先建立音樂與人體舞蹈動作之間的關聯,而不是直接在音樂條件下捕捉復雜的像素級運動,從而指導最終的視覺合成。
基于Transformer的音樂到舞蹈動作生成
給定一組單目、單人、音樂同步的舞蹈視頻及其配對的2D全身姿態檢測數據,目標是建模骨骼舞蹈動作與音樂特征之間復雜且非線性的關聯。為此,首先引入了一種組合式的、置信度感知的VQ-VAE(向量量化變分自編碼器),以捕捉不同身體部位的多樣化且細膩的人體舞蹈姿態。接著,利用類似GPT的Transformer自回歸地預測未來的姿態tokens,建模tokens空間中的時間運動過渡,并將其與同步的音樂嵌入對齊。
使用以下損失函數同時訓練編碼器、解碼器和組合codebook:
本文通過兩種方式構建身體部位之間的交叉條件:(1) 當前運動tokens以所有身體部位的所有先前運動信息為條件,確保部位間的時間一致性;(2) 通過將身體部位按上半身、下半身、頭部和手部排序,我們建立了從主要部位(上半身/下半身)到更精細的高頻運動(頭部和手部)的層次依賴關系。由于每個身體部位的姿態由少量tokens表示,我們通過實驗觀察到,因果注意力足以建模每個部位內的下一個tokens分布。這種建模策略保持了每個身體部位的整體運動一致性,生成具有表現力和合理性的舞蹈動作。
本文的GPT模型通過監督訓練優化,使用下一個tokens概率的交叉熵損失。值得注意的是,由于我們的姿態tokenization包含相關的關鍵點置信度,Transformer還學會了建模置信度的時間變化(例如由運動模糊和遮擋引起的),從而能夠捕捉視頻中觀察到的更真實的運動分布。
基于擴散的舞蹈視頻合成
利用本文訓練的Transformer模型生成的運動tokens序列,采用擴散模型來合成高分辨率、逼真的人體舞蹈視頻,條件為生成的運動和給定的參考圖像。為此,利用預訓練的T2I擴散主干,并加入額外的時間模塊以提高跨幀一致性并確保時間平滑性。為了傳遞參考圖像的上下文,一個參考網絡(作為主干UNet的可訓練副本)提取身份外觀和背景的參考特征,這些特征由主干UNet內的自注意力機制交叉查詢。運動控制通過一個附加模塊實現,通常配置為ControlNet或輕量級PoseGuider,將運動條件轉換為2D空間引導,添加到UNet特征中。
為了將生成的運動tokens納入人體圖像動畫,一種方法是利用訓練好的VQ-VAE解碼器 將姿態tokens解碼為關鍵點坐標,然后可視化為2D骨架圖以進行運動條件化。這些骨架圖可以通過PoseGuider模塊為最終的擴散合成提供運動指導。雖然這種方法在一定程度上有效,但由于骨架圖的可視化引入了不可微分的過程,阻礙了端到端訓練,并通常導致關鍵點置信度信息的丟失。此外,由于時間模塊是在真實視頻數據上訓練的,其中姿態序列通常是平滑的,它可能在推理時難以處理由Transformer模型生成的抖動或不一致的運動。
本文引入了一種可訓練的運動解碼器,以隱式且直接地將1D姿態tokens轉換為2D空間引導,而不是將運動tokens顯式轉換為2D骨架圖作為姿態引導條件。該解碼器從可學習的2D特征圖開始,通過AdaIN層注入包含關鍵點置信度的1D姿態tokens序列,逐步將該特征圖上采樣為與去噪UNet特征分辨率對齊的多尺度特征圖。運動解碼器與時間模塊一起在16幀序列窗口內訓練,有效地將tokens序列解碼為連續的姿態引導,整合了相鄰幀的時間上下文。此外,通過在訓練中引入參考圖像上下文,我們通過實驗觀察到,與基于骨架的姿態引導器相比,合成的姿態引導保留了最少的身份和身體形狀信息,使生成的運動tokens能夠無縫適應具有不同身體形狀和外觀的角色。
實驗
實現細節
數據集:本文的模型在一個精心策劃的視覺-音頻數據集上訓練,該數據集包含107,546段單目錄制的人體舞蹈表演視頻,涵蓋室內和室外場景,平均剪輯時長為30秒。每段視頻被裁剪為896×512分辨率,并以30幀每秒(fps)重新采樣,涵蓋了從半身到全身的各種舞蹈風格,展示了不同身體形狀和外觀的個體。
訓練:本文的完整流程分為三個階段進行訓練。首先,訓練一個多部位姿態VQ-VAE,將60個關節坐標(包含關鍵點置信度分數)編碼并量化為5個部位的姿態tokens。每個身體部位的姿態使用6個tokens,每個token對應一個包含512個條目的6維嵌入codebook。該VQ-VAE訓練了40,000步,批量大小為2048,學習率為2×10??。接下來,訓練一個自回歸模型用于姿態tokens預測,訓練300,000步,使用預訓練的GPT-2模型權重初始化,批量大小為24,學習率為1×10??。該模型使用64幀的姿態序列進行訓練,上下文窗口總共有2224個tokens,從而在推理時通過滑動片段生成擴展的舞蹈動作。在最后的擴散階段,我們使用視頻中隨機選擇的兩幀微調去噪UNet和ReferenceNet,然后聯合訓練運動引導解碼器和時間模塊,使用連續16幀的擴散損失。擴散階段訓練了90,000步,學習率為1×10??,批量大小為16。所有階段均在8塊A100 GPU上使用AdamW優化器進行訓練。
推理:在推理時,從參考圖像姿態編碼的姿態tokens開始自回歸舞蹈動作生成,保持與指定身體形狀一致的骨架一致性。擴展的舞蹈序列以64幀的滑動片段生成,重疊12幀,同時從先前生成的運動中均勻采樣8幀作為全局運動上下文。使用完整的生成姿態tokens序列,同時合成所有視頻幀,并應用提示傳播以提高時間平滑性。
評估與比較
據我們所知,目前沒有現成的方法可以從單張人體圖像生成音樂驅動的2D視頻。為了進行基線比較,調整并組合了現有模型以創建兩個基線。首先,調整了基于音頻驅動的擴散肖像動畫模型Hallo,通過用我們的音樂嵌入替換其音頻特征,并通過交叉注意力模塊為人體圖像生成動畫。對于第二個基線,利用3D音樂到舞蹈生成模型(如Bailando和EDGE)進行運動合成,將其輸出投影為2D骨架圖,然后輸入到帶有姿態引導器的擴散模型中以進行受控的圖像動畫。注意到,在提交時,AIST數據集因維護而不可用,因此無法在與Bailando和EDGE相同的數據集上訓練本文的模型。在AIST++的測試集(40個視頻)以及我們策劃的音樂視頻數據集的測試集(230個視頻)上對所有模型進行了單獨評估。
定量評估從運動生成和視頻合成的質量兩方面與基線方法進行了數值比較。計算生成舞蹈動作與真實訓練序列之間的Fr ?echet視頻距離(FVD),以評估運動保真度。對于運動多樣性,計算生成姿態特征的分布范圍(DIV),生成的運動應盡量匹配真實分布的分數,而不是最大化其絕對值。為了數值評估音樂與生成舞蹈姿態之間的對齊性,本文遵循[21, 32]的方法,通過計算每個音樂節拍與其最接近的舞蹈節拍之間的平均時間距離來測量節拍對齊分數(BAS)。這些評估在2D姿態空間中進行,將Bailando和EDGE的3D骨架運動投影到2D,并從重新訓練的Hallo模型中檢測合成視頻的姿態。如表1所示,本文的方法在運動保真度(FVD)方面優于所有基線方法,同時在音樂節拍對齊(BAS)和多樣性(DIV)方面達到第二好的成績。值得注意的是,EDGE是在專業舞者的序列上訓練的,而我們的數據集包含日常個體的視頻,這反映在真實視頻的節拍對齊分數中。盡管如此,本文的方法在節拍對齊方面顯著優于在AIST++上訓練的Bailando和在我們策劃的數據集上訓練的Hallo。Hallo將運動生成和視頻合成耦合在一起,其DIV分數高于X-Dancer,主要是由于其極其嘈雜的視頻輸出導致姿態投影后的骨架運動抖動和混亂。
為了評估視頻合成的保真度,測量了真實舞蹈視頻與生成舞蹈視頻之間的FVD和FID-VID分數。此外,使用ArcFace分數評估身份保持能力,該分數測量面部身份特征的余弦相似度(ID-SIM)。所有指標均在我們的測試視頻數據集上評估。作為額外基線,將EDGE和Bailando中的運動生成器替換為我們訓練的Transformer模型,并使用姿態引導器生成動畫。如下表2所示,本文的方法在視覺質量和身份保持方面表現最佳,這歸因于我們將運動生成和視頻合成解耦的設計(與Hallo相比),以及使用隱式運動tokens解碼器而非顯式姿態引導器。
定性比較在下圖3中展示了本文的方法與基線方法的視覺比較。修改后的Hallo代表了一個端到端的擴散pipeline,直接合成最終視頻而無需中間運動生成。然而,它表現出明顯的偽影,特別是在大范圍關節身體運動中,并且經常無法保持人體關節拓撲結構。Bailando和EDGE在3D空間中生成身體運動,未考慮場景上下文或參考圖像中的人體形狀。盡管在姿態引導器輸入中對骨架對齊進行了后處理,這些方法仍然難以解決顯著的身份和形狀失真問題,通常會產生與背景場景不自然的交互。此外,它們沒有建模頭部和手部運動,導致舞蹈動作比X-Dancer更僵硬且表現力不足。
針對特定編舞的微調雖然本文的方法作為零樣本pipeline運行,能夠無縫泛化到新的參考圖像和音樂輸入,但它也可以通過僅使用少量樣本舞蹈視頻進行微調,以生成特定編舞。這種適應性對于像EDGE和Bailando這樣的3D運動生成模型具有挑戰性,因為它們需要大量努力來創建3D舞蹈動作。如下圖4所示,本文的方法在使用來自不同表演者的僅30個舞蹈視頻進行微調后,成功捕捉并模仿了特定的編舞,展示了其在適應特定舞蹈風格方面的效率和多功能性。
消融實驗
本文通過從完整訓練pipeline中系統地移除各個設計組件來進行消融實驗。首先,評估了多部位VQ-VAE在捕捉細膩且富有表現力的人體運動方面的有效性。與單部位全身VQ-VAE相比,本文的方法在每關節的L1重建誤差上顯著降低(0.5像素 vs. 0.83像素),在手部(0.4像素 vs. 0.64像素)和頭部(0.42像素 vs. 0.52像素)方面表現出明顯改進。這種改進轉化為擴散模型中更優的運動多樣性、表現力和控制精度,如補充材料中的定量指標和視覺示例所示。接下來,評估了全局音樂和運動上下文對運動生成的影響。如下表3所示,這兩種上下文都有助于生成更一致、合理且與音樂同步的運動。
通過擴展模型參數和數據集規模,進一步分析了2D運動建模和基于Transformer的自回歸生成的優勢。在所有指標中,觀察到隨著訓練參數從117M(GPT-small)增加到345M(GPT-medium),以及數據規模從10k視頻增加到100k視頻,性能顯著提升,這凸顯了單目舞蹈視頻數據在我們架構中的可擴展性潛力,并為進一步的性能改進提供了方向。在前面表2中,將基于tokens的運動引導與AdaIN方法與顯式解碼骨架圖的姿態引導器進行了比較。本文的方法由于時間運動上下文的存在,減少了運動抖動并增強了時間一致性,同時展示了更優的身份和身體形狀保持能力,如補充視頻中所示。
結論
X-Dancer,一種新穎的框架,將自回歸Transformer與擴散模型相結合,從單張參考圖像生成高質量的音樂驅動人體舞蹈視頻。與之前的工作不同,X-Dancer在2D空間中建模和生成舞蹈動作,利用單目舞蹈視頻中廣泛可訪問的2D姿態來捕捉多樣化且富有表現力的全身運動。本文的方法在視頻質量、運動多樣性和表現力方面達到了最先進的水平,為創建生動且與音樂同步的舞蹈視頻提供了可擴展且適應性強的解決方案,適用于各種人體形態和風格。
局限性與未來工作:本文的模型僅在從互聯網上策劃的真實人體日常舞蹈視頻上訓練,這些視頻可能存在噪聲,且舞蹈動作可能缺乏專業舞者視頻中的精確性。因此,域外的人體圖像可能導致渲染偽影,生成的舞蹈動作有時可能與音樂不完全對齊。雖然我們設計了端到端可訓練且可擴展的pipeline,但由于內存限制,目前分階段實現。未來的工作將探索大規模、多機訓練,以進一步提高性能和效率。
本文轉自AI生成未來 ,作者:AI生成未來
原文鏈接:??https://mp.weixin.qq.com/s/7Aq4gVv2z33Dms-ZyqKqHQ??
