[论文翻译] Unpaired Image-to-Image Translation using Adversarial Consistency Loss

[论文地址] [代码] [ECCV 20]

只翻译方法部分

Method

我们的目标是将图像从一个域翻译到另一个域,并支持多样化和多模态的输出。令 X S X_S XS X T X_T XT 为源域和目标域, X X X X S X_S XS X T X_T XT的并集(即 X = X S ∪ X T X = X_S \cup X_T X=XSXT), x ∈ X x \in X xX为单张图像, x S ∈ X S x_S \in X_S xSXS x T ∈ X T x_T \in X_T xTXT为不同域的图像。我们定义 p X p_X pX p S p_S pS p T p_T pT X X X S S S T T T的分布情况。 p ( a , b ) p(a, b) p(a,b)用于 ( a , b ) (a, b) (a,b)的联合分布,其中 a a a b b b可以是图像或噪声向量。设 Z Z Z为噪声向量空间, z ∈ Z z \in Z zZ为噪声向量, z ∼ N ( 0 , 1 ) z \sim \mathcal{N}(0, 1) zN(0,1)

我们的方法有两个生成器。 G S : ( x , z ) → x S G_S:(x,z)→x_S GS:(x,z)xS G T : ( x , z ) → x T G_T:(x,z)→x_T GT:(x,z)xT分别将图像转换为域 X S X_S XS X T X_T XT。与[10]类似,每个生成器包含一个噪声编码器、一个图像编码器和一个解码器,其中噪声编码器仅用于计算一致损失(identity loss)。生成器接收输入对(图像,噪声向量),其中图像来自 X X X。详细地说,图像编码器接收从 X X X采样的图像。从噪声编码器得到的噪声向量 z z z只用于一致损失,而对于其他损失,噪声向量 z z z是从标准正态分布 N ( 0 , 1 ) \mathcal{N}(0, 1) N(0,1)中随机采样的。噪声向量 z z z和图像编码器的输出被转发给解码器,解码器的输出是翻译后的图像。

此外,有两种判别器 D S / D T D_S/D_T DS/DT D ^ \hat{D} D^ D ^ \hat{D} D^是一个一致性判别器。它的目标是确保源图像和翻译图像之间的一致性,这也是我们方法的核心。 D S D_S DS D T D_T DT的目标是在某一领域区分真实和虚假的图像。具体来说, D S D_S DS的任务是区分 X S X_S XS G S ( X ) G_S(X) GS(X),而 D T D_T DT的任务是区分 X T X_T XT G T ( X ) G_T(X) GT(X)

ACL-GAN的目标有三个部分。第一,对抗性翻译损失,将生成的图像分布与目标域的数据分布相匹配。第二,对抗性一致性损失,在翻译后的图像中保留源图像的重要特征,也就是说,它导致域之间的合理映射。第三种,一致损失和bounded focus mask,可以进一步帮助提高图像质量并保持图像的背景。流程如图2所示,下面介绍我们方法的细节。

Adversarial-Translation Loss

对于域之间的图像翻译,我们利用经典的对抗性损失,在我们的方法中称为对抗性翻译损失,用于生成器 G S G_S GS G T G_T GT,以及判别器 D S D_S DS D T D_T DT。对于生成器 G T G_T GT及其判别器 D T D_T DT,对抗性翻译损失如下: L a d v T ( G T , D T , X S , X T ) = E x T ∼ p T [ log ⁡ D T ( x T ) ] + E x ˉ T ∼ p { x ˉ T } [ log ⁡ ( 1 − D T ( x ˉ T ) ) ] \begin{aligned} \mathscr{L}_{a d v}^{T}\left(G_{T}, D_{T}, X_{S}, X_{T}\right) &=\mathbb{E}_{x_{T} \sim p_{T}}\left[\log D_{T}\left(x_{T}\right)\right] \\ &+\mathbb{E}_{\bar{x}_{T} \sim p_{\left\{\bar{x}_{T}\right\}}}\left[\log \left(1-D_{T}\left(\bar{x}_{T}\right)\right)\right] \end{aligned} LadvT(GT,DT,XS,XT)=ExTpT[logDT(xT)]+ExˉTp{ xˉT}[log(1DT(xˉT))] 其中 x ˉ T = G T ( x S , z 1 ) \bar{x}_{T}=G_{T}\left(x_{S}, z_{1}\right) xˉT=GT(xS,z1) z 1 ∼ N ( 0 , 1 ) z_1 \sim \mathcal{N}(0,1) z1N(0,1)。目标为 min ⁡ G T max ⁡ D T L a d v T ( G T , D T , X S , X T ) \min _{G_{T}} \max _{D_{T}} \mathscr{L}_{a d v}^{T}\left(G_{T}, D_{T}, X_{S}, X_{T}\right) minGTmaxDTLadvT(GT,DT,XS,XT)

