CVPR 2021 | “以音動人”:姿態可控的語音驅動說話人臉
本文不使用任何人為定義的結構信息(人臉關鍵點或者3D人臉模型),成功實現了人頭姿態可控的語音驅動任意說話人臉生成。本文的關鍵在于,隱式地在潛空間(latent space)中定義了一個12維的姿態編碼,用于頭部運動控制。
本文相比于之前的方法,避免了關鍵點或者3D模型計算不準確帶來的煩惱,又保持了自由度和魯棒性。實現了在語音控制準確嘴型的同時,用另一段視頻控制頭部運動。在這一框架下,我們可以讓任何人說出馬老師經典的“不講武德”發言,彩蛋在我們demo video的最后!
本文由香港中文-商湯聯合實驗室,商湯科技和南洋理工大學S-Lab等合作完成。
生成圖像的嘴型由音頻控制,與音頻源視頻同步;
生成圖像頭部運動由姿態源控制,與下方視頻同步。
Part 1 任務背景
語音驅動的說話人臉生成(Talking face, Talking head generation)這一課題本身有多種不同的實驗設置。此方向的綜述可以參考 Lele Chen 的 What comprises a good talking-head video generation? : A Survey and Benchmark [1]。在這里本文Focus的方向為基于單張圖像(One-shot),面向任意人臉,語音驅動setting下的說話人臉生成問題。具體來說,我們希望基于一張圖片,生成與語音同步的說話人臉視頻。
這一setting下的工作包括 VGG 組的You said that? [2] ,CUHK(筆者自己)的DAVS [3],樂樂的ATVG [4] 以及Adobe周洋和李丁博士的MakeitTalk [5]等等。整體來講,之前的工作[2][3][4]更多的關注于嘴型的準確性和ID的保存上,從而忽略了頭部的自然運動。在本文中我們所試圖解決的,是之前說話人臉生成中人頭pose難以控制這一問題。
ATVG Paper中的對比圖
最近的Makeittalk[5]和樂樂的Rhythmic Head[6] 則關注于和個人ID信息有關的自然頭部運動。但是他們的方法都依賴于3D的結構化信息。
想獨立控制頭部運動,就需要對Head pose和facial expression,identity做一個解耦。通過思考我們可以意識到,這種解耦在2D圖像和2D landmark的表征中都很難實現。而在我們語音驅動的大前提下,嘴型要和audio對齊,頭部運動又要自然,可以說是難上加難。另一方面,3D的人臉表征中,head pose和facial expression可以天然地用不同的參數控制,可以說是最佳選擇。
因此之前的工作,Makeittalk[5]選擇了3D的人臉關鍵點,而Rhythmic Head[6]則直接依賴于完整地3D重建。但是基于3D的人臉建模,尤其是在極端場景下,開源方法的準確度并無法保證。而基于優化算法的3D fitting還會帶來大量的預處理負擔。所以本文不使用3D或結構化數據,重新從2D入手解決問題。
Part 2 方法介紹
我們的方法Pose-Controllable Audio-Visual System (PC-AVS)直接在特征學習和圖像重建的框架下,實現了對人頭pose的自由控制。我們的核心在于隱式地在潛空間(latent space)中定義了一個12維的姿態編碼,而這一設計源于對去年CVPR利用styleGAN實現Face Reeanctment[7]的工作(如下圖)的參考。
但他們工作中只說明了styleGAN可以使用augmented frame進行圖像到圖像的控制。而在語音驅動的說話人臉問題中,condition實際來自audio的場景下,直接暴力借用這一框架將難以進行訓練,因為語音并不能提供人臉姿態信息。
基于對說話人臉的觀察,我們在文中把augmented圖像的潛空間,定義為無ID空間(Non-Identity Space)。直觀上講,在此空間中,我們可以重新尋找嘴型與語音關聯的說話內容空間(Speech Contant Space),和表示頭部運動的姿態空間(Pose Space)。
我們工作的完整pipeline如下圖所示,訓練數據使用的是大量的含語音視頻。我們使用任意的一幀作為ID參考輸入,變形另一幀
為
,并將與
對齊的語音的頻譜
作為condition,試圖使用網絡恢復
。
使用數據集的ID約束,我們可以通過ID encoder 得到Identity Space;借助之前的augmentation,我們通過encder
,得到Non-Identity Space。接下來的問題是如何發揮audio的作用,以及如何讓圖像只約束Pose而不控制嘴型。
Learning Speech Content Space. 我們希望Non-Identity Space的feature經過一個mapping 映射至speech content space中。而這一latent space的學習,主要依賴音頻和視頻之間天然的對齊、同步信息(alignment)。在之前的工作中這已經被證明是audio-visual領域用處最廣泛的自監督之一[8]。在這里我們使用語音與人臉序列之間的對齊構建contrastive loss進行對齊的約束;對齊的人臉序列和語音特征
是正樣本,非對齊的
為負樣本。定義兩個feature之間的cos距離為
,這一約束可以表達為:
Devising Pose Code. 另一方面,我們借助3D表征中的piror knowledge。一個12維度的向量其實已經足以表達人頭的姿態,包括一個9維的旋轉矩陣,2維的平移和1維的尺度。所以我們使用一個額外的mapping,從Non-Identity Space中映射一個12維的Pose Code。這個維度上的設計非常重要,如何維度過大,這一latent code所表達的就可能超過pose信息,導致嘴型收到影響。
最后我們把 Identity Space,Speech Content Space 和 Pose code 結合起來,送入基于StyleGAN2[9]改造的Generator。這三者的信息在Generator中通過圖像重建訓練進行平衡,loss形式使用了pix2pixHD的重建訓練loss。在訓練中,pose code起作用的原理是,在ID和pose信息都顯式地被約束的前提下,Pose Code最容易學到的信息是改變人頭的姿態,以減少重建的loss。在這一目標下,因為姿態逐漸與我們的目標貼合,嘴型的重建約束也會反過來幫助audio feature的學習,從而達到平衡。
Part 3 實驗結果
我們在數值上和質量上與之前SOTA的任意語音驅動人臉的方法進行了對比。在數值上,我們對比了LRW和VoxCeleb2兩個數據集,重點關注于生成圖像還原度(SSIM),圖像清晰度(CPDB),生成嘴型landmark的準確度(LMD)和生成嘴型與音頻的同步性,使用SyncNet[8]的confidence score評價( )。
我們與之前方法的對比圖如下所示:
更多的Ablation和結果可以參考我們的paper和demo video,這邊展示了在極端情況(大角度,低分辨率)的生成結果。展示了如果我們把pose code置0,可以實現轉正的說話人臉效果。
Part 4 總結
在這個工作中,我們提出了Pose-Controllable Audio-Visual System (PC-AVS),成功在語音任意說話人的setting下,生成了姿態可控的結果。綜合來看我們的方法有以下幾個特質值得關注:
我們的方法不借助預定義的結構信息,僅使用一個圖像重建的pipeline,成功定義了一個對人臉pose的表征。
由style-based generator平衡的訓練模式讓唇形生成收到更契合的重建約束,從而提升了唇形對齊的準確度。
我們實現了任意說話人臉下的自由人頭姿態控制,使生成的結果更加真實。
我們的模型在極端情況下有很好的魯棒性,并且實現了轉正的說話人臉生成。
相關鏈接
Paper 地址:https://arxiv.org/abs/2104.11116
Github:https://github.com/Hangz-nju-cuhk/Talking-Face_PC-AVS
Project Page:https://hangz-nju-cuhk.github.io/projects/PC-AVS
References
1.#What comprises a good talking-head video generation?: A Survey and Benchmark https://arxiv.org/abs/2005.03201
2. #Joon Son Chung, Amir Jamaludin, and Andrew Zisserman. You said that? In BMVC, 2017. https://arxiv.org/abs/1705.02966
3. #Hang Zhou, Yu Liu, Ziwei Liu, Ping Luo, and Xiaogang Wang. Talking face generation by adversarially disentangled audio-visual representation. In Proceedings of the AAAI ConConference on Artificial Intelligence (AAAI), 2019. https://arxiv.org/abs/1807.07860
4. #Lele Chen, Ross K Maddox, Zhiyao Duan, and Chenliang Xu. Hierarchical cross-modal talking face generation with dynamic pixel-wise loss. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2019. https://www.cs.rochester.edu/u/lchen63/cvpr2019.pdf
5. #Yang Zhou, Xintong Han, Eli Shechtman, Jose Echevarria, Evangelos Kalogerakis, and Dingzeyu Li. Makeittalk: Speaker-aware talking head animation. SIGGRAPH ASIA, 2020. https://arxiv.org/abs/2004.12992
6. #Lele Chen, Guofeng Cui, Celong Liu, Zhong Li, Ziyi Kou, Yi Xu, and Chenliang Xu. Talking-head generation with rhythmic head motion. European Conference on Computer Vision (ECCV), 2020. https://www.cs.rochester.edu/u/lchen63/eccv2020-arxiv.pdf
7. #Egor Burkov, Igor Pasechnik, Artur Grigorev, and Victor Lem-pitsky. Neural head reenactment with latent pose descriptors. In Proceedings of the IEEE Conference on Computer Visionand Pattern Recognition (CVPR), 2020. https://openaccess.thecvf.com/content_CVPR_2020/papers/Burkov_Neural_Head_Reenactment_with_Latent_Pose_Descriptors_CVPR_2020_paper.pdf
8. #Joon Son Chung and Andrew Zisserman. Out of time: auto-mated lip sync in the wild. In ACCV Workshop, 2016. https://www.robots.ox.ac.uk/~vgg/publications/2016/Chung16a/chung16a.pdf
9.#Tero Karras, Samuli Laine, Miika Aittala, Janne Hellsten,Jaakko Lehtinen, and Timo Aila. Analyzing and improving the image quality of stylegan. InProceedings of theIEEE/CVF Conference on Computer Vision and PatternRecognition (CVPR), 2020. https://openaccess.thecvf.com/content_CVPR_2020/papers/Karras_Analyzing_and_Improving_the_Image_Quality_of_StyleGAN_CVPR_2020_paper.pdf