在本文中,提出了一种使用未配对的训练数据进行动漫图像合成的通用解决方案。与之前针对特定使用场景(人像或场景)学习预定义卡通风格的作品相比,本文旨在训练一个通用动漫翻译器,它不仅可以同时渲染夸张(精致的大眼睛、简化的鼻子和嘴)的动漫面孔和逼真的卡通场景,而且还可以为用户想要的卡通风格提供灵活的控制。
本文的核心思想是引入门控循环映射,它利用一种新颖的门控映射单元来生成特定类别的 Style Code,并将其嵌入到循环网络中来控制翻译过程。本文定义了四种类别,照片/卡通人像/场景,这样可以学习更精细的细粒度类别翻译(照片人像–>卡通人像),而不是两个域(照片–>卡通)之间的直接映射。
此外,本文的方法可以通过辅助数据集和自适应风格损失,很容易地扩展到卡通视频生成上。实验结果证明了该方法相对于现有技术的优越性,并验证了其在通用卡通图像合成的全新任务中的有效性。
作者认为本文的研究有三大挑战,
没有配对的训练数据,模型需要以无监督的方式进行训练。现有的方法通过循环一致性来充分利用数据,但是较大的几何变化(对应本文中为正常人脸转化为动漫风格的大眼睛、简化的鼻子和嘴)以及纹理的风格变化,导致很难生成高质量的结果。
某种预先定义好的风格(背景or人像的某种特定风格)可以直接通过大型数据集来学习,但是本文只有 Style-mixed 动漫数据集,旨在通过训练好的模型生成任意风格的图像。
由于人像和场景的转换要求不同,通常需要分别训练多个生成器(例如,场景转换,需要从域A到域B以及从域B到域A的双向映射),导致模型结构非常大,从而限制了其实际的使用。
为了解决以上问题,作者简化了循环网络,只需要一个生成器以及本文所提出的门控循环映射编码器。门控映射单元 GMU,利用门控机制通过域 domain(照片或漫画) 和组 group (人像和场景)的特定层(网络层只计算某一个特定域或者特定组),学习该类别的风格表示,进而可以直接注入生成器中提供目标风格引导,使其更容易学习纹理风格,同时,使网络能够迁移相应的风格到目标图像上。
综上,本文就是考虑到两个域之间的语义差异以及人像和场景之间的不同转换需求,引入细粒度的分类翻译机制,每个域的图片进一步分为两组,每组内只学习类别翻译,这样可以避免结构不匹配导致的不合理映射。1
上图(a),就是普通的 CycleGAN 模型,不需要成对的数据,利用循环一致性来学习跨域翻译的能力。但是在人像照片动漫化的任务中,由于大量的几何变化以及纹理风格变化,很难产生高质量并且结构正确的结果。
上图(b),为了简化学习任务,作者引入一个风格引导的循环结构,直接将目标域图像的纹理风格注入源特征中。具体来说,训练的时候,从目标域 X t X_t Xt 中随机获取一个目标样例 x t x_t xt 来提供风格引导信息 z x t z_{x_t} zxt,结合风格损失,使网络生成与 x t x_t xt 类似风格的风格自适应卡通图像。这样可以使得网络更容易进行几何变换,并且能够向用户提供灵活、连续的卡通风格控制。
本文将域定义为照片或卡通风格的各种图像,那么每个域的图像之间存在显著的结构差异。通过大量的观察,作者发现卡通人物图像通常有大眼睛、简化的鼻子嘴巴,这与现实照片有很大的差别,相比之下,卡通背景和现实的差别就比较小了。这就对场景和人像提出了不同的转换要求。
为了解决这一问题,
进行细粒度的数据划分,将每个域的图像分为两组(人像或场景),从而将所有图像分为四类,它们的风格或要求都不同,定义为 X i , j X_{i,j} Xi,j, i , j ∈ 0 , 1 i,j\in{0,1} i,j∈0,1,其中 i,j 分别表示域标签(照片或卡通)和组标签(人像或场景)。
与以往学习图片和漫画域之间翻译的方法相比,本文的方法只学习相同组内的类别翻译(例如,photo portrait ↔ cartoon portrait),从而避免结构不匹配带来的不合理映射。这样,复杂的一般卡通化任务可以简化为具有自定义映射的特殊多域翻译问题。
上图(c),本文设计了一种门控循环映射结构,通过在循环映射网络中嵌入一个门控风格编码器 E g s E_{gs} Egs,避免了使用多个生成器和编码器。该编码器 E g s E_{gs} Egs 由门控映射单元组成,可以为风格图像 x i , j x_{i,j} xi,j 产生特定类别的风格编码 z i , j z_{i,j} zi,j,这样就可以用一个普通的生成器 G 来代替原来的生成器 G A , G B {G_A,G_B} GA,GB,利用目标类别中的 z i , j z_{i,j} zi,j 来控制翻译方向。
同时,本文将门控映射单元集成到判别器 D 中,实现多类别判别。
通过这种方式,本文的方法可以使用较轻的网络结构生成夸张的卡通面孔和逼真的卡通场景。
生成器通过 AdaIN 来注入目标域的信息。给定一张源图 x s x_s xs 和目标域的风格编码 z t z_t zt,通过全连接层得到不同尺度的 AdaIN 风格化参数 μ \mu μ 和 σ \sigma σ,就可以生成一张 x g x_g xg。然后,生成器还要重构源图,即动漫转化为真实照片,与之前的类似,需要目标域的风格编码 z s z_s zs。
门控样式编码器 E g s E_{gs} Egs 是为域 X t X_t Xt 中的参考样式图像 x t x_t xt 生成类别特定的样式代码 z t z_t zt。考虑到不同类别图像的共享和独特风格表示,本文通过在常规风格编码器的最后连接一个门控映射单元(GMU)来构建门控风格编码器。也就是说,利用 E s E_s Es 从参考图像 x t x_t xt 中提取公共特征 F t F_t Ft,GMU 将 F t F_t Ft 映射到特定的类别空间中,得到特定的风格代码 z t z_t zt。
如上图中所示,本文提出的 GMU 由 domain-specific layers(上图中蓝色) 和 group-specific layers(上图中绿色) 组成,均为全连接层,通过门控机制连接。共同特征 F t F_t Ft 首先经过不同分支的 domain-specific 层 φ d i ( i = 0 , 1 ) φ_{d_i}(i=0,1) φdi(i=0,1),然后通过选择门得到特征 F d F_d Fd,
F d = α t ⋅ φ d 0 ( F t ) + ( 1 − α t ) ⋅ φ d 1 ( F t ) F_{d}=\alpha_{t} \cdot \varphi_{d_{0}}\left(F_{t}\right)+\left(1-\alpha_{t}\right) \cdot \varphi_{d_{1}}\left(F_{t}\right) Fd=αt⋅φd0(Ft)+(1−αt)⋅φd1(Ft)
其中, α t ∈ 0 , 1 α_t\in{0,1} αt∈0,1 是控制因子,起开关作用,使所选域的输出特征有效。例如,使用动漫域中的 x t x_t xt,将 α t α_t αt 设置为 1,使 F t F_t Ft 通过特定的层 φ d 0 φ_{d_0} φd0。
同样的,group-specific 层在 F d F_d Fd 的基础上生成样式编码 z t z_t zt ,
z t = β t ⋅ φ g 0 ( F d ) + ( 1 − β t ) ⋅ φ g 1 ( F d ) z_{t}=\beta_{t} \cdot \varphi_{g_{0}}\left(F_{d}\right)+\left(1-\beta_{t}\right) \cdot \varphi_{g_{1}}\left(F_{d}\right) zt=βt⋅φg0(Fd)+(1−βt)⋅φg1(Fd)
α x α_x αx 和 β x β_x βx 的值分别依赖于图像 x 的域标签和组标签。
下图展示了门控风格引导的效果,
风格引导使生成器 G 更容易实现大的几何变化,特别是对卡通人像(相对于场景),
如果没有 domain-specific 层,那么图片和卡通图像视为同一类别,因此使用两个领域的中间纹理风格生成折中结果,
group-specific 层消除了语义不一致的人像和场景带来的相互干扰,通过一个网络。实现了同时生成卡通风格中夸张的人像和逼真的场景。
给定图像 x,希望判别器 D 能区分 x 是期望类别的真实图像还是生成器 G 产生的虚假图像。类似于 E g s E_{gs} Egs,GMU 被加入到常规判别器中,以帮助它学习特定类别的二分类,称为门控判别器 D g D_g Dg。例如在 X s → X t X_s→X_t Xs→Xt 过程中,生成的图像 x g x_g xg (或参考图像 x t x_t xt )作为假(或真)样本被送入 D g D_g Dg。由于 x g x_g xg 和 x t x_t xt 属于同一类,其 GMU 的控制因子为 ( α t , β t ) (α_t, β_t) (αt,βt)。反向过程 X t → X s X_t→X_s Xt→Xs 也是如此。
本文引入了常规的对抗损失 L a d v L_{adv} Ladv,图像重构损失 L r e c L_{rec} Lrec,风格重构损失 L s t y L_{sty} Lsty,还提出了风格多样性损失 L d s L_{ds} Lds,
L total = L a d v + λ r e c L r e c + λ s t y L s t y + λ d s L d s \mathcal{L}_{\text {total }}=\mathcal{L}_{a d v}+\lambda_{r e c} \mathcal{L}_{r e c}+\lambda_{s t y} \mathcal{L}_{s t y}+\lambda_{d s} \mathcal{L}_{d s} Ltotal =Ladv+λrecLrec+λstyLsty+λdsLds
目的是为了使生成器 G 生成与参考图像不一致的细节。给定源图像 x s x_s xs,以及两个来自目标域 X t X_t Xt 的样本 ( x t 1 , x t 2 ) (x_{t_1}, x_{t_2}) (xt1,xt2),得到风格表示 ( z t 1 , z t 2 ) (z_{t_1}, z_{t_2}) (zt1,zt2) ,生成的图像 ( x g 1 , x g 2 ) (x_{g_1}, x_{g_2}) (xg1,xg2) 应该具有不同的外观。定义 L d s L_{ds} Lds 为两者之间的 L1 距离,
L d s = − ∥ G ( x s , f ( z t 1 ) ) − G ( x s , f ( z t 2 ) ) ∥ 1 \mathcal{L}_{d s}=-\left\|G\left(x_{s}, f\left(z_{t_{1}}\right)\right)-G\left(x_{s}, f\left(z_{t_{2}}\right)\right)\right\|_{1} Lds=−∥G(xs,f(zt1))−G(xs,f(zt2))∥1
如下图所示, L d s L_{ds} Lds 使风格编码中包含更多的参考卡通图像的细节,不仅包括抽象的纹理和颜色,还包括不同拟人化程度的头发颜色、眼睛大小和脸型。所有局部风格都是自己学习的,不需要任何引导。
原始的多样性风格损失 L d s L_{ds} Lds 假设了每个参考图像 x t ∈ X t x_t\in X_t xt∈Xt 代表一种卡通风格(非类似的卡通风格),并鼓励网络根据不同的参考风格产生多样性输出。
但是,对于包含了一系列风格相似的卡通人像 c n e w c_{new} cnew 的数据集来说, L d s L_{ds} Lds 可能会导致内容不一致问题。因为当 x t 1 x_{t_1} xt1 和 x t 2 x_{t_2} xt2 拥有相似的动漫风格时, L d s L_{ds} Lds 仍然会迫使生成器 G 产生不同的图像,使得局部内容随着参考发生变化,从而产生与源图像不一致的面部表情,如下图所示,
因此,本文还提出了用自适应风格损失 L a s L_{as} Las 来替代 L d s L_{ds} Lds,如下图所示。
对于类内样本 x t 1 x_{t_1} xt1 和 x t 2 x_{t_2} xt2 作为参考风格图像,鼓励 G ( x s , x t 1 ) G(x_s, x_{t_1}) G(xs,xt1) 和 G ( x s , x t 2 ) G(x_s, x_{t_2}) G(xs,xt2) 产生相同的结果,定义为类内风格不变损失,
对于类间样本 x t 1 x_{t_1} xt1 和 x ~ t 2 \widetilde{x}_{t_{2}} x t2,鼓励生成器产生的结果不同,定义为类间风格变化损失(等于 L d s L_{ds} Lds )。
L a s = { − L d s , ( x t 1 , x t 2 ) ∈ c n e w L d s , others. \mathcal{L}_{a s}=\left\{\begin{array}{ll} -\mathcal{L}_{d s}, & \left(x_{t_{1}}, x_{t_{2}}\right) \in c_{n e w} \\ \mathcal{L}_{d s}, & \text { others. } \end{array}\right. Las={−Lds,Lds,(xt1,xt2)∈cnew others.
这种显示的策略使网络能够从 x t x_t xt 中提取内容不相关的特征(风格),从而实现对面部表情的精确控制。