Unsupervised Disentangling of Appearance and Geometry by Deformable Generator Network

本博客是论文 Unsupervised Disentangling of Appearance and Geometryby Deformable Generator Network的翻译,因作者水平有限,可能存在部分不准确的地方,还请读者不吝赐教。

摘要

待补充

1 引言

待补充

2 相关工作

待补充

3 模型和学习算法

3.1 模型

Unsupervised Disentangling of Appearance and Geometry by Deformable Generator Network_第1张图片
图1: 模型的示意图。该模型包含两个生成器网络:一个外观生成器和一个几何生成器。这两个生成器通过变形函数组合在一起以生成最终图像。变形函数包括图像坐标的几何变换操作和微分插值操作。refine 操作是可选的,用于改善变形函数。

所提出的模型包含两个生成器网络:一个外观生成器和一个几何生成器,它们通过变形函数组合在一起以生成最终图像或视频帧,如图1所示。假设任意图像或视频帧 X ∈ R D x × D y × 3 X\in \R^{D_x×D_y ×3} XRDx×Dy×3 生成了两个独立的潜在矢量, Z a ∈ R d a Z^a\in \R^{d_a} ZaRda 控制外观, Z g ∈ R d g Z^g\in \R^{d_g} ZgRdg控制几何信息。通过改变几何潜向量 Z g Z^g Zg,固定外观潜向量 Z a Z^a Za,可以转换对象的几何信息,例如以一定角度旋转对象或者更改其形状。另一方面,通过改变 Z a Z^a Za固定 Z g Z^g Zg,可以更改对象的身份或类别,同时保持其几何信息不变,例如相同的视角或相同的形状。模型可以被表示为:
X = F ( Z a , z G ; θ ) = F w ( F a ( Z a ; θ a ) , F g ( Z g ; θ g ) ) + ϵ (1) X=F(Z^a,z^G;\theta)=F_w(F_a(Z^a;\theta_a),F_g(Z_g;\theta_g))+\epsilon \tag{1} X=F(Za,zG;θ)=Fw(Fa(Za;θa),Fg(Zg;θg))+ϵ(1)
其中, Z a ~ N ( 0 , I d a ) Z^a~N(0,I_{d_a}) ZaN(0,Ida) Z g ~ N ( 0 , I d g ) Z^g~N(0,I_{d_g}) ZgN(0,Idg) ϵ ~ N ( 0 , σ 2 I D ) ( D = D x × D y × 3 ) \epsilon~N(0,\sigma^2I_D)(D=D_x × D_y × 3) ϵN(0,σ2ID)(D=Dx×Dy×3) 是独立的。 F w F_w Fw是变形函数,使用几何生成器 F g ( Z g ; θ g ) F_g(Z^g;\theta_g) Fg(Zg;θg) 生成的位移对外观生成器 F a ( Z a ; θ a ) F_a(Z^a;\theta_a) Fa(Za;θa) 生成的图像进行变形来生成最终的输出图像 X。

3.2 变形函数

翘曲函数通常包括用于图像坐标的几何变换操作和可微分插值(或重采样)操作。几何变换描述了源坐标中每个位置(u,v)的目标坐标(x,y)。几何运算仅修改图像中像素的位置,而不会更改颜色或照明。因此在提出的模型中,外观信息和几何信息自然地被两个生成器解开了。

几何变换 ϕ \phi ϕ可以是空间仿射网络[16]中使用的刚性仿射映射,也可以是非刚性变形映射,在我们的工作中使用非刚性的情况。具体来说,就是使用形状生成器 F g ( Z g ; θ g ) F_g(Z^g;\theta_g) Fg(Zg;θg)输出的变形之后的图像X中的每个网格(x,y) 的坐标位移(或者说密集光流场)。可变形映射中的逐点变换可以表示为:
( u v ) = Φ ( Z g , θ g ) ( x y ) = ( x + d x y + d y ) (2) \begin{pmatrix}u\\v\end{pmatrix}=\Phi(Z^g,\theta_g)\begin{pmatrix}x\\y\end{pmatrix}=\begin{pmatrix}x+dx\\y+dy\end{pmatrix}\tag{2} (uv)=Φ(Zg,θg)(xy)=(x+dxy+dy)(2)
这里(u,v) 是由外观生成器 F a ( Z a ; θ a ) F_a(Z^a;\theta_a) Fa(Za;θa)生成的图像的坐标。

