適当にGANやってみた

GANが流行ってたので自分でもちょっとやってみようと思いやってみました。

この記事は、適当にGANやってみたけどやっぱり適当じゃ上手くいかないなってだけの記事なので読む価値は特にないです。

GAN

GANには色々種類があって、次から次へと高性能なGANが登場しています。

今回はDCGAN、PGGAN、StyleGANでアニメキャラの画像生成を行ってみました。

それぞれのGANについての説明は、詳しい説明を書いてくれている人がたくさんいるので、知りたいならそちらを参照してください。

用いた画像

まずはtwitterのアイコン用に作った画像500枚にネットで集めたアイコン画像の計2,000枚強を使って学習させました。

f:id:amanelyric:20190428231103j:plain
アイコン例
この画像集を使って3つともやってみましたがあまり上手くいきませんでした(後述)。

そこで、同じような画風の画像を大量に用意すれば多少は上手くいくかと思い用意したのが、なもり先生がキャラクター原案のゆるゆり、RELEASE THE SPYCE、えんどろ~!の3作品から取得した17,000枚強。まあ、結局上手くいかなかったのですが。

f:id:amanelyric:20190428231632j:plain
画像例

DCGAN

このコードを使って生成しました。
github.com
それぞれの学習結果は以下の通り。

f:id:amanelyric:20190428232608p:plain
アイコン
f:id:amanelyric:20190428232654p:plain
なもり絵
ノイズが多くかろうじてキャラを書こうとしてるのが分かる程度ですね。アイコンの方はキャラかどうか怪しいものも多いですし、お世辞にも上手くいっているとは言えません。

PGGAN

このコードを使って生成しました。
github.com
それぞれの学習結果は以下の通り。

f:id:amanelyric:20190428233910p:plain
アイコン
f:id:amanelyric:20190428234006p:plain
なもり絵
アイコンの画像を最初に見た時、メイドインアビスで6層の上昇負荷で成れ果てとなる時みたいだと思いました。
なもり絵の方は、一応キャラが書いてあるのは分かりますが、ちょっと怖いですね。

StyleGAN

このコードを使って生成しました。
github.com
それぞれの学習結果は以下の通り。

f:id:amanelyric:20190428234310p:plain
アイコン
f:id:amanelyric:20190428234327p:plain
なもり絵
アイコンの方はちょっと歪んでますが、なもり絵の方はそれなりに綺麗にできてますね。と言っても、学習素材まんまって感じであまりやった意味が感じられませんが。

最後に

中身も理解せずただコードとコマンドをほぼコピペしてやっただけなので、ちゃんと理解できるようになりたいと思いつつも能力とやる気が足りず...

そこそこのGPU1枚を使い全て解像度128×128で入出力を行ったのですが、DCGANやPGGANは数時間で学習できたもののStyleGANについては数週間単位になったので注意が必要です。