深度学习|草图转换网络(SketchyGAN 和 style2paints)

学习报告4
目录

    • 学习报告4
      • 从草图中合成逼真的图像 SketchyGAN: Towards Diverse and Realistic Sketch to Image Synthesis (CVPR 2018)
      • 带有增强型残差U-net和辅助分类器的动漫草图的风格迁移 Style Transfer for Anime Sketches with Enhanced Residual U-net and Auxiliary Classifier GAN (ACPR 2017)
      • 总结

从草图中合成逼真的图像 SketchyGAN: Towards Diverse and Realistic Sketch to Image Synthesis (CVPR 2018)
从人类绘制的草图中合成逼真的图像是计算机图形和视觉中的一个难题。现有方法要么需要精确的边缘图,要么需要数据库来检索图像。在这项工作中,作者提出了一种新颖的生成对抗网络(GAN)方法,该方法可以合成来自摩托车,马和沙发等50个类别的逼真的图像。作者演示了一种用于草图的数据增强技术,该技术是全自动的,并且作者证明增强的数据对其任务很有帮助。作者提出了一种新的适用于生成器和鉴别器的构造块,它改进了信息流,并在多尺度上利用了输入图像。与目前最先进的图像翻译方法相比,论文的方法生成的图像更逼真,初始分数也显著提高。
该论文的主要贡献是:
  1. 介绍了SketchyGAN,这是一种用于草图合成图像的深度学习方法。与以前的方法不同,它不在测试时进行图像检索。该方法能够生成来自50个不同类别的逼真的对象。基于草图的图像合成非常具有挑战性,其结果通常不是真实感的,但是与现有的深度生成模型相比,论文证明了质量的显着提高。
  2. 演示了一种草图数据的数据增强技术,可以解决缺少足够的人工注释训练数据的问题。
  3. 制定了具有附加目标函数和新网络构造块的GAN模型。作者表明,所有这些对任务都是至关重要的,而缺少任何这些都会降低结果质量。
基于草图的图像合成使非艺术家可以创建逼真的图像,而无需在图像合成中具有丰富的艺术技能或领域专业知识。在通常很难,因为草图很稀疏,而且新手艺术家都无法绘制能准确反映对象边界的草图。从草图合成一个真正的图像应该尽可能尊重艺术家意图,但可能需要偏离粗略笔触才能保留在自然图像流形上。
在过去的30年中,最流行的基于草图的图像合成技术由Photosketcher(该方法首先基于草图在大型图像集合检索具有相似结构的图片,用户从中选择需要的零件,通过调整各零件合成最终结果)和Sketch2photo (根据草图和文字标签无缝拼接照片生成结构)等图像检索方法驱动。这种方法通常需要精心设计的特征表示,这些特征表示在草图和照片之间是不变的。它们还涉及复杂的后处理程序,例如图形切割合成和梯度域混合,以使合成图像逼真。
基于草图的图像检索可分为粗粒度(coarse-grained)检索与细粒度(fine-grained)检索。存在对基于草图的图像检索众多作品(如基于草图的细粒度图像检索:零件感知属性的作用等),大多数方法使用词袋表示和边缘检测来构建在两个域之间(理想情况下)不变的特征。常见的缺点包括无法执行细粒度的检索以及无法将绘制不良的草图边缘映射到照片边界。为了解决这些问题,有学者训练深度卷积神经网络(CNN)关联草图和照片,将基于草图的图像检索作为在学习的特征嵌入空间中的搜索。他们表明,使用CNN可以大大提高性能,并且能够进行细粒度的实例级检索。
深度卷积神经网络的出现(如ImageNet分类网络,用于图像识别深度残差学习)为图像合成提供了诱人的方法,其中生成对抗网络(GANs)具有很大的潜力。基于草图的图像合成可以公式化为以输入草图为条件的图像转换问题。存在几种方法通过使用GANs从一个域的图像转换为另一个域(如PIX2PIX,CycleGAN)。但是,它们都不是专门为根据草图进行图像合成而设计的。
在本文中,作者提出了SketchyGAN,这是一种基于GAN的端到端训练草图到图像的合成方法,可以从50个类别中生成逼真的对象。输入是显示对象的草图,输出是包含相似姿势的该对象的真实图像。其挑战性在于:
  1. 难以获得配对的照片和草图,因此没有可供学习的庞大数据库。
  2. 目前还没有建立针对多个不同类别的草图到图像合成的神经网络方法,以往的工作是针对单个或极少数类别训练模型(如DiscoGAN:通过生成对抗网络发现跨域关系,Scribbler:使用草图和颜色控制深度图像合成)。
