Raspberry Pi 2 でDeepDreamを動かしてみた

想定している読者の方

  • すでにRaspberry Pi(Model Aでもいいです)を持っていて、基本的なLinux(特にRaspbianなどDebian系のディストリビューション)のコマンド操作ができる方
  • 母艦はなんでもいいので、Raspbian(現時点で2015-05-05版)のイメージディスクを作成してRaspberry Piを起動できる方
  • Raspberry Pi 2をお持ちの方(Raspberry Pi Model B+でも動くとは思いますが、CPU性能的に厳しいかと)

 

Raspbian(Wheezy)のシステムディスクを作って、パーティションを拡張する

本質的な箇所ではないので省略します。

なお、SDカードは8GBだとギリギリなので16GBをおすすめします。Class 10未満のものは避けたほうがいいと思います。

 

Raspbian(Wheezy)をjessieにアップグレード

Release Notes for Debian 8 (jessie), ARMv7 (EABI hard-float ABI) の通りです。慣れた方であれば目を通さなくてもいいかと思います。

 

Caffeのインストール

Caffe | Deep Learning Frameworkubuntu用のインストールガイド(

http://caffe.berkeleyvision.org/install_apt.html)があるので結構参考になります。

 

buildとかいったディレクトリを作る

$ mkdir build

$ cd build

 

Caffeのソースを取ってくる

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

 

まず、必要なパッケージをひたすらインストール

OpenBLAS

多分ATLASでも大丈夫だと思いますが、OpenBLASの方が性能がいいっぽいので。

$ sudo apt-get install  libopenblas-dev

その他必要なパッケージ

ゴリゴリとコンパイルするより、パッケージで入るものは入れてしまったほうが時間の短縮になります(経験済み・・・)。

$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev

$ sudo apt-get install libhdf5-serial-dev protobuf-compiler

pythonのパッケージ

./build/caffe/python/requirements.txt に必要なパッケージ一覧(バージョン情報込み)があるので、

$ apt-cache showpkg foobar

といったコマンドで、バージョンが要件を満たしているものは、ひたすらapt-getでインストールする。

Cython>=0.19.2

$ sudo apt-get install cython

 

numpy>=1.7.1

$ sudo apt-get install python-numpy

 

scipy>=0.13.2

$ sudo apt-get install python-scipy

 

scikit-image>=0.9.3

$ sudo apt-get install python-skimage

以下のパッケージは依存で引っ張られてインストールされる。

matplotlib>=1.3.1

nose>=1.3.0

six>=1.1.0

Pillow>=2.3.0

 

h5py>=2.2.0

$ sudo apt-get install python-h5py

 

networkx>=1.8.1

pyyaml>=3.10

$ sudo apt-get install python-networkx

 

pandas>=0.12.0

$ sudo apt-get install python-pandas

 

protobuf>=2.5.0

$ sudo apt-get install python-protobuf

 

残りのpythonモジュールはバージョン違いなどでパッケージでいれられないので、pipでインストールする

# curl -kL https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python

以下のパッケージがインストールされるように、

./build/caffe/python/requirements.txt

を編集。(多分編集しなくても平気)

ipython>=3.0.0

leveldb>=0.191

python-dateutil>=1.4,<2

python-gflags>=2.0

 

# pip install -r python/requirements.txt

 

後で使うので入れとく

# pip install "ipython[notebook]"

 

ソース・ヘッダーなどをjessieに合わせる

これをしないと、後でエラーになる

 

  1. ヘッダーなどの位置合わせ

    Optimize build process on debian jessie · Issue #2347 · BVLC/caffe · GitHub

  2.  DB周りの調整

    caffe on jetson tk1 · Issue #1861 · BVLC/caffe · GitHub

    src/caffe/util/db_lmdb.cppの定数変更
    const size_t LMDB_MAP_SIZE = 1099511627776; // 1 TB
    の定数を
    2^29 (536870912)
    に変更

 

Caffeのコンパイル

$ cp Makefile.config.example Makefile.config
$ vi Makefile.config

Raspberry PiのVideocore IVはGPUを演算に使えないのと、今回はOpenBLASを使っているので、適当なエディターで編集する。

 

 (抜粋)

# CPU-only switch (uncomment to build without GPU support).
CPU_ONLY := 1

# BLAS choice:
# atlas for ATLAS (default)
# mkl for MKL
# open for OpenBlas
BLAS := open

 

コンパイル

$ make all -j4
$ make test -j4
$ make runtest
$ make pycaffe

 

 テストをパスしたら、あともう少し。

 

モデルを取ってくる

wgetとかで下記モデルをダウンロード

http://dl.caffe.berkeleyvision.org/bvlc_googlenet.caffemodel

buid/caffe/models/bvlc_googlenet

にコピー

 

DeepDream動かすよー

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

$ cd deepdream-master

$ export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH
$ ipython notebook

GUIの場合この時点でブラウザが立ち上がる。

 

「再生ボタン」っぽい黒三角をクリックして、「青空に雲」の絵まで来てエラーがなければ、OK。あとはのんびりグロい絵になるのを眺める。

お疲れ様でした。

 

本文中に明記していないけど参考にしたサイト)

 

