背景
家紋(かもん)とは、日本固有の紋章である。
https://ja.wikipedia.org/wiki/%E5%AE%B6%E7%B4%8B
真田丸を見ていたら、家紋の自動生成をしたくなったのでやってみた。
【参考】これまで生成されてきた画像たち
- 顔イラスト http://qiita.com/mattya/items/e5bfe5e04b9d2f0bbd47
- イラスト http://qiita.com/rezoolab/items/5cc96b6d31153e0c86bc
- 間取り画像 http://nextdeveloper.hatenablog.com/entry/2016/02/26/211332
- アイドル顔画像 http://memo.sugyan.com/entry/20160516/1463359395
- ポケモン http://bohemia.hatenablog.com/entry/2016/08/13/132314
- アルファベット http://qiita.com/hitokun-s/items/38c0bdc3245a45fd8c29
データ収集
探してみると、下記のサイトに結構な量の家紋画像を発見。
http://www.benricho.org/kamon/
サイトのソースをみつつ、ダウンロードするスクリプトを作成。
https://github.com/yu4u/kamon
上記リポジトリのdl.sh
で画像データのダウンロード、convert.sh
で学習用にリサイズができる(要imagemagick)。
元画像は約250MB、画像数は約9000。
利用したDCGANの実装がカラー画像前提だったので、モノクロ画像にならないように変換。モノクロ画像として実行したほうが効率的だが、色々いじらないといけないようなのでカラー画像とした。むしろ2値画像として学習してみたい。
DCGANによる画像生成
下記のTensorFlowの実装を利用。
https://github.com/carpedm20/DCGAN-tensorflow
画像フォルダを指定して実行するだけでOK。
結果
ちょっと学習画像が少なかったかな、という結果。ノイズのような領域ができるので、やはり2値画像として扱うべきなのか。円を学習しているのがそれっぽい。