【动画视频生成】
转自:机器之心
动画视频生成这几天火了,这次 NUS、字节的新框架不仅效果自然流畅,还在视频保真度方面比其他方法强了一大截。
最近,阿里研究团队构建了一种名为 Animate Anyone 的方法,只需要一张人物照片,再配合骨骼动画引导,就能生成自然的动画视频。不过,这项研究的源代码还没有发布。

让钢铁侠动起来。
其实在 Animate Anyone 这篇论文出现在 arXiv 上的前一天,新加坡国立大学 Show 实验室和字节联合做了一项类似的研究。他们提出了一个基于扩散的框架 MagicAnimate,旨在增强时间一致性、忠实地保留参考图像并提升动画保真度。并且,MagicAnimate 项目是开源的,目前推理代码和 gradio 在线 demo 已经发布。

-
论文地址:https://arxiv.org/pdf/2311.16498.pdf
-
项目地址:https://showlab.github.io/magicanimate/
-
GitHub 地址:https://github.com/magic-research/magic-animate
为了实现上述目标,研究者首先开发了一个视频扩散模型来编码时间信息。接着为了保持跨帧的外观连贯性,他们引入了新颖的外观编码器来保留参考图像的复杂细节。利用这两个创新,研究者进一步使用简单的视频融合技术来保证长视频动画的平滑过渡。
实验结果表明,MagicAnimate 在两项基准测试上均优于基线方法。尤其在具有挑战性的 TikTok 跳舞数据集上,本文方法在视频保真度方面比最强基线方法高出 38%以上。
我们来看以下几个 TikTok 小姐姐的动态展示效果。



除了跳舞的 TikTok 小姐姐之外,还有「跑起来」的神奇女侠。

戴珍珠耳环的少女、蒙娜丽莎都做起了瑜伽。


除了单人,多人跳舞也能搞定。


与其他方法比较,效果高下立判。

接下来介绍 MagicAnimate 的方法和实验结果。
方法概览
给定参考图像 I_ref 和运动序列
,其中 N 是帧数。MagicAnimate 旨在合成连续视频
![]()
。其中出现画面 I_ref,同时遵循运动序列
。现有基于扩散模型的框架独立处理每个帧,忽略了帧之间的时间一致性,从而导致生成的动画存在「闪烁」问题。
为了解决该问题,该研究通过将时间注意力(temporal attention)块合并到扩散主干网络中,来构建用于时间建模的视频扩散模型
。
此外,现有工作使用 CLIP 编码器对参考图像进行编码,但该研究认为这种方法无法捕获复杂细节。因此,该研究提出了一种新型外观编码器(appearance encoder)
,将 I_ref 编码到外观嵌入 y_a 中,并以此为基础对模型进行调整。
MagicAnimate 的整体流程如下图 2 所示,首先使用外观编码器将参考图像嵌入到外观嵌入中,然后再将目标姿态序列传递到姿态 ControlNet
中,以提取运动条件
。

在实践中,由于内存限制,MagicAnimate 以分段的方式处理整个视频。得益于时间建模和强大的外观编码,MagicAnimate 可以在很大程度上保持片段之间的时间和外观一致性。但各部分之间仍然存在细微的不连续性,为了缓解这种情况,研究团队利用简单的视频融合方法来提高过渡平滑度。
如图 2 所示,MagicAnimate 将整个视频分解为重叠的片段,并简单地对重叠帧的预测进行平均。最后,该研究还引入图像 - 视频联合训练策略,以进一步增强参考图像保留能力和单帧保真度。
实验及结果
实验部分,研究者在两个数据集评估了 MagicAnimate 的性能,分别是 TikTok 和 TED-talks。其中 TikTok 数据集包含了 350 个跳舞视频,TED-talks 包含 1,203 个提取自 YouTube 上 TED 演讲视频的片段。
首先看定量结果。下表 1 展示了两个数据集上 MagicAnimate 与基线方法的定量结果比较,其中表 1a 显示在 TikTok 数据集上,本文方法在 L1、PSNR、SSIM 和 LPIPS 等重建指标上超越了所有基线方法。
表 1b 显示在 TED-talks 数据集上,MagicAnimate 在视频保真度方面也更好,取得了最好的 FID-VID 分数(19.00)和 FVD 分数(131.51)。

