Animate Anyone 2: High-Fidelity Character Image Animation with Environment Affordance
与之前的方式比较, 增加了环境表示的提取来驱动视频. 环境被表示为没有人物的区域, 模型来填充这个区域达到生成效果. 为了保真度, 用object guider提取特征, 空间融合技术注入, 为了motion多样性, 使用姿势调节策略.
介绍
肯定发展趋势, 技术巨大潜力.
引入问题, 1) 上下文信息仅用静态图片驱动, 缺少保真性, 2)只能animate简单的动作,
总结前任工作, 生成质量和适应性面临巨大挑战.
扩展Character animate的范围(该论文实现了什么), 给定参考图片和一个驱动视频, 1)参考图片继承驱动视频的动作, 2)环境和参考图片保持一致性.
介绍技术细节, 重复引言的内容, 环境被表示为没有人物的区域, 模型来填充区域, 为了保真性, 用object guider提取特征, 空间融合技术注入.
实验效果, 1)无缝场景集成, 2)一致对象交互, 3)多样, 复杂的动作.
方法
框架
数据预处理. 对于每一个原视频, 用mask掩码分离出人物, 背景和其他对象(overview中的马), 对人物提取motion, 从中随机抽一帧, 中心剪切, 加上随机背景作为参考图片.
Diffusion Model. 基于Stable Diffusion, 扩展到3D, 时间层参考AnimateDiff.
条件生成. 用ReferenceNet提取参考图片形象特征, 只在中间块和上采样块注入, 用VAE编码, 然后和noise合并, 设计了pose modulation策略, 输出也和noise合并, VAE编码后, 通过空间混合注入去噪网络.
环境构建
就是上图中mask框的选择至关重要, 直接用人物掩码可能因为人物衣服等因素造成shape leakage, 直接使用大的人物框不行, 容易出现伪影.
策略就是把图片分成大小相同的区域, 选择和人物重叠的区域作为掩码, 通过一个变量控制区域的大小.
因为生成的掩码比原始掩码更大, 为了缓解这个偏差, 对得到的掩码使用随机尺寸增强策略.
对象注入
Object Guider. 就overview中马那部分, 阐述环境构建策略可能导致其他对象的变形, 所以它用SAM2提取了object的位置, VAE编码后用Object Guider提取特征, 为轻量的全卷积结构, 形状和去噪网络对齐.
空间融合. 指卷积网络中的每一层输出和噪声latent"融合", 融合过程是
其中F是Conv2D-Sigmoid层.
Pose Modulation
animate anyone通过骨骼表示捕获动作信息, 1)缺乏层次信息和2)肢体间关系的建模.
对于问题1, 将motion信息二值化, 求附近的深度信息, 对于问题2, 将原pose和深度化后的pose都经过Conv2D提取特征后通过cross attention, 让模型了解到肢体间关系信息, 最后通过Conv3D增强时间依赖.
实验
100,000大小的数据集, 8张A100上训练, batchsize为8, 视频长度为16, 训练100,000步, 长视频推理时切割为短视频, 前一个视频最后一帧作为下一个视频第一帧.
定性实验. 定量实验(PSNR, SSIM, LPIPS, FVD), 在tiktok数据集上评估, 在自己的数据集上评估, 角色环境交互评估. 消融实验评估了method里提到的三种策略.
讨论和结论
1)手部处理不够好, 2)复杂交互中出现伪影, 3)效果受SAM提取object能力的影响.
感受
对motion和Environment的处理都很细致, 实验结果也很好, 文章思路也清晰, 不用去钻牛角尖, 在他限定的场景里, 几乎完美的实现.