Código para treinamento/geração de GaN, ou seja, para design de fonte.
Fontes geradas, eles têm vários estilos e são legíveis como personagem. 
Caminhada aleatória em espaço de entrada de estilo. Você pode assistir a fontes gradualmente transformadas.


























O Auther verificou os códigos de corrida apenas seguindo o ambiente:
Se você deseja executar com o ambiente mais recente, revise alguns arquivos conforme necessário.
Em primeiro lugar, clone este repositório. Adicionar --recursive porque este repositório contém submodule (font2img)
git clone --recursive https://github.com/uchidalab/fontdesign_gan
cd fontdesign_gan
Se você usa GPU e Docker, é fácil configurar seu ambiente. As bibliotecas de requisitos estão escritas no Dockerfile.
Instale o Driver GPU/NVIDIA Docker e execute os seguintes comandos:
docker build -t fontdesign_gan .
docker run --runtime=nvidia -it --rm -p 6006:6006 --volume `pwd`:/workdir -w /workdir/ fontdesign_gan
com GPU: Instale o driver da GPU/CUDA/CUDNN e execute o seguinte comando:
pip install -r requirements_gpu.txt
com CPU: Execute o seguinte comando:
pip install -r requirements_cpu.txt
Converta os arquivos de fonte (.ttf) em arquivos de imagem (.png) e empacote -os em um arquivo hdf5 (.h5)
Faça um diretório (Ex ./ttfs Defina o caminho de destino (ex. ./src/myfonts.h5 ) e execute.
python main.py --ttf2png --png2h5 --font_ttfs ./ttfs --font_h5 ./src/myfonts.h5
--ttf2png é a opção para converter, os arquivos de imagem são salvos em ./src/pngs/{YYYY-MM-DD_HHmmss} . Se você usar --font_pngs , poderá definir o caminho.
--png2h5 é a opção de embalagem, o arquivo embalado é salvo no caminho que você definir com a opção --font_h5 .
Definir o caminho do arquivo embalado e executar.
python main.py --train --font_h5 ./src/myfonts.h5
Os resultados são salvos em ./result/{YYYY-MM-DD_HHmmss} . Você pode definir o destino com --gan_dir .
No diretório log , salvo os mesmos arquivos: o log dos sinalizadores, o mais recente/mantido do TensorFlow (.ckpt*), o log do Tensorboard.
No diretório sample , as fontes que geradas temporárias são salvas.
Durante o treinamento, o Tensorboard também está em execução. URL de acesso que será mostrado na linha de comando.
Defina um caminho do diretório de saída do GaN treinado e um arquivo JSON.
O arquivo JSON deve ser escrito IDS/IDs de caracteres. Um ID de estilo corresponde a uma matriz aleatória. Um ID do personagem corresponde a um personagem.
Os IDs são carregados em ordem e você pode usar alguns operandos. Por exemplo, se o arquivo json estiver seguindo:
{
"style_ids": [
"0", "5", "21", "37", "17..39:4"
],
"char_ids": [
"0-3", "6*4"
],
"col_n": 4
}
Os IDs de entrada serão assim:
style_ids = [0, 5, 21, 37, (between 17 and 39 with 4 steps)]
char_ids = [0, 1, 2, 3, 6, 6, 6, 6]
e, o número de colunas de resultados é 4. Verifique também os arquivos de amostra ( ./jsons/sample*.json ).
Depois de preparar o arquivo JSON, execute assim:
python main.py --generate --gan_dir ./result/{trained} --ids ./jsons/sample01.json
As fontes geradas são salvas em ./result/{trained}/generated/{YYYY-MM-DD_HHmmss}.png traaded }/generated/{yyyy-mm-dd_hhmmss }.png. Você pode definir o nome do arquivo de saída com --gen_name .
A imagem gerada é assim: 
Se você quiser fontes aleatórias, use --generate_walk . Um arquivo JSON é desnecessário.
python main.py --generate_walk --gan_dir ./result/{YYYY-MM-DD_HHmmss} --char_img_n 256
256 fontes dos estilos serão geradas e são transformadas gradualmente.
Existem muitas opções. Verifique a tabela a seguir.
| Para | Opção | Descrição | Padrão |
|---|---|---|---|
| Prepare, treine | --img_width | largura de imagens. | 64 |
| Prepare, treine | --img_height | altura das imagens. | 64 |
| Prepare, treine | --img_dim | dimensão das imagens. | 3 |
| Prepare, treine | --chars_type | Você pode escolher o tipo de personagens, "Caps", "Hiragana" ou "Caps, Hiragana" | "Caps" |
| Treine, gerar | --gpu_ids | IDs de GPU que você usa. Este tipo é string (ex. "0, 1") | (definido automaticamente) |
| Treine, gerar | --batch_size | Tamanho do lote para GaN | 256 |
| Trem | --arch | Arquitetura dos modelos GaN. Escolha "dcgan" ou "resnet" | "Dcgan" |
| Trem | --style_ids_n | # de IDs de estilo | 256 |
| Trem | --style_z_size | tamanho de estilo_z | 100 |
| Trem | --gan_epoch_n | # de iterações de época | 10000 |
| Trem | --critic_n | # de iterações críticas | 5 |
| Trem | --sample_imgs_interval | intervalo de salvar imagens de amostra | 10 |
| Trem | --sample_col_n | # das colunas da imagem de amostra | 26 |
| Trem | --keep_ckpt_interval | Intervalo de manter os dumps do Tensorflow | 250 |
| Trem | --run_tensorboard | Execute o Tensorboard ou não | Verdadeiro |
| Trem | --tensorboard_port | Porta para Página de Tensorboard | 6006 |