论文泛读:基于Disentangle的Image-to-Image Translation

1. Multimodal Unsupervised Image-to-Image Translation

针对什么问题?

本文指出,在许多场景中,对于交叉领域的映射是多模态的,而现有的Image-to-Image Translation方法,如Pix2Pix, CycleGAN经仅仅只能得到一个确定性的映射。这是什么意思呢?

  • 举个例子,一个冬天的场景可能会有多个状态,天气、时间、光线等因素都会使得冬天的场景看起来不一样。
  • 而现有的方法,若是做 夏天->冬天,一张夏天的场景仅能转换出到一种冬天领域下的场景,无法做到多种不同的输出。
  • 特别是,本文指出,有些方法通过注入噪音完成图像中信息的改变,但是经过训练后的网络会忽略这些噪音,从而使得噪音的注入无效。

提出什么方法?

故本文针对以上问题,提出了MUNIT模型,并做了以下的假设

  • 首先,假设图像的潜在空间(Latent Space)可以被分解为内容空间(Content Space)和风格空间(Style Space)。

    • 内容空间编码了在图像翻译时需要保留的内容
    • 风格空间代表了剩余那些输入图片中不需要保留的变量
  • 其次,假设处于不同领域中的图像共享一个共同的内容空间,但是不共享风格空间。如下图所示,其中X1,X2X_1, X_2共享同一个内容空间,但是风格空间彼此独立。
    论文泛读:基于Disentangle的Image-to-Image Translation

那么,在进行领域转换的时候,将内容编码和不同的随机采样的风格编码相结合,就可以得到多样化和多模态的输出。

效果怎么样?

实验表明该方法在多模态输出建模中的有效性,且能生成质量更好的图像。

1.1 Model

论文泛读:基于Disentangle的Image-to-Image Translation

上图为模型的概述。整个模型包含了两个auto-encoders,也就是模型中的红线和蓝线,各自代表一个domain。

  • 在图(a)中,两个auto-encoders的作用如下
    • 对于x1x_1,针对domain1的auto-encoders将其分解成风格空间s1s_1和内容空间c1c_1,再通过L1L_1损失重构成原图x1^\hat{x_1}
    • 对于x2x_2,针对domain2的auto-encoders将其分解成风格空间s2s_2和内容空间c2c_2,再通过L1L_1损失重构成原图x2^\hat{x_2}
  • 在图(b)中,对于拆分后的c1,c2c_1, c_2操作如下
    • 通过采样获取风格编码x1x_1, 将其和c2c_2一起输入到domain1的auto-encoders中,使其能够重构为s1^,c2^\hat{s_1},\hat{c_2}
    • 通过采样获取风格编码s2s_2, 将其和c1c_1一起输入到domain2的auto-encoders中,使其能够重构为s2^,c1^\hat{s_2},\hat{c_1}

其中,auto-encoders的构造如下图
论文泛读:基于Disentangle的Image-to-Image Translation

  • 可以看到,内容编码和风格编码都有各自的Encoder才获得
    • 对于Content Encoder,它由几个跨步卷积紧跟着几个残差块获得
    • 对于Style Encoder,它由几个跨步卷积紧跟着几个全局的池化,并接上了全连接层
  • 之后,作者通过使用AdaIN方法将Content Code和Style Code结合了在一起,具体操作如下
    • 对于Content Code,它继续接几个残差块来不断地传播语义特征
    • 对于Style Code,它通过MLP获得AdaIN的参数,在Content Code传播的过程中结合AdaIN参数
  • 最后,再通过上采样获得最后的重构图像

其中,AdaIN的公式如下

AdaIN(z,γ,β)=γ(zμ(z)σ(z))+βAdaIN(z, \gamma, \beta) = \gamma(\frac{z - \mu(z)}{\sigma(z)}) + \beta

  • z代表卷积后输出的**值
  • μ\mu代表通道均值
  • σ\sigma代表通道标准差
  • γ,β\gamma, \beta代表MLP生成的参数