作者通过增强Sketchy数据库来解决第一个挑战,其中包含将近75,000个实际的人体素描和照片,以及较大的配对边缘图数据集和照片。通过从50个类别中收集2,299,144张Flickr图像并从中合成边缘图来获得此扩充数据集。在训练过程中,作者调整边缘地图图像和草图图像对之间的比例,以便网络可以将其知识逐渐从边缘地图图像合成转移到草图图像合成。对于第二个挑战,作者建立了一个基于GAN的模型,该模型以输入草图为条件,并带有几个额外的损耗项,这些损耗项可以改善合成质量。作者还引入了一个新的构建模块,称为掩盖残差单元(MRU),可帮助生成更高质量的图像。该模块需要额外的图像输入,并利用其内部掩码动态确定网络的信息流。通过链接这些块,我们能够输入不同比例的图像金字塔。结果表明,在图像合成任务中,该结构优于原始卷积方法和ResNet块。
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

图1. (a)图片; (b)边缘图; ?草图。照片和草图来自Sketchy Database。与草图相比,边缘贴图包含更多的背景信息。相反,这些草图不能准确反映对象的实际边界,并且与对象在空间上不对齐。


图1可视化了图像边缘和人体素描之间的差异。草图是一组人类绘制的笔画,模仿了对象的近似边界和内部轮廓,并且边缘图是机器生成的像素阵列,精确地对应于光强度边界。从草图生成照片比从边缘生成照片要困难得多。与边缘图不同,草图未与对象边界精确对齐,因此生成模型需要学习空间变换以校正变形的笔触。其次,边缘贴图通常包含有关背景和细节的更多信息,而草图则不包含,这意味着模型本身必须插入更多信息。最后,草图可能包含漫画或标志性特征,例如图1(c)中猫脸上的“老虎”条纹,模型必须学会处理这些条纹。尽管存在这些相当大的差异,但作者表明,边缘地图仍然是对有限的Sketchy数据库的宝贵补充。但是,逐步将模型从基于边缘的图像合成过渡到基于草图的图像合成并非易事。
由于作者使用在ImageNet和MS COCO上训练的现成的卷积神经网络来消除故障图像,因此需要找出Sketchy和这两个数据集之间的重叠类别。最终使用了56个可用类别中的50个类别,因为被排除的6个类别通常包含以人为主要对象以及类对象为对象的训练图像,它们使训练更加困难。
由于需要针对生成模型的丰富训练数据,因此每个类别都需要大量图像。作者通过查询类别名称作为关键字通过Flickr API直接从Flickr收集图像,返回的图像按“相关性”排序。作者使用两种不同的模型用于过滤掉不相关的图像。Inception-ResNet-v2网络在ImageNet上训练的图像用于对图像是否属于可用类别之一进行分类。由于没有适用于COCO的分类模型,作者使用Single Shot MultiBox Detector来检测给定图像是否包含COCO可用类别中的对象。并增加了一个额外的限制:被检测物体的边界框必须覆盖整个图像的5%,因为物体较大的图像不太可能拥挤。过滤后获得了大量可用图像。
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

图2. 边缘图创造流程。中间步骤的图像显示,每个步骤都有助于从边缘检测输出中移除一些伪影,使最终结果更像草图。我们还可以看到,距离图比边缘图要密集得多。


