MagicAnimate:Temporally consistent human image animation using diffusion model

 

1.Introduction

        本文研究了任务形象动画人物,旨在根据特定的运动序列生成一个具有特定参考身份的视频。现有的人物图像动画的数据驱动方法可以基于所使用的生成主干模型分为两类,1.基于GAN,通常使用变形函数将参考图变形为目标姿态,并利用GAN模型来外推缺失或mask的身体部分;2.基于diffusion model,利用外观和姿势条件基于预训练的扩散模型来生成目标图像。但通常存在几个限制:1.基于GAN的方法具有受限的运动传递能力,导致mask区域的细节不真实,在跨身份场景中的泛化能力有限;2.基于扩散的方法以逐帧的方式处理长视频,然后沿temporal维度stack,忽略了temporal consistency,导致闪烁的结果,通常依赖于CLIP来编码参考外观,CLIP在保留细节方面的效果较差。

        MagicAnimate提供了long-range temporal consistency,robust appearance encoding,和高质量的逐帧动画,开发了视频扩散模型,通过将temporal attention block融入扩散模型来编码temporal信息。其次,引入了一种创新的外观编码器,以保留从参考图图像中获取的人物身份和背景信息。

2.Method

        给定一个参考图像Iref和一个运动序列P=[p1,...,pN],其中N是帧数,目标是在遵循给定的运动系列的同时合成一个连续的视频I=[I1,...,IN],其外观和Iref相似。

        Temporal consistency modeling处理闪烁问题;Appearance encoder捕捉精细的细节。

        MagicAnimate,使用Appearance encoder将参考图嵌入为Appearance embedding ya,然后将目标姿势序列,如DensePose,传入姿势控制网络Fp,提取运动条件yp,在这两个信号的基础上,训练视频扩散模型,将参考任务的身份根据给定的运动进行动画化,为了减轻一些片段之间的细微不连续性,采用一种简单的视频融合方法来提高过渡的平滑性,将整个视频分解为重叠的片段,并简单的对重叠帧的预测进行平均,引入了一种图像视频联合训练策略。

2.1 Temporal consistency modeling

        为了确保视频帧之间的时间一致性,将扩散模型扩展到视频领域,通过插入temporal attention layer将原始的2d unet变成3d unet。1.随机初始化潜在噪声Zt(1-K),其中K是视频帧的长度,2.将K个连续的姿势stack成一个Densepose序列P(1-K)用于运动指导,通过将输入特征从NxCxKxHxW重新调整为NKxCxHxW,将Zt(1-K)输入到视频扩散网络中,在temporal模块中,将特征重新调整为NKWxKxC,以沿着temporal维度计算跨帧信息,添加正弦位置编码使模型了解每帧在视频中的位置,使用standard attention操作temporal attention,MagicAnimate聚合了相邻帧的temporal信息,并合成具有improved temporal consistency的K帧。

2.2 Appearance encoder

        人物图像动画的目标是在参考图像Iref的指导下生成结果。Appearance encoder的核心目标是使用详细的身份和背景相关特征来表示Iref,这些特征可以注入到视频扩散模型中,以在运动信息引导下进行重定位,和MasaCtrl以及Reference-only controlnet模式一致,提出一种新的appearance encoder,具有improved identity and background preservation,以增强单帧的保真度和时间连贯性。创建了unet的另一个可训练副本,并且每个去噪步骤t计算参考图像Iref的条件特征,

ya是middle and upsampling blocks的normalized attention hidden states,与controlnet以residual manner add conditions的方式不同,MagicAnimate将这些特征传递给了spatial self-attention layers,通过讲过ya的每个特征和原始unet中self-attention hidden states特征concat起来,以注入appearance信息。

2.3 Animation pipeline

2.3.1 Motion transfer

        对于动画化参考人体图像,通常使用controlnet for openpose关键点,但主要的身体关键点是稀疏的,对某些动作不够稳健,例如旋转,因此采用了densepose

2.3.2 Denoising process

        基于appearance ya和运动条件yp(1-K),magicanimate根据densepose序列动画化参考图像。

2.3.3 Long video animation

        通过时间一致性建模和外观编码器,可以通过分段处理生成任意长度的时间上一致的人体图像动画结果,然而,由于temporal attention无法对不同段落之间的长程一致性(long-range consistency)建模,因此可能出现不自然的过渡和段落之间不一致的细节。

        为了解决这个问题,在推断时,采用滑动窗口方法来提高过渡的平滑性,将长的运动序列分成多个具有temporal overlap的段落,其中每个段落的长度为K,先对整个视频采样噪声Z(1-N),将其分割成具有重叠的噪声段落{Z(1-K),z(K-s+1:2K-s),...,},最后一帧不满K就填充成K,对于每个去噪时间步t,预测噪声并得到每个段落的噪声预测,然后对重叠帧进行平均合并得到动画。

