97
123

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

DCGAN-tensorflowで自動画像生成をお手軽に試す

Last updated at Posted at 2017-05-20

DCGAN は Deep Convolutional Generative Adversarial Networks の略で、超ざっくり言うと畳み込みニューラルネットワークを使って画像生成するアルゴリズムです。元論文以外に、日本語で噛み砕いて説明してくれている記事もたくさんあります。

これを使ってアイドルの顔画像を生成したり、イラストを生成したり、そういうことができるアレです。ググるとおもしろい事例がたくさん出てきます。

そんな**「なんだかすごい」DCGAN、勝手に「使うのも難しそう」**なイメージを持ってたのですが、TensorFlowを用いた実装が公開されてまして、

実はデモを試すだけであれば手順通りにコマンド実行するだけで簡単に実行できます。

以下手元で試した手順のメモです。(2017年5月更新)

##データダウンロード

git cloneしてきて、ダウンロードスクリプトを実行します。

$ python download.py celebA

自分の環境では以下のようなエラーが出ました。

Traceback (most recent call last):
  File "download.py", line 20, in <module>
    from tqdm import tqdm
ImportError: No module named 'tqdm'

tqdmというモジュールがないそうなので、インストール。

$ pip install tqdm

再度 download.py を実行することでデータのダウンロードと解凍が始まります。

ちなみに上記コマンド例の引数にある celebA はセレブ顔生成デモ用のデータを指定するもので、手書き数字を生成するデモを試す場合は

$ python download.py mnist

とします。

##学習

TensorFlowがアクティブな状態で、main.pyを実行するだけ。

(tensorflow)$ python main.py --dataset celebA --input_height=108 --train --crop

MNISTの場合は

(tensorflow)$ python main.py --dataset mnist --input_height=28 --output_height=28 --train

かなり時間がかかるのですが、samples フォルダに途中経過の生成サンプル画像を出力してくれるので、学習完了まで待たなくてもモデルが学習されていく様子を見ることができます。

train_00_0099_celeb.png

(CELEB, Epoch0, 100枚学習)

train_00_0498.png

(CELEB, Epoch0, 500枚学習)

train_00_1098.png

(CELEB, Epoch0, 1100枚学習)

train_01_0033.png

(CELEB, Epoch1)


train_00_0099.png

(MNIST, Epoch0)

train_01_0006.png

(MNIST, Epoch1)

train_06_0041.png

(MNIST, Epoch6)

train_08_0755.png

(MNIST, Epoch8)

学習が進む毎に画像生成の精度が向上していることがわかります。

##テスト

学習完了したら、そのモデルを使用して次のように画像生成を実行できます。

$ python main.py --dataset mnist --input_height=28 --output_height=28
$ python main.py --dataset celebA --input_height=108 --crop

##自前学習データで試す

こうなってくると自前データで試したくなります。別記事につづく(予定)

→ 試しました&書きました: ゲームアプリの「ドット絵」をディープラーニングで自動生成する

97
123
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
97
123

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?