什么是 Talking Face Generation任務?
簡單來講,給定音頻或視頻后,可以讓任意一個人的面部特征與輸入信息保持一致。比如在下面的 Demo 視頻中,通過輸入一段音頻,讓其他五位個人都能說出這段話。如何利用這個技術?以后大家惡搞,就不只是給奧巴馬、特朗普嫁接一段聲音了。你可以讓高曉松“燃燒我的卡路里”,也可以讓好運錦鯉楊超越每天為你講“曉說”。要油要甜,全看你的選擇~(我要吳彥祖,胡歌,新恒結衣,神仙姐姐每天給我講段子~)
其實,當人們說話時,面部區域一些細微的運動是非常復雜的,通常由講話者個人固有的面部特征和所傳遞的外部信息共同決定。現有的研究中,一部分專注于前者,即對一個主體構建特定的面部特征模型;另一部分專注于后者,即構建唇部運動和言語信息之間的 identity-agnostic 變換的模型。
在這項工作中,作者將兩方面整合一起開展了一系列研究,并提出了一種 DAVS (Disentangled Audio-Visual System)結構。通過學習分解的視覺和聽覺表征,實現對任意說話主體的臉部生成。我們假設說話人的臉部序列是主體相關信息和語音相關信息的組合,通過一種新穎的關聯-對抗訓練過程來明確地解開這兩個空間。這種分解方法的另外一個優點就是能將分解得到的音頻和視頻信息都可以用于語音信息的生成。大量實驗表明,作者所提出的方法可以對任意對象上生成逼真的人臉序列,并且唇部運動模式更加清晰。此外,作者還發現,學習到的視聽表征在唇語自動解讀和音頻視頻檢索等應用中也非常有用。
傳送門
項目主頁:
https://liuziwei7.github.io/projects/TalkingFace
論文鏈接:
https://arxiv.org/pdf/1807.07860.pdf
Github 地址:
https://github.com/Hangz-nju-cuhk/Talking-Face-Generation-DAVS
目前,作者準備把這個項目開源,大家可以在源碼公開后進行深入實踐了!
▌首先,你需要先準備:
Python2.7
PyTorch (0.2.0)
Opencv2
▌測試結果如何生成?
1.下載預訓練的模型的 checkpoint
2.測試數據在0572_0019_0003文件夾,這是從 Voxceleb 數據集中篩選,經預處理后的樣本數據。
3.運行測試腳本,利用視頻生成視頻
4.運行測試腳本,從語音生成視頻
▌數據樣本的生成結果
1.對人臉面部特征的影響
2.對非真是人臉面部特征的影響(只用人臉數據作為訓練樣本)
▌創造更多的樣本
Demo 視頻中使用的面部檢測工具可以在 rsa 中找到。每張圖像的一行中,將返回一個帶5個關鍵點的 Matfile 輸出。這個工具在其他面部對齊方法中也同樣適用,如 dlib。在這個項目中,作者使用的面部對齊關鍵點是眼睛的中心和嘴角的平均點。使用的每個圖像的PATH和 face POINTS,大家可以在 preprocess / face_align.py文件中找到作者使用的方法。
此外,作者對音頻文件的預處理方法是相同的,調用了SyncNet 的matlab 的代碼,在將 mfcc 特征保存到 bin 文件中。
▌訓練代碼
訓練代碼正在整理中,后續會公布。此項目的代碼結構參考了 pix2pix 的實現代碼:
https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix
后處理細節
直接生成的結果可能會受到縮放條件 (放大和縮小) 的影響,假設這是由訓練集對齊引起的。作者在 demo 中使用 subspace video stabilization 方式來解決這種不穩定問題。
-
視頻
+關注
關注
6文章
1937瀏覽量
72821 -
數據集
+關注
關注
4文章
1205瀏覽量
24649
原文標題:楊超越的聲音+高曉松的臉~如此酸爽的技術,你值得擁有!
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論