AnimateAnyone:图像到视频角色动画合成的框架
共 9295字,需浏览 19分钟
·
2024-06-07 15:33
AnimateAnyone:图像到视频角色动画合成的框架
论文名称:Animate Anyone: Consistent and Controllable Image-to-Video Synthesis for Character Animation
主页:https://humanaigc.github.io/animate-anyone/
论文地址:https://arxiv.org/pdf/2311.17117
Github 地址:https://github.com/HumanAIGC/AnimateAnyone
一、背景知识
1.1 研究背景
近年来,扩散模型已经展示了它们在生成高质量图像和视频方面的优越性。研究人员开始利用扩散模型的架构和它们预训练的强大生成能力来探索人体图像到视频的任务。
-
DreamPose: -
方法:聚焦于时尚图像到视频的合成,扩展了Stable Diffusion并提出了一个适配器模块,用于整合来自图像的CLIP和VAE特征。 -
存在问题:DreamPose需要对输入样本进行微调以确保一致的结果,导致操作效率并不是十分高。 -
DisCo: -
方法:研究了人体舞蹈生成,类似地修改了Stable Diffusion,通过CLIP整合了角色特征,并通过ControlNet整合了背景特征。 -
存在问题:它在保持角色细节方面存在不足,并且存在帧间抖动问题。
此外,目前关于角色动画的研究主要集中在特定任务和基准上,导致了有限的泛化能力。最近,受益于文本到图像研究的进展,视频生成(例如文本到视频、视频编辑)在视觉质量和多样性方面取得了显著进展。
-
一些研究将文本到视频的方法扩展到图像到视频。 -
存在问题:这些方法在捕捉图像的复杂细节方面表现不佳,提供了更多的多样性但缺乏精度,特别是在应用于角色动画时,导致角色外观的细致细节发生时间变化。此外,当处理大幅度的角色移动时,这些方法往往难以生成一个一致稳定且连续的过程。
目前,尚未观察到一种能够同时实现泛化性和一致性的角色动画方法。
1.2 存在问题
-
生成的图像或视频存在局部失真、模糊细节、语义不一致和时间不稳定等问题 -
一些历史的姿态驱动视频生成方案,在生成的视频上容易出现视频一致性(准确度)减弱的问题; -
另一个核心的问题在于,之前的一些驱动方案在以人作为主题的视频生成,无法同时保证泛化性和一致性的能力。
1.3 Animate Anyone可以做什么?
-
角色动画生成:从静态图像生成动态的角色视频。 -
时尚视频合成:将时尚摄影作品转换为逼真的动画视频。 -
人类舞蹈生成:在真实世界的舞蹈场景中动画化图像。 -
图像到视频的一致性和可控性:保持角色的详细信息,同时实现视频帧之间的平滑过渡。
1.4 Animate Anyone适合哪些人群?
-
动画制作人员:需要从静态图像创建动态视频的专业人士。 -
设计师和艺术家:寻找新的创意表达方式和动画工具。 -
研究人员和学者:在人工智能和计算机视觉领域进行研究的专业人士。 -
内容创作者:需要为社交媒体或其他平台制作独特动画内容的创作者。
二、AnimateAnyone 核心优化点是什么?
AnimateAnyone 能够将角色图片转化为受期望姿态序列控制的动画视频,同时确保外观一致性和时间稳定性。主要创新包括三个模块:
-
设计了ReferenceNet(参考网络),思路和ControlNet非常接近,Copy了Unet的核心模块,用于捕获和保留参考图像中的详细信息。 -
使用了一个高效的Pose Guider(姿态引导器)来实现角色运动的控制。 -
引入了一种有效的时间建模方法,确保帧间的平滑过渡。Spatial-Attention,算是比较常见的模块化处理了。
三、介绍一下 AnimateAnyone 整体网络结构?
AnimateAnyone 包含三个关键组件:
-
1)ReferenceNet:编码参考图像中字符的外观特征; -
2)Pose Guider:编码运动控制信号,实现角色的可控动作; -
3)Temporal Layer:编码时间关系,保证角色运动的连续性。
3.1 Encoder
-
方法:通过VAE和CLIP分辨进行编码(姑且称之为编码,其实是特征提取的过程)
3.2 ReferenceNet
-
动机:在图像到视频任务中,图像包含更多低层次的详细特征,要求生成结果外观具有精确的一致性。 -
方法:引入了 ReferenceNet(参考图像特征提取网络) ,专门设计为对称UNet结构,以捕捉参考图像的空间细节。在每个UNet块的对应层,用 Spatial-Attention 替换了 Self-Attention,将ReferenceNet的特征集成到去噪UNet中。 -
优点:这种架构使模型能够在一致的特征空间中全面学习与参考图像的关系,从而显著提高外观细节的保留。
同时文章给出了和原生ControlNet的的取舍的原因:为什么不使用ControlNet 一般Unet+零卷积的实现方案,整体的原因是输入的控制信息,例如作为深度和边缘的canny特征控制,适合输入图像一致对齐的。但是落到现在的具体任务中,参考图像和目标图像在空间上相关但不一致(所以只能做controlNet reference-only相似生成)。因此,ControlNet不是适合直接应用,下面给出具体的实验效果。
3.3 Pose Guider
-
动机:为了确保姿势可控性,同时为了不增加控制网络模型的复杂性,没有引入额外的插件来实现该功能。 -
方法:引入了一个轻量级的 Pose Guider: -
step 1:利用四个卷积层(4×4的卷积核,2×2的步幅,使用16、32、64、128个通道)来将姿势图像与噪声潜在变量具有相同分辨率对齐; -
step 2:处理过的姿势图像在输入去噪UNet之前被加到噪声潜在变量中。Pose Guider 使用高斯权重进行初始化,并在最后的投影层中,采用了零卷积(零卷积参考controlnet即可);
3.4 Temporal Layer
-
动机:为了确保帧间的平滑过渡,即时间稳定性 -
方法:在Res-Trans块中加入了 Temporal Attention 模块,通过 Temporal Attention 模块,来进行时空一致性的控制。 Temporal Attention 层位于Res-Trans块内,对特征图进行 时间注意力操作,从而捕获帧间的相关性。时间层的输出与原始特征图通过残差连接相结合,以保留空间信息。这种设计可以实现让模型能够生成具有平滑帧间过渡的动画视频。
四、介绍一下 AnimateAnyone 训练策略?
采用了一种分阶段的训练策略,分为两个阶段进行训练,以实现高质量的角色动画。
4.1 第1阶段
在第一阶段,使用单个视频帧进行训练。在去噪UNet中,论文暂时排除了时间层,模型以单帧噪声作为输入。
这个阶段的优化目标:学习参考图像中的细节特征,使模型能够在给定参考图像和目标姿势的条件下生成高质量的动画图像。
在这个阶段,论文仅训练ReferenceNet和Pose Guider。通过在单个图像上进行训练,模型能够专注于学习与参考图像相关联的细节特征,同时实现对角色运动的控制。这为后续阶段的训练奠定了基础。
-
各模块权重初始化: -
基于从SD预训练权重初始化去噪UNet和ReferenceNet的模型。 -
Pose Guider使用高斯权重进行初始化 -
最后的投影层使用零卷积。 -
VAE的编码器和解码器以及CLIP图像编码器的权重都保持不变。
注:参考图像是从整个视频剪辑中随机选择的
4.2 第2阶段
在第二阶段,将时间层引入先前训练好的模型,并使用AnimateDiff的预训练权重进行初始化。模型的输入包括一个包含24帧的视频剪辑。在这个阶段,论文只训练时间层,同时固定网络的其余权重。
这个阶段的优化目标:实现帧间的平滑过渡,从而使生成的视频具有更好的时间连续性。通过在视频序列上进行训练,模型能够学习到帧间的相关性,并调整其生成过程以实现更自然的动画效果。
4.3 AnimateAnyone 为什么要将训练过程分为两个阶段?
AnimateAnyone 训练过程分为两个阶段,这有助于在不同阶段关注不同的目标,从而实现高质量的角色动画。
-
在第一阶段,模型学习保留细节特征并实现运动控制; -
在第二阶段,模型进一步优化帧间过渡,使生成的视频更加流畅和自然。通过这种分阶段训练策略,论文的方法能够在角色动画任务上取得优越的性能。
五、Animate Anyone实验效果分析
5.1 实验设计
-
训练样本: 从互联网收集了5K个角色视频片段(2-10s时长)进行训练,并采用DWPose提取角色的姿势序列(包括身体和手),并采用DWPose和OpenPose提取角色的姿势序列 -
训练硬件:4个NVIDIA A100 GPU。 -
在训练过程中,使用了两个阶段的训练: -
在第一个训练阶段,采样单个视频帧,并调整大小和中心裁剪到768×768的分辨率,batch size设置为64,训练30000步; -
在第二个训练阶段,使用24帧视频序列,并设置batch size为4,训练10000步。 -
两种学习率都设置为1e-5。 -
在推理过程中,重新调整姿势轮廓的长度来匹配角色参考图像中的特征轮廓,并使用DDIM采样器进行20步去噪。作者采用了时间聚合中的方法,将不同批次的结果连接到生成长视频。 -
为了与其他图像进行公平比较动画方法,作者还在两个特定的基准(UBC时尚视频数据集和TikTok数据集)上训练模型。
5.2 定性分析
Animate Anyone可以动画化任意角色,包括全身人物、半身肖像、卡通角色和人形角色。它能够生成高清晰度和逼真的角色细节,并在大幅度运动下保持与参考图像的时间一致性,同时在帧之间展现时间连续性。更多视频结果可在补充材料中查看。
5.3 对比分析
Animate Anyone在时尚视频合成和人类舞蹈生成两个基准测试中进行了评估。使用SSIM、PSNR和LPIPS等指标进行图像质量的定量评估,使用FVD指标进行视频质量的评估。
-
时尚视频合成
无论是在时尚视频合成还是人类舞蹈生成测试中,Animate Anyone都展现了卓越的性能和稳定性。这种方法能够生成高质量的动画视频,并能够有效地保持服装细节的一致性以及捕捉和表达人类舞蹈的动作和节奏。
-
人类舞蹈生成
本方法在真实世界的舞蹈场景中对图像进行动画化。与其他方法相比,本方法不需要先进行人体分割,能够更好地处理复杂的舞蹈动作和不同外观的角色。
-
图像到视频通用方法
本方法在与其他图像到视频方法的比较中也表现出色。
5.4 消融实验
六、Animate Anyone的应用场景
-
角色动态化:无论是真人、动漫角色还是卡通形象或人形物体,Animate Anyone都能让它们动起来,为各种创意项目增添乐趣。 -
时尚视频合成:在时尚领域,Animate Anyone能够将静态模特转化为动态展示,实现不同角度和着装效果的动态展示,为服装展示提供新的视觉体验。 -
人类舞蹈生成:Animate Anyone通过结合参考图像和姿态骨架动画,能够生成逼真的舞蹈视频,可以让一本真经的人物也跳起舞来。
Animate Anyone 优点
与先前的方法相比,论文的方法具有几个显著优势。
-
首先,在视频中有效地保持了角色外观的空间和时间一致性。 -
其次,它生成了没有时间抖动或闪烁等问题的高清晰度视频。 -
第三,它能够将任何角色图像动画化为视频,不受特定领域的限制。
Animate Anyone不足之处
-
与许多视觉生成模型类似,模型可能难以为手部运动生成高度稳定的结果,有时会导致失真以及运动模糊; -
由于图像只提供了一个视角,生成角色移动时未见部分的问题是不确定的,可能会导致不稳定性; -
由于使用了DDPM,该模型的生成效率较低。
论文总结
Animate Anyone 使用referenceNet用来进行角色控制,然后pose guider进行动作的编码,这两个在第一步进行训练,最后使用temperal layer进行时延的训练,使得最后的图像序列在时间上保证连续性;总体来说referenceNet这种直接参与的方式会比controlnet在时间序列任务上更有优势;但是我也觉得有些结构上冗余,不过现在也确实没想出好办法来,或许需要借鉴下其他人的设计。
疑点解答
结合 Stable Diffusion 理解 Animate Anyone 思想
Stable Diffusion 的核心思想:
-
利用文本特征指导纯噪声的图片逐步去噪。由于每张图片满足一定规律分布,利用文本中包含的这些分布信息作为指导,把一张纯噪声的图片逐步去噪,生成一张跟文本信息匹配的图片。它其实是一个比较组合的系统,里面包含了多个模型子模块。这里就可以看出,典型的diffusion是通过CLIP这种类型的模型完成文字编码,得到引导性的特征; -
然后直接拿一个噪声图片,在一个Unet结构的网络下,用这个引导特征和这个噪声图片,通过该网络多次处理(这里包含有Unet计算和一些采样方法)获得一个可以体现文字语义特征的新的特征矩阵' -
解码。然后使用解码器在此基础上将该特征矩阵恢复为图像。
Animate Anyone 思想:
-
指导性去噪。模仿SD思路,将pose guider出来的特征和noise的特征,类比于SD里面的clip出来的特征和噪声, 然后丢给Unet结构模型进行去噪(就是复原出相应的语义特征),只不过这里过程跟SD有不同,采用了CLIP和VAE+referencenet的结果,作为另一种语义特征,也加入到了这个Unet的计算过程; -
然后这个Unet的计算也不是SD那样的卷积形式,这里Unet的计算作者做了改造,使用了称之为spatial attention、cross attention、temporal attention的方式进行了计算; -
解码。还是跟SD差不多,使用VAE的解码器,进行解码,将包含了语义特征的降噪后的特征恢复为图像。
如何 保存与参考图像复杂外观的一致性?
为了保存与参考图像复杂外观的一致性,设计了一个称之为“referenceNet”,通过空间注意力合并详细特征。
如何 确保可控性和角色连贯性?
为了确保可控性和角色连贯性,引入了姿势指导器(pose-guide)来引导角色移动,并且采用一种有效的时间建模方法,确保视频帧之间的平滑性;该方法在时尚视频和人体舞蹈合成上面取得领先效果。
致谢
-
【AIGC-AI视频生成系列-6】Animate Anyone: 效果炸裂,基于图片的高质量可控视频生成 https://zhuanlan.zhihu.com/p/672881893 -
Animate Anyone -阿里开源的图像到视频角色动画合成的框架 https://ai-bot.cn/animate-anyone/ -
【论文阅读】Animate Anyone Consistent and Controllable Image-to-Video Synthesis for Character Animation https://zhuanlan.zhihu.com/p/670668263 -
【论文解读】AnimateAnyone:角色动画的一致可控的图像到视频合成 https://blog.csdn.net/qq_44091004/article/details/134724004 -
阿里角色动画《Animate Anyone: Consistent and Controllable Image-to-Video Synthesis for Character Animation》 https://zhuanlan.zhihu.com/p/687407362 -
AI视频新突破!一张照片生成视频,动画丝滑!阿里发布Animate Anyone! https://baijiahao.baidu.com/s?id=1784741680657892423 -
Animate Anyone:创新的图像到视频角色动画合成 https://www.aihub.cn/tools/video/animate-anyone/ -
【论文复现】摩尔线程版AnimateAnyone https://blog.csdn.net/weixin_57974242/article/details/136571894 【包含 调试经验】