LoginSignup
3
0

More than 3 years have passed since last update.

五十嵐響子画伯AIを作る その2 ディープラーニングでオムライスを生成する

Last updated at Posted at 2019-05-19

はじめに

前回は五十嵐響子さんの絵のクラスを判別してみましたが、ちゃんとできてるのかよくわかりませんでした。今回は五十嵐響子さんの絵を生成してみようと思います。

DCGANについて

DCGANはGANという生成ネットワークの一種です。

オリジナルのGANはDense層なのに対し、DCGANではConv層を使うことでよりよい画像が生成できるようになっています。

実装

今回は前回用いた6つの画像をすべて使います。ラベルは無視して響子さんが描いたような絵を出すことができるようにすることを目的とします1

とはいえ、kerasでGANを実装したgithubリポジトリがあるので、それを使います。MNISTに合わせたデータに加工してそのまま使います。

keras-GAN

load_dataという関数を定義してMNISTの代わりに響子さんのサンプル画像を読ませます。

追記箇所
def load_data():
    imgdir = "kyoko\\"

    xx = []
    for myimgfile in glob(imgdir + "*.png"):
        myimg = cv2.imread(myimgfile,0)
        # ret,myimg = cv2.threshold(myimg,170,255,cv2.THRESH_BINARY_INV)
        myimg = cv2.resize(myimg,(28,28))
        xx.append(myimg)
    xx = np.array(xx)

    return xx

結果

段々それっぽい画像が生成できるようになってきます。

10エポック
mnist_10.png

500エポック
mnist_500.png

1000エポック
mnist_1000.png

1500エポック
mnist_1500.png

1990エポック
mnist_1990.png

それっぽいというよりほぼ元データみたいなのが多いです。データが少ないので仕方がないです。

損失関数

上がGenerator、下がDiscriminatorです。
loss_1990.png

おまけ

ケチャップオムライス風の色にしてみました。

out.png

響子さんならこんな絵を描きそうな気がする。


  1. クラスラベルを指定して生成できるGANもあります(conditionalGAN)。 

3
0
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
3
0