Код для обучения/генерации GAN, то есть для дизайна шрифтов.
Сгенерированные шрифты, они имеют различные стили, и они читаются как персонаж. 
Случайная прогулка в стиле. Вы можете смотреть постепенно трансформированные шрифты.


























Автофирные проверенные рабочие коды только в следующей среде:
Если вы хотите запустить с последней средой, по мере необходимости пересмотрите некоторые файлы.
Во -первых, клонировать этот репозиторий. Добавить --recursive потому что этот репозиторий содержит подмодуль (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
С помощью графического процессора: установить драйвер графического процессора/cuda/cudnn и запустить следующую команду:
pip install -r requirements_gpu.txt
С процессором: запустить следующую команду:
pip install -r requirements_cpu.txt
Преобразовать файлы шрифтов (.ttf) в файлы изображений (.png) и упаковать их в файл HDF5 (.h5)
Сделайте каталог (Ex ./ttfs ) и скопируйте файлы шрифтов. Установите путь назначения (Ex ./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*), журнал Tensorboard.
В каталоге sample сохраняются временные шрифты.
Во время тренировки Tensorboard также работает. Access URL, который будет показан в командной строке.
Установите путь к выходному каталогу обученного GAN и файл JSON.
Файл JSON должен быть написанным стилем/идентификаторами символов. Идентификатор стиля соответствует случайной матрице. Идентификатор символа соответствует персонажу.
Идентификаторы загружаются по порядку, и вы можете использовать некоторые операнды. Например, если файл json следующим:
{
"style_ids": [
"0", "5", "21", "37", "17..39:4"
],
"char_ids": [
"0-3", "6*4"
],
"col_n": 4
}
Входные идентификаторы будут такими же:
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 ) Вы можете установить имя выходного файла с помощью --gen_name .
Сгенерированное изображение похоже на это: 
Если вам нужны случайные ходьбы, используйте --generate_walk . Файл JSON не подходит.
python main.py --generate_walk --gan_dir ./result/{YYYY-MM-DD_HHmmss} --char_img_n 256
Будут генерируются шрифты 256 Styles, и они трансформируются постепенно.
Есть много вариантов. Проверьте следующую таблицу.
| Для | Вариант | Описание | По умолчанию |
|---|---|---|---|
| Подготовьтесь, поезда | --img_width | Ширина изображений. | 64 |
| Подготовьтесь, поезда | --img_height | Высота изображений. | 64 |
| Подготовьтесь, поезда | --img_dim | измерение изображений. | 3 |
| Подготовьтесь, поезда | --chars_type | Вы можете выбрать тип персонажей «Кэпки», «Хирагана» или «Кэпки, Хирагана» | "Caps" |
| Поезда, генерируйте | --gpu_ids | Идентификаторы графических процессоров, которые вы используете. Этот тип строка (Ex. "0, 1") | (Установите автоматически) |
| Поезда, генерируйте | --batch_size | Размер партии для GAN | 256 |
| Тренироваться | --arch | Архитектура моделей GAN. Выберите "Dcgan" или "Resnet" | "DCGAN" |
| Тренироваться | --style_ids_n | # идентификаторов стиля | 256 |
| Тренироваться | --style_z_size | Размер стиля_Z | 100 |
| Тренироваться | --gan_epoch_n | # эпохи итераций | 10000 |
| Тренироваться | --critic_n | # критических итераций | 5 |
| Тренироваться | --sample_imgs_interval | Интервал сохранения образцов изображений | 10 |
| Тренироваться | --sample_col_n | # образца столбцов изображения | 26 |
| Тренироваться | --keep_ckpt_interval | Интервал сохранения свалки тензора | 250 |
| Тренироваться | --run_tensorboard | запустить Tensorboard или нет | Истинный |
| Тренироваться | --tensorboard_port | Порт для страницы Tensorboard | 6006 |