再看定性结果。研究者在下图 3 展示了 MagicAnimate 与其他基线方法的定性比较。本文方法实现了更好的保真度,展现了更强的背景保留能力, 这要归功于从参考图像中提取细节信息的外观编码器。

研究者还评估了 MagicAnimate 的跨身份动画(Cross-identity animation),以及与 SOTA 基线方法的比较,即 DisCo 和 MRAA。具体来讲,他们从 TikTok 测试集中采样了两个 DensePose 运动序列,并使用这些序列对其他视频的参考图像进行动画处理。
下图 1 显示出 MRAA 无法泛化到包含大量不同姿态的驱动视频,而 DisCo 难以保留参考图像的细节。相比之下,本文方法忠实地为给定目标运动的参考图像设置动画,展示了其稳健性。

最后是消融实验。为了验证 MagicAnimate 中设计选择的有效性,研究者在 TikTok 数据集上进行了消融实验,包括下表 2 和下图 4 中有无时间建模、外观编码器、推理阶段视频融合以及图像 - 视频联合训练等。


MagicAnimate 的应用前景也很广。研究者表示,尽管仅接受了真实人类数据的训练,但它展现出了泛化到各种应用场景的能力,包括对未见过的领域数据进行动画处理、与文本 - 图像扩散模型的集成以及多人动画等。

