LoginSignup
4
3

More than 3 years have passed since last update.

DCGANを使って上白石萌歌さんらしきものを生成した話

Last updated at Posted at 2019-05-26

今回は前回の続きとして。DCGANを用いて上白石萌歌さんらしきものを生成してみました。

とりあえず、DCGANの簡単な説明をしていきます。

DCGANとは

参考にしたサイトは以下
はじめてのGAN

一文でまとめると、CNNを用いたGAN。
dcgan_generator.png

CNNといってもプーリングはしないで、その代わりストライド2の畳み込みをする。

最後の方で全結合をしないで、Global average poolingを用いる。これを用いることで過学習を防いでくれる。(パラメータがなくなるから)
global_average_pooling.png

Batch Normalizationを用いて学習をはやくしたり、過学習を防ぐ。

GeneratorではReLUとTanhを用いるが、DiscriminatorではLeaky ReLUを用いる。

データセットの用意

スクレイピングとOpenCV2を使いました。詳しくはこちら

実装してみる

以下を参考にしました(というかほぼコピペ....)
5ステップでできるPyTorch - DCGAN
Colabで動かした結果はこちら

このコードは画像サイズが$64\times64$しか許されていないが、他のサイズを用いたいなら、頑張って畳み込みの部分を逆算するとよい。ちなみにDiscriminatorではサイズは辺の長さが半分ずつになっている。

gifの作り方を覚えたので載せておく。
Colavでconvertを使うのには、事前に以下のコマンドを実行することが必要。

!apt-get update && apt-get install imagemagick

以下でgifが作れる。

!convert -layers optimize -loop 0 -delay 10 ./Generated_Image/*.jpg animation.gif

結果

GANの時よりは色合いもろもろを含めてまあ良くなったかなぁという感じ。

ただ、まだまだ求めてるものとは程遠い。

(gifを貼る際に参考にしたサイト)
Qiitaにgifアニメを投稿する僕が考える一番簡単な方法【GIPHY CAPTURE】

前回の結果
GAN_kamisiraisi.png

今回の結果
4900.jpg

うーん、なんか下手な油絵みたいだなぁ。

まだまだ、俺の理想には遠いようだ。

チューニングをしたら良い感じのものができあがるのかなぁ。そもそもデータセットの質が悪いのかなぁ。まだGANの理解があまり足りていないので、もう少し理論の方を見ていきたい。

次回やることは未定ですが、ちょっとデータセットを改善したりGANの勉強をして、リベンジしたい。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3