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

方法创新点

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

未来展望

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

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

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

相关文章

IDEA配Git

目录 前言 1.创建Git仓库,获得可提交渠道 2.选择本地提交的项目名 3.配置远程仓库的地址 4.新增远程仓库地址 5.开始进行commit操作 6.push由于邮箱问题被拒绝的解决方法: 后记 前言 以下操作都是基于你已经下载了Git的前提下进行的&#xff0c…

基于机器学习(支持向量机,孤立森林,鲁棒协方差与层次聚类)的机械振动信号异常检测算法(MATLAB 2021B)

机械设备异常检测方法流程一般如下所示。 首先利用传感器采集机械运行过程中的状态信息,包括,振动、声音、压力、温度等。然后采用合适的信号处理技术对采集到机械信号进行分析处理,提取能够准确反映机械运行状态的特征。最后采用合理的异常决…

算法系列--分治排序|再谈快速排序|快速排序的优化|快速选择算法

前言:本文就前期学习快速排序算法的一些疑惑点进行详细解答,并且给出基础快速排序算法的优化版本 一.再谈快速排序 快速排序算法的核心是分治思想,分治策略分为以下三步: 分解:将原问题分解为若干相似,规模较小的子问题解决:如果子问题规模较小,直接解决;否则递归解决子问题合…

Debezium报错处理系列之第110篇: ERROR Error during binlog processing.Access denied

Debezium报错处理系列之第110篇:ERROR Error during binlog processing. Last offset stored = null, binlog reader near position = /4 Access denied; you need at least one of the REPLICATION SLAVE privilege for this operation 一、完整报错二、错误原因三、解决方法…

智能化客户服务:提升效率与体验的新模式

在数字化浪潮的推动下,客户服务领域正经历着一场深刻的变革。智能化客户服务的兴起,不仅重塑了企业与客户之间的互动方式,更在提升服务效率与增强客户体验方面展现出了巨大潜力。本文将深入探讨智能化客户服务的新模式,分析其如何…

Error in onLoad hook: “SyntaxError: Unexpected token u in JSON at position 0“

1.接收页面报错 Error in onLoad hook: "SyntaxError: Unexpected token u in JSON at position 0" Unexpected token u in JSON at position 0 at JSON.parse (<anonymous>) 2.发送页面 &#xff0c;JSON.stringify(item) &#xff0c;将对象转换为 JSO…

InspireFace-商用级的跨平台开源人脸分析SDK

InspireFace-商用级的跨平台开源人脸分析SDK InspireFaceSDK是由insightface开发的⼀款⼈脸识别软件开发⼯具包&#xff08;SDK&#xff09;。它提供了⼀系列功能&#xff0c;可以满⾜各种应⽤场景下的⼈脸识别需求&#xff0c;包括但不限于闸机、⼈脸⻔禁、⼈脸验证等。 该S…

运维锅总详解CPU

本文从CPU简介、衡量CPU性能指标、单核及多核CPU工作流程、如何平衡 CPU 性能和防止CPU过载、为什么计算密集型任务要选择高频率CPU、超线程技术、CPU历史演进及摩尔定律等方面对CPU进行详细分析。希望对您有所帮助&#xff01; 一、CPU简介 CPU&#xff08;中央处理器&#…

2024年马蹄杯专科组第三场初赛 解题报告 | 珂学家

前言 题解 VP了这场比赛&#xff0c;整体还是偏简单&#xff0c;最难的题是数论相关&#xff0c;算一道思维题。 也看了赛时榜单&#xff0c;除了数论&#xff0c;大模拟和图论题也是拦路虎。 打工人 有趣的一道数学题&#xff0c;有点绕 很像数列和 ∑ i 1 i n i n ∗ …

14-20 Vision Transformer用AI的画笔描绘新世界

概述 毫无疑问,目前最受关注且不断发展的最重要的主题之一是使用人工智能生成图像、视频和文本。大型语言模型 (LLM) 已展示出其在文本生成方面的卓越能力。它们在文本生成方面的许多问题已得到解决。然而,LLM 面临的一个主要挑战是它们有时会产生幻觉反应。 最近推出的新模…

