DeepDream

Google の DeepDream は一時期流行った画像を夢のように奇怪にする技術。Inceptionism: Going Deeper into Neural Networks で解説されている。

Deep Dream Generator のようなサイトもあるが,個人情報を登録しなければならない。自前で実行するには,TensorFlow を使ったミニマルなコードが DeepDream で公開されているので,これを実行するだけである。ローカルマシンで実行した結果(最初はオリジナル,最後は run_deep_dream_with_octaves() を2巡させ,リサイズを省略したもの):

最新の TensorFlow 2.1 でも問題なく実行できた。GPU がなくても十分速い。InceptionV3 モデルをダウンロードするのに数分かかる(Google Colab では数秒)。

コードは Google Colab で実行できる形で書かれている。Jupyter Notebook でも実行できるはずであるが,それ以外のシェルでは次のように書き換えればよい。

import IPython.display as display は削除してよい。

display. を含む行はすべてコメントアウトする。

url = '...' は適宜書き換える。ローカルファイルの場合は例えば url = 'file:///Users/okumura/hoge.jpg' のようにすればよい。

def show(img): のところは次のように直す:

import matplotlib.pyplot as plt

def show(img):
    plt.imshow(img)

あるいは,表示された画像に連番を付けて保存するには,次のようにすればよいであろう:

imno = 0
def show(img):
    global imno
    plt.imshow(img)
    plt.imsave(f"deepdream{imno}.jpg", np.array(img))
    imno += 1

Last modified: