写点什么

快手开源 LivePortrait,实现表情姿态极速迁移,GitHub 6.5K Star

作者:快手技术
  • 2024-07-17
    北京
  • 本文字数:4988 字

    阅读完需:约 16 分钟

快手开源LivePortrait,实现表情姿态极速迁移,GitHub 6.5K Star

近日,快手可灵大模型团队开源了名为 LivePortrait 的可控人像视频生成框架,能够准确、实时地将驱动视频的表情、姿态迁移到静态或动态人像视频上,生成极具表现力的视频结果。如下动图所示:

来自网友测试 LivePortrait

来自网友测试 LivePortrait

快手开源的 LivePortrait 对应的论文题目为:《LivePortrait: Efficient Portrait Animation with Stitching and Retargeting Control》

LivePortrait 论文首页

并且,LivePortrait 发布即可用,秉承快手风格,论文、主页、代码一键三连。LivePortrait 一经开源,就得到了 HuggingFace 首席执行官 Clément Delangue 的关注转发,首席战略官 Thomas Wolf 还亲自体验了功能,厉害了!


视频剪辑素材均来自网友测评 LivePortrait

同时,LivePortrait 获得了开源社区的广泛关注,短短一周多时间左右,在 GitHub 上总计收获了 6.4K Stars,550 Forks,140 Issues&PRs,获得广泛好评,关注仍在持续增长中:


此外,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 的模型训练分为两阶段。第一阶段为基础模型训练,第二阶段为贴合和重定向模块训练

1.1 第一阶段:基础模型训练

第一阶段基础模型训练

在第一阶段模型训练中,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) 为以上损失项的加权和。

1.2 第二阶段:贴合和重定向模块训练

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 不仅对人像具有良好的泛化性,当在动物数据集上微调后,对动物肖像也可进行精准驱动。


人像视频编辑:除了人像照片,给定一段人像视频,比如舞蹈视频,LivePortrait 可以用驱动视频对头部区域进行动作编辑。得益于贴合模块,LivePortrait 可以精准地编辑头部区域的动作,如表情、姿态等,而不影响非头部区域的画面。


四、落地与展望


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. Convnext 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ár, 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.

用户头像

快手技术

关注

还未添加个人签名 2024-05-15 加入

快手官方技术号,即时播报快手技术实践的最新动态 关注微信公众号「快手技术」

评论

发布
暂无评论
快手开源LivePortrait,实现表情姿态极速迁移,GitHub 6.5K Star_人工智能_快手技术_InfoQ写作社区