针对什么问题?
图像翻译旨在将图像从一个领域映射到另一个领域。在监督的设定下,数据集是成对的,领域之间的映射是可行的。但在非监督的情况下,即数据集不是成对的,而是分成两个彼此独立的领域,图像翻译的任务将会变得艰难。而现实生活中,成对的数据是很难获得的,故无监督的图像翻译更实在。
提出什么方法?
本文指出图像翻译的主要挑战是学习两个不同领域之间的联合分布。在无监督条件下,两个数据集合分别包括在不同领域中来自两个边缘分布的图像,而图像翻译的目的正是从这两个边缘分布得到联合分布。而耦合理论指出:一般情况下,存在无穷多的联合分布可以到达给定的边缘分布。因此,从边缘分布推断联合分布是一个不适合的方法。为了解决这个问题,本文对联合分布提出了额外的假设。
效果怎么样?
本文将提出的框架应用于多种无监督的图像翻译问题并取得了高质量的翻译结果,这也从侧面反映了共享隐藏空间暗含了Cycle-Consistency Constraint(循环一致损失)。
本文通过联合寻来你解决了 V A E 1 , V A E 2 , G A N 1 , G A N 2 VAE_1, VAE_2, GAN_1, GAN_2 VAE1,VAE2,GAN1,GAN2的学习问题,损失如下
m i n E 1 , E 2 , G 1 , G 2 m a x D 1 L V A E 1 ( E 1 , G 1 ) + L G A N 1 ( E 1 , G 1 , D 1 ) + L c c 1 ( E 1 , G 1 , E 2 , G 2 ) \underset{E_1, E_2, G_1, G_2}{min} \underset{D_1}{max}L_{VAE_1}(E_1, G_1) + L_{GAN_1}(E_1, G_1, D_1) + L_{cc_1}(E_1, G_1, E_2, G_2) E1,E2,G1,G2minD1maxLVAE1(E1,G1)+LGAN1(E1,G1,D1)+Lcc1(E1,G1,E2,G2)
m i n E 1 , E 2 , G 1 , G 2 m a x D 2 L V A E 2 ( E 2 , G 2 ) + L G A N 2 ( E 2 , G 2 , D 2 ) + L c c 2 ( E 2 , G 2 , E 1 , G 1 ) \underset{E_1, E_2, G_1, G_2}{min} \underset{D_2}{max}L_{VAE_2}(E_2, G_2) + L_{GAN_2}(E_2, G_2,D_2) + L_{cc_2}(E_2, G_2, E_1, G_1) E1,E2,G1,G2minD2maxLVAE2(E2,G2)+LGAN2(E2,G2,D2)+Lcc2(E2,G2,E1,G1)
以上损失的具体形式请参考原论文
针对什么问题?
本文指出,在许多场景中,对于交叉领域的映射是多模态的,而现有的Image-to-Image Translation方法,如Pix2Pix, CycleGAN经仅仅只能得到一个确定性的映射。这是什么意思呢?
提出什么方法?
故本文针对以上问题,提出了MUNIT模型,并做了以下的假设
首先,假设图像的潜在空间(Latent Space)可以被分解为内容空间(Content Space)和风格空间(Style Space)。
其次,假设处于不同领域中的图像共享一个共同的内容空间,但是不共享风格空间。如下图所示,其中 X 1 , X 2 X_1, X_2 X1,X2共享同一个内容空间,但是风格空间彼此独立。
那么,在进行领域转换的时候,将内容编码和不同的随机采样的风格编码相结合,就可以得到多样化和多模态的输出。
效果怎么样?
实验表明该方法在多模态输出建模中的有效性,且能生成质量更好的图像。
上图为模型的概述。整个模型包含了两个auto-encoders,也就是模型中的红线和蓝线,各自代表一个domain。
其中,AdaIN的公式如下
A d a I N ( z , γ , β ) = γ ( z − μ ( z ) σ ( z ) ) + β AdaIN(z, \gamma, \beta) = \gamma(\frac{z - \mu(z)}{\sigma(z)}) + \beta AdaIN(z,γ,β)=γ(σ(z)z−μ(z))+β
首先,是图像重构损失(Image Reconstruction),如下
L r e c o n x 1 = E x 1 ∼ p ( x 1 ) [ ∣ ∣ G 1 ( E 1 c ( x 1 ) , E 1 s ( x 1 ) ) − x 1 ∣ ∣ 1 ] 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] Lreconx1=Ex1∼p(x1)[∣∣G1(E1c(x1),E1s(x1))−x1∣∣1]
其次,是隐藏重构损失(Latent Reconstruction)
L r e c o n c 1 = E c 1 ∼ p ( c 1 ) , s 2 ∼ q ( s 2 ) [ ∣ ∣ E 2 c ( G 2 ( c 1 , s 2 ) ) − c 1 ∣ ∣ ] 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||] Lreconc1=Ec1∼p(c1),s2∼q(s2)[∣∣E2c(G2(c1,s2))−c1∣∣]
L r e c o n s 2 = E c 1 ∼ p ( c 1 ) , s 2 ∼ q ( s 2 ) [ ∣ ∣ E 2 c ( G 2 ( c 1 , s 2 ) ) − s 2 ∣ ∣ ] 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||] Lrecons2=Ec1∼p(c1),s2∼q(s2)[∣∣E2c(G2(c1,s2))−s2∣∣]
最后,是对抗损失(Adversarial Loss)
L G A N x 2 = E c 1 ∼ p ( c 1 ) , s 2 ∼ p ( s 2 ) [ l o g ( 1 − D 2 ( G 2 ( c 1 , s 2 ) ) ) ] + E x 2 ∼ p ( x 2 ) [ l o g D 2 ( x 2 ) ] 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)] LGANx2=Ec1∼p(c1),s2∼p(s2)[log(1−D2(G2(c1,s2)))]+Ex2∼p(x2)[logD2(x2)]
根据以上的单一损失描述,可以得到本文的总损失如下:
m i n E 1 , E 2 , G 1 , G 2 m a x D 1 , D 2 L ( E 1 , E 2 , G 1 , G 2 , D 1 , D 2 ) = L G A N x 1 + L G A N x 2 + λ x ( L r e c o n x 1 + L r e c o n x 2 ) + λ c ( L r e c o n c 1 + L r e c o n c 2 ) + λ s ( L r e c o n s 1 + L r e c o n s 2 ) \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}) E1,E2,G1,G2minD1,D2maxL(E1,E2,G1,G2,D1,D2)=LGANx1+LGANx2+λx(Lreconx1+Lreconx2)+λc(Lreconc1+Lreconc2)+λs(Lrecons1+Lrecons2)
其中, λ x , λ c , λ s \lambda_x, \lambda_c, \lambda_s λx,λc,λs都是超参数。
下面是挑选的实验中的几张效果图,总之就是比其他方法真实,且多样性好
在写这篇论文泛读之前想说的话:本文是本次所有泛读文章中,文笔最好,实验最多的;若是对Image-to-Image Translation中Disentangle做法感兴趣,可以先从这篇读起。
针对什么问题?
本文指出Image-to-Image Translation旨在学习两个视觉域中的映射关系,但存在以下两个挑战
提出什么方法?
为了生成多样化的输出且不依靠对齐的训练数据,本文将图像嵌入到两个空间中
效果怎么样?
大量的实验表明本文提出的方法能够生成多样化和真实的图像,并且能够被运用于多领域的图像翻译来生成多样性的输出。
本文的目标是在没有成对训练数据的情况下,学习两个视觉领域之间的多模态映射。其中,本文完整的模型如下图所示
针对领域 x , y x, y x,y,存在各自的内容编码器 E x c , E y c E_x^c, E_y^c Exc,Eyc和属性编码器 E x a , E y a E_x^a, E_y^a Exa,Eya,以及各自的解码器 G x , G y G_x, G_y Gx,Gy。
在训练过程中,我们以领域 x x x中的图像为例。第一步,对于领域 x x x中的图像使用 E x a E_x^a Exa抽取专有属性,再使用 E y c E_y^c Eyc抽取领域 y y y中的内容信息,并通过领域 x x x的解码器 G x G_x Gx将映射到领域 x x x中。第二步,使用 E x a , E x c E_x^a, E_x^c Exa,Exc抽取映射后图像的内容信息和专有属性,再使用 E y c E_y^c Eyc抽取领域 y y y中的内容信息,最后通过领域 x x x的解码器 G x G_x Gx将其映射回领域 x x x,即得到重构后的 x ^ \hat{x} x^。领域 y y y中的图像同理。
在测试过程中,分为两种情况
为了取得更好的分解效果,本文还采用了两个策略
参数共享(Weight-Sharing)。基于两个领域共享相同的隐层空间,本文共享了 E X c , E Y c E_X^c, E_Y^c EXc,EYc的最后几层和 G X , G Y G_X, G_Y GX,GY的第一层。在参数共享的策略下,内容表达能够被强制映射到同一个空间,即使得判别器无法判断学习到的内容表达到底属于领域 x x x还是领域 y y y。
内容判别器(Content Discriminator)。内容的对抗损失如下
L a d v c o n t e n t ( E X c , E Y c , D c ) = E x [ 1 2 l o g D c ( E X c ( x ) ) + 1 2 l o g ( 1 − D c ( E X c ( x ) ) ) + E y [ 1 2 l o g D c ( E Y c ( y ) ) + 1 2 l o g ( 1 − D c ( E Y c ( y ) ) ) ] L_{adv}^{content}(E_X^c, E_Y^c, D^c) = E_x[\frac{1}{2}logD^c(E_X^c(x)) + \frac{1}{2}log(1 - D^c(E^c_X(x))) + \\ E_y[\frac{1}{2}logD^c(E_Y^c(y)) + \frac{1}{2}log(1 - D^c(E^c_Y(y)))] Ladvcontent(EXc,EYc,Dc)=Ex[21logDc(EXc(x))+21log(1−Dc(EXc(x)))+Ey[21logDc(EYc(y))+21log(1−Dc(EYc(y)))]
本文除了双领域之间的转换,还尝试了多领域之间的转化,我们这里也提一下,模型如下图
模型和双领域转换类型,存在两方面的不同
除了上述的内容判别器损失,本文还使用了交叉循环一致性损失(Cross-cycle Consistency Loss),使得模型可以将任意图像的内容和目标领域中另一个图像的属性表达结合在一起。
交叉循环一致性损失分为两个步骤:前向翻译和后向翻译,也就是上文模型图的内容,即映射和重构。损失如下
L 1 c c ( G X , G Y , E X c , E Y c , E X a , E Y a ) = E x , y [ ∣ ∣ G X ( E Y c ( v ) , E X a ( u ) ) − x ∣ ∣ 1 + ∣ ∣ G Y ( E X c ( u ) , E Y a ( v ) ) − y ∣ ∣ 1 ] L_1^{cc}(G_X, G_Y, E_X^c, E_Y^c, E_X^a, E_Y^a) = E_{x,y}[||G_X(E_Y^c(v), E_X^a(u)) - x||_1 + \\ ||G_Y(E_X^c(u), E_Y^a(v)) - y||_1] L1cc(GX,GY,EXc,EYc,EXa,EYa)=Ex,y[∣∣GX(EYc(v),EXa(u))−x∣∣1+∣∣GY(EXc(u),EYa(v))−y∣∣1]
除了内容对抗损失和交叉循环一致性损失,本文还使用了其他损失来确保网络的训练,如下图所示
损失的详情请看原文。
本文的主要思想和上述论文类似,主要不同点在于引入了 G R L GRL GRL模块使得编码器能分别提取共享信息和专有属性。
针对什么问题?
从场景的固有属性出发,将光照、阴影、视点、物体方向等场景事件分离出来,一直是计算机视觉长期追求的目标。当应用于深度学习时,这允许模型了解实体独立的变量因素,若信息与当前任务无关,那么模型可以沿着特定的变化因素边缘化信息。这样的分解过程对于基于表示学习的任务提供了更加精准的控制。故本文旨在将分解表示和图像翻译结合在一起,以达到更好的效果。
提出什么方法?
本文将分解目标和图像翻译结合,引入了跨域分解的概念,其目的是将域内专有的属性和跨域共享的属性分开。为了做到这一点,本文将交叉领域中图像的表示分解为三部分:交叉领域共有的信息,以及各自领域专有的信息,如下图
效果怎么样?
本文的模型如下图,左边是图像翻译模块,右边是跨域自动编码器。
重构隐层空间。用于翻译的解码器接收共享的表示 S S S以及用于充当专有属性的随机输入噪音作为输入,在这里本文从8维的噪音向量 z z z中采样,这也要求专有属性表示的能够满足合理的分布。为此,作者在这里加入了原始对抗损失,训练使得能从 N ( 0 , I ) N(0, I) N(0,I)中采样接近于 E x E^x Ex分布的特征。
重构后的图像必须与解码器的输入匹配,因此需要在原图像和重构后的图像 S X S^X SX中加入 L 1 L_1 L1损失。
L r e c o n X = E x ∼ X [ ∣ ∣ G e ( G d ( S X , z ) ) − ( S X , z ) ∣ ∣ ] L_{recon}^X = E_{x \thicksim X}[||G_e(G_d(S^X, z)) - (S^X, z)||] LreconX=Ex∼X[∣∣Ge(Gd(SX,z))−(SX,z)∣∣]
为了使得翻译后的图像接近于真实数据分布,还需要引入对抗损失,本文作者采用了 W G A N − G P WGAN-GP WGAN−GP的损失,以获得稳定的训练和高质量的输出
L D i s c X = E x ~ ∼ X ~ [ D ( x ~ ) ] − E x ∼ X [ D ( x ) ] + λ ⋅ E x ^ ∼ X ^ [ ( ∣ ∣ ∇ x ^ D ( x ^ ) ∣ ∣ 2 − 1 ) 2 ] L_{Disc}^X = E_{\tilde{x} \thicksim \tilde{X}}[D(\tilde{x})] - E_{x \thicksim X}[D(x)] + \lambda \cdot E_{\hat{x} \thicksim \hat{X}}[(||\nabla_{\hat{x}}D(\hat{x})||_2 - 1)^2] LDiscX=Ex~∼X~[D(x~)]−Ex∼X[D(x)]+λ⋅Ex^∼X^[(∣∣∇x^D(x^)∣∣2−1)2]
L G e n X = − E x ~ ∼ X ~ [ D ( x ~ ) ] L_{Gen}^X = -E_{\tilde{x} \thicksim \tilde{X}}[D(\tilde{x})] LGenX=−Ex~∼X~[D(x~)]
最后在跨域自动编码器中,重建的图像需要接近于原图,故有以下损失
L a u t o X = E x ∼ X [ ∣ ∣ x ′ − x ∣ ∣ ] L_{auto}^X = E_{x \thicksim X}[||x^{'} - x||] LautoX=Ex∼X[∣∣x′−x∣∣]
损失的详情请查看原文
针对什么问题?
现有的图像翻译方法缺乏控制翻译结果的能力,从而导致生成的结果缺乏多样性。
提出什么方法?
本文提出了条件图像翻译的概念,即可以在给定的图像条件下,将源于转换为目标域中的图像,如下图示
该模型要求生成的图像必须从目标域中继承条件图像的特定域特征。
效果怎么样?
本文进行了人脸转换、轮廓到背包等实验,并证明了该方法的有效性。
对抗损失(GAN Loss)。为了保证 x A B , x B A x_{AB},x_{BA} xAB,xBA都能映射到相关的领域中,本文设计了判别器 d A , d B d_A,d_B dA,dB损失如下
l G A N = l o g ( d A ( x A ) ) + l o g ( 1 − d A ( x B A ) ) + l o g ( d B ( x B ) ) + l o g ( 1 − d B ( x A B ) ) l_{GAN} = log(d_A(x_A)) + log(1 - d_A(x_{BA})) + log(d_B(x_B)) + log(1 - d_B(x_{AB})) lGAN=log(dA(xA))+log(1−dA(xBA))+log(dB(xB))+log(1−dB(xAB))
双重学习损失(Dual Learning Loss),使得模型最小化重构损失,如下
l d u a l i m ( x A , x B ) = ∣ ∣ x A − x ^ A ∣ ∣ 2 + ∣ ∣ x B − x ^ B ∣ ∣ 2 l d u a l d i ( x A , x B ) = ∣ ∣ x A i − x ^ A i ∣ ∣ + ∣ ∣ x B i − x ^ B i ∣ ∣ 2 l d u a l d s ( x A , x B ) = ∣ ∣ x A s , x ^ A s ∣ ∣ 2 + ∣ ∣ x B s − x ^ B s ∣ ∣ 2 l_{dual}^{im}(x_A, x_B) = ||x_A - \hat{x}_A||^2 + ||x_B - \hat{x}_B||^2 \\ l_{dual}^{di}(x_A, x_B) = ||x_A^i - \hat{x}_A^i|| + ||x_B^i - \hat{x}_B^i||^2 \\ l_{dual}^{ds}(x_A, x_B) = ||x_A^s, \hat{x}_A^s||^2 + ||x_B^s - \hat{x}_B^s||^2 ldualim(xA,xB)=∣∣xA−x^A∣∣2+∣∣xB−x^B∣∣2ldualdi(xA,xB)=∣∣xAi−x^Ai∣∣+∣∣xBi−x^Bi∣∣2ldualds(xA,xB)=∣∣xAs,x^As∣∣2+∣∣xBs−x^Bs∣∣2
最后,感谢论文作者的贡献,respect! 本文的github.io版请走传送门。
注:本文为作者原创,转载需注明出处!