Esta é a implementação do TensorFlow das síntese de fontes coreanas acionadas por Skfont: esqueleto com redes adversárias profundas condicionais .
papel
Em nossa pesquisa, estudamos o problema da síntese de fontes usando uma rede adversária profunda condicional de ponta a ponta com uma pequena amostra de caracteres coreanos (Hangul). O Hangul é composto por 11.172 caracteres e é composto pela escrita em vários padrões de posicionamento. Tradicionalmente, o design de fontes exigia mão de obra humana pesada, levando facilmente um ano para terminar um conjunto de estilo. Mesmo com a ajuda de abordagens programáveis, ainda leva muito tempo e não pode escapar das limitações em torno da liberdade de alterar os parâmetros. Muitos ensaios foram tentados em profundas áreas de rede neural para gerar caracteres sem nenhuma intervenção humana. Nossa pesquisa se concentra em um modelo de aprendizado profundo de ponta a ponta, o gerador de fonte acionado por esqueleto (SKFONT): quando recebe 114 amostras, o sistema gera automaticamente o restante dos caracteres no mesmo estilo de fonte. O Skfont envolve três etapas: primeiro, gera caracteres de fonte de destino completos observando 114 caracteres de destino. Em seguida, extrai os esqueletos (estruturas) dos caracteres sintetizados obtidos a partir da primeira etapa. Esse processo impulsiona o sistema para sustentar a principal estrutura dos caracteres ao longo de todo o processo de geração. Finalmente, transfere o estilo da fonte alvo para essas estruturas aprendidas. Nosso estudo resolve déficits há muito atrasados, como borracha, quebra e falta de entrega de formas e estilos delicados usando a rede adversária condicional profunda 'acionada por esqueleto'. Comparações qualitativas e quantitativas com os métodos de última geração demonstram a superioridade do método Skfont proposto.




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
Nosso modelo consiste em três sub-modelos, como F2F-F2S-S2F. Para cada modelo, precisamos preparar um conjunto de dados emparelhado. ou seja, uma fonte para direcionar o conjunto de dados emparelhado com fontes, uma fonte de destino para o conjunto de dados de esqueleto de corretura e um esqueleto de destino para o conjunto de dados de fontes correspondente. Para fazer este local, qualquer fonte coreana no diretório SRC_Font e N número de fontes de destino no diretório TRG_FONT. Em seguida, execute os comandos abaixo para pré -processamento de dados.
Gerar imagens de fonte de origem
python ./tools/src-font-image-generator.py
Gerar imagens de fonte de destino
python ./tools/trg-font-image-generator.py
Gerar imagens de esqueleto de fonte de destino
python ./tools/trg-skeleton-image-generator.py
Combine os esqueletos de origem, alvo e alvo
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
Converter imagens em tfrecords
python ./tools/images-to-tfrecords.py
python main.py --mode train --output_dir trained_model --max_epochs 25
Para aprender um estilo de fonte invisível, você pode ajustar um modelo já pré-treinado com o comando abaixo. Se você deseja gerar os estilos de fonte já aprendidos, pule o comando abaixo.
python main.py --mode train --output_dir finetuned_model --max_epochs 500 --checkpoint trained_model/
Gere imagens como antes, mas desta vez use um módulo diferente para criar testes TfRecords com o comando abaixo mencionado.
python ./tools/test-images-to-tfrecords.py
python main.py --mode test --output_dir testing_results --checkpoint finetuned_model
Este código é inspirado no projeto PIX2PIX Tensorflow.
Agradecimentos especiais aos seguintes trabalhos por compartilhar seu código e conjunto de dados.
Por favor, cite nosso trabalho, se você gosta.
KO, DH, Hassan, AU, Suk, J. et al. Skfont: gerador de fonte coreano acionado por esqueleto com redes adversárias profundas condicionais. Ijdar (2021). https://doi.org/10.1007/s10032-021-00374-4
O código e outros módulos de ajuda só são permitidos para uso pessoal e acadêmico.