最近看的论文,图像编辑,即编辑图片中的一些属性,比如年龄、性别等等

该论文主要基于之前的方法PGGAN和styleGAN,在此基础上提出了一个设想,对于二值属性来说,存在一个超平面,使得这个二值属性在超平面的两侧具有相反的值

而根据某个Property 2可知,从正态分布随机采样的噪声会位于这个超平面的附近,因此我们可以随机生成一些在某个属性上具有不同值图片,并使用SVM和这些图片拟合出这个超平面,并用这个超平面的法向量nn来表示

1.jpg

对于某个超平面,它的法向量为nn,那某个样例zz到超平面的“距离”就被定义为

d(n,z)=nTzd(n,z)=n^T z

我们希望给这个属性一个分数,以评估这个属性的效果,比如年龄这个属性,分数用来代表年龄的大小,我们给每个属性一个特定的分数函数ff,同时希望这个分数是线性依赖于距离的,因此给出系数λ\lambda,分数公式如下

f(g(z))=λd(n,z)f(g(z))=\lambda d(n,z)

当具有m种不同语义时,我们有

sfS(g(z))=ΛNTzs\equiv f_S(g(z))= ΛN^T z

我们想要改变某个属性的分数,只需要将噪声向量在相应超平面的法向量方向上移动即可,具体操作为在原向量上加一个偏移量。理所当然的是,这个偏移量很有可能会在改变特定属性的同时,影响其他并不想更改的属性。

这种意料之外的影响,当每个超平面的法向量两两正交的时候,将不会出现,但是属性与属性之间的有可能并不是毫不相关的,所以法向量之间不可能一定是正交的,因此我们找到了一个条件编辑的方法

如下图,我们找到了一个新的向量n1(n1Tn2)n2n_1-(n_1^Tn_2)n_2,在编辑属性1的同时减去这个向量,就可以消除对属性2的影响

2.jpg

接下来的部分就是对具体实现的介绍,使用PGGAN和styleGAN的两个潜在编码空间分别生成一些图片,再使用这些图片训练一个SVM分类器,找出各个属性的超平面,之后即可进行编辑

后面对于各个条件下性能的度量中,条件编辑出现了头发和背景图片混合的情况,斯认为原因是,虽然额外添加的偏移向量,使得属性2偏移了回来,但是却没有保证其他未知的属性不变,因此如果想要避免这种影响,需要添加新的相关的条件约束

该论文提出了一个新的想法,使用了之前的网络,在空间域上进行操作,假设各个属性的超平面在空间域上是正交的。但是这个假设的真假并不能得到证明,只能用真实操作的结果进行评估。我们知道,任何一个周期函数都能用多个正弦函数的和来表示,而这些正弦函数一般会选择两两正交的来方便计算,所以我们可以假设每张图片的向量也可以用很多的正交的子向量来表示,而其中的一个属性可能会由其中一个或者几个正交的子向量表示。

上面只是一些模糊的想法,其实并没有写全,因为傅立叶变换中有些细节还没弄清楚,因为距离学习信号与系统有点太久了,需要再多看一看,Matlab已经下好了,还是需要实践一下才能下结论