Python
機械学習
DeepLearning
Keras
GAN

DCGANでガッキー生成を試みた

最近GANの勉強をはじめました。
GANの勉強には以下が参考になりました。

今さら聞けないGANシリーズ
この方が書かれているGANのシリーズは本当にわかりやすく、分かっていない人を分からせる書き方をしてくれており、理解の助けになりました。

DeepLearningモデルDCGANでアイドルの顔画像を生成してみた
こちらもとても参考になりました、というか今回の実験の手法やソースコードはこちらの方のものをほぼそのまま拝借させていただきました。
こちらはデータのクローリング方法も記載してくれており、大変参考になりました。

実装

上記の「DeepLearningモデルDCGANでアイドルの顔画像を生成してみた」をほぼそのまま拝借しましたので、ここでは割愛させていただきますが、opencvの顔認識特徴量ファイルhaarcascade_frontalface_alt.xmlの場所が私の環境では
/Users/*****/.pyenv/versions/anaconda3-4.1.1/lib/python3.5/site-packages/cv2/data/haarcascade_frontalface_alt.xml
にありました。

データセット

集めたガッキー画像は以下の45枚です。
スクリーンショット 2018-07-09 23.41.49.png

 結果

1epoch

ガッキー誕生

100epoch

500epoch

カラフルは砂嵐

1000epoch

輪郭っぽいものが見えてきた

1200epoch

前髪が目にかかってる感じ?

1350epoch

犬的なものに変化しはじめた?

1400epoch

禿げた...

これ以上は変わり果ててゆくガッキーは見たくなかったので、ここで処理を強制終了しました。

まとめ

  • いくらなんでもデータセット45枚は少なすぎると思いました。もっと真面目にデータを集めます。 (過学習?)
  • 処理に時間がかかりすぎました。(上記までを生成するのに10時間以上かかりました。) 処理速度をあげる方法を検討したい
  • 禿げはじめてしまった原因は少ないデータ数の中に前髪をあげている画像がちらほらあるから?

まずはデータ収集のし直しから。
うまくいったらまた投稿します。

追記(2018/07/16)

以下の方のロジックを参考(丸パクリ)させていただいたら、同じデータセットでも出力に大幅な改善が見られました。
GANについて概念から実装まで ~DCGANによるキルミーベイベー生成~


一番左上とかガッキーっぽい気がする
3000epochまで回しましたが、2000epochくらいからほとんど精度が変わらなかったので、現状の少ないデータではこれくらいが限界なのかなと思いました。

ここまで出力に違いが出た理由は調査中...