1.2 Optimization

  • 首先,是图像重构损失(Image Reconstruction),如下

    Lreconx1=Ex1p(x1)[G1(E1c(x1),E1s(x1))x11]L_{recon}^{x_1} = E_{x_1 \thicksim p(x_1)}[||G_1(E_1^c(x_1), E_1^s(x_1)) - x_1||_1]

    • 即从Domain1中采样数据x1x_1,通过Domain1的Auto-Encoders来提取内容空间和风格空间,再通过Domain1的G1G_1转换为重构后的图像,和原始图像x1x_1L1L_1损失。
    • 同理,可以推出Lreconx2L_{recon}^{x_2}损失。
  • 其次,是隐藏重构损失(Latent Reconstruction)

    Lreconc1=Ec1p(c1),s2q(s2)[E2c(G2(c1,s2))c1]L_{recon}^{c_1} = E_{c_1 \thicksim p(c_1),s_2 \thicksim q(s_2)}[||E_2^c(G_2(c_1, s_2)) - c_1||]

    Lrecons2=Ec1p(c1),s2q(s2)[E2c(G2(c1,s2))s2]L_{recon}^{s_2} = E_{c_1 \thicksim p(c_1),s_2 \thicksim q(s_2)}[||E_2^c(G_2(c_1, s_2)) - s_2||]

    • 其中q(s2)q(s_2)是先验分布N(0,I)N(0, I)中采样的,p(c1)p(c_1)c1=E1c(x1)c_1 = E_1^c(x_1)得到,x1p(x1)x_1 \thicksim p(x_1)
    • Lreconc1L_{recon}^{c_1}通过G2G_2c1,s2c_1, s_2转化为Domain2中的图像,并通过Domain2中的内容解码器抽取内容空间,得到重构后的c1c_1的内容空间和原c1c_1L1L_1损失
    • Lrecons2L_{recon}^{s_2}通过G2G_2c1,s2c_1, s_2转化为Domain2中的图像,并通过Domain2中的风格解码器抽取风格空间,得到重构后的风格空间和原s2s_2L1L_1损失
    • 同理,可以推出Lreconx2,Lreconc2,Lrecons1L_{recon}^{x_2}, L_{recon}^{c_2}, L_{recon}^{s_1}
  • 最后,是对抗损失(Adversarial Loss)

    LGANx2=Ec1p(c1),s2p(s2)[log(1D2(G2(c1,s2)))]+Ex2p(x2)[logD2(x2)]L_{GAN}^{x_2} = E_{c_1 \thicksim p(c_1), s_2 \thicksim p(s_2)}[log(1 - D_2(G_2(c_1, s_2)))] + E_{x_2 \thicksim p(x_2)}[logD_2(x_2)]

    • 判别器D2D_2尝试区分由x1x_1翻译到x2x_2中的图像与X2X_2中的真实图像
    • 同理,可以推出D1D_1的损失LGANx1L_{GAN}^{x_1}

根据以上的单一损失描述,可以得到本文的总损失如下:

minE1,E2,G1,G2maxD1,D2L(E1,E2,G1,G2,D1,D2)=LGANx1+LGANx2+λx(Lreconx1+Lreconx2)+λc(Lreconc1+Lreconc2)+λs(Lrecons1+Lrecons2)\underset{E_1, E_2, G_1, G_2}{min} \underset{D_1, D_2}{max}L(E_1, E_2, G_1, G_2, D_1, D_2) = L_{GAN}^{x_1} + L_{GAN}^{x_2} + \\ \lambda_x(L_{recon}^{x_1} + L_{recon}^{x_2}) + \lambda_c(L{recon}^{c_1} + L_{recon}^{c_2}) + \lambda_s(L_{recon}^{s_1} + L_{recon}^{s_2})

其中,λx,λc,λs\lambda_x, \lambda_c, \lambda_s都是超参数。

1.3 Experiment

  • 验证指标
    • Human Preference,即人们对图像的欣赏度
    • LPIPS Distance,验证翻译后的多样性
    • Inception Score,验证多模态翻译后的真实度
  • 对比模型
    • UNIT
    • CycleGAN
    • CycleGAN*
    • BicycleGAN
  • 数据集
    • Edges <-> Shoes/handbags
    • Animal Image Translation
    • Street Scene Images
    • Summer <-> Winter

下面是挑选的实验中的几张效果图,总之就是比其他方法真实,且多样性好
论文泛读:基于Disentangle的Image-to-Image Translation
论文泛读:基于Disentangle的Image-to-Image Translation
论文泛读:基于Disentangle的Image-to-Image Translation

2. Unsupervised Image-to-Image Translation Networks

  • 待补充

3. Diverse Image-to-Image Translation via Disentangled Representations

  • 实验中有sunny, foggy等,哪来的数据?

4. Image-to-Image-Translation-for-Cross-Domain-Disentanglement

  • 注入噪音会被选择性忽视,从而难以得到多样化的输出结果
  • 如何共享区域?
  • 如何控制梯度回流?
  • 这个直接表明态度,共享相同类似的内容,如论文中手写数字的例子。也间接反映了缺陷,一旦两幅图内容差距太大,可能效果就不好了
  • 跨域检索

5. Conditional Image-to-Image translation

  • 一张图,只能对应一种迁移后的结果
  • GAN确保生成的图像属于目标领域,双向构造保证重构图像的质量
  • 讲述了如何从一个编码器得到两个不同的特征:独立特征,风格特征;于优化的过程中
  • 两种特征都从同一个Encoder出来,难道仅通过后续的损失来更新Encoder以控制输出特征的不同?
    • The encoders serve as feature extractors, which take an image as input and output the two kinds of features, domain independent
      features and domain-specific features, with the corresponding modules in the encoders
    • 文中说是Encoder中的不同模块
    • 在文章中的Settings中也提到了,Encoder的输出有两个分支,一个卷积抽取内容,一个全连接抽取风格
    • 此外,Encoder和Decoder中**函数的构造都是有选择性的
    • 本文的都是视觉性实验,无指标
    • 且输入图像为64x64,很小,怀疑是因为没钱买设备的原因

最后,感谢论文作者的贡献,respect! 本文的github.io版请走传送门

注:本文为作者原创,转载需注明出处!