判别器 D S D_S DS用于区分域 X S X_S XS的真实图像和由 G S G_S GS生成的翻译图像。生成器 G S G_S GS试图生成的图像 x ^ S \hat{x}_S x^S x ~ S \tilde{x}_S x~S,这些图像看起来与来自域 X S X_S XS的图像相似。因此,损失函数被定义为: L a d v S ( G S , D S , { x ˉ T } , X S ) = E x S ∼ p S [ log ⁡ D S ( x S ) ] + E x ~ S ∼ p { x ~ S } [ log ⁡ ( 1 − D S ( x ~ S ) ) ] ) / 2 \begin{aligned} &\mathscr{L}_{a d v}^{S}\left(G_{S}, D_{S},\left\{\bar{x}_{T}\right\}, X_{S}\right)=\mathbb{E}_{x_{S} \sim p_{S}}\left[\log D_{S}\left(x_{S}\right)\right]\\ &\left.+\mathbb{E}_{\tilde{x}_{S} \sim p_{\left\{\tilde{x}_{S}\right\}}}\left[\log \left(1-D_{S}\left(\tilde{x}_{S}\right)\right)\right]\right) / 2 \end{aligned} LadvS(GS,DS,{ xˉT},XS)=ExSpS[logDS(xS)]+Ex~Sp{ x~S}[log(1DS(x~S))])/2 其中 x ^ S = G S ( x ˉ T , z 2 ) \hat{x}_{S}=G_{S}\left(\bar{x}_{T}, z_{2}\right) x^S=GS(xˉT,z2) x ~ S = G S ( x S , z 3 ) \tilde{x}_{S}=G_{S}\left(x_{S}, z_{3}\right) x~S=GS(xS,z3) z 2 , z 3 ∼ N ( 0 , 1 ) z_{2}, z_{3} \sim \mathcal{N}(0,1) z2,z3N(0,1),目标为 min ⁡ G S max ⁡ D S L a d v S ( G S , D S , { x ˉ T } , X S ) \min _{G_{S}} \max _{D_{S}} \mathscr{L}_{a d v}^{S}\left(G_{S}, D_{S},\left\{\bar{x}_{T}\right\}, X_{S}\right) minGSmaxDSLadvS(GS,DS,{ xˉT},XS)。最终,对抗翻译损失可以定义为: L a d v = L a d v T ( G T , D T , X S , X T ) + L a d v S ( G S , D S , { x ˉ T } , X S ) \mathscr{L}_{a d v}=\mathscr{L}_{a d v}^{T}\left(G_{T}, D_{T}, X_{S}, X_{T}\right)+\mathscr{L}_{a d v}^{S}\left(G_{S}, D_{S},\left\{\bar{x}_{T}\right\}, X_{S}\right) Ladv=LadvT(GT,DT,XS,XT)+LadvS(GS,DS,{ xˉT},XS)


Adversarial-Consistency Loss

