Learning Residual Images for Face Attribute Manipulation

Wei Shen, Rujie Liu
Fujitsu Research & Development Center, Beijing, China.
@CVPR2017

Introduction

作者提出想要对人脸的一些属性进行操控,结合生成模型来完成.
这里写图片描述
当前主流的生成模型包括GAN以及VAE,但由于GAN模型是接收随机噪声来生成图片,因此无法对图片进行编码.而VAE的编码-解码结构也会对图像的重建质量造成损伤.在此,作者提出了将Face attribute manipulation 视为一种图像的变换,这种变换可以直接通过一个CNN来实现.本文提出 residual images 的观点,即仅学习两个图片中不同的部分,而保持其他部分不便.

Approach

这里写图片描述
总体结构如上图所示,由于对面部属性(加上或去除眼镜,改变表情)是一个area specific的操作,因此网络的目标是学习前后之间的差异并直接与原始图片相加完成manipulation.
作者将G网络分为两个部分,分别对应于将negative属性变为positive属性的网络G0G0以及将pos属性变为neg属性的网络G1G1r0r0r1r1分别代表了对应的残差部分.最终输出为

x1~=r1+x1=x1+Gi(xi)x1~=r1+x1=x1+Gi(xi)
为了使获得的residual image更稀疏,还使用了L1正则化.
lpix(ri)=||ri||ilpix(ri)=||ri||i
右图展示了G网络的基本结构,将所有原始的图片(label 0、1)以及所有经过修改之后的图片(label 2)进行分类并计算 loss
lcls(t,p)=log(pt)lcls(t,p)=−log(pt)
以及用于保证其他部分内容不变性的pre loss:
lper(x,x~)=||ϕ(x)ϕ(x~)||1lper(x,x~)=||ϕ(x)−ϕ(x~)||1
对于GiGi的loss有
lGAN=log(D(Gi(xi))i=0lGAN=−log(D(Gi(xi))i=0
lGAN=log(1D(Gi(xi))i=1lGAN=−log(1−D(Gi(xi))i=1

Dual learning

在机器翻译中经常用到的优化手段,即第一个机制将A语言翻译为B语言(primal task)并将结果发送给第二个机制,由第二个机制判断B语言输入是否自然,第二个机制将B语言翻译为A语言(dual task)并发送给第一个机制,第一个机制判断收到的信息是否和原来的信息相符。在循环中进行训练。
这里写图片描述
在本文中,对于给定的x0x0,通过网络G0G0得到x0~x0~,然后将x0~x0~送入网络G1G1得到x0^x0^,此时x0^x0^应该和x0~x0~有相同的属性。

ldual(x0~)=log(1D(G1i(x0~)))i=0,ldual(x0~)=−log(1−D(G1−i(x0~)))i=0,

ldual(x0~)=log(D(G1i(x0~)))i=1.ldual(x0~)=−log(D(G1−i(x0~)))i=1.

lG=lGAN+ldual+αlpix+βlperlG=lGAN+ldual+αlpix+βlper

lD=lclslD=lcls

Experiments

作者使用了CelebA数据集,选取了6个属性作为操控的对象: glasses, mouth open, smile, no beard, young, and male. CelebA数据集中没有对于操控后属性的ground truth.
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值