PC ディープラーニング 画像処理

Neural Compute Stick 2をWindows10で動作確認

更新日:

スポンサードリンク

はじめに

DeepLearningをアクセラレータで動かせると噂のNeural Compute Stick 2のサンプルをWindows10で動かしたのでそこまでの道のりをメモしておきます。このNeural Compute Stick2はUSBメモリのような見た目で実際USBポートに指して使います。簡単に外付けで使えるのでハードウェア的には非常に楽です。

最終的には顔認識や人検知、ポーズ推定、セグメンテーションのサンプルを動かしてみました。

導入

OpenVINOのインストール

公式ページのWindows10用のインストールガイドのページを参考にしました。

まずはOpenVINO ToolKitをインストールします。ここの個所に沿ってインストールを進めていきます。途中でVisual Studio 2017やCMake、Pythonをインストールする必要があります。かなり事細かに書いてあるので詳細は公式ページを参照してください。

環境変数の設定

下記のパスを通します。インストール先は各自異なる場合があるので存在するフォルダか確認してください。

C:\Program Files (x86)\IntelSWTools\openvino\opencv\bin
C:\Program Files (x86)\IntelSWTools\openvino_2019.1.087\openvx\bin
C:\Program Files (x86)\IntelSWTools\openvino_2019.1.087\inference_engine\bin\intel64\Release

OpenVINOのデモ

こちらのデモが動けばOpenVINOのセットアップは完了です。車とそのナンバープレートを検出するデモが動きます。

C:\Program Files (x86)\IntelSWTools\openvino_2019.1.087\deployment_tools\demo

フォルダにあるdemo_security_barrier_camera.batをたたくと色々セットアップしながら動きます。とりあえず動くかどうかはここで確認できます。

ドライバのインストール

これまではNCS2無しで動いていましたが、これを使うにはドライバーをインストールする必要があります。こちらも以下の公式ページを参照してください。

OpenVINOをインストールした下記フォルダのMovidius_VSC_Device.infファイルを右クリックからインストールします。

C:\Program Files (x86)\IntelSWTools\openvino_2019.1.087\deployment_tools\inference_engine\external\MovidiusDriver\Movidius_VSC_Device.inf

デモのビルド

下記フォルダにデモのプロジェクトファイルが揃っています。ALL_BUILD.vcxprojを開いてReleaseモードでビルドしました。

C:\Users\(ユーザ名)\Documents\Intel\OpenVINO\inference_engine_samples_build_2017

ビルドが無事終わると以下のフォルダに実行ファイルが出来上がると思います。

C:\Users\(ユーザ名)\Documents\Intel\OpenVINO\inference_engine_samples_build_2017\intel64\Release

モデルファイルのダウンロード

DeepLearningのデモを動かすためにはトレーニング済みのモデルが必要になります。
OpenVINOをインストールしたときにダウンローダが入っているのでそれを使います。ドキュメントは下記リンク先です。

こちらの公式ページを参照していくとダウンロード先が紹介されているのでそちらに飛びます。

ダウンローダの詳細はこちらになります。

サンプルはいくつかありますが、今回downloaderですべてダウンロードしました。コマンドプロンプトを開いて実行します。python と打った後に、downloader.pyをコマンドプロンプトにドラッグドロップすればパスがそのまま書き込まれるので引数に「--all」としてすべてダウンロードします。引数に関してもヘルプ「-h」で見てもいいですし、GitHubのドキュメントにも書いてあります。

python "C:\Program Files (x86)\IntelSWTools\openvino_2019.1.087\deployment_tools\tools\model_downloader\downloader.py"  --all

直接download.pyのディレクトリまで移動すれば長いパスを入れる必要はありません。念のため。

デモの実行

先ほどビルドしたフォルダとモデルファイルをダウンロードしたフォルダを開きます。私は以下のフォルダに保存されました。

C:\Users\(ユーザ名)\Documents\Intel\OpenVINO\inference_engine_samples_build_2017\intel64\Release

顔認識

顔認識のプログラムのinteractive_face_detection_demo.exeを動かしてみました。40FPS前後のフレームレートで動いています。

これには以下のコマンドを実行しました。パスは適宜変更しています。自分はファイルをドラッグドロップしながらフルパスで実行しました。引数のmはモデルファイルのパスで、iは対象ファイルのパス、dはデバイスのパスでNCS2の場合「MYRIAD」を指定します。ヘルプからもある程度確認できます。

interactive_face_detection_demo.exe ^
-m face-detection-retail-0004-fp16.xml ^
-i [動画ファイルパス] ^
-d MYRIAD

人検出

object_detection_demo_ssd_async.exeで人検出を試しました。7FPSと先ほどの顔認識よりは処理速度は下がってしまいました。

object_detection_demo_ssd_async.exe ^
-m person-detection-retail-0013-fp16.xml ^
-i [動画ファイルパス] ^
-d MYRIAD

ポーズ推定

human_pose_estimation_demo.exeを動かしました。処理速度は4FPSくらい。やや処理が重いように見えます。

human_pose_estimation_demo.exe ^
-m human-pose-estimation-0001-fp16.xml ^
-i [動画ファイルパス] ^
-d MYRIAD

セグメンテーション

segmentation_demo.exeを動かしました。画像1枚ですがセグメンテーションは処理に10秒程度かかりました。こちらはどうしてもリアルタイム処理は厳しいように見えます。

segmentation_demo.exe ^
-m semantic-segmentation-adas-0001-fp16.xml ^
-i [bmpファイルパス] ^
-d MYRIAD



エラー対策

[VPU] Unsupported network precision : FP32

VPU(NSC2)で動かす場合FP16しか対応してないのでモデルファイル作成・ダウンロードのときにオプションFP16版をダウンロードするようにして、実行時の引数にはそれを指定するようにします。ダウンロード時は「--all」を指定して入れば問題ないはずです。

まとめ

NCS2のサンプルをWindows10で動かしてみました。高速に動く処理やそうでないものもありましたが、さらに高速に動かすには2本、3本と複数準備する必要があるように思えます。

スポンサードリンク

-PC, ディープラーニング, 画像処理

Copyright© めめんと , 2019 All Rights Reserved Powered by AFFINGER5.