训练/生成gan的代码,即字体设计。
产生的字体,它们具有多种样式,并且可以作为角色可读。
随机步入样式输入空间。您可以观看逐渐转换的字体。


























Auther仅在以下环境中检查运行代码:
如果您想在最新环境中运行,请根据需要对某些文件进行修改。
首先是克隆这个存储库。添加--recursive因为此存储库包含subpodule(font2img)
git clone --recursive https://github.com/uchidalab/fontdesign_gan
cd fontdesign_gan
如果您使用GPU和Docker,则很容易设置您的环境。需求库写在Dockerfile中。
安装GPU驱动程序/NVIDIA DOCKER并运行以下命令:
docker build -t fontdesign_gan .
docker run --runtime=nvidia -it --rm -p 6006:6006 --volume `pwd`:/workdir -w /workdir/ fontdesign_gan
使用GPU:安装GPU驱动程序/cuda/cudnn并运行以下命令:
pip install -r requirements_gpu.txt
使用CPU:运行以下命令:
pip install -r requirements_cpu.txt
将字体文件(.ttf)转换为图像文件(.png),然后将它们包装到HDF5文件(.h5)中
制作目录(例如./ttfs )并复制字体文件。设置目标路径(例如./src/myfonts.h5 )并运行。
python main.py --ttf2png --png2h5 --font_ttfs ./ttfs --font_h5 ./src/myfonts.h5
--ttf2png是转换的选项,图像文件保存在./src/pngs/{YYYY-MM-DD_HHmmss}中。如果使用--font_pngs选项,则可以自己设置路径。
--png2h5是包装的选项,包装文件保存在您设置的使用--font_h5选项中。
设置包装的文件的路径并运行。
python main.py --train --font_h5 ./src/myfonts.h5
结果保存在./result/{YYYY-MM-DD_HHmmss}中。您可以使用--gan_dir设置目的地。
在log目录中,保存了相同的文件:flags的日志,最新/保留的tensorflow的转储(.ckpt*),张板的日志。
在sample目录中,保存生成临时的字体。
训练期间,张量板也在运行。访问将在命令行中显示的URL。
设置受过训练的GAN输出目录和JSON文件的路径。
JSON文件必须为书面样式/字符ID。样式ID与随机矩阵相对应。字符ID与字符相对应。
ID按顺序加载,您可以使用一些操作数。例如,如果JSON文件如下:
{
"style_ids": [
"0", "5", "21", "37", "17..39:4"
],
"char_ids": [
"0-3", "6*4"
],
"col_n": 4
}
输入ID将是这样:
style_ids = [0, 5, 21, 37, (between 17 and 39 with 4 steps)]
char_ids = [0, 1, 2, 3, 6, 6, 6, 6]
并且,结果列的#是4。还检查示例文件( ./jsons/sample*.json )。
准备JSON文件后,这样运行:
python main.py --generate --gan_dir ./result/{trained} --ids ./jsons/sample01.json
生成的字体保存在./result/{trained}/generated/{YYYY-MM-DD_HHmmss}.png }/generated/ {yyyy-mm-dd_hmmsss}} .png中。您可以使用--gen_name设置输出文件名。
生成的图像是这样的: 
如果您想要随机的步行字体,请使用--generate_walk 。 JSON文件是不必要的。
python main.py --generate_walk --gan_dir ./result/{YYYY-MM-DD_HHmmss} --char_img_n 256
将生成256个样式的字体,并逐渐改变。
有很多选择。检查下表。
| 为了 | 选项 | 描述 | 默认 |
|---|---|---|---|
| 准备,训练 | --img_width | 图像的宽度。 | 64 |
| 准备,训练 | --img_height | 图像的高度。 | 64 |
| 准备,训练 | --img_dim | 图像的维度。 | 3 |
| 准备,训练 | --chars_type | 您可以选择字符类型,“帽子”,“ hiragana”或“帽子,hiragana” | “帽子” |
| 火车,生成 | --gpu_ids | 您使用的GPU ID。这种类型是字符串(ex。“ 0,1”) | (自动设置) |
| 火车,生成 | --batch_size | gan的批量尺寸 | 256 |
| 火车 | --arch | GAN模型的架构。选择“ dcgan”或“重新连接” | “ dcgan” |
| 火车 | --style_ids_n | #样式ID | 256 |
| 火车 | --style_z_size | style_z的大小 | 100 |
| 火车 | --gan_epoch_n | 时期迭代# | 10000 |
| 火车 | --critic_n | 评论家迭代# | 5 |
| 火车 | --sample_imgs_interval | 保存样品图像的间隔 | 10 |
| 火车 | --sample_col_n | 示例图像列的# | 26 |
| 火车 | --keep_ckpt_interval | 保持TensorFlow的转储的间隔 | 250 |
| 火车 | --run_tensorboard | 是否运行张量 | 真的 |
| 火车 | --tensorboard_port | 张量板页面的端口 | 6006 |