2.4 Training

2.4.1 Learning objectives

        采用了多阶段的训练策略,第一阶段,临时省略temporal attention layer,将appearance encoder和姿势控制网络一起训练(Fa,Fp),第二阶段,仅优化Ft中的temporal attention layer。

2.4.2 Image-video joint training

        第一阶段,训练Fa和Fp时,设置了一个采样阈值t0,随机抽取数值,小于t0就用采样的凸显个训练。第二阶段,选择两个阈值t1和t2,<t1,从图像数据中采样训练数据,否则从视频数据中采样数据。

3.Experiments

TikTok和TED-talks数据集,

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM虚拟机系统性学习-JVM调优之通过gceasy分析GC日志对堆、元空间、线程堆栈和垃圾回收器进行调优

通过 gceasy工具对生成的 GC 日志进行分析 这里使用的 JDK 版本为 JDK8&#xff01; 在分析 GC 日志时&#xff0c;可以同时采用多种工具&#xff08;Arthas、gceasy、JVM 连接 Graphana 监控&#xff09;进行分析&#xff0c;避免某种工具分析不准确 gceasy 每个月只可以免费…

广州旅游攻略(略说一二)

广州是中国南方的一个重要城市&#xff0c;也是广东省的省会&#xff0c;拥有着悠久的历史和丰富的文化遗产。作为中国最繁华的城市之一&#xff0c;广州吸引了大量的游客前来探索其独特的魅力。今天我将为大家介绍一份广州旅游攻略&#xff0c;希望能帮助各位游客更好地了解这…

实验六 指针程序设计 要求设三个指针变量p1,p2,p3, 使p1指向三个数中最大者,p2指向次大者,p3指向最小者

1. 从键盘输入任意三个数&#xff0c;要求设三个指针变量p1,p2,p3, 使p1指向三个数中最大者&#xff0c;p2指向次大者&#xff0c;p3指向最小者&#xff0c; 然后从大到小输出三个数。 运行时分别输入3&#xff0c;7&#xff0c;5和6&#xff0c;&#xff0d;4&#xff0c;2&a…

华为实训课笔记

华为实训 12/1312/14 12/13 ping 基于ICMP协议&#xff0c;用来进行可达性测试 ping 目的IP地址/设备域名&#xff08;主机名&#xff09; 如果能收到 reply 回复&#xff0c;则表示双方可以正常通信 <Huawei> 用户视图&#xff0c;只能做查询和一些简单的资源调用&…

【Android开发-30】Android中获取全局Context和使用Intent传递对象的讲解

1&#xff0c;获取全局Context的技巧 在Android编程中&#xff0c;Context对象常常扮演着重要的角色&#xff0c;例如在弹出Toast、启动活动、发送广播、操作数据库和使用通知等场景下都需要它的支持。然而&#xff0c;在某些情况下&#xff0c;直接获取Context对象并不那么容…

【C++】策略模式

目录 一、简介1. 含义2. 特点 二、实现1. 策略接口&#xff08;Strategy Interface&#xff09;2. 具体策略类&#xff08;Concrete Strategies&#xff09;3. 上下文类&#xff08;Context&#xff09;4. 使用策略模式 三、总结如果这篇文章对你有所帮助&#xff0c;渴望获得你…

使用qemu在arm上模拟x86并运行docker

背景 有一个x86的docker镜像&#xff0c;但是需要运行在aarch64(arm64)上&#xff0c;无奈只能用qemu模拟x86的架构&#xff0c;但是最终没有实现。 原因分析&#xff1a;可能是使用的server版本的ubuntu镜像&#xff0c;建议之后换用desktop版本的ubuntu18镜像&#xff08;猜…

mjpg-streamer配置其它端口访问视频

环境 树莓派4B ubuntu 20.04 U口摄像头 确认摄像头可访问 lsusb查看 在dev下可查看到video* sudo mplayer tv://可打开摄像头并访问到视频 下载mjpg-streamer并编译安装 在github下载zip包&#xff0c;下载的源码&#xff0c;需要编译安装 unzip解压 cd mjpg-streamer/mjp…

亚信科技AntDB数据库——深入了解AntDB-M元数据锁的相关概念