作者使用边缘检测和一些后处理步骤来获得类似草图的边缘图。该流程如图2所示。第一步是使用整体嵌套边缘检测(HED)来检测边缘(例如在PIX2PIX的实验Edges->photos部分中使用的)。对输出进行二值化并细化所有边缘后(经典的细化算法Zhang算法),清除孤立的像素并移除较小的连接组件。接下来,在所有边缘上使用阈值进行腐蚀,从而进一步减少边缘碎片的数量。然后删除剩余的马刺。因为边缘非常稀疏,所以为每个边缘贴图计算一个无符号的欧氏距离图以获得密集表示(参见图2(g)。
由于最终目标是从草图生成图像的网络,因此有必要在边缘图和草图上训练网络。为了简化训练过程,作者采用了一种将输入逐渐从边缘图转移到草图的策略:在训练开始时,训练数据主要是图像和边缘图对。在训练过程中,慢慢增加草图对的比例。让 i max ? i_{\max} imax?是训练迭代的最大数目, i cur i_{\text{cur}} icur?是当前迭代的数量,然后草图和边缘的比例映射在当前迭代由下式给出:
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

其中 λ \lambda λ是可调整的超参数,指示草图部分的增长速度。在实验中使用 λ = 1 \lambda = 1 λ=1。不难看出, P sk P_{\text{sk}} Psk?从0.1缓慢增长到0.9。使用此训练计划,我们无需在边缘地图上进行单独的预训练,因此整个训练过程只有一次。
SketchyGAN完整的网络结构如图3所示。生成器使用编码器-解码器结构。编码器和解码器都使用MRU块构建,其中草图被调整大小并送入路径中的每个MRU块。在图8的最佳结果中,我们还在编码器和解码器块之间应用了跳过连接,因此来自编码器块的输出特征图将与相应的解码器块的输出连接在一起。鉴别器也由MRU块构成,但会在空间尺寸上缩小。在鉴别器的末尾,输出两个logit,一个用于GAN损失,一个用于分类损失。
完整的鉴别器和生成器损失函数为:
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

其中,鉴别器的辅助分类损失最大化预测和地面真实标签之间的对数似然性:
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

发生器在固定鉴别器的情况下最大化相同的对数似然:
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

生成的图像和地面真实图像之间的L1距离:
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

最小化L1距离会阻止多样性,因此有用于鼓励生成结果多样性的生成器的感知损失:
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

用于改善生成图片质量与多样性的一个简单的多样性损失:
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片
图3. SketchyGAN网络的完整结构。当我们使用MRU模块时,发生器和鉴别器都可以接收多标度输入。


DCGAN结构(具有深度卷积生成对抗网络的无监督学习)在GAN中很受欢迎,因为vanilla GAN训练不稳定。由于WassersteinGAN 的引入,GAN中使用了诸如ResNet块之类的更复杂的结构。ResNet通过在多个非线性层中使用快捷方式来保留更多信息并帮助反向传播,从而在前馈网络中获得了巨大的成功。但是,在生成模型中,我们认为网络也可以通过重复接收输入图像来获取信息。使用内部masks,网络可以从输入图像中选择性地提取未能保留在先前层中的新特征。
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

图4. 掩盖残差单元(MRU)的结构。它从上一层获取特征图 x i x_{i} xi?和额外的图像 I I I,并输出新的特征图 y i y_{i} yi?


图4显示了掩盖残差单元(MRU)的结构。一个MRU块采用两个输入:输入特征图 x i x_{i} xi?和图像 I I I,并输出特征图 y i y_{i} yi?。为了方便起见,我们仅讨论输入和输出均具有相同的空间维度案例。令 [ ? , ? ] \left\lbrack \bullet , \bullet \right\rbrack [?,?]表示级联, Conv ( x ) \text{Conv}\left( x \right) Conv(x)表示在 x x x上的卷积, f ( x ) f(x) f(x)是激活函数。我们要首先将输入图像 I I I的信息合并到输入特征图 x i x_{i} xi?。一个幼稚的方法是将它们沿着特征深度维度连接起来并进行卷积:
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

但是,最好是该块可以在接收到新图像时决定要保留多少信息。因此,改为使用以下方法:
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

其中,
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

是输入特征图上的mask。可以在此处堆叠多个卷积层以提高性能。然后,我们想动态地组合新卷积的特征图和原始输入特征图的信息,因此我们使用另一个mask:
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

最终输出有:
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

该公式中的第二项用作残差连接。由于存在内部masks来确定信息流,因此我们将此结构称为掩盖残差单元。我们可以堆叠多个这些单元,并以不同的比例重复输入相同的图像,以便网络可以在其路径上动态地从输入图像中检索信息,从而极大地改善了其性能。
要注意的一件事是,MRU配方类似于门控循环单元(GRU)的配方(使用RNN编解码器学习短语表示以进行统计机器翻译)。但是,我们受到非常不同的动机驱动,并且存在几个关键差异:1)我们的动机是通过重复输入相同的图像来改善信息流。GRU设计用于解决递归神经网络中的梯度消失。2)GRU单元是循环的,因此一部分输出被反馈到同一单元中,而MRU块被级联,因此前一个块的输出被反馈到下一个块。3)GRU分担每一步的权重,因此它只能接收固定长度的输入。没有两个MRU块共享权重,因此我们可以像正常卷积层一样缩小或扩展输出要素图的大小。
通过实验将SketchyGAN与PIX2PIX及其变体进行对比,将MRU与ResNet和DCGAN结构进行对比,作者最终证明了该论文成果的有效性。
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

