白黒羊

白黒羊

白黒羊

  • Home
  • Products
  • News
  • Support
  • Contact

SHIROKUROHITSUJI

手書きフォントを作る(ためのツールを作る)②「zi2zi」で学習させてみる

2018年11月25日Font, 機械学習 By: shimahinuko

前回、下記のようにフォント学習の「zi2zi」を使ってみましたが、

手書きフォントを作る(ためのツールを作る)①「zi2zi」を使ってみる

今回も引き続き「zi2zi」を使います。

今度は学習済みモデルを使うのではなく、実際に自分で学習を進めてみたいと思います。

使用フォント確認

自分の手書き文字を学習させることを念頭に、とりあえず今回はフォントをお借りして学習させてみました。
お借りしたフォントは以下の2つです。

Google Web Fonts「Noto Sans CJK JP」
fontopo「フォントポにほんご」

2018年11月現在では改変自由とされていたためお借りしていますが利用する際には各自で規約をご確認ください。

「Noto Sans CJK JP」を学習させて「フォントポにほんご」を作ります。

左側が「フォントポにほんご」、右側が「Noto Sans CJK JP」です。

漢字は「はね」の角度がやや違うものの、似ていますが、
かなは「フォントポにほんご」に個性がありそうです。

学習させる

それでは、学習させてみます。
打ち込むコマンドは前回とほぼ同じですが、エポック数やステップ数を増やしてみました。

python font2img.py --src_font=NotoSansCJKjp-Regular.otf --dst_font=FontopoNIHONGO.otf --charset=JP --sample_count=3000 --sample_dir=TRAIN --label=0 --filter=1 --shuffle=1
mkdir TRAIN/data
python package.py --dir=TRAIN --save_dir=TRAIN/data --split_ratio=0.1
python train.py --experiment_dir=TRAIN --experiment_id=0 --batch_size=16 --lr=0.001 --epoch=400 --sample_steps=50 --schedule=20 --L1_penalty=100 --Lconst_penalty=15

で、出てきた学習状況サンプルをアニメーションにするとこんな感じになりました。

やはりこの中ではひらがなの「ぶ」に苦労していそうですね……。
でも「はね」の雰囲気まで含めて良い精度で出ていると思います。

エポック数増やしてみましたとサクッと言いましたが、この計算には4日間程度要しました。
ううん、時間短縮したい……、GPU……?

できた学習済みモデルに「Noto Sans CJK JP」で書いた「白黒羊」「しろくろひつじ」「シロクロヒツジ」を突っ込みます。
この学習元画像を用意するときに、JPEGで作るということを忘れていたため、

unpickled total 0 examples

examples -> 0

restored model useTRAIN/

と、なってしまいました。気を付けよう……。

「useTRAIN」フォルダの中身です。
「checkpoint」とかも使う場所にコピーしてしまいました。

後は前回学習済みモデルを使ったのと同じようにします。

python package.py --dir=useTRAIN/ --save_dir=useTRAIN/save
python infer.py --model_dir=useTRAIN/ --batch_size=1 --source_obj=useTRAIN/save/train.obj --embedding_ids=1 --save_dir=useTRAIN/result

生成画像結果

以下のように比較してみた画像がこちらです!

上段:「Noto Sans CJK JP」 (元フォント)
中段:学習済みモデルで作成された画像
下段:「フォントポにほんご」 (目指したフォント)

感想

かなまで含めて、結構良い精度では!

Share:
shirokurohitsuji_moji

Previous

手書きフォントを作る(ためのツールを作る)①「zi2zi」を使ってみる

Next

Photoshopでスクリプトを使って画像を分割する

Leave a Comment コメントをキャンセル

カテゴリー

  • CFD (9)
    • OpenFOAM (9)
  • Design (5)
    • Adobe_XD (1)
    • Font (3)
    • Photoshop (2)
  • Diary (2)
  • Event (9)
    • AdventCalendar (3)
    • unity1week (6)
  • Git (2)
    • GitLab (1)
  • Programming (6)
    • C# (2)
      • Rider (1)
    • C++ (2)
    • javascript (2)
  • Unity (18)
    • Editor拡張 (1)
    • UniTask (1)
    • UnityAsset (8)
    • UnityCloudBuild (2)
    • WebGL (2)
  • ゲーム (2)
    • 冠を持つ神の手 (2)
  • 機械学習 (1)
  • 開発 (15)
    • Admob (1)
    • Android (2)
    • Database (1)
      • MySQL (1)
    • DiscordAPI (2)
    • iOS (2)
    • PlayFab (1)
    • Web (2)
      • AmazonS3 (2)
      • Heroku (1)
      • RestAPI (1)
      • WordPress (1)
    • 虹の降る海 (4)
    • 設計 (1)
2018年11月
日 月 火 水 木 金 土
 123
45678910
11121314151617
18192021222324
252627282930  
« 9月   2月 »

アーカイブ

  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年5月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年2月
  • 2018年11月
  • 2018年9月
  • 2018年8月
  • 2018年7月

カテゴリー

  • Admob
  • Adobe_XD
  • AdventCalendar
  • AmazonS3
  • Android
  • C#
  • C++
  • CFD
  • Database
  • Design
  • Diary
  • DiscordAPI
  • Editor拡張
  • Event
  • Font
  • Git
  • GitLab
  • Heroku
  • iOS
  • javascript
  • MySQL
  • OpenFOAM
  • Photoshop
  • PlayFab
  • RestAPI
  • Rider
  • UniTask
  • Unity
  • unity1week
  • UnityAsset
  • UnityCloudBuild
  • Web
  • WebGL
  • WordPress
  • 冠を持つ神の手
  • 機械学習
  • 虹の降る海
  • 設計
  • 開発

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org