上述的 L a d v \mathscr{L}_{adv} Ladv损失可以促使翻译后的图像 x ˉ T \bar{x}_{T} xˉT在正确的域 X T X_T XT。然而,这种损失不能促使翻译的图像 x ˉ T \bar{x}_{T} xˉT与源图像 x S x_S xS相似。例如,当把男性翻译成女性时,女性的面部特征可能与男性的面部特征没有关系。为了在翻译后的图像中保留源图像的重要特征,我们提出了对抗性一致性损失,这是由一个一致性判别器 D ^ \hat{D} D^实现的。如图3所示,一致性判别器促使生成器最小化图像 x ~ S \tilde{x}_{S} x~S x ^ S \hat{x}_{S} x^S之间的距离。 D ^ \hat{D} D^的"真"和"假"图像可以互换而不影响性能。然而,让 D ^ \hat{D} D^只区分 x ^ S \hat{x}_{S} x^S x ~ S \tilde{x}_{S} x~S并不能满足我们的需要,因为翻译的图像 x ^ S \hat{x}_{S} x^S x ~ S \tilde{x}_{S} x~S只需要属于域 X S X_S XS;它们并不要求接近特定的源图像。因此,一致性判别器 D ^ \hat{D} D^使用 x S x_S xS作为参考,并采用成对的图像作为输入,让生成器最小化 ( x S , x ^ S ) (x_S,\hat{x}_{S}) (xS,x^S) ( x S , x ~ S ) (x_S,\tilde{x}_{S}) (xS,x~S)的联合分布之间的距离。这样,一致性判别器 D ^ \hat{D} D^鼓励翻译回来的图像, x ^ S \hat{x}_{S} x^S,包含源图像 x S x_S xS的特征。由于 x ^ S \hat{x}_{S} x^S是由 x ˉ T \bar{x}_{T} xˉT生成的,这可以鼓励翻译的图像 x ˉ T \bar{x}_{T} xˉT保留源图像 x S x_S xS的特征。

输入的噪声向量 z z z可以实现多模态输出,这对我们的方法来说是至关重要的。如果没有多模态输出,给定一个特定的输入图像 x S x_S xS x ~ S \tilde{x}_{S} x~S只能有一种情况。因此,将 ( x S , x ^ S ) (x_S, \hat{x}_{S}) (xS,x^S) ( x S , x ~ S ) (x_S, \tilde{x}_{S}) (xS,x~S)映射在一起,几乎等同于要求 x ^ S \hat{x}_{S} x^S x S x_S xS完全相同。这种强烈的约束类似于循环一致的损失,其缺点之前已经讨论过了。对于多模态输出,给定一个特定的图像 x S x_S xS x ~ S \tilde{x}_{S} x~S可以有许多可能的情况。因此,一致性判别器 D ^ \hat{D} D^可以专注于特征层面,而不是像素层面。也就是说, x ^ S \hat{x}_{S} x^S不一定要与特定的图像 x S x_S xS相同。例如,当把戴眼镜的脸翻译成不戴眼镜的脸时, x ~ S \tilde{x}_{S} x~S x ^ S \hat{x}_{S} x^S可以是戴不同眼镜的脸,例如图2中 x S x_S xS x ~ S \tilde{x}_{S} x~S x ^ S \hat{x}_{S} x^S的眼镜颜色和框架不同。因此, x ˉ T \bar{x}_{T} xˉT不需要冒着增加 L a d v T \mathcal{L}^{T}_{adv} LadvT的风险来保留任何眼镜的痕迹,此时 L a c l \mathcal{L}_{acl} Lacl仍然可以很小。

最终的对抗一致性损失如下所示: L a c l = E ( x S , x ^ S ) ∼ p ( X S , { x ^ S } ) [ log ⁡ D ^ ( x S , x ^ S ) ] + E ( x S , x ~ S ) ∼ p ( X S , { x ~ S } ) [ log ⁡ ( 1 − D ^ ( x S , x ~ S ) ) ] \mathscr{L}_{a c l}=\mathbb{E}_{\left(x_{S}, \hat{x}_{S}\right) \sim p_{\left(X_{S},\left\{\hat{x}_{S}\right\}\right)}}\left[\log \hat{D}\left(x_{S}, \hat{x}_{S}\right)\right] +\mathbb{E}_{\left(x_{S}, \tilde{x}_{S}\right) \sim p_{\left(X_{S},\left\{\tilde{x}_{S}\right\}\right)}}\left[\log \left(1-\hat{D}\left(x_{S}, \tilde{x}_{S}\right)\right)\right] Lacl=E(xS,x^S)p(XS,{ x^S})[logD^(xS,x^S)]+E(xS,x~S)p(XS,{ x~S})[log(1D^(xS,x~S))] 其中 x S ∈ X S x_{S} \in X_{S} xSXS x ˉ T = G T ( x S , z 1 ) 1 \bar{x}_{T}=G_{T}\left(x_{S}, z_{1}\right)_{1} xˉT=GT(xS,z1)1 x ^ S = G S ( x ˉ T , z 2 ) \hat{x}_{S}=G_{S}\left(\bar{x}_{T}, z_{2}\right) x^S=GS(xˉT,z2) x ~ S = G S ( x S , z 3 ) \tilde{x}_{S}=G_{S}\left(x_{S}, z_{3}\right) x~S=GS(xS,z3)


