定义
图像动画是指通过将从源图像提取的外观与从驱动视频导出的运动模式相结合来自动合成视频的任务。
研究现状
传统的图像动画和视频重定位方法是针对特定领域设计的,如人脸、人体轮廓或手势,并且需要对动画对象有很强的先验知识。例如,在人脸动画中,Zollhofer等人的方法产生了逼真的结果,但在许多应用中,这样的模型是不可用的。目前,生成性对抗网络(GANs)和可变自动编码器(VAE)已被用于在视频中转换人类对象之间的面部表情或运动模式。然而,这些方法通常依赖于预训练模型来提取特定于对象的表示,例如关键点位置。而这些预训练模型是使用昂贵的标注真值数据构建的,并不适用于任意对象类别。
为了解决这个问题,也相继提出了几种不需要物体先验知识的方法。如X2Face使用密集运动场通过图像扭曲生成输出视频,他们使用了一个参考姿势来获得物体的规范表示。Siarohin等人引入了Monkey-Net,一种使用稀疏关键点轨迹为任意对象设置动画的自我监督框架,也是第一个对象不可知的图像动画深度模型。Monkey-Net通过自监督方式学习关键点对运动信息进行编码。在测试时,根据驱动视频中估计的相应关键点轨迹对源图像进行动画处理。Monkey-Net的主要缺点是,它在假设零阶模型的情况下,对关键点邻域中的对象外观变换建模较差,这导致在大对象姿势变化的情况下生成质量差。
图像动画也可以看作是一个从一个视觉域到另一个视觉域的转换问题。例如,Wang等人使用Isola等人提出的图像到图像转换框架传输人体运动;Bansal等人通过结合时空线索来扩展条件GANs,以改进两个给定域之间的视频翻译。然而,为了给一个人制作动画,这种方法需要使用标注有语义信息的视频对每个人都进行训练。
与上述方法不同的是,该工作既不依赖于标签、关于动画对象的先验信息,也不依赖于每个对象实例的特定训练过程,且可以像Monkey-Net一样驱动任意类型的对象运动。 为了解决Monkey-Net在零阶模型建模效果差的问题,该工作使用一组自学习的关键点和局部仿射变换来模拟复杂的运动。因此,该方法称为一阶运动模型。 同时,模型还引入了一个遮挡感知生成器,该生成器采用遮挡掩模自动估计来指示源图像中不可见的、应该从上下文中推断出来的对象部分。当驱动视频包含大的运动模式并且遮挡是典型的时,这是特别需要的。此外,还扩展了通常用于关键点检测器训练的等变损失来改进局部仿射变换的估计。
基本框架
first-order 的算法框架如上图所示,由运动估计模块和图像生成两个主要模块组成。输入是一个源图像S和一个驱动视频帧D的帧,无监督keyporint detector 提取由稀疏关键点和相对于参考系R的局部仿射变换组成的一阶运动表示。dense motion network使用运动表示来生成从D到S的密集光流TS←D和遮挡映射OS←D。generation module使用源图像和密集运动网络的输出来渲染目标图像。
keyporint detector:
和上述X2Face一个参考姿势来获得物体的规范表示一样,这里引入了一个参考帧R,有:
推理可得:
其中,Pk是 参考帧R上的关键点位置,而TS←R(Pk)则是该关键点在D上的对应位置。此处Jk是该关键点对应的jaccobian矩阵。解码器的最后一层使用softmax激活来预测热图,这些热图可以解释为关键点检测置信图。 每个预期的关键点位置都是使用平均操作来估计的。 注意,如果设置JK=1(1是2×2恒等矩阵),就能得到Monkey-Net的运动模型。(因为Monkey-Net使用TS←D(Z)z的零阶近似)
具体代码实现:
motion estimator
其中,本文设置为σ = 0.01
热图Hk和转换后的图像S0,…SK被UNET连接和处理。 TS←D是使用由Monkey-Net启发的基于部分的模型来估计的,即假设一个物体由K个刚性部分组成,每个部分都是根据方程移动的。最终稠密运动预测TˆS←D(z)由: