只需一張照片,和一段音頻,就能直接生成人物說話的視頻!
近日,來自Google的研究人員發布了多模態擴散模型VLOGGER,讓我們朝著虛擬數位人又邁進了一步。
論文地址:https://enriccorona.github.io/vlogger/paper.pdf
VLOGGER接收單一輸入影像,使用文字或音訊驅動,產生人類說話的視頻,包括口型、表情、肢體動作等都非常自然。
我們先來看幾個例子:
如果感覺影片使用別人的聲音有點違和,小編幫你關掉聲音:
可以看出整個生成的效果是非常優雅自然的。
VLOGGER建立在最近生成擴散模型的成功之上,包括一個將人類轉成3D運動的模型,以及一個基於擴散的新架構,用於透過時間和空間控制,增強文本生成圖像的效果。
VLOGGER可以產生可變長度的高品質視頻,並且這些視頻可以透過人臉和身體的高級表示輕鬆控制。
例如我們可以讓生成影片中的人閉上嘴:
或閉上雙眼:
與先前的同類模型相比,VLOGGER不需要針對個體進行訓練,不依賴於面部檢測和裁剪,而且包含了肢體動作、軀幹和背景,——構成了可以交流的正常的人類表現。
AI的聲音、AI的表情、AI的動作、AI的場景,人類開始的價值是提供數據,再往後可能就沒什麼價值了?
在資料方面,研究人員收集了一個新的、多樣化的資料集MENTOR,比之前的同類資料集大了整整一個數量級,其中訓練集包括2200小時、800000個不同個體,測試集為120小時、4000個不同身分的人。
研究人員在三個不同的基準上評估了VLOGGER,顯示模型在影像品質、身分保存和時間一致性方面達到了目前的最優。
VLOGGER
如上圖所示,給定第1列所示的單一輸入影像和一個範例音訊輸入,右列中展示了一系列合成影像。
包括生成頭部運動、凝視、眨眼、嘴唇運動,還有以前模型做不到的一點,生成上半身和手勢,這是音頻驅動合成的一大進步。
VLOGGER採用了基於隨機擴散模型的兩階段管道,用於模擬從語音到視訊的一對多映射。
第一個網路將音訊波形作為輸入,以產生身體運動控制,負責目標視訊長度上的凝視、臉部表情和姿勢。
第二個網路是一個包含時間的圖像到圖像的平移模型,它擴展了大型圖像擴散模型,採用預測的身體控制來產生相應的幀。為了使這個過程符合特定身份,網路獲取了目標人的參考圖像。
VLOGGER使用基於統計的3D身體模型,來調節視訊生成過程。給定輸入影像,預測的形狀參數對目標標識的幾何屬性進行編碼。
首先,網路M獲取輸入語音,並產生一系列N幀的3D面部表情和身體姿勢。
然後渲染移動3D身體的密集表示,以在視訊生成階段充當2D控制。這些影像與輸入影像一起作為時間擴散模型和超解析度模組的輸入。
管道的第一個網路旨在根據輸入語音預測運動。此外也透過文字轉語音模型將輸入文字轉換為波形,並將產生的音訊表示為標準梅爾頻譜圖(Mel-Spectrograms)。
管道基於Transformer架構,在時間維度上有四個多頭注意力層。包括幀數和擴散步長的位置編碼,以及用於輸入音頻和擴散步驟的嵌入MLP。
在每一幀中,使用因果掩碼使模型只專注於前一幀。模型使用可變長度的影片進行訓練(例如TalkingHead-1KH資料集),以產生非常長的序列。
研究人員採用基於統計的3D人體模型的估計參數,來為合成影片產生中間控製表示。
模型同時考慮了面部表情和身體運動,以產生更好的表現力和動態的手勢。
此外,先前的臉部生成工作通常依賴扭曲(warped)的圖像,但在基於擴散的架構中,這個方法被忽略了。
作者建議使用扭曲的圖像來指導生成過程,這促進了網路的任務並有助於保持人物的主體身份。
下一個目標是對一個人的輸入影像進行動作處理,使其遵循先前預測的身體和臉部運動。
受ControlNet的啟發,研究人員凍結了初始訓練的模型,並採用輸入時間控件,製作了編碼層的零初始化可訓練副本。
作者在時間域中交錯一維卷積層,網路透過取得連續的N幀和控制進行訓練,並根據輸入控制產生參考人物的動作影片。
模型使用作者建構的MENTOR資料集進行訓練,因為在訓練過程中,網路會獲取一系列連續的幀和任意的參考圖像,因此理論上可以將任何視訊幀指定為參考。
不過在實踐中,作者選擇採樣離目標剪輯更遠的參考,因為較近的範例提供的泛化潛力較小。
網路分兩個階段進行訓練,首先在單幀上學習新的控制層,然後透過添加時間分量對影片進行訓練。這樣就可以在第一階段使用大批量,並更快地學習頭部重演任務。
作者採用的learning rate為5e-5,兩個階段都以400k的步長和128的批量大小訓練圖像模型。
下圖展示了從一個輸入圖片產生目標影片的多樣化分佈。最右邊一列顯示了從80個產生的影片中獲得的像素多樣性。
在背景保持固定的情況下,人的頭部和身體顯著移動(紅色意味著像素顏色的多樣性更高),並且,儘管存在多樣性,但所有影片看起來都很逼真。
模型的應用之一是編輯現有影片。在這種情況下,VLOGGER會拍攝視頻,並透過閉上嘴巴或眼睛等方式改變拍攝對象的表情。
在實踐中,作者利用擴散模型的靈活性,對應該更改的影像部分進行修復,使影片編輯與原始未更改的像素保持一致。
模型的主要應用之一是視訊翻譯。在這種情況下,VLOGGER會以特定語言拍攝現有視頻,並編輯嘴唇和臉部區域以與新音頻(例如西班牙語)保持一致。(新智元)
參考資料:
https://enriccorona.github.io/vlogger/