교육/생성을위한 코드, 이는 글꼴 디자인을위한 것입니다.
생성 된 글꼴은 다양한 스타일을 가지고 있으며 캐릭터로 읽을 수 있습니다. 
스타일 입력 공간에서 임의의 산책. 점차 변형 된 글꼴을 볼 수 있습니다.


























Auther Checked 런닝 코드는 다음 환경에서만 다음과 같습니다.
최신 환경에서 실행하려면 필요에 따라 일부 파일을 수정하십시오.
먼저이 저장소를 복제하십시오. 이 저장소는 하위 모듈 (Font2IMG)이 포함되어 있으므로 추가 --recursive
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
GPU : GPU 드라이버/CUDA/CUDNN을 설치하고 다음 명령을 실행하십시오.
pip install -r requirements_gpu.txt
CPU : 다음 명령을 실행합니다.
pip install -r requirements_cpu.txt
글꼴 파일 (.ttf)을 이미지 파일 (.png)로 변환하고 HDF5 파일 (.h5)에 포장합니다.
디렉토리 (예 : ./ttfs )와 글꼴 파일을 복사하십시오. 대상 경로를 설정하고 (예 : ./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 'Log, 최신/유지 TensorFlow의 덤프 (.CKPT*), Tensorboard의 로그.
sample 디렉토리에서 임시 생성 된 글꼴이 저장됩니다.
훈련하는 동안 Tensorboard도 실행 중입니다. 명령 줄에 표시되는 URL에 액세스하십시오.
훈련 된 GAN의 출력 디렉토리 및 JSON 파일 경로를 설정하십시오.
JSON 파일은 스타일/문자 ID를 작성해야합니다. 스타일 ID는 랜덤 매트릭스와 일치합니다. 문자 ID는 캐릭터와 일치합니다.
ID는 순서대로로드되며 일부 피연산자를 사용할 수 있습니다. 예를 들어 JSON 파일이 다음과 같은 경우 :
{
"style_ids": [
"0", "5", "21", "37", "17..39:4"
],
"char_ids": [
"0-3", "6*4"
],
"col_n": 4
}
입력 ID는 다음과 같습니다.
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 }/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 스타일의 글꼴이 생성되며 점차 변형됩니다.
많은 옵션이 있습니다. 다음 테이블을 확인하십시오.
| 을 위한 | 옵션 | 설명 | 기본 |
|---|---|---|---|
| 준비, 훈련 | --img_width | 이미지의 너비. | 64 |
| 준비, 훈련 | --img_height | 이미지의 높이. | 64 |
| 준비, 훈련 | --img_dim | 이미지의 치수. | 3 |
| 준비, 훈련 | --chars_type | 문자 유형, "캡", "히라 가나"또는 "캡, 히라 가나"를 선택할 수 있습니다. | "캡" |
| 훈련, 생성 | --gpu_ids | 사용하는 GPU ID. 이 유형은 문자열입니다 (예 : "0, 1") | (자동으로 설정) |
| 훈련, 생성 | --batch_size | 간의 배치 크기 | 256 |
| 기차 | --arch | 간 모델의 아키텍처. "dcgan"또는 "resnet"을 선택하십시오. | "DCGAN" |
| 기차 | --style_ids_n | 스타일 ID의 # | 256 |
| 기차 | --style_z_size | Style_Z의 크기 | 100 |
| 기차 | --gan_epoch_n | 에포크 반복의 # | 10000 |
| 기차 | --critic_n | 비평가 반복 | 5 |
| 기차 | --sample_imgs_interval | 샘플 이미지 저장 간격 | 10 |
| 기차 | --sample_col_n | # 샘플 이미지의 열 | 26 |
| 기차 | --keep_ckpt_interval | Tensorflow의 덤프를 유지하는 간격 | 250 |
| 기차 | --run_tensorboard | 텐서 보드를 실행하거나 | 진실 |
| 기차 | --tensorboard_port | 텐서 보드 페이지의 포트 | 6006 |