快手開源LivePortrait,GitHub 6.6K Star,實現表情姿態極速遷移

机器之心發表於2024-07-17
近日,快手可靈大模型團隊開源了名為LivePortrait的可控人像影片生成框架,該框架能夠準確、實時地將驅動影片的表情、姿態遷移到靜態或動態人像影片上,生成極具表現力的影片結果。如下動圖所示:

圖片

來自網友測試LivePortrait
圖片
來自網友測試LivePortrait

快手開源的LivePortrait對應的論文題目為:
《 LivePortrait: Efficient Portrait Animation with Stitching and Retargeting Control 》

圖片

LivePortrait論文首頁

並且,LivePortrait釋出即可用,秉承快手風格,論文、主頁、程式碼一鍵三連。LivePortrait一經開源,就得到了HuggingFace執行長Clément Delangue的關注轉發,首席戰略官 Thomas Wolf還親自體驗了功能,厲害了!

圖片

並引起了全世界網友的大規模評測快手開源LivePortrait,GitHub 6.6K Star,實現表情姿態極速遷移
影片剪輯素材均來自X

同時,LivePotrait獲得了開源社群的廣泛關注,短短一週多時間左右,在GitHub上總計收穫了6.4K Stars,550 Forks,140 Issues&PRs,獲得廣泛好評,關注仍在持續增長中:
圖片
此外,HuggingFace Space、Papers with code趨勢榜連續一週榜一,近日登頂HuggingFace所有主題排行榜榜一

圖片

HuggingFace Space榜一

圖片

Papers with code榜一

圖片

HuggingFace所有主題排行榜一

更多資源資訊,可以檢視:

  • 程式碼地址:https://github.com/KwaiVGI/LivePortrait
  • 論文連結:https://arxiv.org/abs/2407.03168
  • 專案主頁:https://liveportrait.github.io/
  • HuggingFace Space一鍵線上體驗:https://huggingface.co/spaces/KwaiVGI/LivePortrait

LivePortrait到底用了什麼樣的技術,能夠在全網快速"走紅"呢?

方法介紹

和當前主流基於擴散模型的方法不同,LivePortrait探索並擴充了基於隱式關鍵點框架的潛力,從而平衡了模型計算效率和可控性。LivePortrait聚焦於更好的泛化性,可控性和實用的效率。為了提升生成能力和可控性,LivePortrait採用69M高質量訓練幀,影片-圖片混合訓練策略,升級網路結構,並設計了更好的動作建模和最佳化方式。此外,LivePortrait將隱式關鍵點看成一種面部混合變形 (Blendshape) 的有效隱式表示,並基於此精心提出了貼合 (stitching) 和重定向 (retargeting) 模組。這兩個模組為輕量MLP網路,因此在提升可控性的同時,計算成本可以忽略。即使是和一些已有的基於擴散模型的方法比較,LivePortrait依舊很能打。同時,在RTX4090 GPU上,LivePortrait的單幀生成速度能夠達到12.8ms,若經過進一步最佳化,如TensorRT,預計能達10ms以內!

LivePortrait的模型訓練分為兩階段。第一階段為基礎模型訓練,第二階段為貼合和重定向模組訓練。

第一階段基礎模型訓練

圖片

第一階段基礎模型訓練

在第一階段模型訓練中,LivePortrait對基於隱式點的框架,如Face Vid2vid[1],做了一系列改進,包括:

高質量訓練資料收集:LivePortrait採用了公開影片資料集Voxceleb[2],MEAD[3],RAVDESS [4]和風格化圖片資料集AAHQ[5]。此外,還使用了大規模4K解析度的人像影片,包含不同的表情和姿態,200餘小時的說話人像影片,一個私有的資料集LightStage[6],以及一些風格化的影片和圖片。LivePortrait將長影片分割成少於30秒的片段,並確保每個片段只包含一個人。為了保證訓練資料的質量,LivePortrait使用快手自研的KVQ[7](快手自研的影片質量評估方法,能夠綜合感知影片的質量、內容、場景、美學、編碼、音訊等特徵,執行多維度評價)來過濾低質量的影片片段。總訓練資料有69M影片,包含18.9K身份和60K靜態風格化人像。

影片-影像混合訓練:僅使用真人人像影片訓練的模型對於真人人像表現良好,但對風格化人像(例如動漫)的泛化能力不足。風格化的人像影片是較為稀有的,LivePortrait從不到100個身份中收集了僅約1.3K影片片段。相比之下,高質量的風格化人像圖片更為豐富,LivePortrait收集了大約60K身份互異的圖片,提供多樣身份資訊。為了利用這兩種資料型別,LivePortrait將每張圖片視為一幀影片片段,並同時在影片和圖片上訓練模型。這種混合訓練提升了模型的泛化能力。

