最近一直在看GAN的论文,学校事情很多就不一一做笔记了。
今天看到了一个很有趣的字体生成GAN,简单说一说,但很遗憾GlyphGAN只用来生成英文字母。
GAN字体生成也有很过相关研究,包括最早的基于实例的方法,神经字体风格转换(Neural font style transfer),贝叶斯程序学习(Bayesian program learning),和最近大火的GAN(对抗生成网络)包括zi2zi,AC-GAN,domain transfer network,U-NET 生成器的变体和与LSTM结合的GAN(感兴趣的小伙伴都可以在论文related work中找到)。
GlyphGan(Style-Consistent Font Generation Based on Generative Adversarial Networks)利用DC-GAN为原型,不懂DC-GAN的小伙伴可以自行百度一下。GlyphGAN网络结构图如下所示:
下面来解释一下网络图(图中其实已经很明了,如果你懂DC-GAN的话):
首先这里的z由两部分组成:100维的正态分布随机数(噪声向量)Zs和解码后的字体one-hot编码Zc。
Zc包含字符ID(char-ID)和与之对应的字符类(char-classes)。Zc包含所有用于学习的字符,这里是26个。
除此之外,最终Generator和Discriminator做游戏时用到的是WGAN-GP的Wasserstein Distance(争取出一篇文章简单说一下WGAN)。
损失函数是
实验结果通过三方面评估:
Legibility: 易读性,通过CNN模型识别字幕,验证识别准确率。
Difersity: 多样性,与训练数据对比多样性。
Style consistency: 样式一致性,目测观察样式一致性,然后评估训练数据短缺的影响。
具体G和D的网络参数就不在这里赘述了,详情可以参考论文第14页,都是很基础的GAN网络参数。
论文地址:https://arxiv.org/abs/1905.12502
感谢阅读,欢迎纠错讨论!
最后带大家感受一下GlyphGAN生成的英文字体,效果还是不错的,有机会自己写一份代码跑一跑: