訓練/生成gan的代碼,即字體設計。
產生的字體,它們具有多種樣式,並且可以作為角色可讀。
隨機步入樣式輸入空間。您可以觀看逐漸轉換的字體。


























Auther僅在以下環境中檢查運行代碼:
如果您想在最新環境中運行,請根據需要對某些文件進行修改。
首先是克隆這個存儲庫。添加--recursive因為此存儲庫包含subpodule(font2img)
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的日誌,最新/保留的tensorflow的轉儲(.ckpt*),張板的日誌。
在sample目錄中,保存生成臨時的字體。
訓練期間,張量板也在運行。訪問將在命令行中顯示的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_hmmsss}} .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 | 您可以選擇字符類型,“帽子”,“ hiragana”或“帽子,hiragana” | “帽子” |
| 火車,生成 | --gpu_ids | 您使用的GPU ID。這種類型是字符串(ex。“ 0,1”) | (自動設置) |
| 火車,生成 | --batch_size | gan的批量尺寸 | 256 |
| 火車 | --arch | GAN模型的架構。選擇“ dcgan”或“重新連接” | “ 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 |