升級的網路結構:LivePortrait將規範隱式關鍵點估計網路 (L),頭部姿態估計網路 (H) 和表情變形估計網路 (Δ) 統一為了一個單一模型 (M),並採用ConvNeXt-V2-Tiny[8]為其結構,從而直接估計輸入圖片的規範隱式關鍵點,頭部姿態和表情變形。此外,受到face vid2vid相關工作啟發,LivePortrait採用效果更優的SPADE[9]的解碼器作為生成器 (G)。隱式特徵 (fs) 在變形後被細緻地輸入SPADE解碼器,其中隱式特徵的每個通道作為語義圖來生成驅動後的圖片。為了提升效率,LivePortrait還插入PixelShuffle[10]層作為 (G) 的最後一層,從而將解析度由256提升為512。

更靈活的動作變換建模:原始隱式關鍵點的計算建模方式忽視了縮放係數,導致該縮放容易被學到表情係數裡,使得訓練難度變大。為了解決這個問題,LivePortrait在建模中引入了縮放因子。LivePortrait發現縮放正則投影會導致過於靈活的可學習表情係數,造成跨身份驅動時的紋理粘連。因此LivePortrait採用的變換是一種靈活性和驅動性之間的折衷。

關鍵點引導的隱式關鍵點最佳化:原始的隱式點框架似乎缺少生動驅動面部表情的能力,例如眨眼和眼球運動。具體來說,驅動結果中人像的眼球方向和頭部朝向往往保持平行。LivePortrait將這些限制歸因於無監督學習細微面部表情的困難。為了解決這個問題,LivePortrait引入了2D關鍵點來捕捉微表情,用關鍵點引導的損失 (Lguide)作為隱式關鍵點最佳化的引導。

級聯損失函式:LivePortrait採用了face vid2vid的隱式關鍵點不變損失 (LE),關鍵點先驗損失 (LL),頭部姿態損失 (LH) 和變形先驗損失 (LΔ)。為了進一步提升紋理質量,LivePortrait採用了感知和GAN損失,不僅對輸入圖的全域性領域,面部和嘴部的區域性領域也施加了這些損失,記為級聯感知損失 (LP,cascade) 和級聯GAN損失 (LG,cascade) 。面部和嘴部區域由2D語義關鍵點定義。LivePortrait也採用了人臉身份損失 (Lfaceid) 來保留參考圖片的身份。

第一階段的所有模組為從頭訓練,總的訓練最佳化函式 (Lbase) 為以上損失項的加權和。

第二階段貼合和重定向模組訓練

LivePortrait將隱式關鍵點可以看成一種隱式混合變形,並發現這種組合只需藉助一個輕量的MLP便可被較好地學習,計算消耗可忽略。考慮到實際需求,LivePortrait設計了一個貼合模組、眼部重定向模組和嘴部重定向模組。當參考人像被裁切時,驅動後的人像會從裁圖空間被反貼回原始影像空間,貼合模組的加入是為了避免反貼過程中出現畫素錯位,比如肩膀區域。由此,LivePortrait能對更大的圖片尺寸或多人合照進行動作驅動。眼部重定向模組旨在解決跨身份驅動時眼睛閉合不完全的問題,尤其是當眼睛小的人像驅動眼睛大的人像時。嘴部重定向模組的設計思想類似於眼部重定向模組,它透過將參考圖片的嘴部驅動為閉合狀態來規範輸入,從而更好地進行驅動。

圖片

第二階段模型訓練:貼合和重定向模組訓練

貼合模組:在訓練過程中,貼合模組 (S) 的輸入為參考圖的隱式關鍵點 (xs) 和另一身份驅動幀的隱式關鍵點 (xd),並估計驅動隱式關鍵點 (xd) 的表情變化量 (Δst)。可以看到,和第一階段不同,LivePortrait採用跨身份的動作替代同身份的動作來增加訓練難度,旨在使貼合模組具有更好的泛化性。接著,驅動隱式關鍵點 (xd) 被更新,對應的驅動輸出為 (Ip,st) 。LivePortrait在這一階段也同時輸出自重建圖片 (Ip,recon)。最後,貼合模組的損失函式 (Lst) 計算兩者肩膀區域的畫素一致損失以及貼合變化量的正則損失。

眼部和嘴部重定向模組:眼部重定向模組 (Reyes) 的輸入為參考圖隱式關鍵點 (xs),參考圖眼部張開條件元組和一個隨機的驅動眼部張開係數,由此估計驅動關鍵點的變形變化量 (Δeyes)。眼部張開條件元組表示眼部張開比例,越大表示眼部張開程度越大。類似的,嘴部重定向模組 (Rlip) 的輸入為參考圖隱式關鍵點 (xs),參考圖嘴部張開條件係數和一個隨機的驅動嘴部張開係數,並由此估計驅動關鍵點的變化量 (Δlip)。接著,驅動關鍵點 (xd) 分別被眼部和嘴部對應的變形變化量更新,對應的驅動輸出為 (Ip,eyes) 和 (Ip,lip) 。最後,眼部和嘴部重定向模組的目標函式分別為 (Leyes) 和 (Llip),分別計算眼部和嘴部區域的畫素一致性損失,眼部和嘴部變化量的正則損失,以及隨機驅動係數與驅動輸出的張開條件係數之間的損失。眼部和嘴部的變化量 (Δeyes) 和 (Δlip) 是相互獨立的,因此在推理階段,它們可以被線性相加並更新驅動隱式關鍵點。

