【2020CVPR】
Shen, Yujun, Jinjin Gu, Xiaoou Tang, and Bolei Zhou. “Interpreting the latent space of gans for semantic face editing.” In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pp. 9243-9252. 2020.
https://github.com/genforce/interfacegan
任务:对于预训练的GAN模型进行人脸属性编辑
方法
本文对人脸5个属性:姿态、表情(微笑)、年龄、性别和眼镜进行编辑
一、隐空间中的语义
1、单种语义
GAN模型的输入为z,设为d维的向量
对于每种属性,定义一个d维的单位向量n来表示(则
n
T
⋅
z
=
0
n^T \cdot z=0
nT⋅z=0则为属性分界的超平面)
那么对于GAN的输入z,可以计算其与特定属性的语义分值,即为两者的点乘
设生成器g:Z->X,使用函数f来计算语义分值,那么每张图像的特定语义的得分为
其中λ为衡量单位长度中语义变化大小的超参
2、多种语义
类似于单重语义时的定义,采用矩阵N来作为不同的语义向量N=[n_1,…,n_m]
计算s的均值和方差,由于不同属性间可能会有相关性,因此使用
n
i
T
⋅
n
j
n_i^T \cdot n_j
niT⋅nj来衡量两种语义之间的相关性
二、隐空间中的语义修改
1、单语义修改
对于原随机变量z沿着语义方向n进行移动,则对应的语义分值也会相应加减
f
(
g
(
z
e
d
i
t
)
)
=
f
(
g
(
z
)
)
+
λ
α
f(g(z_{edit}))=f(g(z))+λα
f(g(zedit))=f(g(z))+λα
2、条件修改
由于不同属性间不能做到完全的解耦,因此仅沿着一种语义的方向一定时,可能会同时修改了其他属性
因此提出一种修改方法:在保留某一种语义(n2)不变的情况下,修改另一种语义(n1)
语义修改时的移动方向为:
n
1
−
(
n
1
T
⋅
n
2
)
n
2
n_1-(n_1^T \cdot n_2)n_2
n1−(n1T⋅n2)n2
3、真实图像编辑
可以使用最优化输入随机变量的方法,或者基于encoder的方法,将真实图像先得到GAN的输入随机变量z,然后再在z上面进行属性编辑,最后再送入GAN中生成图像
实验
先使用CelebA数据集训练一个属性预测器,对微笑、年龄、性别、眼镜以及人脸5点位置(用于估计左右姿态)进行预测
实验在PGGAN和StyleGAN上进行,对于每种模型,先随机采样500K的随机变量,得到对应的500K张图像,然后使用前面训练的属性预测器,对于需要编辑的5种属性进行预测
对于每种属性,选取得分最高和最低的各10K张图像,使用对应的输入z训练SVM分类器,从而得到决策边界,其法向量即为对应的属性特征向量n
1、隐空间可分性
对于前面训练的SVM分类器,在高置信度数据(20K张)中的验证集以及全部数据(500K)上分别进行测试
可以发现使用随机变量z,可以对属性进行较好的分类
2、隐空间编辑
单属性编辑
语义空间中的距离影响
对随机变量通过属性向量进行极端修改
在距离分界平面较远的地方,同时可能会影响其他属性
artifact修正
使用4K张生成的不好的图像,训练一个判别生成图像质量好坏的SVM,得到代表图像质量的向量,沿着该方向修改图像,可以将artifact图像进行优化
3、条件编辑
不同属性间的关系
使用不同属性向量的余弦距离,以及使用属性分类概率值的相关系数进行度量
姿态和笑脸属性之间没有关联
年龄、性别和眼镜之间相关性较强
条件编辑
修改某一属性,会导致其他属性也同时出现变化,但是使用条件编辑,限制某一属性不变,则可以单独修改某一属性
StyleGAN
StyleGAN中Z空间和W空间都可以作为隐空间进行编辑,实验发现W空间更容易进行大范围的属性修改,但是W空间由于是通过Z空间进行变换得到的高层特征,容易出现不同属性间的耦合情况
真实图像编辑
通过基于输入隐空间随机变量z进行最优化的方法,和基于额外训练encoder的方法,可以将真实图像先转换到z空间,进行属性编辑后再进行图像生成
也可以在LIA这种基于encoder-decoder的生成模型上进行编辑