Other Losses

Identity Loss 当目标域的图像被输入生成器时,我们进一步应用一致损失来鼓励生成器成为近似的一致映射。一致损失可以进一步鼓励特征保留,提高翻译图像的质量,稳定训练过程,避免模式崩溃,因为生成器被要求能够合成数据集中的所有图像。此外,源图像 x S x_S xS和重建图像 x S i d t x_S^{idt} xSidt之间的一致损失可以保证 x S x_S xS x ~ S \tilde{x}_{S} x~S的分布之内,如图3所示。

我们构建了两个噪声编码器网络, E S z : X S → Z E_{S}^{z}: X_{S} \rightarrow Z ESz:XSZ E T z : X T → Z E_{T}^{z}: X_{T} \rightarrow Z ETz:XTZ,分别用于 G S G_S GS G T G_T GT,它们将图像与噪声向量进行映射。一致性损失可以被形式化为: L i d t = E x S ∼ p S [ ∥ x S − x S i d t ∥ 1 ] + E x T ∼ p T [ ∥ x T − x T i d t ∥ ∣ 1 ] \mathscr{L}_{i d t}=\mathbb{E}_{x_{S} \sim p_{S}}\left[\left\|x_{S}-x_{S}^{i d t}\right\|_{1}\right]+\mathbb{E}_{x_{T} \sim p_{T}}\left[\left.\left\|x_{T}-x_{T}^{i d t}\right\|\right|_{1}\right] Lidt=ExSpS[ xSxSidt 1]+ExTpT[ xTxTidt 1] 其中 x S i d t = G S ( x S , E S z ( x S ) ) x_{S}^{i d t}=G_{S}\left(x_{S}, E_{S}^{z}\left(x_{S}\right)\right) xSidt=GS(xS,ESz(xS)) x T i d t = G T ( x T , E T z ( x T ) ) x_{T}^{i d t}=G_{T}\left(x_{T}, E_{T}^{z}\left(x_{T}\right)\right) xTidt=GT(xT,ETz(xT))

Bounded Focus Mask 有些应用要求生成器只修改源图像的某些区域,其余部分保持不变。我们让生成器产生四个通道,其中前三个是RGB图像的通道,第四个被称为bounded focus mask,其值在0和1之间。 翻译后的图像 x T x_T xT可以通过公式得到: x T = x ′ T ⊙ x m + x S ⊙ ( 1 − x m ) x_{T}=x \prime_{T} \odot x_{m}+x_{S} \odot\left(1-x_{m}\right) xT=xTxm+xS(1xm),其中, ⊙ \odot 是元素相乘, x S x_{S} xS是源图像, x ′ T x \prime_{T} xT是生成器的前三个输出通道, x m x_m xm是bounded focus mask。我们为生成器添加了以下约束,这是我们的贡献之一: L mask  = δ [ ( max ⁡ { ∑ k x m [ k ] − δ max ⁡ × W , 0 } ) 2 + ( max ⁡ { δ min ⁡ × W − ∑ k x m [ k ] , 0 } ) 2 ] + ∑ k 1 ∣ x m [ k ] − 0.5 ∣ + ϵ \begin{aligned} \mathscr{L}_{\text {mask }} &=\delta\left[\left(\max \left\{\sum_{k} x_{m}[k]-\delta_{\max } \times W, 0\right\}\right)^{2}\right.\\ &\left.+\left(\max \left\{\delta_{\min } \times W-\sum_{k} x_{m}[k], 0\right\}\right)^{2}\right] \\ &+\sum_{k} \frac{1}{\left|x_{m}[k]-0.5\right|+\epsilon} \end{aligned} Lmask =δ (max{ kxm[k]δmax×W,0})2+(max{ δmin×Wkxm[k],0})2 +kxm[k]0.5+ϵ1 其中 δ \delta δ δ m a x \delta_{max} δmax δ m i n \delta_{min} δmin是控制mask大小的超参数, x m [ k ] x_m[k] xm[k]是mask的第k个像素,W是图像的像素数。 ϵ \epsilon ϵ是一个边缘值,以避免除以零。这个损失的第一项将mask的大小限制在一个合适的范围内。它鼓励生成器做出足够的改变并保持背景,其中 δ m a x \delta_{max} δmax δ m i n \delta_{min} δmin是mask中前景的最大和最小比例。最小比例对我们的方法至关重要,因为它可以避免 x ~ S \tilde{x}_{S} x~S在不同的噪声向量下与 x S x_S xS相同。该损失的最后一项鼓励mask值为0或1,将图像分割成前景和背景。最后,这个损失被图像的大小标准化。