更多细节请阅读原论文。
相关文章:
【动画视频生成】
转自:机器之心 动画视频生成这几天火了,这次 NUS、字节的新框架不仅效果自然流畅,还在视频保真度方面比其他方法强了一大截。 最近,阿里研究团队构建了一种名为 Animate Anyone 的方法,只需要一张人物照片࿰…...
《Spring Cloud学习笔记:微服务保护Sentinel》
Review 解决了服务拆分之后的服务治理问题:Nacos解决了服务治理问题OpenFeign解决了服务之间的远程调用问题网关与前端进行交互,基于网关的过滤器解决了登录校验的问题 流量控制:避免因为突发流量而导致的服务宕机。 隔离和降级:…...
解密负载均衡:如何平衡系统负载(下)
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…...
go 源码解读 - sync.Mutex
sync.Mutex mutex简介mutex 方法源码标志位获取锁LocklockSlowUnlock怎么 调度 goroutineruntime 方法 mutex简介 mutex 是 一种实现互斥的同步原语。(go-version 1.21) (还涉及到Go运行时的内部机制)mutex 方法 Lock() 方法用于…...
机器学习系列--R语言随机森林进行生存分析(1)
随机森林(Breiman 2001a)(RF)是一种非参数统计方法,需要没有关于响应的协变关系的分布假设。RF是一种强大的、非线性的技术,通过拟合一组树来稳定预测精度模型估计。随机生存森林(RSF࿰…...
<JavaEE> TCP 的通信机制(四) -- 流量控制 和 拥塞控制
目录 TCP的通信机制的核心特性 五、流量控制 1)什么是“流量控制”? 2)如何做到“流量控制”? 3)“流量控制”的作用 六、拥塞控制 1)什么是“拥塞控制”? 2)如何做到“拥塞…...
智慧监控平台/AI智能视频EasyCVR接口调用编辑通道详细步骤
视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,GB28181视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多路视频流,…...
Go语言实现KV存储系统:前言
文章目录 前言前提条件持久索引并发总结 前言 你好,我是醉墨居士,最近想做一些存储方面的东西玩玩,我第一时间就想到了能不能自己开发一个保存键值对的存储系统 我找了些资料,准备使用Go语言实现一下,想着有想法咱就…...
代码随想录刷题笔记(DAY1)
前言:因为学校的算法考试让我认识了卡哥,为了下学期冲击大厂实习的理想,我加入了卡哥的算法训练营,从今天开始我每天会更新自己的刷题笔记,与大家一起打卡,一起共勉! Day 1 01. 二分查找 &…...
Linux域名IP映射
本地域名IP映射 在Linux系统中,域名映射可以通过编辑/etc/hosts文件来实现。/etc/hosts文件用于将主机名映射到IP地址,从而实现本地域名解析。它通常被用于在没有DNS服务器的情况下,手动指定特定域名和IP地址的映射关系。 格式:…...
postman使用-03发送请求
文章目录 请求1.新建请求2.选择请求方式3.填写请求URL4.填写请求参数get请求参数在params中填写(填完后在url中会自动显示)post请求参数在body中填写,根据接口文档请求头里面的content-type选择body中的数据类型post请求参数为json-选择raw-选…...
【Spring实战】09 MyBatis Generator
文章目录 1. 依赖2. 配置文件3. 生成代码4. 详细介绍 generatorConfig.xml5. 代码详细总结 Spring MyBatis Generator 是 MyBatis 官方提供的一个强大的工具,它能够基于数据库表结构自动生成 MyBatis 持久层的代码,包括实体类、Mapper 接口和 XML 映射文…...
【自然语言处理】【大模型】 ΨPO:一个理解人类偏好学习的统一理论框架
一个理解人类偏好学习的统一理论框架 《A General Theoretical Paradiam to Understand Learning from Human Preferences》 论文地址:https://arxiv.org/pdf/2310.12036.pdf 相关博客 【自然语言处理】【大模型】 ΨPO:一个理解人类偏好学习的统一理论框…...
计算机网络——传输层(五)
前言: 最重要的网络层我们已经学习完了,下面让我们再往上一层,对网络层的上一层传输层进行一个学习与了解,学习网络层的基本概念和网络层中的TCP协议和UDP协议 目录 编辑一、传输层的概述: 1.传输层: …...
python3处理docx并flask显示
前言: 最近有需求处理docx文件,并讲内容显示到页面,对world进行在线的阅读,这样我这里就使用flaskDocument对docx文件进行处理并显示,下面直接上代码: Document处理: 首先下载Document的库文…...
Python:正则表达式速通,码上上手!
1前言 正则表达式(Regular Expression)是一种用来描述字符串模式的表达式。它是一种强大的文本匹配工具,可以用来搜索、替换和提取符合特定模式的文本。 正则表达式由普通字符(例如字母、数字、符号等)和元字符&#…...
centos7安装nginx并安装部署前端
目录: 一、安装nginx第一种方式(外网)第二种方式(内网) 二、配置前端项目三、Nginx相关命令 好久不用再次使用生疏,这次记录一下 一、安装nginx 第一种方式(外网) 1、下载nginx ng…...
Hive实战:统计总分与平均分
文章目录 一、实战概述二、提出任务三、完成任务(一)准备数据文件1、在虚拟机上创建文本文件2、将文本文件上传到HDFS指定目录 (二)实现步骤1、启动Hive Metastore服务2、启动Hive客户端3、创建Hive表,加载HDFS数据文件…...
Linux:不同计算机使用NFS共享资源
一,安装NFS文件系统 NFS即网络文件系统(network file system),它允许网络中的计算机之间通过网络共享资源。目前,NFS只用于在Linux和UNIX主机间共享文件系统。 #使用mount命令可以将远程主机的文件系统 安装到 本地: #将远程主机…...
leetcode贪心算法题总结(一)
此系列分三章来记录leetcode的有关贪心算法题解,题目我都会给出具体实现代码,如果看不懂的可以后台私信我。 本章目录 1.柠檬水找零2.将数组和减半的最少操作次数3.最大数4.摆动序列5.最长递增子序列6.递增的三元子序列7.最长连续递增序列8.买卖股票的最…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)
cd /home 进入home盘 安装虚拟环境: 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境: virtualenv myenv 3、激活虚拟环境(激活环境可以在当前环境下安装包) source myenv/bin/activate 此时,终端…...
PydanticAI快速入门示例
参考链接:https://ai.pydantic.dev/#why-use-pydanticai 示例代码 from pydantic_ai import Agent from pydantic_ai.models.openai import OpenAIModel from pydantic_ai.providers.openai import OpenAIProvider# 配置使用阿里云通义千问模型 model OpenAIMode…...
拟合问题处理
在机器学习中,核心任务通常围绕模型训练和性能提升展开,但你提到的 “优化训练数据解决过拟合” 和 “提升泛化性能解决欠拟合” 需要结合更准确的概念进行梳理。以下是对机器学习核心任务的系统复习和修正: 一、机器学习的核心任务框架 机…...
