分享

GAN做图像翻译的一点总结

 MaysThree 2017-12-30

如今,随着GAN在生成清晰图像(sharp images)上的成功,GAN在图像翻译任务上的方法越来越多,pix2pix,CycleGAN,UNIT,DTN,FaderNets,DistanceGAN,GeneGAN,pix2pixHD,StarGAN等等。现在的方法太多了,图像质量也从64x64分辨率一路做到了1024x2048。

我关注这个方向已经超过半年了,在这里总结一点小经验:

关于生成高质量图像

这里不谈怎么调参能够得到更好的结果,这里谈两个不用经过调参就能获得不错效果的方法。

有三个可以借鉴的经验,其一来自于pix2pixHD,采用multi-scale的Discriminator和coarse2fine的Generator能够有效帮助提升生成的质量。

所谓multi-scale的Discriminator是指多个D,分别判别不同分辨率的真假图像。比如采用3个scale的判别器,分别判别256x256,128x128,64x64分辨率的图像。至于获得不同分辨率的图像,直接经过pooling下采样即可。Coarse2fine的Generator是指先训一个低分辨率的网络,训好了再接一个高分辨率的网络,高分辨率网络融合低分辨率网络的特征得到更精细的生成结果。具体介绍可以参考pix2pixHD[1]。

下图以及题图是CelebA数据上交换属性的实验,图像分辨率256x256,如果单个Discriminator,生成质量很差,加上multi-scale之后生成质量有了很大提升,并且没有经过调参哦。

交换刘海

交换眼镜

其二是采用progressive growing的训练方式,先训小分辨率,再逐渐增加网络层数以增大分辨率,这个跟coarse2fine有点像。具体可以参看PGGAN[2],或者这里


其三则是借鉴LAPGAN的做法,从低分辨率起步,通过不断生成高分辨率下的残差,累加得到高分辨率。图中z1,z2,z3是不同分辨率的输入。这个做法还没有尝试过,不知道生成质量怎样,图中的虚线是我认为可能不必要的连接。


关于生成样本多样性

这里其实有两个问题,一个是多模态多样性,一个是属性强弱的多样性。

对于多模态多样性,现有的技术不多,总结起来有三种。

其一,引入noise,通过变分的方式让noise得到表达,获得多样性。这个方法来自于BicycleGAN[3]的cVAE-GAN。

图片来自于BicycleGAN[3]

其二,引入noise,通过回归的方法在生成图像上预测所引入的noise。这个方法失败率比较高。当然,它也可以跟第一种方法结合。具体介绍参考BicycleGAN[3]的cLR-GAN。


图片来自BicycleGAN[3]

前两种方法都比较容易想到。在文章出来以前,我也曾经尝试过第二种方法,但是没有work。这也印证了它失败率高。

第三种方法是通过交换来实现多模态。交换的图像可以是多种多样,一个不带属性的图,可以通过跟具有不同类型的刘海(眼镜、帽子等)的图片进行交换,以给目标人物加上不同类型的刘海(眼镜、帽子等)。这个方法可以参考GeneGAN[4]或者DNA-GAN[5]。题图就是一个交换属性的例子。

另一种多样性是属性强弱。对于需要输入label的生成方法(如FaderNets,StarGAN),可以通过控制喂给生成器的label强弱来得到生成图像的属性强弱。

关于属性强弱,有一类方法比较特殊,它没有办法实现,那就是CycleGAN,因为它只需要输入图像,并不需要输入label,没有控制label强弱的操作。下面介绍一种原创的方法,能够对CycleGAN引入属性强弱的控制(不打算写成论文,因为没有什么特别的贡献,不想灌水。如使用该方法请注明出处):

我们通过精简CycleGAN来实现,以两个域为例,原始CycleGAN需要2个Generator和2个Discriminator,我们不难发现,可以把域转换称condition,这样只需要一个Generator和Discriminator了。不妨给两个域 X = {x_i} 和 Y = {y_j} 分别编码为-1和1,

这样就实现了x -> y -> x 和 y -> x -> y 的cycle。剩下的跟CycleGAN一样即可。在测试的时候,就可以通过调节编码的强度来控制属性的强弱了。

关于inference

模型训练好了,测试的时候还有一道关要过。虽然现在很多图像翻译方法训练的时候都不需要配对数据,但是它们都需要弱监督,也就是需要提供label。而测试集上我们不一定有label,这其实是很常见的一个问题,用户上传的图像不会给你打好标签,况且还存在用户「故意」制造错误标签误导算法(测试算法性能)的可能。有什么解决方案呢?

我们很容易想到,加一个分类器,先分类具有什么属性,然后再转换属性。这个想法简单,但是需要额外的网络,会增加计算量。

有没有不引入分类器的方法呢?仍然以两个域互转的CycleGAN为例。训练的时候,我们强迫生成器具有分类器的功能。具体来说,生成器需要需要额外做两个任务(原创方法,没有发表,使用请注明出处):

这两项的loss为重构误差:


这可以说是一种自监督。这么做也就确保了生成器能够处理「故意误导」性的转换,也实现了label-free的inference。

下图是季节转换的一个例子。图片从左到右依次为秋季原图、转成夏季图、夏季图转回秋季图、秋季原图转到秋季图。


label=0.5

label=1.0

注意到上图checkerboard效应很严重。怎么解决checkerboard呢?

关于checkerboard效应

生成模型很容易产生checkerboard效应,图像翻译任务尤为严重。据研究[6],checkerboard主要来自于反卷积(convolution transpose,通常也称deconvolution)操作,而跟对抗训练关系不大。[6]指出,使用nearest upsample + conv替代deconv可以移除checkerboard。在实验中我发现这个替换确实发现能够很好地解决问题。


反卷积带来了overlap,从而引入了checkerboard,图来自于[6]

替代deconv需要引入其他的上采样方法。上采样的方法除了nearest upsample和bilinear upsample等类型之外,还有一种不叫上采样,但是可以得到类似效果的操作:pixel shuffle[7]。它只改变了数据的摆放位置,(N, C*k^2, H, W) -> (N, C, kH, kW))。这也是实现图像从小到大的方法,但是实验中我发现没有效果,可能是因为channel数太少。注意到channel数是增长是很快的,为了减少显存,减少卷积层数或者减少第一个卷积层的channel数都会影响网络的表达能力。

也就是说,目前比较好的解决方案还是使用nearest upsample + conv替代deconv。

参考文献

1. Wang T C, Liu M Y, Zhu J Y, et al. High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs[J]. arXiv preprint arXiv:1711.11585, 2017.

2. Karras T, Aila T, Laine S, et al. Progressive growing of gans for improved quality, stability, and variation[J]. arXiv preprint arXiv:1710.10196, 2017.

3. Zhu J Y, Zhang R, Pathak D, et al. Multimodal Image-to-Image Translation by Enforcing Bi-Cycle Consistency[C]//Advances in Neural Information Processing Systems. 2017: 465-476.(备注:文章发表时是这个名字,但是后来改名了,找原文请搜Toward Multimodal Image-to-Image Translation)

4. Zhou S, Xiao T, Yang Y, et al. GeneGAN: Learning Object Transfiguration and Attribute Subspace from Unpaired Data[J]. arXiv preprint arXiv:1705.04932, 2017.

5. Xiao T, Hong J, Ma J. DNA-GAN: Learning Disentangled Representations from Multi-Attribute Images[J]. arXiv preprint arXiv:1711.05415, 2017.

6. https:///2016/deconv-checkerboard

7. Shi W, Caballero J, Huszár F, et al. Real-time single image and video super-resolution using an efficient sub-pixel convolutional neural network[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 1874-1883.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多