由于通过公式(2)计算的坐标不一定是整数,变形之后的输出图像X的每一个像素值可以通过一个可微分差值运算来得到。设 X a = F a ( Z a ; θ a ) X_a=F_a(Z^a;\theta_a) Xa=Fa(Za;θa) 表示由外观生成器生成的图像,则变形函数可以表示为:
X ( x , y ) = F I ( X a ( x + d x , y + d y ) ) (3) X(x,y)=F_I(X_a(x+dx,y+dy))\tag{3} X(x,y)=FI(Xa(x+dx,y+dy))(3)
这里 F I F_I FI表示可微分的插值函数。使用一个可微的双线性插值来计:
X ( x , y ) = ∑ j D y ∑ i D x X a ( i , j ) M ( 1 − ∣ u − i ∣ ) M ( 1 − ∣ v − j ∣ ) (4) X(x,y)=\sum_j^{D_y}\sum_i^{D_x}X_a(i,j)M(1-\begin{vmatrix}u-i\end{vmatrix})M(1-\begin{vmatrix}v-j\end{vmatrix})\tag{4} X(x,y)=jDyiDxXa(i,j)M(1ui)M(1vj)(4)
这里的M(.)=max(0,.),双线性插值进行反向传播的详细信息可以在文献[16]中找到。

位移(dx,dy)用于可变形卷积网络[7]。坐标位移(dx,dy)的计算称为光流估计[14、3、32、9、15、29]。除了估算光流之外,我们的工作还涉及建模和生成光流。

位移(dx,dy)可能是由于场景中对象的运动或相对于场景中3D对象的视点的变化而引起的。将运动和3D模型合并到几何生成器中是很自然的, Z g Z_g Zg的更改或变化取决于运动和3D信息。

3.3 推断和学习