06-6.4.5 关键路径

&#x1f44b; Hi, I’m Beast Cheng &#x1f440; I’m interested in photography, hiking, landscape… &#x1f331; I’m currently learning python, javascript, kotlin… &#x1f4eb; How to reach me --> 458290771qq.com 喜欢《数据结构》部分笔记的小伙伴可以…

Apispec,一个用于生成 OpenAPI(Swagger)规范的 Python 库

目录 01什么是 Apispec&#xff1f; 为什么选择 Apispec&#xff1f; 安装与配置 02Apispec 的基本用法 生成简单的 API 文档 1、创建 Apispec 实例 2、定义 API 路由和视图 3、添加路径到 Apispec 集成 Flask 和 Apispec 1、安装…

Buuctf之SimpleRev做法

首先&#xff0c;查个壳&#xff0c;64bit&#xff0c;那就丢进ida64中进行反编译进来之后&#xff0c;我们进入main函数&#xff0c;发现里面没什么东西&#xff0c;那就shiftf12搜索字符串&#xff0c;找到关键字符串&#xff0c;双击进入然后再选中该字符串&#xff0c;ctrl…

东莞惠州数据中心机房搬迁方案流程

进入21世纪以来&#xff0c;数据中心如雨后春笋般在各行各业兴建起来&#xff0c;经过近20年的投产运行&#xff0c;大量的数据中心机房存在容量不足、机房陈旧、设备老化无法支撑业务发展的情况&#xff0c;产生机房改造、搬迁需求。为安全、可靠地完成机房搬迁&#xff0c;减…

【JVM 的内存模型】

1. JVM内存模型 下图为JVM内存结构模型&#xff1a; 两种执行方式&#xff1a; 解释执行&#xff1a;JVM是由C语言编写的&#xff0c;其中有C解释器&#xff0c;负责先将Java语言解释翻译为C语言。缺点是经过一次JVM翻译&#xff0c;速度慢一点。JIT执行&#xff1a;JIT编译器…

7 动态规划

下面的例子不错&#xff1a; 对于动态规划&#xff0c;能学到不少东西&#xff1b; 你要清楚每一步都在做什么&#xff0c;划分细致就能够拆解清楚&#xff01; xk. - 力扣&#xff08;LeetCode&#xff09; labuladong的算法笔记-动态规划-CSDN博客 动态规划是一种强大的算法…

nginx的正向代理和反向代理以及tomcat

nginx的正向代理和反向代理&#xff1a; 正向代理以及缓存配置&#xff1a; 代理&#xff1a;客户端不再是直接访问服务端&#xff0c;通过代理服务器访问服务端。 正向代理&#xff1a;面向客户端&#xff0c;我们通过代理服务器的IP地址访问目标范围端。 服务端只知道代理…

绝区叁--如何在移动设备上本地运行LLM

随着大型语言模型 (LLM)&#xff08;例如Llama 2和Llama 3&#xff09;不断突破人工智能的界限&#xff0c;它们正在改变我们与周围技术的互动方式。这些模型早已集成到我们的手机中&#xff0c;但到目前为止&#xff0c;它们理解和处理请求的能力还非常有限。然而&#xff0c;…

【C++】模板进阶--保姆级解析(什么是非类型模板参数?什么是模板的特化?模板的特化如何应用?)

目录 一、前言 二、什么是C模板&#xff1f; &#x1f4a6;泛型编程的思想 &#x1f4a6;C模板的分类 三、非类型模板参数 ⚡问题引入⚡ ⚡非类型模板参数的使用⚡ &#x1f525;非类型模板参数的定义 &#x1f525;非类型模板参数的两种类型 &#x1f52…

使用 ESP32-WROOM + DHT11 做个无屏温湿度计

最近梅雨天&#xff0c;有个房间湿度很大&#xff0c;而我需要远程查看温湿度&#xff0c;所以无所谓有没有显示屏&#xff0c;某宝上的温湿度计都是带屏的&#xff0c;如果连WIFI查看温湿度操作也比较麻烦&#xff0c;还需要换电池&#xff0c;实在不能满足我的需求&#xff0…