用
mathcal{I}=left{x_{1}, ldots, x_{N}right}表示某类的无标签的图像集合(例如鸟类图像),任务是学习一个条件式生成模型,可以同时将背景、物体姿势、形状和纹理等因子编码到一个解纠缠的潜码空间(每个因子单独受一个潜码控制),并且通过结合这些因子可以组合生成逼真的新图像。
3.2 基本框架FineGAN(2019)下图来自FineGAN论文FineGAN将四个随机采样的潜码(z,b,c,p)作为输入,以三个阶段分层次生成图像:(1)背景阶段,其中仅建模学习如何生成背景,以一个one-hot的潜码b为条件;(2)父阶段,在该阶段中,模型以潜码p和连续的z为条件,生成对象的形状和姿势,并将其融合进背景图像上;(3)子阶段,以one-hot的潜码c为条件,对上一生成图像进行纹理填充。
在父阶段和子阶段中,FineGAN都会自动生成mask(无需任何监督mask)以捕获适当的形状和纹理细节。为了解开背景因子,该方法依赖于对象边界框(例如,通过对象检测器获取)。为了在没有其它监督的情况下解耦剩余的因子,FineGAN使用信息论方法(参考inforGAN),对潜码之间的关系施加了约束。在训练期间,FineGAN(1)将采样的子阶段潜码约束为不相交的group,以便每个group共享相同的唯一父阶段潜码,(2)将每个生成的图像的采样背景和子潜码强制为相同的。上述约束中,第一个约束是基于这样的事实考虑,即来自同一类别的某些对象实例即使具有不同的纹理,也往往具有相同的形状(例如具有不同纹理细节的不同鸭子共享相同的鸭子形状);第二个约束是背景通常与特定的对象类型相关(例如,鸭子通常以水为背景)。如果不遵循这些约束,那么生成器可能会生成在树上的鸭子(背景潜码b不等于纹理码c)。然后,鉴别器将很容易将这些图像分类为假图像,因为它们很少存在于真实图像中。这极可能导致无法学习到所需的解缠。FineGAN进行了三项损失(对应背景、父阶段和子阶段)的训练,使用对抗训练使生成的图像看起来真实,最大化相应的潜码和图像之间的互信息,以便每种潜码都可以控制各自的因子(背景,姿势,形状,颜色),具体参照FineGAN:mathcal{L}_{text {finegan}}=mathcal{L}_{b}+mathcal{L}_{p}+mathcal{L}_{c} 3.3 调整FineGAN3.3.1 成对的“图像-潜码”分布匹配尽管FineGAN可以分解多个因子并重新生成逼真的图像,但它是无条件式生成的:基于采样的潜码,而不是图像。而要对真实图像中解纠缠的表示进行编码以生成条件混合图像,首先需要提取条件输入图像的z(控制姿势),b(控制背景),p(控制形状)和c(控制纹理)等编码,同时保留FineGAN的分层解缠属性。为此,训练四个编码器,每个编码器从真实图像中预测z,b,p,c。但不能简单地将这些编码(z,b,p,c)输入到生成器中以重建图像,这极可能退化为简单的自编码器,而无法保留FineGAN的解缠属性。关键之处在于,引入类似ALi或者BiGAN那种进行对抗学习(逆映射image->z),这样一来所得到的编码,并得到“图像-潜码”对left(x sim P_{text {data}}, hat{y} sim E(x)right);而生成器得到
left(hat{x} sim G(y), y sim P_{text {code}}right)。注:这里的y是z,b,p,c等的placeholder。
所以判别器的输入是“图像-潜码”对:begin{aligned} mathcal{L}_{b i_{-a d v}} &=min _{G, E} max _{D} mathbb{E}_{x sim P_{text {data}}} mathbb{E}_{hat{y} sim E(x)}[log D(x, hat{y})] \ &+mathbb{E}_{y sim P_{text {code}}} mathbb{E}_{hat{x} sim G(y)}[log (1-D(hat{x}, y))] end{aligned}3.3.2 放宽潜码约束所要解决的重要问题是,确保得到的编码是解开的。FineGAN施加了严格的潜码约束(见上述3.2),比如强加了子码要共享相同的唯一父码,而背景码和子码要始终相同。然而,对于一些真实图像,这些严格的关系可能不成立(例如,飞鸟在真实图像中可具有多个不同的背景);另外,这可能导致鉴别器很容易分辨出【图像-潜码】对是真实的还是生成的(基于码的关系)。而且,由于背景和子码总被采样为相同的(b = c),这也会混淆背景b和纹理c编码器:可能将变得完全相同,而无法区分背景和物体的纹理。为此本文首先训练四个单独的鉴别器,对应每种码类型。这防止了鉴别器看到其他码;其次,在训练编码器时,还提供了fake图像作为输入,它们是用随机采样的潜码生成的,且去除了码约束。在这些图像中,任何前景纹理都可以与任何任意背景和任何任意形状耦合。具体来说,训练编码器E来预测回用于生成相应fake图像的采样码y(b,p,c):mathcal{L}_{text {code.pred}}=C E(E(G(y)), y) C E(cdot)表示cross-entropy loss,对于连续的z,则采取L1损失。上述损失用于训练编码器E而不是生成器G。
3.3.3 精准形状和姿势的“特征模式”到目前为止,MixNMatch的编码器最多可以接收四幅不同的真实图像,并将编码得到b,z,p,c码,分别对背景,物体姿态,形状和纹理进行建模。然后,MixNMatch的生成器可以使用这些码生成新的、逼真的图像;默认情况下,将此设置称为MixNMatch的码模式。尽管生成的图像已高度捕获了这些因子(参见下图,“码模式”),但是某些图像转换应用可能需要精确的像素级形状、姿势对齐。码模式下的MixNMatch无法保留参考图像精确像素级形状和姿势细节。主要原因是,负责捕获形状的p潜空间小,无法为每个实例像素建模。(它被设置得较小是因为必须粗略地匹配数据中3D形状变化。码模式和特征模式之间的比较。第1-3行是真实参考图像,其中分别提取了背景b,纹理c和shape + pose的p&z。第4-5行是MixNMatch的特征模式(可准确保留原始形状信息)和码模式(可在语义级别保留形状信息)生成。如上图所示,引入MixNMatch的特征模式以解决此问题。关键思想不是直接将参考图像编码为低维形状代码,而是直接学习从图像到更高维特征空间的映射,以保留参考图像的空间对齐的形状和姿势(像素级)细节。具体来说的特征模式下,训练一个新的形状和姿势特征提取器S,将真实图像x作为输入并输出特征S(x),以此与父阶段协作更精准的对齐x的形状等信息。4、实验以及部分结果5、讨论最后,作者也谈及一些方法的局限,比如:
生成的背景可能会错过大型结构,因为使用patch鉴别器。特征模式的训练比较敏感、取决于码模式下所训练模型的好坏。对于图像的背景和目标对象纹理相似的场合下,无法生成良好的mask,导致生成一个不合理的目标物体。 ---来自腾讯云社区的---机器学习与生成对抗网络
微信扫一扫打赏
支付宝扫一扫打赏