为了学习这种可变形的生成器模型,我们引入了两个潜在矢量的学习和推理算法,而无需设计和学习额外的推理网络。我们的方法受到生成器网络的最大似然学习算法[12]的启发。具体来说,可以通过最大化训练数据集 { X i , i = 1 , … , N } \left\{X_i,i=1,\dots,N\right\} {Xi,i=1,N}上的对数似然来对模型进行训练:
L ( θ ) = 1 N ∑ i = 1 N log ⁡ p ( X i ; θ ) = 1 N ∑ i = 1 N log ⁡ ∫ p ( X i , Z i a , Z i g ; θ ) d Z i a d Z i g (5) L(\theta)=\frac{1}{N}\sum_{i=1}^N\log p(X_i;\theta)=\frac{1}{N}\sum_{i=1}^N\log\int p(X_i,Z_i^a,Z_i^g;\theta)dZ_i^adZ_i^g\tag{5} L(θ)=N1i=1Nlogp(Xi;θ)=N1i=1Nlogp(Xi,Zia,Zig;θ)dZiadZig(5)
我们可以通过下面与EM算法相关的著名结果来估计 L ( θ ) L(\theta) L(θ)的梯度:
∂ ∂ θ log ⁡ p ( X ; θ ) = 1 p ( X ; θ ) ∂ ∂ θ ∫ p ( X , Z a , Z g ) d Z a d Z g = E p ( Z a , Z g ∣ X ; θ ) [ ∂ ∂ θ log ⁡ p ( X , Z a , Z g ; θ ) ] (6) \frac{\partial}{\partial\theta}\log p(X;\theta)=\frac{1}{p(X;\theta)}\frac{\partial}{\partial \theta}\int p(X,Z^a,Z^g)dZ^adZ^g=E_{p(Z^a,Z^g | X;\theta)}\left [\frac{\partial}{\partial\theta}\log p(X,Z^a,Z^g;\theta)\right ]\tag{6} θlogp(X;θ)=p(X;θ)1θp(X,Za,Zg)dZadZg=Ep(Za,ZgX;θ)[θlogp(X,Za,Zg;θ)](6)
由于等式(6)中的期望值通常在分析上难以处理,因此我们采用Langevin 动态算法从后验分布 p ( Z a , Z g ∣ X ; θ ) p(Z^a,Z^g | X;\theta) p(Za,ZgX;θ提取样本并计算蒙特卡洛平均值以估计期望项。对于每个观测值X,可以通过Langevin dynamics 算法交替从 p ( Z a , Z g ∣ X ; θ ) p(Z^a,Z^g | X;\theta) pZaZgX;θ) 采样潜在向量 Z a Z^a Za Z g Z^g Zg :固定 Z g Z^g Zg p ( Z a ∣ X ; Z g , θ ) ∝ p ( X , Z a ; Z g , θ ) p(Z^a | X; Z^g,\theta)∝p(X,Z^a; Z^g,\theta) p(ZaX;Zg,θ)p(X,Za;Zg,θ)中采样 Z a Z^a Za,然后固定 Z a Z^a Za ( Z g ∣ X ; Z a , θ ) ∝ p ( X , Z g ; Z a , θ ) (Z^g | X;Z^a,\theta)∝p(X,Z^g; Z^a,\theta) (ZgX;Za,θ)p(X,Zg;Za,θ)。每一个采样步骤,潜在向量按照如下方式更新。
Z t + 1 a = Z t a + δ 2 2 ∂ ∂ Z a log ⁡ p ( X , Z t a ; Z t g , θ ) + δ ε t a Z t + 1 g = Z t g + δ 2 2 ∂ ∂ Z g log ⁡ p ( X , Z t g ; Z t a , θ ) + δ ε t g (7) Z^a_{t+1}=Z^a_t+\frac{\delta^2}{2}\frac{\partial}{\partial Z^a}\log p(X,Z_t^a;Z_t^g,\theta)+\delta\varepsilon_t^a\\ \quad\\ Z_{t+1}^g=Z^g_t+\frac{\delta^2}{2}\frac{\partial}{\partial Z^g}\log p(X,Z_t^g;Z_t^a,\theta)+\delta\varepsilon_t^g\tag{7} Zt+1a=Zta+2δ2Zalogp(X,Zta;Ztg,θ)+δεtaZt+1g=Ztg+2δ2Zglogp(X,Ztg;Zta,θ)+δεtg(7)
t是Langevin 采样的步数, ε t a \varepsilon_t^a εta ε t g \varepsilon_t^g εtg是独立的标准高斯噪声,用于防止采样陷入局部模式, δ \delta δ是步长。完整数据对数似然可以估计为:
log ⁡ p ( X , Z a ; Z g , θ ) = l o g [ p ( Z a ) p ( X ∣ Z a , Z g , θ ) ] = − 1 2 σ 2 ∥ X − F ( Z a , Z g ; θ ) ∥ 2 − 1 2 ∥ Z a ∥ 2 + C 1 log ⁡ p ( X , Z g ; Z a , θ ) = l o g [ p ( Z g ) p ( X ∣ Z a , Z g , θ ) ] = − 1 2 σ 2 ∥ X − F ( Z a , Z g ; θ ) ∥ 2 − 1 2 ∥ Z g ∥ 2 + C 2 (8) \log p(X,Z^a;Z^g,\theta)=log\left[ p(Z^a)p(X|Z^a,Z^g,\theta)\right]\\\quad\\=-\frac{1}{2\sigma^2}\begin{Vmatrix}X-F(Z^a,Z^g;\theta)\end{Vmatrix}^2-\frac{1}{2}\begin{Vmatrix}Z^a\end{Vmatrix}^2+C_1\\\quad\\\log p(X,Z^g;Z^a,\theta)=log\left[ p(Z^g)p(X|Z^a,Z^g,\theta)\right]\\\quad\\=-\frac{1}{2\sigma^2}\begin{Vmatrix}X-F(Z^a,Z^g;\theta)\end{Vmatrix}^2-\frac{1}{2}\begin{Vmatrix}Z^g\end{Vmatrix}^2+C_2\tag{8} logp(X,Za;Zg,θ)=log[p(Za)p(XZa,Zg,θ)]=2σ21XF(Za,Zg;θ)221Za2+C1logp(X,Zg;Za,θ)=log[p(Zg)p(XZa,Zg,θ)]=2σ21XF(Za,Zg;θ)221Zg2+C2(8)
其中 C 1 C_1 C1 C 2 C_2 C2是归一化常数。可以表明,在足够多的采样步骤下,被采样的 Z a Z^a Za Z g Z^g Zg遵循其联合后验分布。

通过MCMC从后验分布中获取公平的样本非常耗费计算资源。在本文中,我们运行持久采样链。也就是说,每次迭代的MCMC采样均从先前迭代中采样的 Z a Z^a Za Z g Z^g Zg开始。持续更新的结果是链条足够长,可以从后验分布中进行采样,而且热初始化极大地减轻了MCMC采样的计算负担。文献[34]研究了基于持续MCMC的随机梯度下降的收敛性。

