Neural Compute Stickを試してみよう

先日Intelから発売されたMovidius Neural Compute Stickが当社にも入荷しました。

AIによる画像分析、推測に特化したMyriad 2というプロセッサが搭載されています。Myriad 2は、近頃発表されたGoogleのライフログカメラGoogle Clipsや、顔やジェスチャーを認識するDJIのドローン Sparkにも搭載されているそうです。

Movidius Neural Compute Stickは今年7月に米国で発売され、その後今月(2017年10月)に入って、ソフトウェア(SDK)がv1.09.00にアップデートされ、TensorFlowRaspberry Pi 3(OSはRaspbian Stretch desktop)がサポートされました。

SDKの構成は以下の通りです。

  • 学習済みモデルをこの製品上で利用するためのコンパイリングやチューニングのためのコマンド
  • C言語やPython向けのAPIライブラリ

これらを利用して、AI製品のプロトタイピングをするのがこの製品の想定された使い方とされています。

機械学習のフレームワークはCaffeTensorFlowをサポートし、動作環境は、

* Ubuntu 16.04(VirtualBoxも可)
* Raspberry Pi 3 Raspbian Stretch desktop(2017年10月現在最新のRaspbian)

をサポートしています。ただしRaspberry PiとTesorFlowの組み合わせは注意点を後述します。

SDKのインストールはこちらの手順に従って以下二つを行うだけとなっており、簡単です。

* GithubからSDKのリポジトリをダウンロード
* (SDKの中にあるMakefileによる)make

実際やってみるとRaspberry Pi 3へのインストールには2〜3時間かかったように思います。OpenCVのインストールは必須ではないですが、こちらも2〜3時間かかったように思います。いずれにしてもコマンド一つでインストールが行えるようにスクリプトが用意されているため、難しさはありません。

なおTesorFlowは公式にRaspbian Stretchをサポートしていないため、makeではインストールされません。私はlhelontra/tensorflow-on-armを利用させてもらい、Raspberry PiでTesorFlowのサンプルが実行できるようにしました。

これらをインストールする場合、SDカードは8 GBでは容量が不足しますので、16 GBを用意されると良いと思います。

インストールしたら本体を差し込んで、テストプログラムを使って、まず本体との接続確認ができます。そのほかサンプルとして、CaffeやTensorFlowの学習済みモデルや、サンプル画像、推測を行わせるプログラムが用意されているため、それを使って動作を試してみることができます。

CaffeやTensorFlowによる機械学習をされている方は、学習済みモデルをSDKでNeural Compute Stick用にコンパイルして利用できるはずです。

v1.09.00になる前のSDKやPDFなどの情報も使い方の参考になるかもしれません。

今回は最新のSDKにあるexamples/caffe/GoogLeNet/run.pyに手を加えて、Raspberry Pi カメラモジュールの映像をリアルタイムに推測させてみました。

その映像を掲載します。実際には0.13秒程度で1回の推測結果が表示されていましたが、この映像のフレームレートは30fpsですので、実際はこれの4倍程度の時間がかかっています。

推測結果はいくつかの候補が確率と一緒に得られるのですが、1番確率が高いものだけを表示させています。私のスキルは今回初めて機械学習的な何かを動かして見たというレベルですので、ほおと思って見ていました。

今回は前述のカメラモジュールに加えて、Pimoroniの3.5インチタッチディスプレイHyperPixelで撮影映像を確認していましたが、こちらも簡単に使うことができて便利です。

興味がある方はお試しになってみてはいかがでしょうか。

Pocket