论文完整题目:Photorealistic Facial Expression Synthesis by the Conditional Difference Adversarial Autoencoder,task是表情生成,主体结构是一个Adversarial Autoencoder,如下图所示:
生成器是一个conditional autoencoder:输入图像,先经过下采样得到latent vector,在latent space中加入target label作为condition,两者进行concatenate后上采样恢复到图像大小,得到target image。
Difference来自forward connection,也就是上图中的虚线,将整个autoencoder划分为了四部分:,
的输出是low-level facial features,
的输出是latent vector也就是high-level facial features或者是一定程度上解耦和的特征,
是由解耦和的high-level features逐渐生成target image的low-level features,
是由low-level features到target image的生成。虚线所表示的forward connection是直接将
的输出加入到
的输入中,说明输出图像(target image)的低级特征(low-level features)是由
的输出提供的,而高级特征(high-level features)是由
的另一个输入(经过
和
的部分)提供的,这部分高级特征首先经过
实现了一定程度上的解耦和,然后在latent space中结合condition label,通过
实现target expression的耦合,因此到
的输出时可以视为target image的包含了expression的high-level features。其实这个结构就是把一张facial image分为两部分:包含了人脸基本特征比如identity information等的low-level features和包含了expression的high-level features,low-level features是未改变的(因为输入输出图像是同一个人的),而high-level features是想要改变的人脸表情,如果只对表情信息建模会更容易,因此该autoencoder主体就是在学习source image和target image中的表情差异,如何让网络只学习这部分差值呢?就是通过forward connection,因为该连接已经包含了target image中需要的low-level features,把它加在high-level features上就会迫使网络的主体部分只学习high-level features上的差异也就是表情信息。这相当于减少了网络学习的内容,加强了对expression建模的能力。
判别器有两个:是对
的输出进行判别,保证latent vector服从高斯分布;
是对
的输出进行判别,保证生成图像具有真实性。
整体流程可以用下式表示:
其中,为source image即autoencoder的输入图像,
为generated target image即autoencoder的输出图像,l为target label。
目标函数中共三部分:
其中,是生成图像与真实target image间的L2 loss,
分别是两个判别器的loss。
其实这个CDAAE的结构和之前的Facial Expression Recognition by De-expression Residue Learning中的残差结构很像,都是利用一个autoencoder从一张图像生成另一张图像,并且中间利用了相同尺度下的skip connection,不过那篇文中中的connection更多(存在于每个尺度下),相当于每个尺寸都在学习残差,可以试一试两种autoencoder的对比。