Up主已經(jīng)開始鬼畜,騰訊開源「AniPortrait」讓照片唱歌說(shuō)話
「小破站鬼畜區(qū)的新質(zhì)生產(chǎn)力工具?!?/p>
近日,騰訊開源發(fā)布的一個(gè)新項(xiàng)目在推上獲得了如此評(píng)價(jià)。這個(gè)項(xiàng)目是 AniPortrait,其可基于音頻和一張參考圖像生成高質(zhì)量動(dòng)畫人像。
該項(xiàng)目剛上線幾天,就已經(jīng)收獲了廣泛好評(píng):GitHub Star 數(shù)已經(jīng)突破 2800。
下面我們來(lái)看看 AniPortrait 的創(chuàng)新之處。
- 論文標(biāo)題:AniPortrait: Audio-Driven Synthesis of Photorealistic Portrait Animation
- 論文地址:https://arxiv.org/pdf/2403.17694.pdf
- 代碼地址:https://github.com/Zejun-Yang/AniPortrait?
AniPortrait
騰訊新提出的 AniPortrait 框架包含兩個(gè)模塊:Audio2Lmk 和 Lmk2Video。
Audio2Lmk 的作用是提取 Landmark 序列,其能從音頻輸入捕獲復(fù)雜的面部表情和嘴唇動(dòng)作。Lmk2Video 是利用這種 Landmark 序列來(lái)生成時(shí)間上穩(wěn)定一致的高質(zhì)量人像視頻。
圖 1 給出了 AniPortrait 框架的概況。
Audio2Lmk
對(duì)于一段語(yǔ)音片段序列,這里的目標(biāo)是預(yù)測(cè)對(duì)應(yīng)的 3D 人臉網(wǎng)格序列和姿勢(shì)序列。
該團(tuán)隊(duì)采用了預(yù)訓(xùn)練的 wav2vec 來(lái)提取音頻特征。該模型具有很好的泛化性能,并且可以準(zhǔn)確識(shí)別音頻中的發(fā)音和語(yǔ)調(diào) —— 這對(duì)生成具有真實(shí)感的人臉動(dòng)畫來(lái)說(shuō)至關(guān)重要。通過(guò)利用所獲得的魯棒的語(yǔ)音特征,使用一種包含兩個(gè) fc 層的簡(jiǎn)單架構(gòu)就可以有效地將它們轉(zhuǎn)換成 3D 人臉網(wǎng)格。該團(tuán)隊(duì)觀察到,這種簡(jiǎn)單直接的設(shè)計(jì)不僅能確保準(zhǔn)確度,而且還能提升推理過(guò)程的效率。
在將音頻轉(zhuǎn)換成姿勢(shì)的任務(wù)中,該團(tuán)隊(duì)使用的骨干網(wǎng)絡(luò)依然是同樣的 wav2vec。但是,這一個(gè)網(wǎng)絡(luò)的權(quán)重不同于音頻到網(wǎng)格模塊的網(wǎng)絡(luò)。這是因?yàn)椋鹤藙?shì)與音頻中的節(jié)奏和音調(diào)的關(guān)聯(lián)更加緊密,而音頻到網(wǎng)格任務(wù)關(guān)注的重點(diǎn)(發(fā)音和語(yǔ)調(diào))卻不一樣。為了將之前狀態(tài)的影響納入考量,該團(tuán)隊(duì)采用了一個(gè) transformer 解碼器來(lái)解碼姿勢(shì)序列。在這個(gè)過(guò)程中,該模塊使用交叉注意力機(jī)制將音頻特征整合進(jìn)解碼器。對(duì)于上述兩個(gè)模塊,訓(xùn)練使用的損失函數(shù)都是簡(jiǎn)單的 L1 損失。
在獲得了網(wǎng)格和姿勢(shì)序列之后,再使用透視投影將它們轉(zhuǎn)換為 2D 的人臉 Landmark 序列。這些 Landmark 是下一階段的輸入信號(hào)。
Lmk2Video
給定一張參考人像和一個(gè)人臉 Landmark 序列,該團(tuán)隊(duì)提出的 Lmk2Video 可以創(chuàng)建具有時(shí)間一致性的人像動(dòng)畫。這個(gè)動(dòng)畫過(guò)程是將動(dòng)作與 Landmark 序列對(duì)齊,同時(shí)維持與參考圖像一致的外觀。該團(tuán)隊(duì)采取的思路是將人像動(dòng)畫表示成一個(gè)人像幀構(gòu)成的序列。
Lmk2Video 的這種網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)的靈感來(lái)自 AnimateAnyone。其中的骨干網(wǎng)絡(luò)是 SD1.5,其整合了一個(gè)時(shí)間運(yùn)動(dòng)模塊,能有效地將多幀噪聲輸入轉(zhuǎn)換成一個(gè)視頻幀序列。
另外,他們還使用了一個(gè) ReferenceNet,其同樣采用了 SD1.5 的結(jié)構(gòu),作用是提取參考圖像的外觀信息并將其整合進(jìn)骨干網(wǎng)絡(luò)中。這一策略設(shè)計(jì)可確保人臉 ID 在整個(gè)輸出視頻中保持一致。
不同于 AnimateAnyone,這里提升了 PoseGuider 的設(shè)計(jì)的復(fù)雜性。原來(lái)的版本只是集成了幾個(gè)卷積層,之后 Landmark 特征與骨干網(wǎng)絡(luò)的輸入層的隱含特征融合。而騰訊的這個(gè)團(tuán)隊(duì)發(fā)現(xiàn),這種初級(jí)設(shè)計(jì)無(wú)法捕獲嘴唇的復(fù)雜運(yùn)動(dòng)。因此,他們采用了 ControlNet 的多尺度策略:將相應(yīng)尺度的 Landmark 特征整合進(jìn)骨干網(wǎng)絡(luò)的不同模塊。盡管有這些改進(jìn),但最終模型的參數(shù)數(shù)量依然相當(dāng)?shù)汀?/p>
該團(tuán)隊(duì)還引入了另一項(xiàng)改進(jìn):將參考圖像的 Landmark 用作一個(gè)額外的輸入。PoseGuider 的交叉注意力模塊能促進(jìn)參考 Landmark 和每一幀的目標(biāo) Landmark 之間的互動(dòng)。這一過(guò)程能為網(wǎng)絡(luò)提供額外的線索,使其能夠理解人臉 Landmark 和外觀之間的關(guān)聯(lián),由此可幫助人像動(dòng)畫生成更精準(zhǔn)的動(dòng)作。
實(shí)驗(yàn)
實(shí)現(xiàn)細(xì)節(jié)
Audio2Lmk 階段使用的骨干網(wǎng)絡(luò)是 wav2vec2.0。用于提取 3D 網(wǎng)格和 6D 姿勢(shì)的工具是 MediaPipe。Audio2Mesh 的訓(xùn)練數(shù)據(jù)來(lái)自騰訊的內(nèi)部數(shù)據(jù)集,其中包含接近一個(gè)小時(shí)的來(lái)自單個(gè)說(shuō)話人的高質(zhì)量語(yǔ)音數(shù)據(jù)。
為了確保 MediaPipe 提取出的 3D 網(wǎng)格的穩(wěn)定性,在記錄期間,表演者頭部位置穩(wěn)定并且面向相機(jī)。訓(xùn)練 Audio2Pose 使用的是 HDTF。所有的訓(xùn)練操作都在單臺(tái) A100 上執(zhí)行,使用了 Adam 優(yōu)化器,學(xué)習(xí)率設(shè)置為 1e-5.
Lmk2Video 過(guò)程則采用了一種兩步式訓(xùn)練方法。
起始步驟階段關(guān)注的重點(diǎn)是訓(xùn)練骨干網(wǎng)絡(luò) ReferenceNet 以及 PoseGuider 的 2D 組件,而不管運(yùn)動(dòng)模塊。在后續(xù)步驟,則會(huì)凍結(jié)其它所有組件,專注于訓(xùn)練運(yùn)動(dòng)模塊。為了訓(xùn)練模型,這里使用了兩個(gè)大規(guī)模高質(zhì)量人臉視頻數(shù)據(jù)集:VFHQ 和 CelebV-HQ。所有數(shù)據(jù)都經(jīng)由 MediaPipe 來(lái)提取 2D 人臉 Landmark。為了提升網(wǎng)絡(luò)對(duì)嘴唇運(yùn)動(dòng)的敏感性,該團(tuán)隊(duì)的做法是在根據(jù) 2D Landmark 渲染姿勢(shì)圖像時(shí),給上下唇標(biāo)注不同的顏色。
所有圖像的分辨率都重新調(diào)整成了 512x512。該模型的訓(xùn)練使用了 4 臺(tái) A100 GPU,每一步都耗時(shí) 2 天。優(yōu)化器是 AdamW,學(xué)習(xí)率固定為 1e-5。
實(shí)驗(yàn)結(jié)果
如圖 2 所示,新方法得到的動(dòng)畫在質(zhì)量和真實(shí)度上都非常出色。
此外,用戶還可以編輯其中間的 3D 表征,從而對(duì)最終輸出進(jìn)行修改。舉個(gè)例子,用戶可從某個(gè)源提取 Landmark 并修改其 ID 信息,從而實(shí)現(xiàn)面部重現(xiàn)效果。
更多細(xì)節(jié)請(qǐng)參考原論文。
本文轉(zhuǎn)自 機(jī)器之心 ,作者:機(jī)器之心
