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