Código para el entrenamiento/Gan para generar GaN, eso es para el diseño de fuentes.
Fuentes generadas, tienen varios estilos y son legibles como personaje. 
Caminata aleatoria en espacio de entrada de estilo. Puedes ver fuentes transformadas gradualmente.


























El autador verificó los códigos de ejecución en solo el siguiente entorno:
Si desea ejecutar con el último entorno, revise algunos archivos según sea necesario.
En primer lugar, clone este repositorio. Agregar --recursive porque este repositorio contiene submódulo (Font2Img)
git clone --recursive https://github.com/uchidalab/fontdesign_gan
cd fontdesign_gan
Si usa GPU y Docker, es fácil configurar su entorno. Las bibliotecas de requisitos están escritas en Dockerfile.
Instale el controlador GPU/NVIDIA Docker y ejecute los siguientes comandos:
docker build -t fontdesign_gan .
docker run --runtime=nvidia -it --rm -p 6006:6006 --volume `pwd`:/workdir -w /workdir/ fontdesign_gan
Con GPU: instalar controlador GPU/CUDA/CUDNN y ejecutar el siguiente comando:
pip install -r requirements_gpu.txt
con CPU: Ejecutar el siguiente comando:
pip install -r requirements_cpu.txt
Convertir archivos de fuente (.ttf) en archivos de imagen (.png) y empacarlos en un archivo HDF5 (.h5)
Realice un directorio (ex ./ttfs ) y copie archivos de fuentes. Establezca la ruta de destino (ex ./src/myfonts.h5 ) y ejecute.
python main.py --ttf2png --png2h5 --font_ttfs ./ttfs --font_h5 ./src/myfonts.h5
--ttf2png es la opción para convertir, los archivos de imagen se guardan en ./src/pngs/{YYYY-MM-DD_HHmmss} . Si usa la opción --font_pngs , puede configurar la ruta usted mismo.
--png2h5 es la opción para empacar el archivo empaquetado se guarda en la ruta que establece con la opción --font_h5 .
Establezca la ruta del archivo empaquetado y ejecute.
python main.py --train --font_h5 ./src/myfonts.h5
Los resultados se guardan en ./result/{YYYY-MM-DD_HHmmss} . Puede establecer el destino con --gan_dir .
En el directorio log , guardado los mismos archivos: Log de Flags, Last/Wanting Tensorflow's Dumps (.CKPT*), el registro de TensorBoard.
En el directorio sample , se guardan las fuentes que generadas temporalmente.
Mientras entrenaba, Tensorboard también está funcionando. URL de acceso que se mostrará en la línea de comandos.
Establezca una ruta del directorio de salida de GAN entrenado y un archivo JSON.
El archivo JSON tiene que ser estilo ID de estilo/personaje escrito. Una ID de estilo corresponde con una matriz aleatoria. Una identificación de personaje corresponde con un personaje.
Los ID se cargan en orden, y puede usar algunos operandos. Por ejemplo, si el archivo JSON está siguiendo:
{
"style_ids": [
"0", "5", "21", "37", "17..39:4"
],
"char_ids": [
"0-3", "6*4"
],
"col_n": 4
}
Los ID de entrada serán así:
style_ids = [0, 5, 21, 37, (between 17 and 39 with 4 steps)]
char_ids = [0, 1, 2, 3, 6, 6, 6, 6]
y, # de columnas de resultados es 4. También verifique los archivos de muestra ( ./jsons/sample*.json ).
Después de preparar el archivo JSON, ejecute así:
python main.py --generate --gan_dir ./result/{trained} --ids ./jsons/sample01.json
Las fuentes generadas se guardan en ./result/{trained}/generated/{YYYY-MM-DD_HHmmss}.png . Puede establecer el nombre del archivo de salida con --gen_name .
La imagen generada es así: 
Si desea fuentes para caminar aleatorias, use --generate_walk . Un archivo JSON es innecesario.
python main.py --generate_walk --gan_dir ./result/{YYYY-MM-DD_HHmmss} --char_img_n 256
Se generarán 256 fuentes de estilos, y se transforman gradualmente.
Hay muchas opciones. Verifique la siguiente tabla.
| Para | Opción | Descripción | Por defecto |
|---|---|---|---|
| Preparar, entrenar | --img_width | Ancho de imágenes. | 64 |
| Preparar, entrenar | --img_height | Altura de las imágenes. | 64 |
| Preparar, entrenar | --img_dim | Dimensión de las imágenes. | 3 |
| Preparar, entrenar | --chars_type | Puedes elegir el tipo de caracteres, "tapas", "hiragana" o "tapas, hiragana" | "Capas" |
| Tren, generar | --gpu_ids | ID de GPU que usa. Este tipo es cadena (ex. "0, 1") | (Establecer automáticamente) |
| Tren, generar | --batch_size | tamaño por lotes para gan | 256 |
| Tren | --arch | Arquitectura de modelos GaN. Elija "DCGAN" o "RESNET" | "Dcgan" |
| Tren | --style_ids_n | # de ID de estilo | 256 |
| Tren | --style_z_size | tamaño de style_z | 100 |
| Tren | --gan_epoch_n | # de iteraciones de época | 10000 |
| Tren | --critic_n | # de iteraciones críticas | 5 |
| Tren | --sample_imgs_interval | Intervalo de guardar imágenes de muestra | 10 |
| Tren | --sample_col_n | # de las columnas de la imagen de muestra | 26 |
| Tren | --keep_ckpt_interval | Intervalo de mantener los vertederos de TensorFlow | 250 |
| Tren | --run_tensorboard | ejecutar tensorboard o no | Verdadero |
| Tren | --tensorboard_port | Puerto para la página de Tensorboard | 6006 |