StackGANによるフォントの錬金術
近況
あまりにも今までの不可能を打開し続けるDeep Learning。自分で言うと甚だ科学としての機械学習が零落しそうですが、まだDeep Learningは体系化された知恵の集合体としての正しい科学の段階にはたどり着いていないように思います。どちらかと言うと錬金術に近い技かも。
Deep Learningは、いつかまだ見ぬ真理へと人類を導いてくれるんでしょうか。各人、期待しております。
モチベーション
- 日本語のフォントを作成する際に、デザイナは膨大な時間的・肉体的・精神的な労力を払うことになる[1]
- フォントのデザインを見ているとある一定の法則があることがわかる。それは、大まかなフォントのデザインの土台があってデザインを装飾するように、なんらかの固有な表現が付加されている
- これはディープラーニングで情報を付加する特徴を覚えさせ、変換させるのに適した好例である
- 単純な情報付加では、pix2pixでも可能であろうが、StackGANと呼ばれるGANを複数回重ねることでより高度に近づけたい画像に近づける手法を適応する[2]
先行研究
- Rewrite: Neural Style Transfer For Chinese Fonts
- End2EndっぽいのでStackGANは6倍近いディープのネットワークを使っているの超えられる壁ではありそう
- Analyzing 50k fonts using deep neural networks
- Font情報のエンベッティング化、これをillustでやるとillustration2vecになる
- StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks
- GANを複数回重ねることでより高画質化する(ざっくり)
StackGANについて
StackGANは少ない情報からよりもとの絵に近い情報を復号するのに適しているネットワークである。
もとの論文ではSkip Thought Vectorsを用いて文章からの画像の生成であるが、Skip Thought Vectorsの代わりに、画像のベクトルを入力する。条件を同じようにするため、DCGANで用いられるノイズも付与する。
ネットワーク構成図を書き直した。
実験手法
- 論文を読んでChainerで実装した
- 何度か実験したところ、二段目のGANにて勾配消失を起こしてしまうのか、一段目のGANの出力結果に強く引っ張られてしまったので、学習レートを大幅に引き下げるという処理を入れた。本当は一定のiterationが回るまで、学習を遅延させたいのだが、今のところ実装に至っていない。
- フォントを2種類要した。
- 書道のようなフォントである青柳隷書フォント、windowsで標準でインストールされているHGP創英角ポップ体の2つを検証対象とした
- フォントの選択条件は、夏目漱石の「坊っちゃん」、「こゝろ」、「吾輩は猫である」で使用されている3313語を用いた。そのうち、800語を別途検証用データとして学習用データとは区別した。[3]
- 各種パラメータは、一回目のGANはFacadeと同様で、二階目のGANはそれを1/5にしたものである。詳細なパラメータサーチは別途、本格的な生成タスクで行うことにした。
結果
- Inputが入力ベクトル作成に用いた画像
- Predictが出力結果
- Ground Truthが人間の職人が作成したフォントである
考察
Future Work
- StackGANのパラメータを調整して、下書きから漫画を一気に作成するなどしたい(データない)
- 音声の問題にも適応できる気がしてて、周波数成分をルールにしたがって上げたり下げたりする作業を、GANにやらせればより人間っぽくなるっしょって思惑があって、男性でも女性のキャラクタを演じたり、その逆ができるように感じる。
- パラメータサーチや、ネットワーク構造の問題だけでなく、今回は周りの学習の安定度に応じて学習を開始してほしいというニーズが発生したので、その辺を実装していきたい
- 一応ConditionalStackGANに簡単にする方法があって、その方法を図示すると、こんなふうになる(と思う)
参考文献
[1] 文字数14000字! 手書き毛筆フォントができるまで http://portal.nifty.com/kiji/151118195086_1.htm
[2] StackGAN: Text to Photo-realistic Image Synthesis
with Stacked Generative Adversarial Networks https://arxiv.org/pdf/1612.03242v1.pdf
[3] 「シドニアの騎士」に出てくるフォントを再現する「東亜重工電子書体化計画」が公開中止に http://gigazine.net/news/20140702-toa-heavy-industries-font/
謝辞
インフルエンザか風邪だかわからないが熱が下がらない。隣の席の上司がインフルで休んでいるので、多分インフルなんだろう。つらい。
そんな中、今週は業務では主にAWSとAnsibleとの戦いに時間を割いていたのだが、やはり機械学習やってる方が気が楽...(エンジニアに向いてない疑惑)
進捗なしかとおもいきや、やっぱり音楽とMMDのちからでなんとか乗り切った。MMDでは艦これで山風のモデルが多数のアーティストによって頻繁なアップグレードが行われている。非常にクオリティが高く、尊い。
作品中でも、山風は江風と海風と一緒にいじられることが多いのだが、この三人を組み合わせるとヤバい。それぞれの方向性が異なる性格のベクトルが見事に調和していい感じにまとまっている。興味のある人はYouTubeで「山風 MMD」で検索しよう。
MMD職人に感謝である、GPL v3ライセンスとかにしたほうがいいのではと思う。