OpenVINO (2019.R1) Windows10版のインストールとサンプルのテスト

OpenVINO 2019 R1をWindowsにインストールしたので日本語で手順をまとめておく。

# システム要件の確認
最初に[公式](https://software.intel.com/en-us/openvino-toolkit/documentation/system-requirements)を確認してシステム要件を満たしているか確認してください。

## ハードウェア
- Intel CPU 6th to 8th (Skylake以降)
- Iris® Pro & Intel® HD Graphics (BIOSでOFFにされている場合はONにしてください)

## ソフトウェア
- Windows10 64bit
- Visual Studio 2017 or 2015 (要 C++, MSBuild, Visual Studio Build Tools)
- CMake 3.4 or higher
- Python 3.6.5

あとサンプル確認にWebカメラを利用しているので用意してください。

# インストール手順
公式の[インストールガイド](https://docs.openvinotoolkit.org/2019_R1/_docs_install_guides_installing_openvino_windows.html)に従って行います。

## ダウンロード
ここからWindowsを選んでダウンロードする

- [Choose & Download | Intel® Distribution of OpenVINO™ Toolkit | Intel® Software](https://software.intel.com/en-us/openvino-toolkit/choose-download)

余談ですが、2019.R1からmacOSもサポートしてるみたいです。

## インストール
インストールしてきたw_openvino_toolkit_p_2019.1.087.exeを実行します。
何も変更していなければ

`C:\Program Files (x86)\IntelSWTools\openvino`

にインストールされます。

ソフトウェア/ハードウェア要件の中で足りないものがある場合、
インストール時に教えてくれているのでよく見ておくとよいです。

## 環境変数のセットアップ
`C:\Program Files (x86)\IntelSWTools\openvino\bin\setupvars.bat`
を実行して環境変数をセットアップします。

## モデルオプティマイザのセットアップ
`C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\model_optimizer\install_prerequisites\install_prerequisites.bat`

を実行して必要なpythonのライブラリをインストールする

ここまででインストールは大体終わりです。次はサンプルプログラムを動かしてみます。

# サンプルプロジェクトのテスト
ここでは顔認識(interactive_face_detection_demo)のサンプルをテストしてみます。

## 学習済みモデルのダウンロード
下記のフォルダを管理者権限でcmdもしくはPowerShellで開いて下さい。

`C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\tools\model_downloader`

続いて下記のコマンドを実行して、顔認識に必要な学習モデルをダウンロードしてください。

```powershell
python downloader.py --name face-detection-retail-0004,age-gender-recognition-retail-0013,head-pose-estimation-adas-0001,emotions-recognition-retail-0003,facial-landmarks-35-adas-0002
```

ダウンロードした学習モデルは同フォルダに保存されています。

### サンプルプロジェクトの作成
使用するVisualStudioが2015なら

`C:\Program Files (x86)\IntelSWTools\openvino_2019.1.087\inference_engine\samples\build_samples_msvc2015.bat`

2017なら
`C:\Program Files (x86)\IntelSWTools\openvino_2019.1.087\inference_engine\samples\build_samples_msvc2017.bat`

を実行する。

実行するとユーザのドキュメントフォルダにサンプルプロジェクトが作られます。
(ここでは2017でビルドしました)

### プロジェクトのビルド
`C:\Users\<username>\Documents\Intel\OpenVINO\inference_engine_samples_build_2017`

に`sample.sln`があるのでプロジェクトを開いてソリューションのビルドを行ってください。
(なお、ここではDebugのままビルドしました。)

ビルドが終わると

`C:\Users\<username>\Documents\Intel\OpenVINO\inference_engine_samples_build_2017\intel64`

にバイナリが作られているので確認してください。

### サンプルに必要なDLLのコピー
- `C:\Program Files (x86)\IntelSWTools\openvino\inference_engine\bin\intel64\Debug`の中にあるすべてのDLL
- `C:\Program Files (x86)\IntelSWTools\openvino\inference_engine\bin\intel64\Release`の中にあるすべてのDLL
- `C:\Program Files (x86)\IntelSWTools\openvino_2019.1.087\opencv\bin`の中にある`opencv_pvl410d.dll`、`opencv_world410d.dll`

を`C:\Users\<username>\Documents\Intel\OpenVINO\inference_engine_samples_build_2017\intel64\Debug`にコピーしてください。

### サンプルの実行
`C:\Users\<username>\Documents\Intel\OpenVINO\inference_engine_samples_build_2017\intel64`の直下に下記のbatファイルを作成して実行してみてください。 (**Webカメラが必要です**)

```
SET DEVICE="CPU"
SET INTEL_MODEL_DIR=C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\tools\model_downloader

Debug\interactive_face_detection_demo.exe^
 -i "cam"^
 -m "%INTEL_MODEL_DIR%\Retail\object_detection\face\sqnet1.0modif-ssd\0004\dldt\face-detection-retail-0004.xml"^
 -m_ag "%INTEL_MODEL_DIR%\Retail\object_attributes\age_gender\dldt\age-gender-recognition-retail-0013.xml"^
 -m_hp "%INTEL_MODEL_DIR%\Transportation\object_attributes\headpose\vanilla_cnn\dldt\head-pose-estimation-adas-0001.xml"^
 -m_em "%INTEL_MODEL_DIR%\Retail\object_attributes\emotions_recognition\0003\dldt\emotions-recognition-retail-0003.xml"^
 -m_lm "%INTEL_MODEL_DIR%\Transportation\object_attributes\facial_landmarks\custom-35-facial-landmarks\dldt\facial-landmarks-35-adas-0002.xml"^
 -d %DEVICE%^
 -d_ag %DEVICE%^
 -d_hp %DEVICE%^
 -d_em %DEVICE%^
 -d_lm %DEVICE%^
 -async^
 -pc^
 -r^
```

# その他
Movidiusなどを使うときは、deviceをMYRIAD、学習済みモデルをFP16にする必要があるみたいです。詳しくは-hオプションをつけて実行してみてください。

# 参考
- [Install Intel® Distribution of OpenVINO™ toolkit for Windows* 10 - OpenVINO Toolkit](https://docs.openvinotoolkit.org/2019_R1/_docs_install_guides_installing_openvino_windows.html)