ラズベリーパイ3 Model Bに Movidius NCS の環境をセットアップ


Movidius NCSと各種フレームワークの学習モデルを使って自己完結型の推論実行環境を作ってみます。

NCSでは以下のOSとフレームワークがサポートされています。

OS:

Ubuntu 16.04(x86_64 コンピュータ or VirtualBox)、Stretch desktop(Raspberry Pi 3 Model B)

フレームワーク:

TensorFlow、Caffe


現時点(2018/09/07)のRaspbian Stretch Desktop環境でプレインストールされているPython3のバージョンは3.5.3でした。ラズベリーパイの環境チェック いろいろ

ラスパイのセットアップ時にswapの拡張などを行っておいてください。


TensorFlowやCaffeの依存ライブラリー・パッケージをインストールしておく

$sudo apt-get install libblas-dev liblapack-dev python3-dev libatlas-base-dev gfortran python3-setuptools

 

$sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
$sudo apt-get install --no-install-recommends libboost-all-dev

$sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

OpenCV 3.4をインストール

$wget https://github.com/mt08xx/files/raw/master/opencv-rpi/libopencv3_3.4.0-20180115.1_armhf.deb

$sudo apt install -y ./libopencv3_3.4.0-20180115.1_armhf.deb

$sudo ldconfig


Tensorflow 1.4.1 for Python3.5.3をインストール

$sudo apt-get install libblas-dev liblapack-dev python3-dev libatlas-base-dev gfortran python3-setuptools

$sudo pip3 install https://github.com/lhelontra/tensorflow-on-arm/releases/download/v1.4.1/tensorflow-1.4.1-cp35-none-linux_armv7l.whl

$sudo apt-get install python3-h5py

 

注:numpyはデフォルトでは1.12が入っていますが、1.13にアップグレードされます。

 

確認

 


Movidius NCS SDK(ncsdk)をインストール

GitHub

サイトには2つのバージョンが存在します。1.12.00.01と2.05.00.02。

ncsdk2は複数のgraphバイナリーがサポートされるようです、APIも大幅変更されたみたいで1との互換性はないそうです。

できたてみたいで不安なので旧バージョン(v1)でやってみます。

1.12.00.01をGitHubから取ってきて、シェルスクリプトでインストール。

$wget https://ncs-forum-uploads.s3.amazonaws.com/ncsdk/ncsdk-01_12_00_01-full/ncsdk-1.12.00.01.tar.gz

$tar zxvf ncsdk-1.12.00.01.tar.gz

$cd ncsdk-1.12.00.01

$./install.sh

 

OpenCV用のインストール用シェルスクリプトもありますが、済んでるのでパス。

(スクリプトでは3.3.0がインストールされるようです、不具合が出たらその時点で対処しましょう)

約1時間くらいでインストール終了。

なんかする時は新しくターミナルを開いて、そこで実行してね……だそうです。


TensorFlowサンプル実行

cd ncsdk-1.12.00.01/examples/tensorflow/inception_v3
$python3 run.py

NCSを挿してないと文句を言われます、当然ですが。

98.8%位の確率で「electric guitar」、ほぼ正解ですね。


Movidius NCSは大きいので、直挿しすると他のポートがすべて使えなくなります。

延長ケーブルを使いましょう。

 


消費したディスク容量

before

after

1.5GBくらい増えてます。

 


Caffe

ncsdkのついでにインストールされるようです、多分。

$sudo apt-get -y install caffe-cpu

でも、このままだとCaffeはnumpyのバージョン違いで動かないと思います。

 

numpyをアップグレードします。

$pip3 install --upgrade numpy

1.15.1にアップグレードされますが、TensorFlowは問題なく動きます(^^)。


graphバイナリーファイルの作成

Movidius NCSで推論を実行するには、TensorFlowかCaffeの学習済みモデルをNCS用のgraphバイナリーに変換する必要があります。

他の学習済みモデルの場合は

学習済みモデル
学習済みモデル ->TensorFlowかCaffeのモデルへ変換 ->NCS用graphバイナリーファイル作成
学習済みモデル



 

Darknetなどのモデルの変換についてはこのページ参照

 

モデル間での相互変換(クロス・フレームワーク・ソリューション…..というそうです)。

MMdnn

 

Movidius NCS用graphバイナリ作成の手引き

 


Next

カメラモジュールと連携してリアルタイム物体検出ができるのか?

(OpenCVとの相性でWebカメラなら簡単にできるようだが…..)

 

転移学習やファインチューニングの独自モデルでやれるのか?

 


Appendix1

Caffe Model Zoo

Caffe2 Model Zoo

Neural Compute Application Zoo (NC App Zoo)

Tensorflow detection model zoo

TensorFlow Model Zoo

MXNet Model Zoo

 

 


 

Be the first to comment

Leave a Reply

Your email address will not be published.


*