First Order Motion Model for Image Animation 论文笔记
文中1希望能够摒弃使用标注的数据进行预训练,转而使用自监督训练,不直接生成整张图片,通过标注keypoints和遮罩层分别生成。
模型结构
模型主要分为 motion estimation module 与 image generation module 两部分。
motion estimation module
motion estimation module 同时输出 dense motion field T ^ S ← D \hat{\mathcal{T}}_{\mathrm{S}\leftarrow \mathrm{D}} T^S←D和 occlusion mask O ^ S ← D \hat{\mathcal{O}}_{\mathbf{S} \leftarrow \mathbf{D}} O^S←D。其中 dense motion field 将Driving Video D D D中的每一点映射到Source Image图像 S S S上,其中应用了反向光流。 occlusion mask 标注了能够通过变换得到的部分与需要生成的部分。在计算过程中,假定了一个中间量 R R R,分别计算 T S ← R \mathcal{T}_{\mathbf{S} \leftarrow \mathbf{R}} TS←R和 T D ← R \mathcal{T}_{\mathbf{D} \leftarrow \mathbf{R}} TD←R最后合成为 T S ← D {\mathcal{T}}_{\mathbf{S} \leftarrow \mathbf{D}} TS←D。
计算 T S ← D {\mathcal{T}}_{\mathbf{S} \leftarrow \mathbf{D}} TS←D时使用了Keypoint Detector 使用了auto-encoder结构,抽出其中的特征keypoints,再使用局部仿射变换。最后同时输出keypoint 与仿射变换。加入仿射变换能使模型应对更复杂的变换。将两组 T \mathcal{T} T结合Source Image后属兔Dense Motion输出 T ^ S ← D \hat{\mathcal{T}}_{\mathrm{S}\leftarrow \mathrm{D}} T^S←D与 O ^ S ← D \hat{\mathcal{O}}_{\mathbf{S} \leftarrow \mathbf{D}} O^S←D。
image generation module
根据motion estimation module给出的信息与source image渲染图片。
细节
T S ← D {\mathcal{T}}_{\mathbf{S} \leftarrow \mathbf{D}} TS←D
将 T S ← D {\mathcal{T}}_{\mathbf{S} \leftarrow \mathbf{D}} TS←D分解成 T S ← R \mathcal{T}_{\mathbf{S} \leftarrow \mathbf{R}} TS←R和 T D ← R \mathcal{T}_{\mathbf{D} \leftarrow \mathbf{R}} TD←R,并将问题转化为 T X ← D {\mathcal{T}}_{\mathbf{X} \leftarrow \mathbf{D}} TX←D,其中 X X X为给定的一张图片。并求关于 R R R的keypoints p 1 , . . . p k p_1,...p_k p1,...pk在其领域的一阶泰勒展开。对于图像 X , S , D X,S,D X,S,D中的keypoints用 z z z表示。下面是 T X ← R {\mathcal{T}}_{\mathbf{X} \leftarrow \mathbf{R}} TX←R在 p k p_k pk处的一阶展开:
T X ← R ( p ) = T X ← R ( p k ) + ( d d p T X ← R ( p ) ∣ p = p k ) ( p − p k ) + o ( ∥ p − p k ∥ ) \mathcal{T}_{\mathbf{X} \leftarrow \mathbf{R}}(p)=\mathcal{T}_{\mathbf{X} \leftarrow \mathbf{R}}\left(p_{k}\right)+\left(\left.\frac{d}{d p} \mathcal{T}_{\mathbf{X} \leftarrow \mathbf{R}}(p)\right|_{p=p_{k}}\right)\left(p-p_{k}\right)+o\left(\left\|p-p_{k}\right\|\right) TX←R(p)=TX←R(pk)+(dpdTX←R(p)∣∣∣∣p=pk)(p−pk)+