对于每个训练样本 X i X_i Xi,我们根据等式(7)运行Langevin dynamic 算法,获得相应的后验样本 Z i a Z^a_i Zia Z i g Z^g_i Zig。然后将样本用于等式(6)中的梯度计算。更精确地,关于参数 θ \theta θ的对数似然的梯度通过蒙特卡洛近似法估算:
∂ ∂ θ L ( θ ) ≈ 1 N ∑ i = 1 N ∂ ∂ θ log ⁡ p ( X i , Z i a , Z i g ; θ ) = 1 N ∑ i + 1 N 1 σ 2 ( X i − F ( Z i a , Z i g ; θ ) ) ∂ ∂ θ F ( Z i a , Z i g ; θ ) (9) \frac{\partial}{\partial\theta}L(\theta)\approx\frac{1}{N}\sum_{i=1}^N\frac{\partial}{\partial\theta}\log p(X_i,Z_i^a,Z^g_i;\theta)\\\quad\\=\frac{1}{N}\sum_{i+1}^N\frac{1}{\sigma^2}(X_i-F(Z_i^a,Z_i^g;\theta))\frac{\partial}{\partial\theta}F(Z_i^a,Z_i^g;\theta)\tag{9} θL(θ)N1i=1Nθlogp(Xi,Zia,Zig;θ)=N1i+1Nσ21(XiF(Zia,Zig;θ))θF(Zia,Zig;θ)(9)
整个算法通过两个步骤进行迭代:
(1)通过Langevin dynamic 算法推断潜在向量的推断步骤(2)通过随机梯度下降学习网络参数 θ \theta θ的学习步骤。这两个步骤中的梯度计算均由反向传播提供支持。算法1详细介绍了学习和推理算法:

算法一

Require:

  • 训练样本 { X i ∈ R D x × D y × 3 , i = 1 , 2 , … … , N } \{X_i\in\R^{D_x ×D_y ×3},i=1,2,\dots\dots,N\} {XiRDx×Dy×,i=1,2,,N}
  • Langevin dynamic 算法的步数l
  • 学习迭代次数T

Ensure

  • 需要学习的参数为 θ \theta θ

  • 推断的潜在向量 { Z i a , Z i g , i = 1 , … … , N } \{Z_i^a,Z_i^g,i=1,\dots\dots,N\} {Zia,Zig,i=1,,N}

    (1)让 t=0,初始化参数 θ \theta θ
    (2)初始化 { Z i a , Z i g , i = 1 , … … , N } \{Z_i^a,Z_i^g,i=1,\dots\dots,N\} {Zia,Zig,i=1,,N}
    repeat
    (3)推断反向传播:对于每一个i,运行l步的 Langevin dynamic 算法,交替的从 p ( Z i a ∣ X i ; Z i g , θ ) p(Z_i^a|X_i;Z^g_i,\theta) p(ZiaXi;Zig,θ)中采样 Z i a Z_i^a Zia,同时固定 Z i g Z_i^g Zig;从 p ( Z i g ∣ X i ; Z i a , θ ) p(Z_i^g|X_i;Z_i^a,\theta) p(ZigXi;Zia,θ)中采样,同时固定 Z i a Z_i^a Zia。从当前的 Z i a Z_i^a Zia Z i g Z_i^g Zig开始,每一步都遵循等式(7)。
    (4)学习的反向传播(learning back-propagation):更新参数: θ t + 1 ← θ t + η t L ′ ( θ t ) \theta_{t+1}\leftarrow\theta_t+\eta_tL^{\prime}(\theta_t) θt+1θt+ηtL(θt) η t \eta_t ηt是学习率,这里的 L ′ ( θ t ) L^{\prime}(\theta_t) L(θt)通过公式(9)计算。
    (5)让 t ← t + 1 t\leftarrow t+1 tt+1
    until t=T


3.4 可变形的变分自编码器

所提出的可变形发生器方案对于不同模型是通用的。实际上,我们的方法也可以被VAE [17]学习,通过利用额外的推断网络通过重新参数化来推断 ( Z a , Z g ) (Z^a,Z^g) Za,Zg,以获得可变形的变分自编码器具体来说,我们学习另一个 q ( Z a , Z g ∣ X ; ϕ ) q(Z^a,Z^g | X;\phi) q(Za,ZgX;ϕ)来近似难处理的后验条件 p ( Z a , Z g ∣ X ; θ ) p(Z^a,Z^g | X;\theta) p(Za,ZgX;θ),在近似分布中,假设外观和几何的潜向量是独立的高斯向量,即: q ( Z a , Z g ∣ X ; ϕ ) = q ( Z a ∣ X ; ϕ ) q ( Z g ∣ X ; ϕ ) q(Z^a,Z^g|X;\phi)=q(Z^a|X;\phi)q(Z^g|X;\phi) q(Za,ZgX;ϕ)=q(ZaX;ϕ)q(ZgX;ϕ),其中均值和方差由带有参数 ϕ \phi ϕ的推断网络建模。这种可变形的VAE模型是对提出的可变形生成器框架的自然扩展。我们在4.1.1节中显示了一些初步结果。注意,通过为形状和外观设计一个单独的鉴别器网络,提出的方案也可以用于对抗性学习方法[10]。我们将其留作下一步工作。在此工作中,为了简单起见,我们将重点放在当前的学习和推理算法上,以便我们不求助于额外的网络。

4 实验

待补充

5 结论

待补充

参考文献

你可能感兴趣的:(计算机视觉)