DockerでDeepDreamを利用してみた

米Google社開発のDeepDreamは人工知能を利用して与えられた写真などから特定のパターンを見つけ出し、幻想的な画像を作成するプログラムです。機械学習のフレームワークである「Caffe」で動作します。ここでは、DockerにおけるDeepDreamについて解説していきます。

01: 環境

  • Windows 7 Professional
  • VirtualBox 5.1.22
  • Vagrant 1.9.4
  • Vagrant: Ubuntu 14.04.5 LTS

02: ポートフォワーディング

Vagrantfileに下記内容を追記してVagrantを起動する。

Vagrantfile


  # ポートフォワーディング
  config.vm.network "forwarded_port", guest: 8888, host: 8888

  # メモリーの割り当て
  config.vm.provider "virtualbox" do |vb|
  #   # Display the VirtualBox GUI when booting the machine
  #   vb.gui = true
  #
  # Customize the amount of memory on the VM:
  vb.memory = "2048"
  end
  #
  # View the documentation for the provider you are using for more
  # information on available options.

03: インストール

bash


# DeepDreamのインストール
$ docker run -i -t -v ~/shared:/workspace/shared:ro bvlc/caffe:cpu /bin/bash

04: 動作確認

「<Vagrantを動作させたマシンのアドレス>:8888」にアクセスする。 「Upload」ボタンを押下して、DeepDreamを試したい画像を選択する。 「Upload」ボタンを押下する。 「dream.ipynb」を選択する。 「sky1024px.jpg」をアップロードしたファイル名で書き換える。今回は「test.jpg」で書き換える。 赤枠の実行ボタンを押下する。DeepDream処理はそれなりに時間がかかる。途中の処理結果が順次表示されるので幻想的な画像が作られる過程を確認する。

入力画像

元画像の「1280×800」のサイズでは動かなかったので、「640×480」まで縮小して実行しました。

出力画像