18
19

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.

DeepDreamを動かすまで

Last updated at Posted at 2015-07-14

DeepDream

Googleの研究者が、画像認識に使われる人工神経ネットワークが見た『夢』と称する画像を公開しました。

画像を入力すると、その画像を解釈し、画像として出力し、さらにそれを解釈し、という伝言ゲームを繰り返すことでとんでもない「夢」を見るニューラルネット。

大変面白そうなので自分のMac で試してみました。

ボルダリングの壁から次々と犬が生えてきます。
boulder_dream.jpeg

そんな DeepDream を動かすまでの流れをメモしました。
環境によってハマりどころは違うとは思いますが DeepDream を動かしたい人の参考になれば幸いです。

追記:Deep Dream のアルゴリズムについて自分なりに解釈したもの を SlideShare に Upload しました。

対象読者

  • コマンドラインはとりあえず使える
  • とりあえず自分の環境で DeepDream を使ってみたい。いじってみたい。
  • CUDAとかつかってガチな環境構築までは目指さない

ちなみに Web から DeepDream するサービスもあるようですので、とりあえず何か自分の画像で試してみたい人はそちらを使ってみるのもおすすめです。
グーグルの人工知能を利用できるWebインターフェースが登場

注意

コマンドの実行は自己責任でお願いします

環境

  • MacBook Pro (Retina, 15-inch, Mid 2014)
  • グラフィック:Intel Iris Pro 1536 MB (CUDA無し)
  • OS:OS X Yosemite 10.10.3

手順概要

これから入れていくもの。

  • brew: Mac にいろいろなソフトをコマンドラインから簡単に入れられるやつ
  • pip: python のライブラリをコマンドラインから簡単に入れられるやつ
  • caffe: DeepDream で使われる「 DeepLearning 」というニューラルネットの学習モデルを扱うプログラム
    • ニューラルネット:人間の脳の神経細胞(ニューロン)網を模して作られた学習モデル
  • deepdream: DeepDream 本体

インストール手順

brew をインストール

brew をまだインストールしていない人は
http://brew.sh/index_ja.html
を見てインストールしてください。

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

とコマンドラインで打てばいいはずです。

caffeに必要なもののインストール

参考:http://caffe.berkeleyvision.org/install_osx.html

brew 周りの更新

brew update
brew upgrade

brew で必要な物を入れる

brew install --fresh -vd snappy leveldb gflags glog szip lmdb python wget
brew tap homebrew/science
brew install hdf5 opencv
brew install --build-from-source --with-python -vd protobuf
brew install --build-from-source -vd boost boost-python
brew install protobuf boost

pip をインストール

/usr/local/bin/easy_install pip

(コマンドが見つかりません、と出る場合 where easy_install 等として探しましょう。)

caffe 本体のインストール

参考: http://qiita.com/Saqoosha/items/d1a10accdef197a9de68

ソースをダウンロードしてくる

git clone --depth 1 https://github.com/BVLC/caffe.git

caffe のディレクトリに移動

cd caffe

pip で必要なライブラリを入れる

python/requirements.txt に必要なライブラリが書かれているので、それを以下のコマンドで入れる。

sudo pip install --upgrade -r python/requirements.txt

Makefile.config をいじる

サンプルファイルをコピー

cp Makefile.config.example Makefile.config

Makefile.config をテキストエディタで開いて、以下を修正していきましょう。

  • # CPU_ONLY := 1 の # を取る。
    • CPU_ONLY := 1 になるはず
  • PYTHON_INCLUDE/usr/lib/python2.7/dist-packages/numpy/core/include となっている行を適宜修正
    • 私の場合 /usr/local/Cellar/numpy/1.9.2_1/lib/python2.7/site-packages/numpy/core/include にしました。
  • PYTHON_LIB を適宜修正
    • 私の場合 /usr/local/Cellar/python/2.7.10_1/Frameworks/Python.framework/Versions/2.7/lib にしました

保存。

おまじない

ls /usr/local/lib/libjpeg.8.dylib してみて、
/usr/local/lib/libjpeg.8.dylib がもし無いようだったら、
sudo ln -s /usr/local/Cellar/jpeg/8d/lib/libjpeg.8.dylib /usr/local/lib/ 等としてシンボリックリンクを貼るといいと思います。

コンパイル

いよいよ caffe をコンパイルしていきます。

make all
make pycaffe
make test
make runtest

runtest の後全部OKが出るか見ましょう。

ディレクトリから出る

cd ..

DeepDream のインストール

お疲れ様でした。あとは DeepDream を入れましょう。

ソースのダウンロード

git clone --depth 1 https://github.com/google/deepdream.git

ディレクトリに移動

cd deepdream

おまじない

brew unlink jpeg
brew link jpeg
sudo pip uninstall pil

最後のはエラーが出ても問題ありません。

必要な python のライブラリをインストール

sudo pip install pyzmq jinja2 protobuf "ipython[notebook]" functools32
sudo pip install pil --allow-external pil --allow-unverified pil

私の環境では素直にPILが入らなかったので、 --allow-external, --allow-unverified をつけてインストールしました。

path を通す

bash を使っている方は ~/.bashrc に、zshを使っている方は ~/.zshrc に以下を追記します。
どちらを使っているかわからない人は echo $SHELL と打つとどっちか分かります。

export PYTHONPATH=~/git/caffe/python/:$PYTHONPATH

上記を適用します。コマンドラインで以下を打ちます。( bash の人は .bashrc に変えてください。)

source ~/.zshrc

DeepDream の実行に必要なニューラルネットのモデルをダウンロード

wget http://dl.caffe.berkeleyvision.org/bvlc_googlenet.caffemodel -P ../caffe/models/bvlc_googlenet/

お疲れ様でした!これで完了です。

実行

deepdream 内で以下を打ちます。

ipython notebook

ブラウザが立ち上がります。
dream.ipynb というリンクをクリックします。

何やら説明とコードが表示されたページが表示されます。
上から順に、コードをクリックした後、上部の再生ボタンを押すと、そのコードが実行されます。
順番に実行していくとDeepDreamできます。

自分の画像を使いたい場合、 img = np.float32(PIL.Image.open('******')) となっている部分の ****** をいじりましょう。

エラーが表示される場合、がんばって直してください←

関連:Deep Dream のアルゴリズムについて自分なりに解釈したもの

18
19
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
18
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?