0.あいさつ
今年のゴールデンウィークは10連休みたいですが、うちの学校は初日と最終日が学校で8連休になるらしいです。改元の関係でうんぬんと言っていたのですが理由になってないだろそれ...
おはようございます
RHEMS技研荒木です
今回はOpenVINOをインストール→サンプルを実行するうえで詰まったところが多々あったのでまとめます
参考にしたサイト
https://software.intel.com/en-us/articles/OpenVINO-Install-Linux
https://qiita.com/ammo0613/items/a9bb3b7f20dc02a8d758
いずれもOpenVINOのアップデートにともない若干手順等が変わっています
1.環境構築
自分はMacBookProでVirtualBoxにUbuntu16.04をいれて行いました
なので今回の記事はUbuntuで環境を作る人向けになります
まずOpenVINOのインストーラーをダウンロードします
https://software.intel.com/en-us/openvino-toolkit/choose-download
今回はUbuntuなのでLinux版をダウンロードします
Register&Downloadをクリック
すると以下のページに飛びます
フォームに必要事項を入力します
Linuxを選択します
僕はFullPackage版をダウンロードしました
FullPackage版で問題ないと思います
cd ダウンロード
ls
l_openvino_toolkit_p_2018.4.420
tar -zxf l_openvino_toolkit_p_2018.4.420.tgz
cd l_openvino_toolkit_p_4.420
ダウンロードしたファイルがあるところまで移動して解凍したのち、解凍したフォルダに移動します
./install_GUI.sh
移動したらシェルを実行します
するとインストーラーが立ち上がります
全部NEXTで大丈夫です
インストールが完了したら環境変数を追加します
source intel/openvino/bin/setupvars.sh
これはOpenVINOをつかう場合毎回実行しないといけません
今後エラー吐いたら大体これです、マジで。
なのでbashrcに追加します
nano .bashrc
モデルオプティマイザーをあれやこれやします
cd intel/computer_vision_sdk/deployment_tools/model_optimizer/install_prerequisites
sudo ./install_prerequisites.sh
最後です
以下らを実行すると環境が出来上がります
cd intel/computer_vision_sdk/deployment_tools/demo
sudo ./demo_squeezenet_download_convert_run.sh
バーってターミナルが流れて最後にSuccessesfulyがあれば環境が出来上がっています
今回はMovidiusを使いたいので追加の設定をします
Movidiusはrootユーザーでないと使えないみたいなのでユーザーアカウントでも使えるようにします
cat <<EOF > 97-usbboot.rules
SUBSYSTEM=="usb", ATTRS{idProduct}=="2150", ATTRS{idVendor}=="03e7", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
SUBSYSTEM=="usb", ATTRS{idProduct}=="2485", ATTRS{idVendor}=="03e7", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
SUBSYSTEM=="usb", ATTRS{idProduct}=="f63b", ATTRS{idVendor}=="03e7", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
EOF
sudo cp 97-usbboot.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger
sudo ldconfig
rm 97-usbboot.rules
これでユーザーからMovidiusを使えるようになりました
3.サンプル実行
先人に習ってWebカメラを使うサンプルを実行してOpenVINOに触れたいと思います
というかデフォでついてくるサンプルはWebカメラを使うサンプルしかなかったです
cd ~/inference_engine_samples/intel64/Release
./human_pose_estimation_demo -h
InferenceEngine:
API version ............ 1.4
Build .................. 17328
human_pose_estimation_demo [OPTION]
Options:
-h Print a usage message.
-i "<path>" Required. Path to a video. Default value is "cam" to work with camera.
-m "<path>" Required. Path to the Human Pose Estimation model (.xml) file.
-d "<device>" Optional. Specify the target device for Human Pose Estimation (CPU, GPU, FPGA or MYRIAD is acceptable). Default value is "CPU".
-pc Optional. Enable per-layer performance report.
-no_show Optional. Do not show processed video.
-r Optional. Output inference results as raw values.
必須になるのはカメラのパスと使用するモデルです
またオプションとしてCPUかGPUかMovidius(MYRIAD)が選択できます、デフォルトはCPUです
あとのオプションはおそらく使うことはないと思います
./human_pose_estimation_demo -i /dev/video0 -m /home/USER/intel/computer_vision_sdk/deployment_tools/intel_models/human-pose-estimation-0001/FP16/human-pose-estimation-0001.xml -d MYRIAD
モデル等のパスは相対パスでもいいらしいのですが、自分はうまく行かなかったので絶対パスにしました
Movidiusを使う場合はFP16、CPU・GPUを使う場合はFP32のモデルを使わないとコアダンプが出るので注意しましょう
Movidiusで実行すると、
CPUで実行すると、
こんな感じです
体の姿勢を出力してくれます
Movidiusを使ってもなおFPSが満足に出ないのは仕方のないことだと思います
並列させるとどのくらい早くなるのか試してみたいですね
CPUのほうがFPSが出るのはなんかなんとも言えない気持ちになります
Movidius2が無印に比べ8倍すごいらしいのでどの程度変わるか楽しみですね
4.さいごに
いかがでしたでしょうか
おそらく環境構築の記事では最新になるとおもいます(2019/04/07現在)
詰まった場合はコメントもらえると対処できるとおもいます
拙い記事でしたが最後まで読んでいただきありがとうございました