A Variational U-Net for Conditional Appearance and Shape Generation

该方法能够生成不同的姿态的人物图像以及改变人物的外观。而且这个模型能够在不改变shape的情况下从appearance distribution 中进行采样。

1 Approach

xx为dataset XX中的一张图片,我们想要理解xx中的object是如何被其shape yy和appearance zz所影响的。因此图像生成器可以被表示为最大化后验概率(极大后验估计:给定xx,哪种yyzz可能发生)
arg max p(xy,z) arg\ max\ p(x|y,z)

1.1 VAE based on latent shape and appearance

p(xy,z)p(x|y,z)可以视为隐变量(含两个隐变量)的生成模型,可以求得这个生成模型的联合概率分布p(x,y,z)p(x,y,z)

\because
p(xy,z)=p(x,y,z)p(y,z) p(x|y,z)=\frac{p(x,y,z)}{p(y,z)}

\therefore
p(x,y,z)=p(xy,z)p(y,z) p(x,y,z)=p(x|y,z)p(y,z)
含隐变量的概率密度估计可以采用VAE的方法进行求解,求解过程包含了两个步骤推断和生成。实际上我们最终的目的是为了求出图像xx的分布p(x,θ),θp(x,\theta),\theta为参数,给定样本xx,其对数边际似然函数为
logp(x,θ)=ELBO(q,x,θ,ϕ)+KL[q(y,zx;ϕ),p(y,zx;θ)] \log p(x,\theta)=ELBO(q,x,\theta,\phi)+KL[q(y,z|x;\phi),p(y,z|x;\theta)]
其中q(y,zx;ϕ)q(y,z|x;\phi)为变分密度函数,ϕ\phi为参数,ELBO为证据下界:
ELBO(q,x,θ,ϕ)=Eqlogp(xy,z)p(y,z)q(y,zx;ϕ) ELBO(q,x,\theta,\phi)=\mathbb{E}_q\log \frac{p(x|y,z)p(y,z)}{q(y,z|x;\phi)}

logp(x)=logp(x,y,z)dz dy=logp(x,y,z)q(y,zx)q(y,zx)Eqlogp(xy,z)p(y,z)q(y,zx;ϕ) \begin{aligned} \log p(x)&=\log \int p(x,y,z)dz\ dy\\ &=\log \int \frac{p(x,y,z)}{q(y,z|x)}q(y,z|x)\\ &\geq \mathbb{E}_q\log \frac{p(x|y,z)p(y,z)}{q(y,z|x;\phi)} \end{aligned}

VAE最终的优化目标为最大化ELBO

在VAE中假设p(y,z)p(y,z)服从标准正态分布,即p(y,z)N(0,1)p(y,z)\sim \mathcal{N}(0,1)。但是这种假设无法将变量yyzz分离,因此我们需要添加一个额外的信息将y,zy,z进行分离。

1.2 CVAE with appearance

假设我们有一个估计函数ee能够通过图像xx来估计shape yy,即y^=e(x)\hat{y}=e(x)。那么y^=e(x)\hat{y}=e(x)则通过最大化条件对数似然函数来得到(极大后验估计:给定xx,哪一种yy可能发生)
logp(xy^)=logzp(x,zy^)dzEqlogp(x,zy^)q(zx,y^)=Eqlogp(xy^,z)p(zy^)q(zx,y^) \begin{aligned} \log p(x|\hat{y})&=\log \int _z p(x,z|\hat{y})dz\\ &\geq \mathbb{E}_q \log \frac{p(x,z|\hat{y})}{q(z|x,\hat{y})}\\ &=\mathbb{E}_q \log \frac{p(x|\hat{y},z)p(z|\hat{y})}{q(z|x,\hat{y})} \end{aligned}

p(x,zy^)=p[x(zy^)]p(zy^)=p(xy^,z)p(zy^)p[x(zy^)]=p(xy^,z) \begin{aligned} p(x,z|\hat{y})&=p[x|(z|\hat{y})]p(z|\hat{y})\\ &=p(x|\hat{y},z)p(z|\hat{y})\\ \end{aligned} \rightarrow p[x|(z|\hat{y})]=p(x|\hat{y},z)

