【论文解读】LivePortrait:具有拼接和重定向控制的高效肖像动画

server/2024/9/24 4:15:22/

📜 文献卡

英文题目: 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毫秒。并且在各种场景下具有广泛的应用前景,如视频会议、社交媒体和娱乐等。此外,作者还对该技术可能带来的社会风险进行了探讨,并提出了相应的伦理指导原则。

效果图

💡 创新点

  1. 大规模数据集与混合训练策略:通过利用约6900万张高质量肖像图像,结合图片和视频的混合训练策略,LivePortrait提升了模型的泛化能力和生成质量。

  2. 网络架构升级:引入了可指导学习的2D关键点、自适应变形等技术,统一了关键点检测、头姿估计和表情变形等多个子任务的模型,采用ConvNeXt-V2-Tiny作为骨干网络,SPADE解码器作为生成器,像素上采样作为最终层,使得模型更加高效且具有更强的表现力。

  3. 紧凑隐式关键点:发现紧凑的隐式关键点可以有效地表示一种隐式blendshapes,这使得LivePortrait能以极小的计算开销实现精准的控制,如拼接控制。

  4. 拼接与重定向模块:设计了一个拼接模块和两个重定向模块,它们使用小型多层感知机(MLP),几乎不增加计算负担,提高了模型的可控性,实现了更自然、更精细的动画效果。

🧩 不足

  • 跨重演情况下姿势变化较大时的表现不佳,
  • 肩部移动较多的情况下可能会出现抖动等问题

🔁 实验卡

💧 数据

LivePortrait使用了包括VoxCeleb、MEAD和RAVDESS在内的公开视频数据集,以及AAHQ的风格化图像数据集。他们还收集了大量4K分辨率的肖像视频和说话头像视频,以及LightStage数据集中的私有数据。所有数据经过精心筛选和预处理,确保每个片段只包含一个人,并且使用KVQ过滤低质量视频剪辑。

👩🏻‍💻 方法

  1. 第一阶段:基础模型训练

    • 外观和运动提取器(F和M)负责从输入图像中提取外观特征和运动信息。
    • 变形模块(W)生成一个变形场,用于将源特征体积(fs)变形到目标位置。
    • 解码器(G)接收变形后的特征体积并生成最终的动画图像。
    • 训练过程中,模型会学习到如何从源图像的3D外观特征体积(fs)和驱动3D关键点(xd)映射到目标图像。
  2. 混合图像和视频训练

    • 使用混合训练策略,模型不仅在真实人像视频上表现良好,还能有效泛化至风格化肖像,如动漫。
    • 为了兼顾两种数据类型,单张图像被视为单帧视频进行训练。
  3. 网络架构升级

    • 统一了原有的规范隐式关键点检测器(L)、头部姿态估计网络(H)和表达变形估计网络(Δ),形成单一模型(M),其主干网络为ConvNeXt-V2-Tiny。
    • 使用SPADE解码器作为生成器(G),比原来的解码器更强大。
    • 特征体积fs被精巧地送入SPADE解码器,生成动画图像;特征体积的每个通道作为语义图来指导生成过程。
  4. 可扩展的运动变换

    引入缩放因子来优化运动变换,避免将缩放纳入表达变形中,降低训练难度。

  5. 拼接和重定向模块

    • 拼接模块(S)和眼睛、嘴唇重定向模块(Reyes、Rlip)使用小型MLP网络,计算开销极低,但能够有效控制眼睛和嘴唇的动作,同时无缝拼接动画。
    • 在推断过程中,这些模块根据不同的控制参数(αeyes、αlip、αst)决定是否应用拼接或重定向操作。
  6. 训练细节

    • 第一阶段训练从零开始,使用8块NVIDIA A100 GPU,耗时大约10天。
    • 第二阶段仅训练拼接和重定向模块,保持其他参数不变,大约需要2天。
  7. 损失函数

    • 基本损失(LE)
    • 头部姿态损失(LH)
    • 变形先验损失(LΔ)
    • 级联感知损失(LP,cascade)
    • 级联GAN损失(LG,cascade)
    • 身份保留损失(Lfaceid)
    • 指导损失(Lguide)

🔬 实验

作者首先给出了实验的实施细节和使用的基准数据集,然后进行了自我重演和跨人重演的实验,并进行了模块有效性验证的消融研究。