图5. SketchyGAN草图到照片生成结果。


带有增强型残差U-net和辅助分类器的动漫草图的风格迁移 Style Transfer for Anime Sketches with Enhanced Residual U-net and Auxiliary Classifier GAN (ACPR 2017)
(style2paints)
(参考:AC-GAN博客 艺术风格化算法【译】)
近来,借助革命性的神经风格迁移方法(如一个艺术风格化的神经网络算法,卷积神经网络图像风格迁移,StyleBank:神经图像样式转换的显式表示等等),可信的画作得以自动从内容图像和风格的图像合成。但是,当涉及将绘画的样式应用于动漫草图的任务时,这些方法只会将草图线随机着色为输出(图6),而导致主要任务失败:特定风格迁移。在本文中,我们将残差U-net与辅助分类器生成对抗网络(AC-GAN)集成到灰度草图中以应用样式。整个过程是自动和快速的,其结果在艺术风格和色彩上都值得信赖。
该论文的贡献包括:
  1. 介绍一个前馈网络,可将绘画风格应用于草图。
  2. 介绍一个增强的残留U网络,能够处理信息量不平衡的配对图像。
  3. 介绍一种训练残余U-net的附带两个损耗的有效方法。
  4. 介绍一个从AC-GAN修改而来的鉴别器,它适用于处理不同风格的绘画。
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

图1. 草图图像(左上)和样式图像(左下)的组合结果示例。论文的方法自动将现有绘画的语义特征应用于未完成的草图。论文的网络已学会对头发,眼睛,皮肤和衣服进行分类,并具有根据草图绘制这些特征的能力。


