LoginSignup
4

More than 5 years have passed since last update.

RaspberryPi3 (Raspbian Stretch) + Intel Movidius Neural Compute Stick NCSDK v2.05 のインストール

Last updated at Posted at 2018-07-12

◆ はじめに

世の中の大半の人にとっては退屈極まりないネタのため、簡素に書き下そうと思います。
NCSDKがメジャーバージョンアップして3〜4ヶ月が経過したので、そろそろ安定したかな? という軽いノリで導入にチャレンジしました。
したら速攻でドップリ首まで沼につかってしまった、という話。
甘かった…。激甘でした…。
一発でうまくいった例しがないので。

Intel公式のインストール手順にのっとってそのままインストールを進めると、かなりの箇所でエラーが発生してまともにインストールができません。
v1.12.00 の頃とは、シェルスクリプトの動作が大きく変更されているようです。
もしかすると、 v2.05 固有の不具合かもしれません。
Intel非公式の手順ですので、自己責任でお願いします。

まともにインストールできなくて困っている方を救済することができれば嬉しいです。
Tome_at_Intel よ、早く修正してくれ。

併せてGithub側の活用事例をv2対応しました(v2.05版)
RaspberryPi3(Raspbian Stretch) + Neural Compute Stick(NCS) + RealSense D435 + MobileNet-SSD

◆ 手順

英語ですが、一応、公式Forumにも投稿しておきました。
【その1】 Procedure for installing NCSDK v2.05.00.02 to RaspberryPi3(Raspbian Stretch)
【その2】 Procedure for "make examples" NCSDK v2.05.00.02 RaspberryPi3(Raspbian Stretch)/Ubuntu16.04
164.png

パッケージのアップデート
$ sudo apt update
$ sudo apt upgrade
SWAP領域の拡張
$ sudo nano /etc/dphys-swapfile

CONF_SWAPSIZE=100
↓
CONF_SWAPSIZE=2048

$ sudo /etc/init.d/dphys-swapfile restart swapon -s
NCSDKのインストール時パラメータの調整
$ sudo apt install python-pip python3-pip
$ cd ~
$ git clone -b ncsdk2 http://github.com/Movidius/ncsdk
$ cd ncsdk
$ nano ncsdk.conf

#MAKE_NJOBS=1MAKE_NJOBS=1
protobufのバージョンアップやスクリプトでまともに入らないパッケージの手動導入とNCSDK本体のAPIをビルド
$ sudo apt install cython
$ sudo -H pip3 install cython
$ sudo -H pip3 install numpy
$ sudo -H pip3 install pillow
$ sudo pip3 uninstall tensorflow
$ cd ~
$ wget https://github.com/google/protobuf/releases/download/v3.5.1/protobuf-all-3.5.1.tar.gz
$ tar -zxvf protobuf-all-3.5.1.tar.gz
$ cd protobuf-3.5.1
$ ./configure
$ sudo make -j1
$ sudo make install
$ cd python
$ export LD_LIBRARY_PATH=../src/.libs
$ python3 setup.py build --cpp_implementation 
$ python3 setup.py test --cpp_implementation
$ sudo python3 setup.py install --cpp_implementation
$ sudo ldconfig
$ protoc --version

$ cd ~
$ wget https://github.com/lhelontra/tensorflow-on-arm/releases/download/v1.8.0/tensorflow-1.8.0-cp35-none-linux_armv7l.whl
$ sudo pip3 install tensorflow-1.8.0-cp35-none-linux_armv7l.whl
$ rm tensorflow-1.8.0-cp35-none-linux_armv7l.whl

$ cd ncsdk
$ make install
OpenCV3.4.1のdebパッケージによる導入
$ cd ~
$ sudo apt install libjasper1 libcanberra-gtk0
$ wget https://github.com/PINTO0309/OpenCVonARMv7/raw/master/libopencv3_3.4.1-20180304.1_armhf.deb
$ sudo dpkg -i libopencv3_3.4.1-20180304.1_armhf.deb
$ rm libopencv3_3.4.1-20180304.1_armhf.deb

ココのタイミングでUSBポートにNeural Compute Stickを接続しておかないと、Fatalエラーでビルドが失敗する。

Neural_Compute_Stickのサンプルプログラムビルド(Tensorflow1.8.0じゃないと通らない)
$ cd ncsdk
$ make examples -j1
SWAP領域のデフォルトサイズへの縮小
$ sudo nano /etc/dphys-swapfile

CONF_SWAPSIZE=2048
↓
CONF_SWAPSIZE=100

$ sudo /etc/init.d/dphys-swapfile restart swapon -s

◆ まとめ

毎度のことながら、 Intelのスクリプトがヤブい感じですが、どうも、 Tensorflow 1.7.0 もかなり不安定なようです。
Githubに面倒くさそうな issue が挙がっていました。

テンソルフローをインポートするときの未定義シンボル
Undefined symbol when importing tensorflow #19331

◆ 2018.10.13追記

公式フォーラムで騒ぎまくったおかげで、NCSDK v2.08.01 でインストール用スクリプトが一部改善されたようです。
Tensorflow 1.9.0 がデフォルトでインストールされます。
が、本日時点の最新は、Tensorflow 1.11.0 ですので、自分で最新版を導入しなおしたほうが良いです。

Tensorflowのアップグレード
$ sudo pip2 install tensorflow --upgrade
$ sudo pip3 install tensorflow --upgrade

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
4