實驗對比

圖片

圖片

同身份驅動:由如上同身份驅動對比結果可見,與已有的非擴散模型方法和基於擴散模型的方法相比,LivePortrait具有較好的生成質量和驅動精確度,可以捕捉驅動幀的眼部和嘴部細微表情,同時保有參考圖片的紋理和身份。即使在較大的頭部姿態下,LivePortrait也有較穩定的表現。

圖片

圖片

跨身份驅動:由如上跨身份驅動對比結果可見,與已有的方法相比,LivePortrait可以準確地繼承驅動影片中細微的眼部和嘴部動作,同時在姿態較大時也比較穩定。LivePortrait在生成質量上略弱於基於擴散模型的方法AniPortrait[11],但與後者相比,LivePortrait具有極快的推理效率且需要較少的FLOPs。

擴充

多人驅動:得益於LivePortrait的貼合模組,對於多人合照,LivePortrait可以用指定驅動影片對指定人臉進行驅動,從而實現多人合照驅動,拓寬了LivePortrait的實際應用。快手開源LivePortrait,GitHub 6.6K Star,實現表情姿態極速遷移
動物驅動:LivePortrait不僅對人像具有良好的泛化性,當在動物資料集上微調後,對動物肖像也可進行精準驅動。

圖片

人像影片編輯:除了人像照片,給定一段人像影片,比如舞蹈影片,LivePortrait可以用驅動影片對頭部區域進行動作編輯。得益於貼合模組,LivePortrait可以精準地編輯頭部區域的動作,如表情、姿態等,而不影響非頭部區域的畫面。快手開源LivePortrait,GitHub 6.6K Star,實現表情姿態極速遷移
落地與展望

LivePortrait的相關技術點,已在快手的諸多業務完成落地,包括快手魔錶、快手私信、快影的AI表情玩法、快手直播、以及快手孵化的面向年輕人的噗嘰APP等,並將探索新的落地方式,持續為使用者創造價值。此外,LivePortrait會基於可靈基礎模型,進一步探索多模態驅動的人像影片生成,追求更高品質的效果。

參考文獻
[1] Ting-Chun Wang, Arun Mallya, and Ming-Yu Liu. One-shot free-view neural talking-head synthesis for video conferencing. In CVPR, 2021.
[2] Arsha Nagrani, Joon Son Chung, and Andrew Zisserman. Voxceleb: a large-scale speaker identification dataset. In Interspeech, 2017.
[3] Kaisiyuan Wang, Qianyi Wu, Linsen Song, Zhuoqian Yang, Wayne Wu, Chen Qian, Ran He, Yu Qiao, and Chen Change Loy. Mead: A large-scale audio-visual dataset for emotional talking-face generation. In ECCV, 2020.
[4] Steven R Livingstone and Frank A Russo. The ryerson audio-visual database of emotional speech and song (ravdess): A dynamic, multimodal set of facial and vocal expressions in north american english. In PloS one, 2018
[5] Mingcong Liu, Qiang Li, Zekui Qin, Guoxin Zhang, Pengfei Wan, and Wen Zheng. Blendgan: Implicitly gan blending for arbitrary stylized face generation. In NeurIPS, 2021.
[6] Haotian Yang, Mingwu Zheng, Wanquan Feng, Haibin Huang, Yu-Kun Lai, Pengfei Wan, Zhongyuan Wang, and Chongyang Ma. Towards practical capture of high-fidelity relightable avatars. In SIGGRAPH Asia, 2023.
[7] Kai Zhao, Kun Yuan, Ming Sun, Mading Li, and Xing Wen. Quality-aware pre-trained models for blind image quality
assessment. In CVPR, 2023.
[8] Sanghyun Woo, Shoubhik Debnath, Ronghang Hu, Xinlei Chen, Zhuang Liu, In So Kweon, and Saining Xie. Con-
vnext v2: Co-designing and scaling convnets with masked autoencoders. In CVPR, 2023.
[9] Taesung Park, Ming-Yu Liu, Ting-Chun Wang, and Jun-Yan Zhu. Semantic image synthesis with spatially-adaptive normalization. In CVPR, 2019.
[10] Wenzhe Shi, Jose Caballero, Ferenc Husz ´ar, Johannes Totz, Andrew P Aitken, Rob Bishop, Daniel Rueckert, and Zehan Wang. Real-time single image and video super-resolution using an efficient sub-pixel convolutional neural network. In CVPR, 2016.
[11] Huawei Wei, Zejun Yang, and Zhisheng Wang. Aniportrait: Audio-driven synthesis of photorealistic portrait animation. arXiv preprint:2403.17694, 2024.

相關文章