文字是二维设计的重要视觉元素。艺术家耗费大量时间来设计字形,使得这些字形看上去与其他元素的形状和纹理等相匹配。这一过程本身就是劳动密集型的工作,艺术家通常只设计标题或注释所需的字形子集,这样一来,设计一旦完成,文本就很难再次被修改,其他人也无法直接将已有的字体实例用于自己的项目中。
关于字形合成的早期研究主要集中在轮廓的几何建模上,它只限于特定的字形拓扑(如不能应用于装饰性或手写体字形),不能用于图像输入。不过,随着深度神经网络的兴起,研究人员开始研究从图形中进行字形建模的方法。另一方面,综合与部分观察相一致的数据是计算视觉和图形学中的一个有趣问题,例如多视角图像生成、图像完成缺失区域和生成三维形状。字体数据就是一个提供了样式和内容的干净分解的示例。
在许多生成应用中,条件生成式对抗网络(conditional generative adversarial networks,cGAN )最近的进展取得了很大的成果。然而,它们只能在相当专业的领域内才能做到最好,而不能做到一般的或多领域的风格迁移。类似的,如果直接用于生成字形时,cGAN 模型就会产生显著的图像伪影。比如,给定如下图所示的五个字母:
训练 cGAN 学习上图 5 个字母的字形风格,然后生成相同风格的 26 个字母,结果并不成功。
我们没有为所有可能的字体装饰训练单一网络,而是设计了多内容 GAN(Multi-Content GAN)架构,为每个观察到的字符集重新训练一个定制的网络,只需观察少量的字形即可。这个模型的思路是用通道内的文本(A~Z)和神经网络层中的风格,将给定的字形风格迁移到看不到的内容。
多内容 GAN 模型由多个 cGAN 堆叠组成,其中一个 cGAN 用来预测粗略的字形形状,一个 cGAN 用来预测字形最终的颜色和纹理。第一个网络称为 GlyphNet,预测字形蒙版;第二个网络称为 OrnaNet,用来对第一个网络生成的字形进行着色和装饰。每个子网络都遵循 cGAN 的体系架构,其中部分架构会因实现预测字形或装饰等目的而微调。
下图是 GlyphNet 的示意图,揭示了如何从一组训练数据集中,学习字体的风格。GlyphNet 的输入和输出是每个字母分配通道的字形堆栈。在每轮训练迭代中,x1 从 y1 中随机抽取一组字形子集,其余的输入通道清零。
通过这种新颖的字形堆栈设计,神经网络可通过通道信息获得不同字形之间的相互关系,从而实现自动风格迁移。如下图所示,揭示了模型如何从 1500 个字形样本中学到相关性,并经结构相似性(SSIM)标准进行量化。一次只需观察一个字母,就可找到 25 个分布。这些图显示了当字母β被观察到时(蓝色)与其他字母而不是β被给出(红色)时生成字母α的分布α|β。图中显示了两个信息最丰富的给定字母的分布和两个最不明显的信息,分别用于生成 26 个字母。例如,从图中的第五行可知,字母 F 和 B 在生成字母 E 时最有建设性,与其他字母相比较,而 I 和 W 是包含信息量最少的字母。另外,O 和 C 是用于构造 G 以及用于生成 P 的 R 和 B 的最具建设性意义的字母。
因此,就算只观察到少数几个字母的任何想要的字体,经过预训练的 GlyphNet 会根据这些字母的风格生成全部 26 个 A~Z 的字形。但是,我们应该如何实现风格迁移呢?第二网络 OrnaNet 采用这些生成的字形,Multi-Content GAN 对这些数据经过重复的转换,如下图中,用 T 表示灰度信道重复的步骤,之后 OrnaNet 再用 cGAN 生成满足预期的颜色和装饰。OrnaNet 的输入和输出是批量的 RGB 图像,而不是堆栈,其中每个字母的 RGB 通道,作为图像被反复填充进 GlyphNet 生成的相应灰度字形中。OrnaNet 中也被填进多个正则项(regularizer),用于弥补生成字母的掩码与相应字形的偏差。
下面是我们演示使用单个词中给出的字体样式的示例句子。
另外,这里是 OrnaNet 预测的逐步过程:
参考文献
[1] Phillip Isola, Jun-Yan Zhu, Tinghui Zhou, and Alexei A. Efros. "Image-to-Image Translation with Conditional Adversarial Networks." CVPR 2017.
[2] Samaneh Azadi, Matthew Fisher, Vladimir Kim, Zhaowen Wang, Eli Shechtman, and Trevor Darrell. "Multi-Content GAN for Few-Shot Font Style Transfer." CVPR 2018.
原文链接:
http://bair.berkeley.edu/blog/2018/03/13/mcgan/
如果你喜欢这篇文章,记得给我们留言和点赞,给编辑小哥哥小姐姐们鼓励一下吧!