Pixel-Level Domain Transfer1,以下简称为Pixel-Level,是一种image-to-image 的conditional GAN。Pixel-Level试图解决的问题是:给定一个服装模特,输出该服装。
原理
使用GAN
在给定一张源图时,生成的答案应该是不唯一的,如上图所示。在损失函数中,若直接计算生成出的目标图片图片 I ^ T \hat{I}_{T} I^T和样本中给出的目标图片 I T {I}_{T} IT的均方差,例如 ∥ I ^ T − I T ∥ 2 2 \left\|\hat{I}_{T}-I_{T}\right\|_{2}^{2} ∥∥∥I^T−IT∥∥∥22,作为损失的话,会丢失其他的可能性。并且均方差假定了所有像素遵循高斯分布,这会导致生成的图像模糊不清。
为了解决这个问题,使用鉴别器来作为损失函数的一部分,生成清晰且多样的图像。
使用两个鉴别器
对于一个生成器的生成的结果,文中将其分为 I ^ T + , I ^ T ⊕ , I ^ T − \hat{I}_{T}^{+}, \hat{I}_{T}^{\oplus}, \hat{I}_{T}^{-} I^T+,I^T⊕,I^T−三类。其中 I ^ T + \hat{I}_{T}^{+} I^T+和源图相关性强,但不是一张自然图片。 I ^ T − \hat{I}_{T}^{-} I^T−是一张自然图片,但和源图相关性差。 I ^ T ⊕ \hat{I}_{T}^{\oplus} I^T⊕则是相关性强并且逼真的图片。
文中认为,为了在训练过程中鉴别出所有不良的两种图
I
^
T
+
,
I
^
T
−
\hat{I}_{T}^{+}, \hat{I}_{T}^{-}
I^T+,I^T−需要两个不同的鉴别器实现。其中,
D
A
D_A
DA负责鉴别关联性,
D
R
D_R
DR负责鉴别真实性。生成器
C
C
C的损失函数为
L
C
(
I
S
,
I
)
=
−
1
2
L
R
D
(
I
)
−
1
2
L
A
D
(
I
S
,
I
)
\mathcal{L}^{C}\left(I_{S}, I\right)=-\frac{1}{2} \mathcal{L}_{R}^{D}(I)-\frac{1}{2} \mathcal{L}_{A}^{D}\left(I_{S}, I\right)
LC(IS,I)=−21LRD(I)−21LAD(IS,I)
其中
I
S
I_S
IS为源图,
I
I
I为生成图。
模型
在Pixel-Level中包含了一个结构类似为auto-encoder的生成器
C
C
C、一个鉴别图像是否为真图的二分鉴别器
D
R
D_R
DR、一个鉴别生成图像是否和原图像相关的二分鉴别器
D
A
D_A
DA。
生成器
可以注意到, C C C的输入是不含噪声的。 C C C分为encoder和decoder两个部分,分别有数个卷积层组成。其中一端输入 64 × 64 × 3 64\times64\times3 64×64×3的源图,一端生成 64 × 64 × 3 64\times64\times3 64×64×3的目标图。
鉴别器
D R D_R DR接受 I T I_T IT的所有图片进行训练,最后通过sigmoid输出。
D A D_A DA接受 ( I S , I T ) (I_S,I_T) (IS,IT)一组数据,并将其组合为 64 × 64 × 6 64\times64\times6 64×64×6的标量作为输入,最优通过sigmoid输出。
训练过程
作者将样本分为 I S I_S IS和 I T I_T IT两个部分, I T I_T IT又分为 I T i , I T i − , I ^ T i I_{T}^{i}, I_{T}^{i-}, \hat{I}_{T}^{i} ITi,ITi−,I^Ti三个部分。
在训练过程中,对于一组mini-batch,首先训练 D R D_R DR,再训练 D A D_A DA,最后训练 C C C。在驯良两个鉴别器的过程中保证他们接收 I T i , I T i − , I ^ T i I_{T}^{i}, I_{T}^{i-}, \hat{I}_{T}^{i} ITi,ITi−,I^Ti三者的概率相同。
-
D. Yoo, N. Kim, S. Park, A. Paek, and I. Kweon. Pixel-level domain transfer. In European Conference on Computer Vision (ECCV), pages 517–532. Springer, 2016. ↩︎