其中条件(先验)概率p(zy^)p(z|\hat{y})可以从训练数据中估计得到,并能够获得shape 和 appearance之间的关系。例如一个正在跑步的人更有可能穿T恤而西装。

现在的问题为如何求概率p(xy^,z)p(x|\hat{y},z)以及概率q(zx,y^)q(z|x,\hat{y})。这里使用神经网络GθG_\theta来拟合p(xy^,z)p(x|\hat{y},z)以及使用神经网络FϕF_\phi来拟合q(zx,y^)q(z|x,\hat{y})

q(zx,y^)q(z|x,\hat{y})表示如何从给定图像xx中推断appearance zz

p(xy^,z)p(x|\hat{y},z)表示如何从隐变量z,y^z,\hat{y}中采样得到图像xx

损失函数为:
L(x,θ,ϕ)=KL[qϕ(zx,y^)pθ(zy^)]+Eqϕ(zx,y^)[logpθ(xy^,z)] \mathcal{L}(x,\theta,\phi)=-KL[q_\phi(z|x,\hat{y})||p_\theta(z|\hat{y})]+\mathbb{E}_{q_\phi(z|x,\hat{y})}[\log p_\theta(x|\hat{y},z)]
A Variational U-Net for Conditional Appearance and Shape Generation

1.3 Generator

首先建立GθG_\theta。假设分布p(xy^,z)p(x|\hat{y},z)有常值偏差,以及Gθ(y^,z)G_\theta(\hat{y},z)y^\hat{y}的确定函数。那么Gθ(y^,z)G_\theta(\hat{y},z)可以视为图像生成器,我们可以将损失函数的第二项进行替代,那么此时的损失函数为:
L(x,θ,ϕ)=KL[qϕ(zx,y^)pθ(zy^)]+kλkΦk(x)Φk(Gθ(y^,z)1 \mathcal{L}(x,\theta,\phi)=-KL[q_\phi(z|x,\hat{y})||p_\theta(z|\hat{y})]+\sum_k\lambda_k||\Phi_k(x)-\Phi_k(G_\theta(\hat{y},z)||_1
其中kλkΦk(x)Φk(Gθ(y^,z)1\sum_k\lambda_k||\Phi_k(x)-\Phi_k(G_\theta(\hat{y},z)||_1为感知损失函数,ϕ\phi为VGG19。

我们想要保留y^\hat{y}中的空间信息用于生成图片xˉ\bar{x}(其中y^=e(x)\hat{y}=e(x)使用现有的姿态估计算法),因此这里使用了U-net结构来进行y^\hat{y}信息的保留。

appearance zz是在高斯分布qϕ(zx,y^)q_\phi(z|x,\hat{y})中采样得到的( qϕ(zx,y^)q_\phi(z|x,\hat{y})的分布形式已知,但是分布参数未知),我们通过神经网络FϕF_\phi来求参数ϕ\phiFϕF_\phi的优化包含两个部分:1.需要将足够多的关于xx的信息融入到zz中以至于p(xy^,z)p(x|\hat{y},z)能够很好的描述数据。2.需要通过最小化q(zx,y^)q(z|x,\hat{y})p(zy^)p(z|\hat{y})的KL散度来减小先验分布p(zy^)p(z|\hat{y})的偏差。

由于GθG_\theta中已经使用U-net来保存y^\hat{y}中的空间信息了,因此不需要在zz中加入关于shape 的信息了(如果加入了shape 信息只会提高计算量,而不会为p(xy^,z)p(x|\hat{y},z)提供有用的信息)。在这种情况下,只需要将zz包含在GθG_\theta的瓶颈处即可。

的信息了(如果加入了shape 信息只会提高计算量,而不会为p(xy^,z)p(x|\hat{y},z)提供有用的信息)。在这种情况下,只需要将zz包含在GθG_\theta的瓶颈处即可。

我们将zzEθ(y^)E_\theta(\hat{y})进行叠加作为decoder 的输入,即γ=[Eθ(y^),z]\gamma=[E_\theta(\hat{y}),z]Dθ(γ)D_\theta(\gamma).