《RelGAN》image-to-image属性迁移(ICCV2019)
RelGAN: Multi-Domain Image-to-Image Translation via Relative Attributes
code:https://github.com/elvisyjlin/RelGAN-PyTorch
这应该是image-to-image比较新的文章了,之前一直关注着stargan,但是有很多人已经基于stargan做过了reid的东西,所以还需要进一步的思考和研究。
摘要
和一般的image-to-image不同的是,这篇文章是针对于多个领域的image-to-image的迁移。之前的方法大多都是采用图像和一些目标属性结合作为输入,生成目标属性的图像。然而这样的方法存在两个缺点。一是这些方法假设二值的属性,因此不能产生令人满意的细粒度控制结果。二是这些方法需要指定整个目标属性集。所以作者提出了基于相关属性的GAN:RelGAN。该方法能够通过连续地改变感兴趣的特定属性来修改图像,同时保留其他属性。
引言
多领域image-to-image迁移的目的是将一个一张图从一个域迁移到其他所有的域。从域的角度上来说就是一张图不同的标注的属性,在人脸中对应头发的颜色,年龄,性别,等。但是每一张图包含多个属性。之前基于生成对抗网络的GAN和条件变量c的CGAN,大多都是在两个域之间进行迁移。一些多域迁移的方法也是同事变换多个属性,这也是他们不足的地方,并不能针对于某一属性做迁移,而不影响其他属性的特征。
之前方法的不足之处:
1.这些方法都假定了二值属性,因此不是被设计为属性插值。尽管我们可以输入真实值的属性给生成器,但是试验发现,由于采用二值属性训练的方法,模型的插值效果是很难令人满意的。作者解决这个问题采用了一个真实值相关的属性方式并作用到一个额外的判别器。并且在编辑之前和之后之间进行平滑和真实的插值是很重要的,因为它支持对每个属性的强度进行细粒度的控制。如下图所示:
2.这些方法大多还要验证整个数据的属性,比方说,不但要讲兴趣属性设置为目标值,还要验证输入图片未改变的属性值。
条件v的产生:
之前的方法:输入为, 为目标属性
作者的方法:输入为,,是输入图片的属性标签
相关工作
StarGAN [7] and AttGAN [8] 是多域image-to-image 的代表作。
主要方法
overall
Relative Attributes
和都是n维的向量。
这样做的目的也很简单直接,举例来说对于一个输入图片的属性标注为0或者1的二值标签,同这个相关属性的计算,可以得到一个三值的属性值(-1,0,1)可以理解为一个不同的开关,1表示打开,而-1表示关闭,0表示不改变,这样对于输入图片的属性迁移就有了合理的控制。
Adversarial Loss
目的是要让生成器G生成的图片更加的真实,而判别器是不考虑输入的条件c的。
Conditional Adversarial Loss
目的就是要让生成的图片不仅仅看起来更加真实而是要能够和输入属性v更加的匹配。 使用三元输入。
Reconstruction Loss
Interpolation Loss
Full Loss
试验结果
生成质量对比: