【论文解读】IDInvert:In-Domain GAN Inversion for Real Image Editing

Jiapeng Zhu, Yujun Shen, Deli Zhao, Bolei Zhou, ECCV2020
paper:https://arxiv.org/abs/2004.00049v3
code:https://github.com/genforce/idinvert(tensorflow和pytorch版本都已开源,但pytorch版只有inference部分)

一、概述

对于GAN inversion的任务,不仅要保证重建的图像在pixel上是相似的,还要保证它在semantic上也是不变的。这个工作train了一个domain-guided encoder,随后在inference阶段再对latent code做domain-regularized optimization。

二、网络结构

在这里插入图片描述
图(a)上图是传统的encoder训练方法,蓝色代表训练部分,黑色代表固定的部分。传统的方法是随机采样z喂给G生图,再用E来恢复这个code,在latent层面做约束。而IDinvert是将真图喂给E得到z,再将这个z给G生假图,在image层面做约束。

这里的G使用的是styleGAN,与image2stylegan中latent code的加入方式相同,encoder生成的是18*512的W+,通过AdaIN逐层地加入styleGAN的synthesis网络中。实验中没有使用MLP,只用了synthesis网络并且需要将它固定。
在这里插入图片描述

三、Loss

(一)Training

在这里插入图片描述
实验中虽然也使用了pretrained的D的参数,但D不会被固定,会和E一起更新参数。

E的loss包括三部分:
1、真图的重建loss
2、perceptual loss
3、假图的GAN loss
其中perceptual loss使用的是VGG16的conv4_3层的输出。

D的loss也有三部分:
1、假图的GAN loss
2、真图的GAN loss
3、简单的0阈值gradient penalty

(二)Inference

inference阶段就是作者所说的domain-regularized optimization,在训好encoder的基础上再对z进行优化:
在这里插入图片描述
这个loss包括三项:
1、真图的重建loss
2、perceptual loss
3、cycle-consistency:用z生成的假图给E,还可以恢复出原来的z

四、实验

1、Inversion

在这里插入图片描述
在这里插入图片描述
和其他方法做了比较,指标都有一些提升。

2、interpolation

在两个code间做内插,比image2stylegan更自然一些。
在这里插入图片描述

3、manipulation

用下面这个公式做了semantic的变换,其中n是InterFaceGAN提供的一个语义的方向
在这里插入图片描述

在这里插入图片描述

五、总结

IDinvert想要训练一个semantically meaningful的encoder,而不仅仅是实现pixel上的接近。最后一个实验说明了这一点,一个在人脸数据集上训好的G,在bedroom和建筑物上做inversion时会出现人脸的轮廓,而第三列的image2stylegan不会。这恰恰说明了IDInvert得到的latent code和语义更相关,因为训练集中并没有包含bedroom和建筑物的语义,用人脸的语义来恢复它们自然就是不合理的。出现了人脸的轮廓,也就代表了得到的code包含了original domain的semantic信息,而不仅是恢复每个pixel。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值