
人类动作转换任务有挑战性, 有广阔的应用场景.
传统方法从零开始训练, 例如GAN, 问题: 1)特别依赖一个图片扭曲模块, 因此很难生成参考图片中不可见的部分, 2)泛化能力差
最近diffusion模型崛起, 带动了多个下游任务的发展, 当前对身体pose重构存在以下问题: 1)生成质量, 身份保持, 2)与基于GAN的方法比较没有优势
讲自己的方法: 充分探索了sd的图片重构能力, 将任务分解为形象控制和姿势控制; 讲结构, 形象控制模块和pose控制模块; 讲训练方法, 多阶段的训练策略; 讲效果, IP保持好, 能处理未见部分.
序列片段生成想要的动作->人类主体转换到3D空间环境(耗费人力和时间)->利用深度学习学习输入的详细表达[GAN, 条件GAN, ...](后面一直在陈述例子)
一些工作表现diffuison在图片生成方面的潜力->Latent space减小计算损失->自定义生成热, text-image兴起[SD]->ControlNet为SD引入特别的控制信号, 像分隔图, pose点等等->加入时间模块用于视频生成.
这里介绍了VQ-VAE技术, U-Net结构, CLIP用于文本编码, diffusion加噪去噪过程, 残差块, ControlNet(是SD的延伸, 复制SD的编码结构, 学习特征残差)

先重新说了一遍自己的任务, 为了保证生成的质量, MagicPose尽可能的继承sd的参数, "appearance controller"复制SD的UNet参数, 在人类视频数据集上训练.
引用其他论文"自注意力层和外表的生成高度相关"的观点, 他们设计了一个实验, 其实就是animate anyone里的ReferenceNet, 发现生成的图片和参考图片外貌保持很好, 然后解释了一下原因, 并指出生成结果不稳定的问题.
直接看公式和图就行, 很清楚
Our_Attn=softmax(dQ1⋅(K1⊕K2)T)⋅(V1⊕V2)
这一阶段还没有pose controller, 主Unet也不训练, 只训练Appearance Controller
为了生成对应姿态的图表, 直接的方法是集成预训练的OpenPose, 但是对与外观无关的姿态控制很困难, 它的设计是这样的, 结合上图.
Pose Controller重用了Appearance Controller的下采样部分参数, 上采样部分换成了零卷积(这里让我想到了X-dancer), 下采样的输出与主Unet的下采样输出相加, 用于控制姿态.
TikTok, Everybody Dance Now数据集和自收集的卡通风格图像, 使用OpenPose提取pose. Appearance Controller的预训练在8个A100, batch_size=192训练10k步, 图片大小512x512学习率1e-4, 接着连接Pose Controller在batch_size=16训练20k步, SD参数在整个过程中冰冻.
定性和定量实验就不细看了, 消融实验部分分别删掉Appearance Controller(当然Pose Controller因为依赖App Controller也没有), Pose Controller, classifier free guidance和数据增强, 比较了一些指标, 好奇没有了Appearance是指不添加控制信号了吗, 认为这里把他换成类似OpenPose Controller更合理.
感受
感觉他的工作量有点小, SD讲得很细, 真正讲方法的部分很少, 方法很像Lora. 耍了些低劣的小聪明, 读起来很不舒服.
再说有用的信息, 1)对ControlNet的介绍是第一次见, 2)自注意力层和外表的生成高度相关