Este é um reprogador oficial para o artigo "Ambigrama geração por um modelo de difusão". Este artigo é aceito no ICDAR 2023.
【 ATUALIZAR 】
2023/07/20: Ambifusion2 está aberto. Este método pode gerar ambigramas com qualquer par de imagens especificando dois avisos como um par.
tl; dr
ambigramability
, uma medida objetiva de como é fácil gerar ambigramas para cada par de cartas. Os ambigramas são projetos gráficos de cartas que podem ser lidos não apenas a partir da direção original, mas também a partir de uma direção girada (especialmente com 180 graus). Projetar ambigramas é difícil mesmo para especialistas em humanos, porque manter sua dupla legibilidade de ambas as direções geralmente é difícil. Este artigo propõe um modelo de geração de ambigramas. Como módulo de geração, usamos um modelo de difusão, que foi recentemente usado para gerar imagens fotográficas de alta qualidade. Ao especificar um par de classes de letras, como 'A' e 'B', o modelo proposto gera várias imagens de ambigramas que podem ser lidas como 'A' da direção original e 'B' de uma direção girada de 180 graus. Análises quantitativas e qualitativas de resultados experimentais mostram que o modelo proposto pode gerar ambigramas de alta qualidade e diversas. Além disso, definimos ambigramabilidade, uma medida objetiva de como é fácil gerar ambigramas para cada par de letras. Por exemplo, o par de 'A' e 'V' mostra uma alta ambigramabilidade (ou seja, é fácil gerar seus ambigramas), e o par de 'D' e 'K' mostra uma ambigramabilidade mais baixa. A ambigramabilidade fornece várias dicas da geração de ambigramas não apenas para computadores, mas também para especialistas em humanos.
Nosso método proposto gera ambigramas como os seguintes exemplos.
O número entre parênteses é a pontuação de ambigramabilidade (↑) do par de cartas. As três linhas superiores são pares de classe bastante fáceis (com pontuações de ambigramabilidade mais altas) e os três inferiores não são.
Testamos todos os códigos em Python: 3.8.10
. Você pode baixar bibliotecas externas com pip
como seguinte.
pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113
pip install -r requirements.txt
Você também pode baixar pesos pré-treinados. Substitua todos os pseud-weights file weight_name.txt
pelo arquivo de pesos reais baixados.
python demo.py
127.0.0.1:11111
com seu navegador da web. TestConfigs
em ambigram_random_sample.py
. python ambigram_random_sample.py
TestConfigs
em calc_ambigramability.py
. python calc_ambigramability.py
TrainConfigs
em configs/trainargs.py
. Se você quiser, você pode alterar DA_ambigram_configs.yaml
(os detalhes são mencionados na seção 3.2 no papel). ## Run on single gpu
python ambigram_train.py
## Run on multiple gpus
mpiexec -n [NUM_GPUs] python ambigram_train.py
NOTA [1]: Se você deseja gerar ambigramas usando classifier-free guidance
, precisará treinar modelo condicional e model incondicional separadamente.
@article{shirakawa2023ambigram,
title={Ambigram Generation by A Diffusion Model},
author={Shirakawa, Takahiro and Uchida, Seiichi},
booktitle={2023 17th international conference on document analysis and recognition (ICDAR)},
year={2023}
}