📜 文献卡
英文题目: LivePortrait: Efficient Portrait Animation with Stitching and Retargeting Control; |
---|
作者: Jianzhu Guo; Dingyun Zhang; Xiaoqiang Liu; Zhizhou Zhong; Yuan Zhang; Pengfei Wan; Di Zhang |
DOI: 10.48550/arXiv.2407.03168 |
摘要翻译: *旨在从单个源图像合成逼真的视频,将其用作外观参考,运动(即面部表情和头部姿势)源自驱动视频、音频、文本或生成。我们没有遵循主流的基于扩散的方法,而是探索和扩展了implicit-keypoint-based框架的潜力,该框架有效地平衡了计算效率和可控性。在此基础上,我们开发了一个名为LivePortrait的视频驱动的肖像动画框架,专注于更好的泛化、可控性和效率以供实际使用。为了增强生成质量和泛化能力,我们将训练数据放大到大约6900万高质量帧,采用混合图像-视频训练策略,升级网络架构,并设计更好的运动转换和优化目标。此外,我们发现紧凑的隐式关键点可以有效地表示一种混合形状,并精心提出了一个拼接和两个重定向模块,它们利用一个计算开销可以忽略不计的小MLP来增强可控性。实验结果证明了我们的框架即使与基于扩散的方法相比也是有效的。在带有PyTorch的RTX 4090 GPU上,生成速度显着达到12.8ms。 |
Github(pytorch): https://github.com/KwaiVGI/LivePortrait |
⚙️ 内容
本文介绍了一种名为LivePortrait的视频驱动肖像动画框架,该框架基于隐式关键点框架,并且在平衡计算效率和可控性方面表现出色。作者采用了混合图像和视频训练策略、升级网络架构以及设计更好的运动变换和优化目标等方法,以提高生成质量和泛化能力。此外,他们还提出了一个拼接和两个重新定位模块,这些模块利用具有微小计算开销的小型MLP,增强了可控制性。实验结果表明,即使与扩散基方法相比,该框架也表现出了出色的效能。生成速度在RTX 4090 GPU上达到了每帧12.8毫秒。并且在各种场景下具有广泛的应用前景,如视频会议、社交媒体和娱乐等。此外,作者还对该技术可能带来的社会风险进行了探讨,并提出了相应的伦理指导原则。
💡 创新点
- 强大的基础模型训练:通过高质量数据采集、混合图像和视频训练、升级网络架构、引入可扩展的运动变换、采用地标引导的隐式关键点优化以及级联损失项等一系列增强措施,显著提升了动画的表现力和模型的泛化能力。
- 精细的可控性设计:发现紧凑的隐式关键点可以有效地表示一种隐式混合形状,并精心设计了一个拼接模块和两个重定向模块(眼睛重定向模块和嘴唇重定向模块),利用小的MLP网络实现这些模块,增加的计算开销可忽略不计,从而增强了可控性,例如拼接控制。
🧩 不足
- 跨重演情况下姿势变化较大时的表现不佳,
- 肩部移动较多的情况下可能会出现抖动等问题
🔁 实验卡
💧 数据
- 数据来源:利用公共视频数据集(如Voxceleb、MEAD、RAVDESS)、样式图像数据集AAHQ、4K分辨率肖像视频(包含各种姿势和表情)、200小时的说话头部视频、私人LightStage数据集以及一些样式肖像视频和图像。
- 数据预处理:将长视频分割成小于30秒的片段,并使用KVQ过滤低质量视频片段,确保每个片段只包含一个人。最终的训练数据包含约18.9K个身份的69M视频帧(过滤前为92M)和60K张静态样式肖像。
👩🏻💻 实现
- 升级网络架构:将原始的canonical implicit keypoint detector L、head pose estimation network H和expression deformation estimation network ∆统一为一个模型M,以ConvNeXt - V2 - Tiny为骨干,直接预测输入图像的canonical keypoints、head pose和expression deformation。使用SPADE decoder作为生成器G,将扭曲的特征体积fs精细地输入到SPADE decoder中,每个通道的特征体积作为语义图生成动画图像。为了提高效率,插入PixelShuffle层作为G的最后一层,将分辨率从256×256上采样到512×512。
- 混合训练:模型在仅基于现实肖像视频训练时,对人类肖像表现良好,但对样式肖像(如动漫)的泛化能力较差。而样式肖像视频稀少,但高质量样式肖像图像较多。因此,将单张图像视为一帧视频片段,对图像和视频进行混合训练,以提高模型的泛化能力。
- 可扩展运动变换:在原始隐式关键点变换中引入尺度因子,以解决忽略尺度因子导致的训练困难问题。更新后的变换公式为: { x s = s s ⋅ ( x c , s R s + δ s ) + t s , x d = s d ⋅ ( x c , s R d + δ d ) + t d , \left\{\begin{array}{ll}{x_{s}=s_{s} \cdot \left(x_{c, s} R_{s}+\delta_{s}\right)+t_{s},} \\ {x_{d}=s_{d} \cdot \left(x_{c, s} R_{d}+\delta_{d}\right)+t_{d},}\end{array}\right. {xs=ss⋅(xc,sRs+δs)+ts,xd=sd⋅(xc,sRd+δd)+td,,其中 s s s_{s} ss和 s d s_{d} sd分别是源和驱动输入的尺度因子。这种变换在灵活性和可驱动性之间取得了平衡,避免了过度灵活的学习表达导致的纹理闪烁。
- 地标引导的隐式关键点优化:引入2D地标来捕捉微表情,以优化隐式点的学习,解决原模型在生动驱动面部表情(如眨眼和眼球运动)方面的不足。地标引导的损失 L g u i d e \mathcal{L}_{guide} Lguide计算公式为: L g u i d e = 1 2 N ∑ i = 1 N ( Wing ( l i , x s , i , : 2 ) + Wing ( l i , x d , i , : 2 ) ) \mathcal{L}_{guide}=\frac{1}{2 N} \sum_{i=1}^{N}\left(\text{Wing}\left(l_{i}, x_{s, i,: 2}\right)+\text{Wing}\left(l_{i}, x_{d, i,: 2}\right)\right) Lguide=2N1∑i=1N(Wing(li,xs,i,:2)+Wing(li,xd,i,:2)),其中 N N N为选定地标的数量, l i l_{i} li是第 i i i个地标, x s , i , : 2 x_{s, i,: 2} xs,i,:2和 x d , i , : 2 x_{d, i,: 2} xd,i,:2分别表示相应隐式关键点的前两个维度。在实验中, N N N设置为10,选定的地标来自眼睛和嘴唇。
- 级联损失项:使用隐式关键点等方差损失 L E L_E LE、关键点先验损失 L L L_L LL、头部姿势损失 L H L_H LH、变形先验损失 L Δ L_{\Delta} LΔ、感知损失 L P , c a s c a d e L_{P, cascade} LP,cascade、GAN损失 L G , c a s c a d e L_{G, cascade} LG,cascade(包括 L G A N , g l o b a l L_{GAN, global} LGAN,global、 L G A N , f a c e L_{GAN, face} LGAN,face、 L G A N , l i p L_{GAN, lip} LGAN,lip)、face - id损失 L f a c e i d L_{faceid} Lfaceid和地标引导损失 L g u i d e L_{guide} Lguide来训练模型。其中, L G , c a s c a d e L_{G, cascade} LG,cascade依赖于从头训练的相应判别器 D g l o b a l D_{global} Dglobal、 D f a c e D_{face} Dface和 D l i p D_{lip} Dlip,面部和嘴唇区域由2D语义地标定义。
🔬 实验
- 实验设置:
- 实施细节:在第一训练阶段,使用8个NVIDIA A100 GPU从头训练模型约10天。在第二训练阶段,仅训练拼接和重定向模块,保持其他参数冻结,大约需要2天。输入图像对齐并裁剪为256×256的分辨率,批量大小设置为104,输出分辨率为512×512。使用Adam优化器,学习率为2×10⁻⁴, β 1 = 0.5 \beta_1 = 0.5 β1=0.5, β 2 = 0.999 \beta_2 = 0.999 β2=0.999。拼接模块由四层MLP组成,层大小为[126, 128, 128, 64, 65]。眼睛重定向模块由六层MLP组成,层大小为[66, 256, 256, 128, 128, 64, 63]。嘴唇重定向模块由四层MLP组成,层大小为[65, 128, 128, 64, 63]。拼接和重定向模块的计算预算可忽略不计。
- 基线对比:与包括FOMM、Face Vid2vid、DaGAN、MCNet、TPSM等非扩散基础方法以及FADM和AniPortrait等扩散模型进行比较。对于Face Vid2vid,使用[43]的实现,对于其他方法,使用官方实现。
- 评估指标:采用峰值信噪比(PSNR)、结构相似性指数(SSIM)、学习感知图像块相似性(LPIPS)、L1距离、FID、平均表情距离(AED)、平均姿势距离(APD)和眼球方向的平均角度误差(MAE)来衡量肖像动画结果的泛化质量和运动准确性。对于自我重演,在TalkingHead - 1KH数据集和VFHQ数据集的官方测试分割上进行评估,分别包含35和50个视频。对于交叉重演,使用FFHQ数据集的前50张图像作为源肖像。
- 实验结果:
- 自我重演:定性结果表明模型能忠实地从驱动图像中传递运动,包括嘴唇运动和眼球注视,同时保留源肖像的外观细节,在大姿势下也能实现稳定的动画结果。定量结果显示,模型在生成质量上略优于之前的扩散基础方法(如FADM和AniPortrait),在眼睛运动准确性方面表现更好。
- 交叉重演:定性结果展示了模型在大姿势下稳定传递运动的能力,能准确传递微妙的嘴唇运动和眼球注视,保持与源肖像一致的外观细节,并且通过拼接能够稳定地处理多人输入或全身图像。定量结果表明,模型在生成质量和运动准确性方面优于之前的扩散基础和非扩散基础方法,但在TalkingHead - 1KH上的FID指标上,扩散基础方法AniPortrait的FID低于本文模型。此外,扩散基础方法由于多个去噪步骤和高FLOPs,推理时间比非扩散基础方法多,并且前景和背景的时间一致性不如非扩散基础方法。
- 消融研究:
- 拼接模块:通过对比有无拼接的动画结果,发现拼接后能使动画人物的肩部与裁剪的源肖像强制对齐,同时保留运动和外观,在映射到原始图像空间后,无拼接的动画肖像肩部会出现明显的错位,而拼接后的结果则没有明显的错位。
- 眼睛重定向模块:通过定量控制眼睛睁开程度的实验,表明眼睛重定向模块能够有效地根据输入的驱动眼睛睁开标量来控制眼睛的睁开程度,且眼睛睁开运动不会影响参考图像的其余部分。在跨身份重演中,当源人物的眼睛比驱动人物的眼睛大很多时,眼睛重定向模块能够使动画帧实现与驱动视频相同的眼睛闭合运动。
- 嘴唇重定向模块:类似地,嘴唇重定向模块能够根据输入的驱动嘴唇打开标量来控制嘴唇的打开程度,且嘴唇打开运动不会影响源图像的其余部分。当嘴唇大幅张开时,还会生成舌头。此外,通过从驱动帧中提取嘴唇闭合标量来驱动嘴唇闭合,嘴唇重定向模块也能很好地工作。
- 眼睛和嘴唇重定向同时作用:通过两个动画示例,证明了眼睛和嘴唇重定向可以同时有效,尽管这两个重定向模块是独立训练的。
📜 结论
- Self - reenactment:
- 定性结果:模型能够忠实地从驱动图像中转移运动,包括嘴唇运动和眼睛注视,同时保留源肖像的外观细节,在大姿势下也能实现稳定的动画结果。
- 定量结果:在生成质量方面略优于之前的扩散基方法,如FADM和AniPortrait,在眼睛运动准确性方面比其他方法更好。
- Cross - reenactment:
- 定性结果:能够稳定地在大姿势下从驱动或源肖像中转移运动,准确地转移微妙的嘴唇运动和眼睛注视,保持与源肖像一致的外观细节,并且在处理多人输入或全身图像时表现稳定。
- 定量结果:在生成质量和运动准确性方面优于之前的扩散基和非扩散基方法,但在TalkingHead - 1KH上的FID指标上,扩散基方法AniPortrait的FID低于本文模型。此外,扩散基方法由于需要多个去噪步骤和高FLOPs,推理时间比非扩散基方法多,并且前景和背景的时间一致性不如非扩散基方法好。
- Ablation Study and Analysis:
- 拼接模块的消融:没有拼接时,动画结果的肩部位置与驱动帧相同;拼接后,动画人物的肩部与裁剪的源肖像强制对齐,同时保留运动和外观,在映射到原始图像空间后,没有拼接的动画肖像肩部错位明显,而拼接后的结果没有明显错位。
- 眼睛重定向的消融:可以通过提供适当的驱动眼睛睁开标量来控制眼睛从闭合到完全睁开,且眼睛睁开运动不影响参考图像的其余部分,对于训练分布外的驱动眼睛睁开标量也能取得合理结果;在跨重演中,当源人物的眼睛比驱动人物的眼睛大很多时,眼睛重定向能够使动画帧实现与驱动视频相同的眼睛闭合运动。
- 嘴唇重定向的消融:可以通过输入驱动嘴唇张开标量来控制嘴唇从闭合到完全张开,嘴唇张开运动不影响源图像的其余部分,对于训练分布外的驱动嘴唇张开标量也能取得合理结果,并且当嘴唇张开较大时会生成舌头;通过从驱动帧中提取的嘴唇闭合标量,可以驱动嘴唇闭合。
- 眼睛和嘴唇重定向的分析:通过两个动画示例表明,眼睛和嘴唇重定向可以同时生效,即使这两个重定向模块是独立训练的。
🤔 总结卡
👍 论文优点
- 提出了一种基于隐式关键点的视频驱动肖像动画框架LivePortrait,显著增强了生成质量和泛化能力。
- 设计了先进的拼接模块和两个重定向模块,实现了更好的可控性,且计算开销可忽略不计。
- 在自我重演和交叉重演任务中,相比其他方法在生成质量、运动准确性和可控性等方面表现出色。
- 能够扩展到音频驱动肖像动画和动物动画领域,具有较好的通用性。
🎓 方法创新
- 采用混合图像和视频训练策略,结合了图像和视频数据的优势,提高了模型对不同样式肖像的泛化能力。
- 引入地标引导的隐式关键点优化,解决了原模型在学习微妙面部表情方面的不足,使模型能够更生动地驱动面部表情。
- 设计的拼接和重定向模块利用小的MLP网络,以一种新颖的方式实现了对肖像动画的精细控制,且计算成本低。
- 在隐式关键点变换中引入尺度因子,平衡了模型的灵活性和可驱动性,提高了训练效果。
⌚ 未来展望
- 进一步改进模型在大姿势变化的交叉重演场景中的表现,减少肩部运动导致的抖动问题。
- 探索如何更好地利用多模态数据(如音频、文本等)来驱动肖像动画,提高动画的表现力和逼真度。
- 研究如何将模型应用于更多的实际场景,如虚拟现实、增强现实等,为用户带来更好的体验。
- 关注肖像动画技术的伦理问题,如防止被用于深度伪造等恶意用途,制定相应的伦理准则和使用规范。