2017年06月19日
zi2zi: Master Chinese Calligraphy with Conditional Adversarial Networks
最近人気のあるpix2pixモデルを漢字に適用して拡張したもので
漢字書体をGANで学ぶ。と説明されています。
すでに様々な研究が進められたのに、現在でも幾つも問題が残っています。
人間はフォントを設計する前に、文字の構造をしっかり学びます。
機械学習でこれを実現するためには、複数のスタイル(フォント)も認識させることが必要で、同時に複数のスタイル(フォント)を学習する事が不可欠です。
...........
Googleのゼロショット翻訳に触発されたカテゴリ埋め込みは、訓練できないガウスノイズを文字埋込みにスタイル埋め込みを連結することで解決します...
これにより、encoder は同じ文字を同じベクトルにマッピングしますが、
decoderは、文字とスタイルの両方のembeddings によって、ターゲットのフォントで文字を生成します。
....................
最近人気のあるpix2pixモデルを漢字に適用して拡張したもので
漢字書体をGANで学ぶ。と説明されています。
すでに様々な研究が進められたのに、現在でも幾つも問題が残っています。
- 一度に1つのターゲットスタイルしか学習しない
- 生成された画像がぼやける
- もっと様式化されたフォントの下では失敗する
人間はフォントを設計する前に、文字の構造をしっかり学びます。
機械学習でこれを実現するためには、複数のスタイル(フォント)も認識させることが必要で、同時に複数のスタイル(フォント)を学習する事が不可欠です。
...........
|
Googleのゼロショット翻訳に触発されたカテゴリ埋め込みは、訓練できないガウスノイズを文字埋込みにスタイル埋め込みを連結することで解決します...
これにより、encoder は同じ文字を同じベクトルにマッピングしますが、
decoderは、文字とスタイルの両方のembeddings によって、ターゲットのフォントで文字を生成します。
....................
ソースコードはこちらから利用できます。
https://github.com/kaonashi-tyc/zi2zi
python2向けのような気がしますが、多分python3でも実行出来ると思います。
そして、実行時にGPUを要求すると思います。
python font2img.py --src_font=font1.ttf --dst_font=font2.ttf --charset=JP --sample_count=1000 --sample_dir=dir --label=0 --filter=1 --shuffle=1
まずこうやって文字画像をdirに作っておきます。
python3 package.py --dir=dir --save_dir=experiment/data/ --split_ratio=0.5
こうして、val.obj、train.objを作成します。
作成しないと、学習が進みません。
python3 train.py --experiment_dir=experiment --experiment_id=0 --batch_size=1 --lr=0.001 --epoch=4 --sample_steps=1 --schedule=2 --L1_penalty=100 --Lconst_penalty=15
学習はこうします。
font2img.pyの時に
self.font = core.getfont(font, size, index, encoding)このエラーは
IOError: cannot open resource
--src_font のフォントファイルが無いからです。
フォントは、例えば https://github.com/Koruri/Koruri.git などです。
reload(sys)これは import reload とするだけです
NameError: name 'reload' is not defined
sys.setdefaultencoding("utf-8")
AttributeError: module 'sys' has no attribute 'setdefaultencoding'
Zenback読み込み中です。