DCGAN
- Deep Convolutional Generative Adversarial Networks
- ディープラーニングで画像(等)を自動生成する技術
- データセットを学習して、データセットにありそうな画像を生成する
例
アイドルの顔画像生成
TensorFlowによるDCGANでアイドルの顔画像生成 - すぎゃーんメモ
- アイドルの顔画像を大量に集めて学習 → アイドルっぽい顔を自動生成
顔イラストの生成
- 顔イラストを集めてきて学習 → 顔イラストを自動生成
DCGAN-tensorflow
- TensorFlowを用いた実装
- READMEに書いてある通りに実行すれば簡単に試せる
試してみた
DCGAN-tensorflowで自動画像生成をお手軽に試す - Qiita
- 付属のサンプルを実行
- セレブ顔のデータセットをダウンロード → 学習
- 「セレブっぽい顔」の画像を生成
何か自前データを食わせてみたい
スーパークエスト
友人とプライベートでつくった放置系ゲーム
オリジナルのドット絵モンスター画像400枚
これをDCGANに食わせて、新しいドット絵モンスターを自動生成できないか?
ドット絵なので生成すべき画素数は少ない
これは結構いい題材なのでは・・・?

やってみた
データセットの前処理
- ドットを1x1に正規化したりとか
- 詳細は割愛
DCGAN-tensorflowに食わせる
- 基本的にはフォルダに置いて指定するだけ
- ちょっとハマりどころもあったけど詳細は割愛 1
途中経過を見ていきましょう
epoch1
(なんかバグってる・・・?)
epoch3
epoch5
(なんか出てきた・・・!)
epoch16
epoch24
epoch29
epoch49
epoch133
(何かになりつつある・・・!?)
epoch199
ここらへんまで学習は順調に見えた

しかし・・・
epoch299
epoch399
epoch499
epoch599
同じような生成結果が目立つようになってきた
epoch699
同じような生成結果が目立つようになってきた
epoch799
どうやら過学習してるっぽい・・・
ここらへんでやっと気づきました
今回の試みは「失敗」ということに・・・
うまくいってた事例と何が違ったのか?
セレブ顔生成
学習データセット:セレブの顔 20万枚
- いずれも目があって鼻があって口がある
- 肌の色に多少の違いはあれど真っ赤や緑色はいない



アイドル顔画像生成
学習データセット:アイドル90人の顔画像からそれぞれ120件を抽出した合計10800件
- 顔のみ
- 90人に限定
- 「日本人」かつ「女性」かつ「アイドル」に限定
→ 性別や国籍がバラバラな1万人の顔データではない
顔イラスト生成
データセット:約30万枚の顔イラスト
- 顔だけに限定
- 圧倒的な量
今回自分がやろうとしたことを考えてみる

- 手足がある、尻尾がある、羽がある、顔しかない、武器を持ってる、etc...

- 一つ目、三つ目、目なし、ザク目、兜で隠れている、etc...

- 岩、花、木、火、本、etc...
多様過ぎる
それらを学習するにはデータが少なすぎる
せめてこうだったらよかったかもしれない
- 顔だけ、とか領域を限定する
- スライム系だけとか種族を限定する
- そしてもっと大量にデータセットを用意する
まとめ
- DCGANでゲームアプリのドット絵を自動生成しようとしてみた
- 過学習っぽくなって全然ダメだった
- 問題設定が悪かった & データ量が少なすぎた
- 勉強になったのでやってよかった
-
本記事は5分のLT用の発表資料なので、割愛しました ↩