AntDB-M在架构上分为两层&#xff0c;服务层和存储引擎层。元数据的并发管理集中在服务层&#xff0c;数据的存储访问在存储引擎层。为了保证DDL操作与DML操作之间的一致性&#xff0c;引入了元数据锁&#xff08;MDL&#xff09;。 AntDB-M提供了丰富的元数据锁功能&#xff…

电脑重启代码hhh

备份 自动运行 模型 图表 无标题-查询 成绩表 liushaoje(1) -表 读者表liushaojie(1).表 借阅表liushaojie(1) -表 借阅表liushaojie 查询创建工具美化 SQL 代码段 liushaojie 运行停止解释 11、列出员工表中比1号部门的某一个员工…

java写个爬虫抓取汽车之家车型配置参数

前几天有个搞工程的表弟找我&#xff0c;问我什么车好&#xff0c;可以经常跑工地的&#xff0c;看上去又有面子。于是我挥动发财的小手&#xff0c;写一个爬虫程序&#xff0c;筛选并整理了一些数据&#xff0c;并附上下载的图片提供参考&#xff0c;看中了果断第二天提车到手…

SQL区间

SQL区间 1、区间概述2、SQL区间2.1、区间分割2.2、区间交叉3、SQL区间的应用3.1、区间分割问题3.2、区间交叉问题1、区间概述 区间相较数列具有不同的数据特征,不过在实际应用中,数列与区间的处理具有较多相通性。常见的区间操作有区间分割、区间交叉等 SQL如何实现区间分割…

关于el-table中tree 懒加载默认3层及自动展开

1.问题 项目有用到el-table中使用tree 发现最多tree只显示到3层&#xff0c;及不能够自动展开的。 2.数据结构 经过探索&#xff0c;发现了el-table是通过treeData&#xff0c;和lazyTreeNodeMap 来控制懒加载数据对表格进行控制的。其中treeData的数据结构为 其主要用来保…

docker安装文档

原文链接Overview of Docker Desktop | Docker Docs Docker does not provide support for running Docker Desktop in nested virtualization scenarios. We recommend that you run Docker Desktop for Linux natively on supported distributions.运行在Windows平台内虚拟机…

【读书笔记】我在北京送快递-胡安焉

【读书笔记】 我在北京送快递 胡安焉 83个笔记 第一章 我在物流公司上夜班的一年 高级的写字楼里面&#xff0c;可能是各种996&#xff0c;各种离谱到家的项目。 不过我是在离开后&#xff0c;才从网上了解到这一点的&#xff1b;当我还在那里上班时&#xff0c;虽然也为它的…

【Java】深入剖析Java枚举类

目录 定义1&#xff09;定义2&#xff09;内部实现3&#xff09;方法与源码 高级特性1&#xff09;switch用法2&#xff09;自定义传值与构造函数3&#xff09;枚举实现抽象方法4&#xff09;枚举注解属性5&#xff09;枚举实现接口6&#xff09;复合使用 总结 定义 1&#xf…

LeetCode 309买卖股票的最佳时机含冷冻期 714买卖股票的最佳时机含手续费 | 代码随想录25期训练营day51

动态规划算法9 LeetCode 309 买卖股票的最佳时机含冷冻期 2023.12.14 题目链接代码随想录讲解[链接] int maxProfit(vector<int>& prices) {//1确定dp二维数组//dp[i][0]表示遍历到第i天时持有股票的当前收入;dp[i][1]表示遍历到第i天时未持有股票的当前收入//dp…

网页图标素材免费下载网站

这里是几个可以免费下载网页图标素材的的网站。这些个网站里的图表和素材&#xff0c;应该是都可以免费下载的。&#xff08;至少我下载了几个素材是没有花钱的&#xff09; Flaticon iconArchive freepik 4. iconmonstr 5. Icons and Photos For Everything 如果想下载图片&a…

你好,C++(1)C++是什么?C++的“前世今生”

转载:你好,C++(1)C++是什么?C++的“前世今生” - 知乎 (zhihu.com) The world is built on C++. ——Herb Sutter the chairman of the ISO C++ standards committee and chief native languages architect at Microsoft前传 C++世界地图 如果我们要到某个陌生的地方…

CSS三大特性(层叠性、继承性、优先级)

一、层叠性 1.样式冲突&#xff0c;就近原则&#xff0c;那个样式离着结构近&#xff0c;就执行那个样式&#xff1b; 2.样式不冲突&#xff0c;不会重叠。 二、继承性 &#xff08;1&#xff09;子元素可以继承父元素的样式&#xff08;text-&#xff0c;font-&#xff0c…