樱花落瓣 2017-07-21
选自arXiv
机器之心编译
参与:Smith
汉字字体的样板设计是一个很耗时的任务,手动书写大量的汉字字体以作为设计基准耗费了大量的时间。尽管字体设计者可在相关软件的帮助下进行字体设计,但是他们仍面临着大量工作,所以我们需要研究出更高效的方法。
论文链接:https://arxiv.org/abs/1707.04904
本篇论文中,我们提出了一种以深度学习为基础,用于汉字字体变换(Chinese typography transformation)的新型网络结构。此结构包含两个子网络:(1)一个全卷积网络(fully convolutional network —— FCN),它可以在保留结构信息的条件下,将特定的字体样式迁移到另一个字体当中;(2)一个对抗网络(adversarial network),旨在生成在某些细节上更为真实的笔划,我们的模型把每一个汉字都当做一张不可分离的图像,所以预处理或前置处理就可以被省去了。除此之外,我们的模型采用了端到端的训练,没有像其它深度模型一样使用预训练。相关实验说明了我们的模型可以根据印刷体或手写体的任何源字体合成逼真的目标字体 。
本篇论文的主要贡献如下:
首先,我们提出了一个端到端的模型,可以直接把一个标准印刷字体的字体样式迁移到任何其它的印刷或手写体当中。此模型包含两个深度神经网络:迁移网络(transfer network)和判别器(discriminator)。迁移网络负责从目标字体(target characters )中采集其书法风格的相关信息,随后对期望字型(desired fonts)进行重构。此迁移网络可被看做是一个生成器(generator),加上引入的判别器,我们对这两个网络进行联合训练(就像训练 GAN 一样)。
我们的模型在印刷体和手写体这两方面都可以得到极好的变换结果,并且我们也针对要得到令人满意的性能表现,至少要使用多少训练样本这一问题进行了探究,这可以使字体的训练周期变短。在未来,我们将可以模仿任何人的手写体。
此外,我们的团队还创建了包含 1872 种书法字体的大型基准。
图 1:字体迁移模型框架:(a)判别器;(b)迁移网络
表 1:迁移网络结构
迁移网络
我们在迁移网络中采用了一个全卷积网络,用来完美地解决此类分离问题。训练两个网络以分别提取内容、风格的相关信息,此全卷积网络能正确地采集独特的书法风格,同时可以尽可能完整地保留结构信息(structure information)。迁移网络的第一部分与编码器类似:卷积层后面是批归一化(batch-normalization )和指数型线性单元(exponential linear units)。
标准化的源文字在前两个卷积输出被转换成为重要的文本骨架,随后被进一步提取,直到成为一个 4×4×512 的空间,而不是一个嵌入式全连层(embedded fully connection layer)。实验证明,由于和二维特征矢量相比,一维特征矢量的表征有局限性,所以全连式嵌入(fully connected embedding)会破坏字体结构,导致笔划间的相对位置不准确。迁移网络的后半部分由一系列升采样(up-sample,也叫做反卷积 —— transpose convolution)层和卷积层组成。
我们又借鉴了 U-Net 中的跳跃式连接(skip connection)策略,它在复原文字的细节方面很有成效,尤其适用于一些结构紧凑的复杂文字。考虑到从中间的隐蔽空间内复原目标域(target domain)内的文字更加困难,所以译码器要比解码器深度更深。
判别网络
在我们的先期工作中,迁移网络在某种程度上完成了变换的目的,但是文字的背景上往往附有一些噪点,而且一些笔划也有些扭曲。所以我们引入了判别器,从迁移网络中接收文字以作为输入。判别器会设法区分哪一个输入来自目标域,哪一个输入来自迁移网络,与此同时,迁移网络试图对自身进行优化,从而生成更逼真的样本来“欺骗”判别器。这里的对抗损失(adversarial loss)像 GAN一样被定义,并且在以下两方面很有效:(1)从文字中去除模糊的噪点;(2)对生成的一些糟糕笔划的方向进行精调。
实验部分
图 2:书法字体的迁移结果。右上:源字体;左下:生成的字体;右下:真实情况。
图 3:手写字体的迁移结果。右上:源文字;左下:生成的字体;右下:真实情况。
图 4:不同结构下的实验结果。(a)最左边:我们的生成结果;中间:没有跳跃式连接(skip connections)的结果;最右边:没有对抗损失(adversarial loss)的结果。(b)不同情况下所生成文字的细节放大效果图。顶端:我们的生成结果;中间:没有跳跃式连接的结果;底部:没有对抗损失的结果。
图 5:(a)不同层的可视化结果。左边:特征映射为 (64^2)×1 的 Conv1 层;右边:特征映射为 (64^2)×1 的 Deconv4 层。(b)不同结构配置下的损失曲线。
图 6:(a)不同比例训练集的测试损失曲线对比。(b)不同比例训练集的结果。左:在 20%(1000)比例的训练集中进行训练的结果,中间:在 40%(2000)比例的训练集中进行训练的结果,右:在 60%(3000)比例的训练集中进行训练的结果。
本文来源于“机器之心”,“机器之心”是人工智能专业性媒体,适合开发者、学术研究者及从业者阅读参考。