目次
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開発記事はこちら
この記事へのコメントはありません。