在动画,漫画和游戏社区中,如果有一种方法可以将草图样式应用到半成品上,则可以节省许多多余的工作,例如,使用特定字符的现有图片作为样式图,然后将样式应用于人物素描。艺术风格的神经算法可以生成内容映射和样式映射相结合的惊人而完美的图像,但是它缺乏处理草图的能力。paintschainer以及pix2pix可以将草图直接转换为绘画,并且添加了指定提示后甚至可以达到完美的效果,但是无法利用现有绘画的优势。作者研究了残差U-net和辅助分类器GAN(AC-GAN)作为解决方案,并且该网络可以直接生成草图和样式图像的组合。论文的模型是完全前馈的,可以高速合成绘画。此外,作者发现U-net和条件GAN(cGAN)在缺乏平衡的成对输入和输出信息的情况下,性能相对下降,并且作者建议将残差U-net与两个引导解码器一起使用。另外,作者比较了多种GAN,发现有条件的GAN不适合此任务,最后诉诸AC-GAN。
神经风格转换是一种基于最小化深度卷积层的gram矩阵差异的算法,从一幅图像和另一幅图像的内容合成具有艺术风格的令人钦佩的图像。尽管如此,本文的目标是将样式图像和草图结合起来。不幸的是,神经风格转换无法执行此类任务。实际上,将神经网络样式转移到样式图像上的草图上的结果可能确实很奇怪,与适当的绘画相去甚远。
Pix2Pix和其他一些基于条件GAN的成对image2image转换,完成配对图像之间的转换。在我们的研究中,基于cGAN的网络输出的质量取决于“信息差距程度”。在输入和输出之间。也就是说,如果输入和输出的信息量相似,则结果可以可靠。在Pix2Pix的edge2cat实验中,根据用户输入的边缘,小圆圈始终表示眼睛,被视为耳朵的三角形,并且封闭的图形必须始终充满猫毛。如果我们对cat2edge,bag2edge以及诸如房屋,自行车,树木,狗等之类的数据集进行混洗,输出质量将相应下降。我们的任务是将素描相应地转移到绘画上,这比猫或书包要复杂得多,而cGAN的生成者需要同时学习语义特征和底层特征。实际上,条件判别器很容易导致生成器过分关注草图和绘画之间的关系,因此在某种程度上忽略了绘画的构成,导致不可避免的过度拟合。
由于上述相同的原因,Paintschainer放弃了cGAN并诉诸于无条件的网络,并取得了令人瞩目的成就。它成为画家强大而流行的工具。用户只需输入草图即可获得彩色绘画。他们可以添加尖的颜色提示以获得更好的结果。对于现有的大量成品油画,尽管对根据特定样式对草图进行着色的方法的需求非常高,但是还没有可靠且成熟的解决方案。
作者结合了增强型残差U-net生成器和辅助分类器作为对抗网络。为生成器提供草图和样式图。鉴别器可以判断其输入是真实的还是假的,并同时对相应的样式进行分类。
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

图2. 生成对抗网络的架构。鉴别器是从AC-GAN修改而来的,它不仅能够显示图片是真实的还是伪造的,而且还能显示分类。我们注意到,全局样式提示可以被视为具有2048或4096个类的低级分类结果。
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

图3. 生成器的体系结构。生成器基于具有跳过连接层的U-net。VGG 16或19(用于大规模图像识别的超深度卷积网络)的权重被锁定,以避免在训练时受到干扰。两个“指南解码器”位于中间层的入口和出口。VGG的fc1的4096个输出被视为全局样式提示,并在全局归一化之后添加到中间层。为了获得更好的训练效果,作者在fc1上方添加了一个2048密集层。


作者不是第一个将全局样式提示添加到编码器-解码器或U-net的中层的,在让世界充满颜色:端到端图片自动着色协同算法和具有学习到的深层先验的实时用户指导图像着色中,全局提示从分类网络的高层提取为高维向量,然后添加到着色网络中。对于照片着色,阴影,材质和纹理是输入中的已知变量,并且网络仅需要一点信息即可分析颜色分布。在端到端图片自动着色协同算法和中,他们仅使用 1 × 1 × 256 1 \times 1 \times 256 1×1×256的向量作为全局提示。但是,对于网络而言,将草图绘制成具有各种独特风格的绘画还远远不够。因此,作者集成了大小为 1 × 1 × 4096 1 \times 1 \times 4096 1×1×4096或 1 × 1 × 2048 1 \times 1 \times 2048 1×1×2048的样式提示。但是,作者未能直接训练这种生成器,最终发现了著名结构U-net的一些“本质”。失败的结果如图6。
U-net是 “懒惰的”。也就是说,如果U-net能够在低层中处理问题,那么高层将不会费心学习任何东西。如果我们训练一个U-net做一个非常简单的工作,例如“复制图像”,如图4所示,输入和输出相同时,损耗值将立即降至0。因为编码器的第一层发现可以通过跳过连接将所有功能直接直接传输到解码器的最后一层,以最大程度地减少损失。在这种情况下,无论我们训练U-net多少次,中层都不会出现任何梯度。
【深度学习|草图转换网络(SketchyGAN 和 style2paints)】深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

