这是Skfont的TensorFlow实现:骨架驱动的韩国字体综合与有条件的深层对抗网络。
纸
在我们的研究中,我们使用端到端的有条件深层对抗网络研究字体合成的问题,该网络具有少量韩国字符(Hangul)。 Hangul由11,172个字符组成,并通过以多种位置模式编写组成。传统上,字体设计需要重载的人工劳动力,很容易花一年的时间才能完成一套样式。即使在可编程方法的帮助下,它仍然需要很长时间,并且无法避免围绕更改参数的自由的限制。在深处的神经网络领域尝试了许多试验,以在没有任何人为干预的情况下产生角色。我们的研究重点是端到端的深度学习模型,即骨架驱动的字体生成器(SKFONT):当给出114个样本时,系统会自动以相同给定的字体样式生成其余字符。 Skfont涉及三个步骤:首先,它通过观察114个目标字符来生成完整的目标字体字符。然后,它提取从第一步获得的合成字符的骨骼(结构)。这个过程驱动系统在整个一代过程中维持角色的主要结构。最后,它将目标字体的样式转移到这些学到的结构上。我们的研究可以通过使用“骨架驱动的”条件深层对抗网络,解决了长期逾期的短缺,例如模糊,破裂和缺乏精致的形状和样式。与最新方法的定性和定量比较证明了拟议的Skfont方法的优越性。




conda create --name tutorial-TF python=3.6.8
conda activate tutorial-TF or activate tutorial-TF
conda install -c anaconda tensorflow-gpu=1.13.1
conda env update --file tools.yml
我们的模型由三个子模型,即F2F-F2S-S2F。对于每个模型,我们必须准备一个配对的数据集。即一个源用于目标字体配对的数据集,与骨架数据集相关的目标字体以及目标骨架与相应的字体数据集。要在SRC_FONT目录中执行任何韩语字体和TRG_FONT目录中的n个目标字体数。然后运行以下命令进行数据预处理。
生成源字体图像
python ./tools/src-font-image-generator.py
生成目标字体图像
python ./tools/trg-font-image-generator.py
生成目标字体骨骼图像
python ./tools/trg-skeleton-image-generator.py
结合源,目标和目标骨骼
python ./tools/combine_images.py --input_dir src-image-data/images --b_dir trg-image-data/images --c_dir skel-image-data/images --operation combine
将图像转换为tfrecords
python ./tools/images-to-tfrecords.py
python main.py --mode train --output_dir trained_model --max_epochs 25
要学习一种看不见的字体样式,您可以使用以下命令微调已经预先训练的模型。如果要生成已经学习的字体样式,只需跳过以下命令即可。
python main.py --mode train --output_dir finetuned_model --max_epochs 500 --checkpoint trained_model/
像以前一样生成图像,但是这次使用不同的模块使用以下提到的命令来创建测试Tfrecord。
python ./tools/test-images-to-tfrecords.py
python main.py --mode test --output_dir testing_results --checkpoint finetuned_model
该代码灵感来自PIX2PIX TensorFlow项目。
特别感谢以下工程共享其代码和数据集。
如果您喜欢的话,请引用我们的工作。
KO,DH,Hassan,Au,Suk,J。等。 Skfont:带有条件深层对抗网络的骨骼驱动的韩国字体生成器。 IJDAR(2021)。 https://doi.org/10.1007/s10032-021-00374-4
代码和其他帮助模块仅允许个人和学术用法。