Abstract
无监督的图像对图像的翻译是计算机视觉中的一个重要且具有挑战性的问题。给定源域中的图像,目标是学习目标域中相应图像的条件分布,而无需看到任何一对相应的图像。虽然这种条件分布本质上是多模态的,但现有的方法做了一个过于简化的假设,将其建模为一个确定性的一对一映射。因此,它们不能从一个给定的源域图像中产生不同的输出。为了解决这一局限性,我们提出了一个多模态无监督的图像-图像翻译(MUNIT)框架。我们假设图像表示可以被分解为内容代码和风格代码,前者是领域不变的,后者是捕捉领域特定的属性。为了将一幅图像翻译成另一个领域,我们将其内容代码与从目标领域的风格空间中抽取的随机风格代码重新组合。我们分析了所提出的框架并建立了几个理论结果。广泛的实验与最先进的方法进行了比较,进一步证明了所提框架的优势。此外,我们的框架允许用户通过提供一个示例风格图像来控制翻译输出的风格。
Method
之前的图像到图像翻译方法,如CycleGAN,是单模态的,即给定一个输入,只能得到1种可能的输出。而现实中的应用可能需要一些"创造性",输入一张图像应该能得到多种合理的输出,这种情况被称为多模态。一种简单的思想为在将图像输入网络的同时加入一定的噪声,以改变输出结果;然而,事实上很多时候网络都对噪声具有一定的鲁棒性,因此难以起作用。
本文的基本思想为将图像的潜在空间解耦为内容空间(content space)与风格空间(style space)。源域和目标域的内容空间应该是一致的,因此,如果要进行风格转换,只需要交换源域和目标域的风格空间即可。
如上图所示,给定domain A的图像
x
1
x_1
x1以及domain B的图像
x
2
x_2
x2,其内容编码
c
1
c_1
c1与
c
2
c_2
c2应位于同一内容空间
C
\mathcal{C}
C中,而风格编码
s
1
s_1
s1与
s
2
s_2
s2应该位于各自的风格空间中。若要完成风格转换,只需要将domain A的内容编码
c
1
c_1
c1与domain B的风格编码
s
s
s相组合即可。
本文的流程如下所示:
每个域各自都有一个"VAE"来将图像解耦为内容编码和风格编码,VAE的结构如下:
损失函数包含以下几个部分:
图像重建损失(Image Reconstruction Loss) 既然是VAE,那么肯定要能自己生成自己,也就是输入的图像
x
1
x_1
x1与重建图像
x
^
1
\hat{x}_1
x^1应该一致:
L
recon
x
1
=
E
x
1
∼
p
(
x
1
)
[
∣
∣
G
1
(
E
1
c
(
x
1
)
,
E
1
s
(
x
1
)
)
−
x
1
∣
∣
1
]
\mathcal{L}^{x_{1}}_{\text{recon}} =\mathbb{E}_{x_{1}\sim p(x_{1})}[||G_{1}(E_{1}^{c}(x_{1}), E_{1}^{s}(x_{1}))-x_{1}||_{1}]
Lreconx1=Ex1∼p(x1)[∣∣G1(E1c(x1),E1s(x1))−x1∣∣1] 对抗损失(Adversarial Loss) GAN的基本损失了,生成的目标域图像应该看起来像真的:
L
GAN
x
2
=
E
c
1
∼
p
(
c
1
)
,
s
2
∼
q
(
s
2
)
[
log
(
1
−
D
2
(
G
2
(
c
1
,
s
2
)
)
)
]
+
E
x
2
∼
p
(
x
2
)
[
log
D
2
(
x
2
)
]
\mathcal{L}^{x_{2}}_{\text{GAN}}=\mathbb{E}_{c_{1}\sim p(c_{1}), s_{2}\sim q(s_{2})}[\log(1-D_{2}(G_{2}(c_{1},s_{2})))] + \mathbb{E}_{x_{2}\sim p(x_{2})}[\log D_{2}(x_{2})]
LGANx2=Ec1∼p(c1),s2∼q(s2)[log(1−D2(G2(c1,s2)))]+Ex2∼p(x2)[logD2(x2)] 双向重建损失(Bidirectional Reconstruction Loss)
也就是约束如何去解耦的,算是本文的核心。例如,对于domain A的图像
x
1
x_1
x1,将其用domain A的VAE进行编码,得到内容编码
c
1
c_1
c1,将其与domain B的风格编码
s
2
s_2
s2结合,可以得到一张domain B的图像。将这张domain B的图像使用domain B的VAE进行编码,得到内容编码
c
∗
c*
c∗。由于内容编码应该是和domain无关的,因此
c
1
c_1
c1与
c
∗
c*
c∗应该保持一致:
L
recon
c
1
=
E
c
1
∼
p
(
c
1
)
,
s
2
∼
q
(
s
2
)
[
∣
∣
E
2
c
(
G
2
(
c
1
,
s
2
)
)
−
c
1
∣
∣
1
]
\mathcal{L}^{c_{1}}_{\text{recon}} = \mathbb{E}_{c_{1}\sim p(c_{1}), s_{2}\sim q(s_{2})}[||E^{c}_{2}(G_{2}(c_{1},s_{2}))-c_{1}||_{1}]
Lreconc1=Ec1∼p(c1),s2∼q(s2)[∣∣E2c(G2(c1,s2))−c1∣∣1] 同时,用
s
2
s_2
s2重建得到的图像的风格,再进行编码,风格码应该仍为
s
2
s_2
s2,因此有:
L
recon
s
2
=
E
c
1
∼
p
(
c
1
)
,
s
2
∼
q
(
s
2
)
[
∣
∣
E
2
s
(
G
2
(
c
1
,
s
2
)
)
−
s
2
∣
∣
1
]
\mathcal{L}^{s_{2}}_{\text{recon}} = \mathbb{E}_{c_{1}\sim p(c_{1}), s_{2}\sim q(s_{2})}[||E^{s}_{2}(G_{2}(c_{1},s_{2}))-s_{2}||_{1}]
Lrecons2=Ec1∼p(c1),s2∼q(s2)[∣∣E2s(G2(c1,s2))−s2∣∣1] 据此就将风格与内容分离开来。