【论文解读】可灵(快手)|LivePortrait:具有拼接和重定向控制的高效肖像动画

📜 文献卡

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

方法创新点

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

未来展望

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/782021.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ESP32CAM物联网教学02

ESP32CAM物联网教学02 物联网门锁 小智来到姑姑家门口,按了门铃;还在公司上班的姑姑用电脑给小智开了门,让他先进屋休息。小智对物联网门锁产生了兴趣:什么是物联网?为什么这么厉害? 初识物联网 我们在百…

【论文阅读笔记】Meta 3D AssetGen

【论文阅读笔记】Meta 3D AssetGen: Text-to-Mesh Generation with High-Quality Geometry, Texture, and PBR Materials Info摘要引言创新点 相关工作T23D基于图片的3d 重建使用 PBR 材料的 3D 建模。 方法文本到图像:从文本中生成阴影和反照率图像Image-to-3D:基于pbr的大型重…

python 比webdriver更好用的ChromiumPage

优点(目前发现的): 不用配合selenium不用下载对应浏览器的webdriver,不用对应浏览器版本不用设置webdriver路径之类的设置目前没看到有出现像webdriver类似的浏览器被控制的提示,使用过程中好像也没被检测出来。每次不…

unity3d:Shader知识点,矩阵,函数,坐标转换,Tags,半透明,阴影,深度,亮度,优化

基本结构 Shader "MyShaderName" {Properties {// 属性}SubShader {// 针对显卡A的SubShaderPass {// 设置渲染状态和标签Tags { "LightMode""ForwardBase" }// 开始Cg代码片段CGPROGRAM// 该代码片段的编译指令,例如:#p…

【vite创建项目】

搭建vue3tsvitepinia框架 一、安装vite并创建项目1、用vite构建项目2、配置vite3、找不到模块 “path“ 或其相对应的类型声明。 二、安装element-plus1、安装element-plus2、引入框架 三、安装sass sass-loader1、安装sass 四、安装vue-router-next 路由1、安装vue-router42搭…

python基础篇(8):异常处理

在Python编程中,异常是程序运行时发生的错误,它会中断程序的正常执行流程。异常处理机制使得程序能够捕获这些错误,并进行适当的处理,从而避免程序崩溃。 1 错误类型 代码的错误一般会有语法错误和异常错误两种,语法错…

CTF常用sql注入(一)联合注入和宽字节

0x01 前言 给自己总结一下sql注入的常用姿势吧,记录一下学习 0x02 联合 联合注入的关键词是union SQL的union联合注入原理是联合两个表进行注入攻击,使用union select关键词来进行联合查询。 那么为什么我们在题目中一般是只写一个呢 因为 $sql &quo…

逆变器学习笔记(三)

DCDC电源芯片外围器件选型_dcdc的comp补偿-CSDN博客、 1.芯片的COMP引脚通常用于补偿网络: 芯片的COMP引脚通常用于补偿网络,在控制环路中发挥重要作用。COMP引脚接电容和电阻串联接地,主要是为了稳定控制环路、调整环路响应速度和滤波噪声…

cs231n作业1——SVM

参考文章:cs231n assignment1——SVM SVM 训练阶段,我们的目的是为了得到合适的 𝑊 和 𝑏 ,为实现这一目的,我们需要引进损失函数,然后再通过梯度下降来训练模型。 def svm_loss_naive(W, …

NAT 打洞

由于 ipv4 地址数量的有限性,导致实际网络部署模式中存在大量的 NAT 网络。对于 NAT 内部的主机,可以主动发起去公网的流量,但对于位于不同 NAT 内的两台主机而言,想要直接进行点对点的连接,就需要用到打洞技术了。 常…

Bash ——shell

Bash作为用户与操作系统之间的接口,让用户通过命令行输入各种指令来控制和操作计算机系统。 shell的两种解释: 1.linux命令解释器 Terminal 终端 ——》shell命令 ——》 Linux kernel (内核) Linux内核的作用: 1.…

AI与编程:一个学生的心路历程与思考

前言 大家好,本人是在一个在校的大学生,方向是前端语言。爱好是码代码和看一点小新闻,游戏也是喜爱的。其实本篇文章的想法是源于网上一些人对AI以及对前端的看法,看完网上的评论后我也是有感而发。本篇文章的讨论中心也是围绕着A…

IDA*——AcWing 180. 排书

IDA* 定义 IDA*(Iterative Deepening A*)是一种结合了深度优先搜索(DFS)的递归深度限制特性和A搜索的启发式估价函数的搜索算法。它主要用于解决启发式搜索问题,尤其是当搜索空间很大或者搜索成本不确定时。 IDA* 是…

SprongBoot及其基础应用全套部署脚本和配置

POM.xml配置 </dependencies> <!--skywalking日志监控依赖--><dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-logback-1.x</artifactId><version>8.5.0</version></dependency&g…

轻松驾驭开发之旅:Maven配置阿里云CodeUp远程私有仓库全攻略

文章目录 引言一、为什么选择阿里云CodeUp作为远程私有仓库&#xff1f;二、Maven配置阿里云CodeUp远程私有仓库的步骤准备工作配置Maven的settings.xml文件配置项目的pom.xml文件验证配置是否成功 三、使用阿里云CodeUp远程私有仓库的注意事项 引言 在软件开发的世界里&#…

软件工程(上)

目录 软件过程模型&#xff08;软件开发模型&#xff09; 瀑布模型 原型模型 V模型 构件组装模型 螺旋模型&#xff08;原型瀑布&#xff09; 基于构件的软件工程&#xff08;CBSE&#xff09; 快速应用开发模型&#xff08;RAD&#xff09; 统一过程&#xff08;UP&a…

Http Json参数到x-www-form-urlencoded参数的在线转换工具

Json参数到x-www-form-urlencoded参数的在线转换工具

C语言 printf 函数多种输出格式以及占位输出

一、输出格式 在C语言中&#xff0c;printf 函数提供了多种输出格式&#xff0c;用于控制不同类型数据的输出方式。 1.整数输出格式 %d&#xff1a;以十进制形式输出整数。 %o&#xff1a;以八进制形式输出整数&#xff08;无前导0&#xff09;。 %x 或 %X&#xff1a;以十六进…

CMD命令详细介绍 | 超详细版本!

文章目录 启动cmd命令用户启动使用管理员的账号启动 文件夹命令网络命令其他常用命令介绍常用快捷方式程序员相关命令 本文参考了博客园一篇帖子&#xff0c;ULR&#xff1a;cmd常用命令介绍(可收藏) - Mrwhite86 - 博客园 (cnblogs.com) CMD是Windows操作系统自带的命令行解释…

嵌入式C语言面试相关知识——内存管理(不定期更新)

嵌入式C语言面试相关知识——内存管理&#xff08;不定期更新&#xff09; 一、博客声明二、自问题目1、嵌入式系统的内存布局是怎么样的&#xff1f;2、动态内存分配在嵌入式系统中的使用有什么注意事项&#xff1f;3、什么是内存碎片&#xff0c;如何减少内存碎片&#xff1f…