在自我重演方面,作者将第一帧作为源图像并将其用作驱动视频序列中的所有帧来生成动画结果。与基线方法相比,作者的方法在生成质量和眼睛运动准确性方面略优。在跨人重演方面,作者使用了FFHQ数据集中前50张图像作为源图像,并对前50张图像进行了比较。与基线方法相比,作者的方法在生成质量和运动准确性方面均优于其他方法。

此外,作者还进行了模块有效性验证的消融研究,包括缝合模块、眼睛和唇部重新定位模块。对于缝合模块,作者发现通过将肩部对齐到裁剪后的源肖像中,可以消除肩膀错位的问题。对于眼睛和唇部重新定位模块,作者展示了它们能够实现高质量的动画效果,并且能够控制眼睛和嘴唇的打开程度。最后,作者进行了一个例子来证明同时应用眼睛和唇部重新定位的效果。

📜 结论

总体而言,LivePortrait模型通过混合训练策略、网络架构优化、可扩展运动变换以及精心设计的拼接和重定向控制模块,实现了高效率、高可控性和高质量的肖像动画生成效果。

🤔 总结卡

文章优点

该论文提出了一种基于视频驱动的静态肖像图像动画框架,实现了高精度的控制性和高效的推理效率。该模型能够在12.8毫秒内完成一次推断,并且在各种场景下具有广泛的应用前景,如视频会议、社交媒体和娱乐等。此外,作者还对该技术可能带来的社会风险进行了探讨,并提出了相应的伦理指导原则。

方法创新点

该论文的主要贡献在于提出了一种基于混合图像-视频训练策略的增强型隐式关键点视频驱动肖像动画框架。该框架通过升级网络架构、使用可扩展的运动变换、设计基于地标引导的隐式关键点优化以及多个级联损失项等方式,显著提高了生成质量和泛化能力。同时,作者还设计了先进的拼接模块和两个重定向模块,以提高可控性,并在计算开销方面保持微小。

未来展望

虽然该论文提出的肖像动画框架已经取得了很好的效果,但仍然存在一些局限性,例如跨重演情况下姿势变化较大时的表现不佳,以及肩部移动较多的情况下可能会出现抖动等问题。因此,在未来的研究中,作者计划解决这些问题并进一步探索如何将该技术应用于音频驱动的角色动画等领域。


http://www.ppmy.cn/server/55770.html

相关文章

Sentinel限流算法总结

文章目录 一、线程隔离二、滑动窗口算法三、令牌桶算法四、漏桶算法 一、线程隔离 线程隔离有两种方式实现: 线程池隔离:给每个服务调用业务分配一个线程池,利用线程池本身实现隔离效果信号量隔离:不创建线程池,而是…

性能测试相关理解(一)

根据学习全栈测试博主的课程做的笔记 一、说明 若未特别说明,涉及术语都是jmeter来说,线程数,就是jmeter线程组中的线程数 二、软件性能是什么 1、用户关注:响应时间 2、业务/产品关注:响应时间、支持多少并发数、…

轻松快速上手Thekey库,实现数据加密无忧

Thekey的概述: Thekey库是一个Python库,旨在简化数据加密、解密、签名和验证的过程。它提供了一套简洁易用的接口,用于处理各种加密任务,适合需要在应用程序中实现安全数据处理的开发人员. 安装Thekey库 pip install thekey使用Thekey库进行基本加密和解密操作的…

【LeetCode:3101. 交替子数组计数 + 滑动窗口 + 数学公式】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

【Unity navigation面板】

【Unity navigation面板】 Unity的Navigation面板是一个集成在Unity编辑器中的界面,它允许开发者对导航网格(NavMesh)进行配置和管理。 Unity Navigation面板的一些关键特性和功能: 导航网格代理(NavMesh Agent&…

【面试题】IO多路复用模型之poll\epoll

POLL模型 poll模型是一种基于I/O复用的网络编程模型,主要用于处理多个文件描述符的I/O操作。以下是对poll模型的详细解释: 定义与原理: poll模型允许程序同时监视多个文件描述符(socket、管道、文件等)的可读、可写及…

java版本工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统

工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管理的…

【51单片机入门】数码管原理

文章目录 前言共阴极与共阳极数码管多个数码管显示原理 总结 前言 在我们的日常生活中,数码管被广泛应用于各种电子设备中,如电子表、计时器、电子钟等。数码管的主要功能是显示数字和一些特殊字符。在这篇文章中,我们将探讨数码管的工作原理…