图4. 在复制图像的实验中,U-net的中间层没有渐变。


对于U-net解码器中的每一层,可以从较高层或从跳过的连接层中获取功能。在训练过程的每次迭代中,这些层选择具有非线性激活的其他层的输出,以最大程度地减少损失。在复制图像的实验中,当用高斯随机数初始化U-net时,编码器中第一层的输出足以提供完整的输入映射,而解码器中倒数第二层的输出看起来非常有用吵。因此,“懒惰” U-net放弃了相对嘈杂的功能。
对于一个新的初始化的U-net网络,如果直接将4096维的特征向量到U-net的中间层,那么这些层会非常noisy。如上面分析,如果中间层网络噪声化严重,那么U-net网络会放弃这些层,结果就是,这些层不能得到任何的梯度,我们将这些层称为lazy layer。
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

图5. 残差U-net的理想架构。附加损耗将应用于所有中层,以便为这些层提供渐变。


受LeNet,GooLeNet的启发,作者使用残差网络。如果在每一层附加额外的损耗,而这些损耗可能是“懒惰的”,那么无论中层输出的噪声如何,U-net都不会放弃该层,并且所有层都将获得稳定的梯度在整个培训过程中。因此,可以向中间层添加非常有用的信息,并在一定程度上增加噪声提示。为了避免中间层的梯度消失,作者在“指南解码器1”和“指南解码器2”中实现了两个附加损耗。带有或不带有两个引导解码器的损耗趋势可以在图5中看到。网络预测的显着差异可以在图3中看到。
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

图6. 样式图和草图与图相同。 神经样式算法无法将草图转移到绘画。尽管当全局提示为1 × 1 × 256时,普通的U-net可以预测有意义的绘画,但是当应用1 × 1 × 4096 的提示时,结果可能会令人失望。我们带有两个指南解码器的残差U-net非常有能力处理这种信息丰富的全局样式提示。


与全局信息相比,条件判别器始终倾向于更加关注草图线和颜色之间的关系。在作者使用Pix2Pix进行的实验中,如果使用条件鉴别器,则生成器将产生强烈的抵抗力,并且线条周围的颜色可能会过度着色。调整参数不足以达到平衡。
此外,如果鉴别器能够判断样式并相应地提供梯度以适合主要任务:样式转换,则可以理解。最后,作者集成了AC-GAN,其鉴别器有4096个输出,当输入为假时,所有输出都将最小化为0,当输入为真时,接近图2中VGG19的fc1的相同值。
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

图7. 包括AC-GAN在内的几种GAN的结构。AC-GAN在D的输出部分添加一个辅助的分类器来提高条件GAN的性能,同时输出真假和类别。


最终损失定义为:
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

为了最大程度地减少损失,采用DCGAN的判别网络,作者通过转移两个损失函数来微调网络:
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

最终的目标函数为:
深度学习|草图转换网络(SketchyGAN 和 style2paints)
文章图片

总结
本周对草图相关的图像转换(包括到现实或动漫风格)相关的一些技术进行了了解,包括其背景、原理、应用,以及相关的网络结构。
粗略了解了深度学习在动漫产业,包括头像生成、视频转漫画等一些有趣的应用。

    推荐阅读