[研一上]人脸属性迁移文献梳理(1)

由于刚进入研究生阶段,熟悉新环境和新的生活节奏,加上业余杂事和自我懈怠,一直没有形成良好的学习习惯,因此趁着寒假这种纯自由支配时间,梳理一下上学期看过的文献,捞一捞当时可能因为其他事务耽误而浅尝辄止的知识点,用稍有长进的知识储备回顾之前的阅读任务,也起到温故知新的作用,顺便也规范一下以后的学习工作。
本人主攻的是GAN模型在人脸属性迁移方向,因此下面的文献梳理均为相关领域的内容,如有理解错误的地方,还望共同讨论,指正不足。

Fader Networks

文献全称:Fader Networks:Manipulating Images by Sliding Attributes
文献出处: neural information processing systems, 2017: 5967-5976.
数据集:celebA
这篇论文做的是人脸属性迁移,通过输入目标图像和迁移标签来生成目标图像。

实验效果图
实验效果图

模型框架图
Fader Network结构图

主要思想

这篇文章模型的主要架构是自编码器,自编码器分为编码器E和解码器D两部分,自编码器的机制是使输出尽可能地与输入相同。作者将GAN模型引入到该框架中,如框架图所示,将编码器E作为生成器,再引入一个简单的全连接层分类器作为判别器,通过引入GAN结构,来重塑编码器E生成的潜在特征(latent representation),使这个潜在特征具有特征不变性,通过在解码过程中引入目标标签来生成目标图像。

特征不变性
编码器最后输出的特征图带有输入图像的特征,因而如果单纯地在解码器中添加标签,解码器便会忽略标签信息。这时引入GAN模型,目的是为了让编码器生成不带有特征的特征图,在GAN层面上就是判别器判别不出生成器的输出具有哪种特征。例如,给网络输入一张戴眼镜的照片,编码器输出的特征图中只蕴含其他信息,戴眼镜的信息被模糊掉了,即体现特征不变性,这样生成图像是否戴眼镜就完全取决于解码器赋予的标签。

训练:用输入图像对应的真实标签进行训练。
测试/应用:自由输入图像和目标标签。

损失函数

该模型的损失函数主要分为三部分:重构loss、判别器loss、整体对抗loss.

重构loss采用的是MSE,输入图像x和它所对应的真实标签y,通过均方误差来衡量生成图像和原图像的重构质量。
L A E ( Θ e n c , Θ d e c ) = 1 m ∑ ( x , y ) ∈ D ∣ ∣ D θ e n c ( E θ e n c ( x ) , y ) − x ∣ ∣ 2 2 L_{AE}(\Theta_{enc},\Theta_{dec})=\frac{1}{m}\sum_{(x,y)\in D}||D_{\theta_{enc}}(E_{\theta_{enc}}(x),y)-x||_2^2 LAE(Θenc,Θdec)=m1(x,y)DDθenc(Eθenc(x),y)x22
判别器loss则与传统的GAN损失函数相同,公式如下:
L d i s ( θ d i s ∣ θ e n c ) = − 1 m ∑ ( x , y ) ∈ D l o g P θ d i s ( y ∣ E θ e n c ( x ) ) L_{dis}(\theta_{dis}|\theta_{enc})=-\frac{1}{m}\sum_{(x,y)\in D}logP_{\theta_{dis}}(y|E_{\theta_{enc}}(x)) Ldis(θdisθenc)=m1(x,y)DlogPθdis(yEθenc(x))
整体损失函数则引入了一个 λ E > 0 \lambda_E>0 λE>0来权衡模型的重构质量和潜在特征不变性,公式如下:
L A E ( Θ e n c , Θ d e c ∣ θ e n c ) = 1 m ∑ ( x , y ) ∈ D ∣ ∣ D θ e n c ( E θ e n c ( x ) , y ) − x ∣ ∣ 2 2 − λ E l o g P θ d i s ( 1 − y ∣ E θ e n c ( x ) ) L_{AE}(\Theta_{enc},\Theta_{dec}|\theta_{enc})=\frac{1}{m}\sum_{(x,y)\in D}||D_{\theta_{enc}}(E_{\theta_{enc}}(x),y)-x||_2^2-\lambda_ElogP_{\theta_{dis}}(1-y|E_{\theta_{enc}}(x)) LAE(Θenc,Θdecθenc)=m1(x,y)DDθenc(Eθenc(x),y)x22λElogPθdis(1yEθenc(x)) 其中 λ E \lambda_E λE在训练中的取值为:

  1. 起始值: λ E = 0 \lambda_E=0 λE=0
  2. 经过第一个500k迭代后: λ E = 0.0001 \lambda_E=0.0001 λE=0.0001

初始状态相当于是训练一个自编码器,训练到一定程度之后,引入特征不变性的训练要求。

实现细节

卷积核: size:4×4 stride:2 padding:1
编码器和解码器均由7组 卷积+BN+ReLU模块 组成,编码器使用的是leaky-ReLU,解码器使用的是普通的ReLU.
优化算法: 默认设置为Adam,学习率:0.0002

在解码器中加入条件标签信息,查阅代码后发现,因为CelebA数据集是二元标签,所以每个特征都使用one-hot形式来表示,将当前要添加的标签升维,使其和解码器每层输出一个尺寸,并在通道的维数上添加这些升维的标签(如上述框架图中绿色部分),与当前的特征图一并作为下一层的输入。


GeneGAN

文献全称: GeneGAN: Learning Object Transfiguration and Attribute Subspace from Unpaired Data
文献出处: Computer Vision and Pattern Recognition, 2017.
数据集: Multi-PIE、CelebA
这篇论文做的是人脸属性迁移,测试效果为输入两张图像,可以通过互换特征部分获得两张不同特征的人脸照片。

实验效果图
GeneGAN效果图
模型框架图
GeneGAN

主要思想

GeneGAN模型也是使用自编码器的结构,编码器将输入图像映射成两个部分(从代码中看,是在特征图的通道维度上将其三一分,即 3 4 \frac{3}{4} 43为A, 1 4 \frac{1}{4} 41为u),其中一部分表示人脸背景/标识 A A A,另一部分表示脸部的属性特征 u u u。模型一次需要输入两张图片 I A I_A IA I B I_B IB I A I_A IA I B I_B IB有一对不同的特征,模型把 I A I_A IA的特征看作正常向量,把 I B I_B IB的特征表示为0向量,从而形成鲜明地比较,交换后可以生成四张图片,其中两张是重构结果,两张是迁移结果。

损失函数

有若干表示如下:

( A , u ) = E n c o d e r ( x A u ) (A,u)=Encoder(x_{Au}) (A,u)=Encoder(xAu) ( A , ϵ ) = E n c o d e r ( x A u ) (A,\epsilon)=Encoder(x_{Au}) (A,ϵ)=Encoder(xAu</
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值