Implementation Details

Full Objective 我们的总损失如下: L t o t a l = L a d v + λ a c l L a c l + λ i d t L i d t + λ mask  L mask  \mathscr{L}_{t o t a l}=\mathscr{L}_{a d v}+\lambda_{a c l} \mathscr{L}_{a c l}+\lambda_{i d t} \mathscr{L}_{i d t}+\lambda_{\text {mask }} \mathscr{L}_{\text {mask }} Ltotal=Ladv+λaclLacl+λidtLidt+λmask Lmask  其中 λ a c l \lambda_{acl} λacl λ i d t \lambda_{idt} λidt λ m a s k \lambda_{mask} λmask都是控制不同损失权重的尺度值。在第4.2节中,我们将提出的方法与完整目标函数的消融进行了比较,以表明提出的方法的重要性。

Network Architecture 对于生成器和判别器,我们遵循[10]中的设计。具体来说,一个生成器由两个编码器和一个解码器组成。除了图像编码器和解码器共同构成一个自动编码器架构外,我们的模型还采用了噪声编码器,其架构与[10]中的风格编码器相似。同时,我们的判别器采用了多尺度技术来提高合成图像的视觉质量。

Training Details 我们对 L a d v \mathscr{L}_{adv} Ladv(公式3)和 L a c l \mathscr{L}_{acl} Lacl(公式4)采用最小平方损失(least-square loss)。与[8]相比,这种损失带来更稳定的训练过程和更好的结果。在所有的实验中,我们使用Adam优化器, β 1 = 0.5 \beta_1=0.5 β1=0.5 β 2 = 0.999 \beta_2=0.999 β2=0.999。所有的模型都以0.0001的学习率进行训练,每100K次迭代后学习率下降0.5倍。我们对所有模型进行了350K次迭代训练。判别器更新两次,而生成器更新一次。在训练中,我们设定 δ = 0.001 \delta=0.001 δ=0.001 ϵ = 0.01 \epsilon=0.01 ϵ=0.01 λ i d t = 1 \lambda_{idt}=1 λidt=1 λ a c l \lambda_{acl} λacl λ m a s k \lambda_{mask} λmask δ m i n \delta_{min} δmin δ m a x \delta_{max} δmax的值根据不同的应用而设定:对于眼镜移除任务, λ a c l = 0.2 \lambda_{acl}=0.2 λacl=0.2 λ m a s k = 0.025 \lambda_{mask}=0.025 λmask=0.025 δ m i n = 0.05 \delta_{min}=0.05 δmin=0.05 δ m a x = 0.1 \delta_{max}=0.1 δmax=0.1;在男女转换中 λ a c l = 0.2 \lambda_{acl}=0.2 λacl=0.2 λ m a s k = 0.025 \lambda_{mask}=0.025 λmask=0.025 δ m i n = 0.3 \delta_{min}=0.3 δmin=0.3 δ m a x = 0.5 \delta_{max}=0.5 δmax=0.5;在自拍到动漫的翻译中 λ a c l = 0.5 \lambda_{acl}=0.5 λacl=0.5 λ m a s k = δ m i n = δ m a x = 0 \lambda_{mask}=\delta_{min}=\delta_{max}=0 λmask=δmin=δmax=0。为了公平比较,我们遵循CouncilGAN中描述的相同数据增强方法。

猜你喜欢

转载自blog.csdn.net/qq_40714949/article/details/126138187