勉強になるスライド(読むと理解が深まる)

 

VPSから引っ越し中です

思うところがあり、某VPSで動かしていたWordPressから引っ越し中です。

しばらく、画像が表示されなかったりすると思います。ボチボチと直しますのでお付き合いくださいませ。

 

基本的にはRaspberry Piについて書きますが、それ以外のガジェットものやらも扱うかもしれません。

 

Raspberry Jam Tokyo #4 at KDDI Web Com. 開催のお知らせ

Japanese Raspberry Pi Users Groupで、Raspberry Jam Tokyo #4 at KDDI Web Com.を開催いたします。

日時:12/7(土曜日) 12:30開場

アンカンファレンス方式ですので、Raspberry Pi自慢をしたい方、こういうふうにRaspberry Piで遊んでいます、などなど、とにかく喋りたい方が発表する場です。もちろん、聴くだけでも構いません。お気軽にご参加ください。

参加表明および詳細は、下記connpassサイトよりお願いいたします。

http://connpass.com/event/3923/

”Raspberry Pi[実用]入門――手のひらサイズのARM/Linuxコンピュータを満喫!” 増刷となりました

おかげ様で、”Raspberry Pi[実用]入門――手のひらサイズのARM/Linuxコンピュータを満喫!”(技術評論社刊)が増刷となりました。これもひとえに、ご購入いただきました皆様の御蔭です。

また、一執筆者としても望外の喜びです。ありがとうございます。

Raspberry Pi自体も出荷数が200万台を超えたそうです。

本書が、Raspberry Piを使いこなす一助となれば幸いです。

Maker Faire Tokyo 2013(11/3,4)に出展します

直前の告知となり恐縮ですが、Japanese Raspberry Pi Users GroupでMaker Faire Tokyo 2013に出展致します。

ブースは日本科学未来館1FのF-11です。すぐお隣がRSコンポーネンツ様なのでわかりやすいと思います。

なお、プレゼンテーションも11/4の12:30-12:50に行います。ちょうどお昼時ではありますが、聴きに来ていただけると嬉しいです。

また、Maker Faire Tokyo 2013開催キャンペーンとして、私どもUsers Group有志で執筆した「Raspberry Pi[実用]入門」のKindle版、技術評論社電子書籍版の割引を2013年11/1~11/14の間行います。ぜひこの機会にお買い求め下さい。

技術評論社様電子版(PDF形式)

https://gihyo.jp/dp/ebook/2013/978-4-7741-5884-6

Kindle

 

Maker Faire Tokyo 2013

OSC 2013 Tokyo/Fallへのご来場ありがとうございました

今さら感はありますが、OSC 2013 Tokyo/Fallへご来場いただきましてありがとうございました。

2日目はあいにくの雨模様となりましたが、セミナーに多くの皆様に来ていただき、感謝しております。

一時期のようなRaspberry Piへの熱狂は少し一段落した感がありますが、相変わらず興味を持たれている印象を展示ブースでご案内しながら感じました。

11月、12月と2ヶ月連続でJapanese Raspberry Pi Users Group主催でRaspberry Jam #3, #4の開催(後日投稿します)もありますので、興味がございましたらご参加下さい。

ModMyPiで買い物

2連続で買い物エントリーです。

以前、Raspberry Pi Model Aを買ったのですが、ケースを買う機会を逃してました(送料がかかるのでどうせなら他の品物を買うついでに買いたいなぁと)。

今回、Raspberry PiのSDカードスロットに収まるMicroSDカードの変換アダプターと、Raspberry Pi用カメラモジュールを固定するアームを買うついでに、PibowのRaspberry Pi Model A用ケースをModMyPiから購入しました。

実は、Raspberry Piを5台持っているのに、共同購入したり、日本国内品薄状態の時に人柱でNewITという会社から購入してたりで、ModMyPiから買うのは初めてでした。

以前から「ModMyPiは発送・到着が早い」というのは聞いていたのですが、日本時間で9/3のお昼12時過ぎ(現地時間で9/3の午前3時過ぎ)にオーダーして、自宅には9/7のお昼すぎに届きました。早いですねー。梱包もしっかりしてました。

という訳で、早速Pibowのケース組み立てました。GPIOポートにそのままアクセスできるのと、カメラモジュールの配線が通るように穴が空いているのがポイント高いですね。ちなみに組み立てには小さい治具がついてくるのでドライバーは不要です。

 

Shopping at ModMyPi

ケースの上にあるのが、カメラモジュールのアームです。3.5mmジャックに挿して固定するタイプです。実際にはアームの先にプラスチック製のワッシャーとナットでカメラモジュールを固定します。

ケースの横にある小さいパーツがMicroSDカード変換アダプターです。