OpenVINOのセットアップ(Windows 10 with NCS2)

NCS2 intel

前提条件

こちらの記事ではRaspberry PiにOpenVINOとNCS2のセットアップする手順について書きました。今日はWindows 10で同じことをしてみようと思います。手元の環境は以下の通りです。

  • Windows 10(64bit) バージョン1909
  • Core-i5-4210U
  • メモリ 8GB

システム要件には「6th-10th Generation Intel® Core™ processors」とありましたが、上記環境でも動作しています(自己責任でお願いいたします)。

Visual Studioのインストール

Visual Studioをインストールします。

Visual Studio Tools のダウンロード - Windows、Mac、Linux 用の無料インストール
Visual Studio IDE または VS Code を無料でダウンロードします。 Windows、Mac で Visual Studio Professional または Enterprise エディションをお試しください。

インストール途中でどの環境をセットアップするか尋ねられますので、C++を含めるようにしておきましょう。

Cmakeのインストール

Cmakeをインストールします。こちらからダウンロードしましょう。

Download | CMake

ただし、今回初めてVisual Studioをインストールされた場合はバージョンが2019になりますが、この場合Cmakeのバージョンは3.14が指定されています。旧バージョンの入手先はこちらです。

Index of /files

私は上記リンク先からcmake-3.14.7-win64-x64.msiを入手しました。インストール実行時「Add Cmake to the system PATH…」のいずれかを選択します。通常は「for the current user」を選んでおけば良いでしょう。

Python3.6のインストール

以下のサイトからダウンロードします。私は3.6.1をダウンロードしました。

Python Releases for Windows
The official home of the Python Programming Language

インストーラーを実行します。最初の画面で「Add Python3.6 to PATH」にチェックをつけて「Install Now」をクリックし、インストール完了後「Disable path length limit」を選択してインストーラーを終了します。環境変数を読み込ませるため、ここでPCを再起動しておきましょう。

再起動後、コマンドプロンプトで下記コマンドを実行します。

Python -V

「Python 3.6.1」と表示されればOKです。

OpenVINOのインストール

下記サイトからインストーラーをダウンロードします。

https://software.intel.com/en-us/openvino-toolkit/choose-download/free-download-windows 

「Register & Download」から必要事項を入力して「Submit」をクリックします。 Companyは必須入力ですが、IndとかDevとか何か入力しておけばOKです。

ダウンロードしたファイル名は「w_openvino_toolkit_p_<version>.exe」になります。私がダウンロードしたファイルは「w_openvino_toolkit_p_2020.1.033.exe」でした。インストーラーの実行時に選択が必要なのは「情報収集に同意・不同意」だけで、あとは規定値のままインストールを進めます。インストールが完了すると公式ドキュメントのページが表示されます。

Install Intel® Distribution of OpenVINO™ toolkit for Windows* 10 - OpenVINO™ Toolkit

インストール完了後に必要なコマンドを順に記載します。コマンドプロンプトを起動してください。

cd C:\Program Files (x86)\IntelSWTools\openvino\bin\

setupvars.bat

このバッチファイルでパスを通しますので、OpenVINOを利用する際は毎回実行が必要です。環境変数に書き込む方法もありますので、お好みでお選びください。

cd C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\model_optimizer\install_prerequisites

install_prerequisites.bat

OpenVINOが対応するフレームワークに応じ必要なファイルをダウンロード・インストールします。上記コマンドでは全フレームワーク分を一括ダウンロードします。必要に応じセットアップしたい場合は公式ドキュメントの「Option 2: Configure the Model Optimizer for each framework separately:」を参照してください。

cd C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\demo\

demo_squeezenet_download_convert_run.bat

セットアップが正常に行われたことを確認します。上記を実行し「Classification demo completed successfully」と表示されればOKです。では、デモを実行してみましょう。

demo_security_barrier_camera.bat

このような画像が表示されれば成功です!

Detectionresults
Detectionresults

NCS2ドライバのインストール

公式ドキュメントはこちらです。

https://software.intel.com/en-us/articles/get-started-with-neural-compute-stick 

冒頭プラットフォームごとにYouTubeのリンクがありますが、いずれも死んでいて参照できませんでした。

こちらの手順はあっさりしています。OpenVINOのインストールフォルダにあるMovidius_VSC_Device.infを右クリック⇒「インストール」を選択するだけです。

iniファイルのありかはこちらです。

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

早速動作確認しましょう。

cd C:\"Program Files (x86)"\IntelSWTools\openvino\deployment_tools\demo

.\demo_security_barrier_camera.bat -d MYRIAD

先ほどと同じ車の画像が表示されたら成功です!

NCS2を使ってみて

冒頭に記したスペックのマシンで同じスクリプトを「NCS2あり」「NCS2無し」で実行し、負荷をタスクマネージャーで確認しました。体感的にはNCS2無し、つまりノートPC単体で実行した方がややスムーズですが、NCS2ありのときと比べCPU使用率が25-30%上昇しました。

Core-i搭載マシンではNCS2をあえて使わなくても良いように思いますが、裏を返せばRaspberry Piのように非力なマシンでは絶大な威力を発揮すると言えるでしょう。

サンプルのビルド

C:\Users\%userprofile%\Documents\Intel\OpenVINO\inference_engine_samples_buildにある「Samples.sln」をVisual Studioで開き、「ALL_BUILD」をReleaseモードでビルドします。

VisualStudio
VisualStudio

ビルドが終わると、上記ディレクトリに「intel64」というフォルダが生成され、その中の「Release」直下にビルドしたファイルが保存されています。

Visual Studioを終了させ、コマンドプロンプトに戻りましょう。

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

推論で利用するモデルファイルですが、都度ダウンロードするのは面倒なので一括でダウンロードできる手段が用意されています。しかし、一括ダウンロードにはかなり時間がかかりますので、時間に余裕があるときに実行してください。私の環境では2時間半かかりました。

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

コマンド中の「2020.1.033」はインストールしたバージョンに合わせてください。Enterキーを押下した瞬間からモリモリダウンロードが始まります。ゆっくりお風呂に入ってご飯を食べて、イッパイ飲んでも多分まだ終わっていません。。。

終わりに

こうやって文書にしてみると、意外とボリュームがあったので驚きました。本当は推論を行うコードにも触れたかったのですが、それはまたいずれかの機会にしようと思います。さて、最近情シス業務とは程遠いことばかりやっていました。私は一体何処へ向かおうとしているのでしょう??

Intel Neural Compute Stick 2 - NCS 2 ニューラル ディープラーニング USB スティック
Intel Neural Compute Stick 2 - NCS 2 ニューラル ディープラーニング USB スティック

コメント