Movidius で画像認識高速化 for ラズパイ

Movidiusでラズパイでも画像認識高速化が可能に

こんにちは。

AI coordinatorの清水秀樹です。

前回記事でも紹介したラズパイでSSD_Kerasを試した方法に続き、今回は兼ねてからチャレンジしてみたかったMovidiusを使った画像認識の高速化にチャレンジしてみたいと思います。

Movidiusはintelが開発したUSB型のDeepLearning用開発ツールです。

「モビディウス」と読むようです。

当記事は、ラズパイ上でMovidiusを使ったリアルタイム画像認識ができるところまでを紹介します。

Movidiusは安価でラズパイの高速化が可能になるDeepLearningツールなので、興味がある方は是非チャレンジしてみて下さい。

 

Movidiusをインストールする前の注意点として、microSDカードの容量は32GB以上にしましょう。

16GBでは領域が足らずにインストールできません。

しかもインストールの最後の最後でエラーとなるので、それまでインストール作業に費やしてきた時間(約5時間)が無駄になります。

筆者は2回やられました。

ケチらずに32GB以上を準備しましょう。

 

Swapメモリの増強から

Movidiusを使えるようにするためのインストール作業をスムーズに進められるようにするため、Swapメモリの増強から始めましょう。

これを実施しないと、ほぼ100%の確率でインストール中にラズパイがフリーズします。

必ず実施しましょう。

 

tensorflowのインストール

続いて、以下のコマンドでtensorflowをインストールしましょう。

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

10分もあればインストールできます。

 

Movidiusのセットアップ

公式サイトのインストール手順に沿ってインストールしましょう。

非常に簡単にインストールできますが、5時間くらいかかりました。

以下のコマンドでラズパイ上にインストールできます。

mkdir -p ~/workspace
cd ~/workspace
git clone https://github.com/movidius/ncsdk.git
cd ~/workspace/ncsdk
make install

 

make installが完了したら、新しくターミナルを起動して以下のコマンドを入力します。

cd ~/workspace/ncsdk
make examples

このインストールが完了するとOpenCVも同時インストールされます。

ラズパイにOpenCVをインストールする作業は依存関係も含め非常に困難ですが、MovidiusのセットアップはこのOpenCVのインストールも同時にやってくれるので非常にありがたいですね。

OpenCVだけでなく、NumPy、SciPy、scikit-learnも合わせてインストールしてくれます。

 

繰り返しになりますが、この作業は5時間くらいかかります。

寝る直前に、make examples することをオススメします。

 

ちなみに後から知ったのですが、以下のコマンドなら一発で全てインストールできます。

こちらの方が楽ですね。

$ git clone http://github.com/Movidius/ncsdk && cd ncsdk && make install && make examples

 

サンプルの実行

インストールが完了したら、早速サンプルプログラムを動かしてみましょう。

(注意:以下のコマンドはインストール時とディレクトリが違うため注意してください。)

pi@raspberrypi:~/ncsdk/examples/tensorflow/inception_v3 $ python3 run.py
Number of categories: 1001
Start download to NCS...
*******************************************************************************
inception-v3 on NCS
*******************************************************************************
547 electric guitar 0.98828
403 acoustic guitar 0.0077209
715 pick, plectrum, plectron 0.0015087
421 banjo 0.00092602
820 stage 0.00065947
*******************************************************************************
Finished

 

何やら、ギターだと結果が返ってきます。

ソースコードを覗くと参照している画像が分かりました。

なるほどなるほど。

 

カメラ映像からの画像認識

それでは最終目標であるリアルタイム映像からの画像認識にチャレンジしてみたいと思います。

ソースはこちらのサイトに紹介されているソースを使用させて頂きました。

ありがとうございます。

実行結果は見事に映像からの画像認識ができました。

ただ確かに画像認識スピードは早いのですが、あくまでラズパイ単体に比べて圧倒的に早いというだけで、画像の遅れは3秒ぐらいあります。

Movidiusを複数繋げて動かすこともできるようなので、さらなる高速化を目指す場合はそういった手段を検討してみるのも手かもしれませんね。

 

それでまた。

その他のPROTECT KIDS開発記事はこちら

あなたにオススメの記事

コメント

  1. この記事へのコメントはありません。

PAGE TOP