monodepthで奥行きデータを取得

Open Model Zoo内のDemoに格納されている
monodepth demo(Python版) を使ってみましょう

cd /opt/intel/openvino_2021/deployment_tools/open_model_zoo/demos/python_demos/monodepth_demo/

このフォルダ内にあるmodels.lstでモデルをダウンロードします

python3 /opt/intel/openvino_2021/deployment_tools/tools/model_downloader/downloader.py –list models.lst -o ~/openvino_models/

ローカルフォルダにダウンロードされますが、このモデルはPytorchのモデルなので、変換が必要です
下記コマンドで変換してください

python3 /opt/intel/openvino_2021/deployment_tools/tools/model_downloader/converter.py –name midasnet -d ~/openvino_models/ –precisions=FP16

何事もなく変換が完了すると思いますので、次に適当な画像ファイルを用意して、実行してみます
今回はアイキャッチ画像を入力に使用します

python3 /opt/intel/openvino_2021/deployment_tools/open_model_zoo/demos/python_demos/monodepth_demo/monodepth_demo.py -m ~/openvino_models/public/midasnet/FP16/midasnet.xml -i DSCN0958_s.jpeg

奥行き画像が取得できているようです
実際にはfloating disparity map (PFM)というPFMファイルが得られ、こちらの画像は同時に得られるPNGとなります

環境構築(apt ubutu18.04編)

OpenVINO toolkitのインストールはGUIでやらないといけないのかなと思っていたのですが、aptで取得できることに気づきましたので…
やってみてわかったのですが、これが一番簡単なインストール方法かもしれません

インストールの前に

  • インターネット環境

インストールされるコンポーネント

コンポーネント説明
Model OptimizerThis tool imports, converts, and optimizes models, which were trained in popular frameworks, to a format usable by Intel tools, especially the Inference Engine.
Popular frameworks include Caffe*, TensorFlow*, MXNet*, and ONNX*.
Inference Engine
ディープラーニングエンジン
アプリケーション組み込みライブラリ
Drivers and runtimes for OpenCL™ version 2.1Enables OpenCL on the GPU/CPU for Intel® processors
Intel® Media SDKOffers access to hardware accelerated video codecs and frame processing
OpenCVIntel Hardware用にコンパイルされたOpenCV
Sample Applications推論エンジンを使用するためのコンソールデモアプリケーション
DemosA set of console applications that demonstrate how you can use the Inference Engine in your applications to solve specific use-cases
Additional ToolsA set of tools to work with your models
Documentation for PreTrained ModelsDocumentation for the pre-trained models available in the Open Model Zoo repo

プラットフォーム

ハードウェアの制限

  • 6th-10th Generation Intel® Core™
  • Intel® Xeon® v5 family
  • Intel® Xeon® v6 family
  • Intel® Neural Compute Stick 2

OS

  • Ubuntu 18.04.x long-term support (LTS), 64-bit
  • CentOS 7.4, 64-bit (for target only)
  • Yocto Project v3.0, 64-bit (for target only and requires modifications)

ソフトウェアのインストール

今回はUbuntu18.04にOpenVINO toolkit 2020.3をaptを使用してセットアップします

必要なソフトウェア

  • 特になし

OpenVINO Toolkit のインストール

wget -O GPG_KEY https://apt.repos.intel.com/openvino/2020/GPG-PUB-KEY-INTEL-OPENVINO-2020?elq_cid=6195740&erpm_id=9311153

sudo apt-key add GPG_KEY 
echo "deb https://apt.repos.intel.com/openvino/2020 all main" | sudo tee /etc/apt/sources.list.d/intel-openvino-2020.list
sudo apt update
sudo apt-get install intel-openvino-dev-ubuntu18-2020.3.194
cd /opt/intel/openvino/deployment_tools/demo/ 

ここから先は通常のインストールと同じになります

外部依存ソフトウェアのインストール

openvino@ubuntu$ cd /opt/intel/openvino/install_dependencies/
openvino@ubuntu$ sudo -E ./install_openvino_dependencies.sh 
 

 This script installs the following OpenVINO 3rd-party dependencies:
   1. GTK+, FFmpeg and GStreamer libraries used by OpenCV
   2. libusb library required for Myriad plugin for Inference Engine
   3. build dependencies for OpenVINO samples
   4. build dependencies for GStreamer Plugins
  
環境により異なりますが、上記ライブラリが自動的にインストールされます

環境変数の設定

openvino@ubuntu$ source /opt/intel/openvino/bin/setupvars.sh

#ログイン時に環境変数を有効にする場合
vi <user_directory>/.bashrc
#最終行に下記を追加
source /opt/intel/openvino/bin/setupvars.sh 

Model Optimizer の設定

openvino@ubuntu$ cd /opt/intel/openvino/deployment_tools/model_optimizer/install_prerequisites
 openvino@ubuntu$ sudo ./install_prerequisites.sh

インストールのチェック

openvino@ubuntu$ cd /opt/intel/openvino/deployment_tools/demo
openvino@ubuntu$ ./demo_squeezenet_download_convert_run.sh 

Demo check

openvino@ubuntu$ cd /opt/intel/openvino/deployment_tools/demo
openvino@ubuntu$ ./demo_security_barrier_camera.sh

GPU関連モジュールインストール

openvino@ubuntu$ cd /opt/intel/openvino/install_dependencies/
openvino@ubuntu$ sudo -E su
root@ubuntu# ./install_NEO_OCL_driver.sh

Neural Compute Stick2 の使用

#usersグループにカレントユーザーを加えます 
$ sudo usermod -a -G users "$(whoami)"

#NCS2用のルールをコピーし、リブートします
$ sudo cp /opt/intel/openvino/inference_engine/external/97-myriad-usbboot.rules /etc/udev/rules.d/
$ sudo udevadm control --reload-rules
$ sudo udevadm trigger
$ sudo ldconfig 

aptでインストールすると楽ですね

ビデオ会議でのwebカメラのオン・オフユースケース(姿勢推定編)

OpenVINOを実際に使用したユースケースを想定し、プログラムを作成しているシリーズ。

前回は顔認識を使用して、自分以外の顔が写り込む、または、退席した時(誰も居なくなった)場合に、ビデオ会議のカメラをオフにするという内容でした。今回も引き続きビデオ会議を取り上げてみます。

きっかけ・ゴール

テレビ会議が一気に普及し、自宅仕事が増えてる状況ですね。暑くなってきましたし、上だけフォーマルな人も増えているのは分かります。自分も今は短パンです。YouTubeで「Luke Ming Flanagan underwear speech」とか「Reporter Caught With No Pants Live on Air」とかで検索すると、ウッカリさんが面白ニュースとしていじられていますね。気持ちは分かりますよ。暑いですもん。

このようなウッカリさんの事故を防ぐためには、「ビデオ会議にはちゃんとした格好で出ましょう」みたいなルールを作るのも良いかもしれませんが、それではつまらないルールが増えていくばかり。失敗学でも言われているように個人に依存せず、システム的に防止する事が必要だなあ。と思っていたら、作っている方がいらっしゃいました。

https://www.hackster.io/nickbild/safe-meeting-b66324

記事を読んでいると、「Safe Meeting prevents embarrassing and unprofessional situations by stopping your video stream if certain attire that’s inappropriate for business is detected.」だそうです。”ビジネスに相応しくない”というところが気になりますね。いろんなパンツとかどうやって検出しているんでしょう。謎です。セクスウィなパンツや、逆に派手なスーツやドレスもちゃんと判定してくれるのでしょうか。

という訳で、今回のユースケースではもっと単純化して「姿勢推定で腰より下が映ったら、ビデオ会議側のカメラをオフにする」というゴールにしたいと思います。

環境について

本ユースケースの実行環境はWindows10(以降、Win10)です。
  • Windows 10
  • Logicool c270 x 2台
  • ELECOM U3H-A408SBK
  • Jitsiはクラウドサービスを利用(https://meet.jit.si)
  • モデル:human-pose-estimation-001
  • 言語 :c++, powershell, bat
  • webカメラは2台使います。1台はビデオ会議用、1台は顔認識用です。今回はc270を使いました。webカメラも価格が高騰しているようですね。Win10で使えればお手元のカメラで問題無いと思います。

    Webカメラ2台、キーボード、マウスをWin10に挿すと、ハードにもよりますが、バスパワーが不足する状況になるかもしれません。そこで、セルフパワーのUSBハブの出番です。未だお持ちでない方はぜひ購入ください。USB3.0対応の方が良いですね。(Amazonの手先ではありません)

    今回利用したビデオ会議システムはオープンソースのjitsi(https://meet.jit.si)です。jitsiはもっと普及しても良いと思うOSSです。なお、理論上は他のビデオ会議でも本記事は使用可能です。

    姿勢推定について

    姿勢推定はOpenVINOに含まれている、human_pose_estimation_demo(c++)を流用しました。モデルはhuman-pose-estimation-001となります。まず、OpenVINOのドキュメントを確認しました。

    https://docs.openvinotoolkit.org/latest/_models_intel_human_pose_estimation_0001_description_human_pose_estimation_0001.html

    This is a multi-person 2D pose estimation network (based on the OpenPose approach) with tuned MobileNet v1 as a feature extractor. For every person in an image, the network detects a human pose: a body skeleton consisting of keypoints and connections between them. The pose may contain up to 18 keypoints: ears, eyes, nose, neck, shoulders, elbows, wrists, hips, knees, and ankles.

    とあります。キーポイントとして18箇所を判定するんですね。腰は何番だろうと思ったら、8番と11番でした。つまり、姿勢推定の結果、8番と11番に値が存在すると、腰が写っちゃっているという事になりますね。

    WebカメラのOnOffについて

    上記のとおり、姿勢推定の結果、腰が写った場合(8番と11番に値がある)にWebカメラをオフにすると良さそうだ。という事が分かりました。

    ”カメラをオフ”を手動で行う方法は、[コンピュータの管理]-[デバイスマネージャー]-[イメージングデバイス]から対象のカメラを右クリックして「デバイスを無効にする」という手順になります。これをDevConかPowerShellのどちらかで行います。

    DevCon

    https://docs.microsoft.com/ja-jp/windows-hardware/drivers/devtest/devcon-exampleshttps://docs.microsoft.com/ja-jp/windows-hardware/drivers/devtest/devcon-examples?fbclid=IwAR3tbimojRY0lercRto08y6QfQPQLMKoPAc52Y2tua1w3KA4TsVj8aJYWxo#ddk_example_30_disable_devices_by_an_id_pattern_tools

    PowerShell

    https://docs.microsoft.com/en-us/powershell/module/pnpdevice/enable-pnpdevice?view=win10-ps

    ここで注意なのは、どちらも管理者権限で実行する必要があるという事です。管理者権限で呼び出す方法は以下のページが参考になりそうですが、ここでは面倒だったので時間優先でUACを無効にしてダイアログが出るのを回避しました。正式に物を作る際は綺麗なお作法でお願いします。

    https://qiita.com/zetamatta/items/d41552c383605b24a8c2

    実行のようす

    最後に

    前回はRasPi4/Python/顔認証で、今回はWin10/C++/姿勢推定で、ビデオ会議のカメラの制御を実装しました。実現したい事やエンジニアが使える言語に応じて、モデルや言語を変えて貰えば良いと思います。OpenVINOでいろいろ挑戦してみてください。

    ビデオ会議でのwebカメラのオン・オフユースケース(顔認識編)

    OpenVINOを実際に使用したユースケースを想定し、プログラムを作成しているシリーズ。今回はビデオ会議を取り上げてみます。

    みなさんご存知の通り、新型コロナの影響でビデオ会議の導入・利用が一気に進みました。また、ビジネス利用だけで無く、”宅飲み”など、普段使いのツールとして利用されている方も多いと思います。

    ビデオ会議あるあるとして、家族が写り込んだり、離席した場合に部屋を映したく無いという状況があると思います。みなさんどうされていますか?この解決手段を考えてみます。まずはYouTubeの動画をご覧ください。

    環境について

    本ユースケースの実行環境はRaspberryPi 4(以降、RasPi)です。
  • RaspberryPi 4
  • intel Neural Compute Stick 2
  • Logicool c270 x 2台
  • ELECOM U3H-A408SBK
  • Jitsi(on ubuntu 18.04)
  • モデル:face-detection-retail-0004
  • 言語 :python
  • 宝島社 もっとひょっこりはんをさがせ!
  • RasPiは安くて便利な環境です。私が講師を担当していた小学5、6年生対象のプログラミング・ロボット講座でもRasPiを配布し、みんな楽しく使っていました。(小学生がLinux使う世の中なんて、いい意味で想定外ですよ)

    RasPi4、USBハブ、intel Neural Compute Stick2

    webカメラは2台使います。1台はビデオ会議用、1台は顔認識用です。今回はc270を使いました。webカメラも価格が高騰しているようですね。RasPiで使えればお手元のカメラで問題無いと思います。

    RasPiでOpenVINOを使うには、Intel Neural Compute Stick 2(以降、NCS2) が必須です。Amazonで1万円程度で購入出来ますので、未だお持ちでない方はぜひ購入ください。

    Webカメラ2台とNCS2、キーボード、マウスをRasPiに挿すと、バスパワーが不足するという状況になります。ssh,VNCで接続してもキーボード・マウスだけが回避出来るので心もと無いです。そこで、セルフパワーのUSBハブの出番です。未だお持ちでない方はぜひ購入ください。USB3.0対応の方が良いですね。(Amazonの手先ではありません)

    今回利用したビデオ会議システムはオープンソースのjitsi(https://jitsi.org)です。ubutu server 18.04 上に構築済のローカルjitsiを利用しました。jitsiはもっと普及しても良いと思うOSSです。なお、理論上は他のビデオ会議でも本記事は使用可能です。

    RasPiのモデル利用について

    実際の顔認識用のデモアプリは流用するとして、ここでは実行時に注意する点についてご案内します。以下のようにモデル利用時にエラーが出る場合、まずはモデルを疑ってください。忘れていると1日くらい損します。

    [ INFO ] 2020-06-05 11:14:48,240 Loading models [ INFO ] 2020-06-05 11:14:48,241 Loading the model from '/home/pi/openvino/models/face-detection-retail-0004/FP16/face-detection-retail-0004.xml' face_recognition_demo.py:177: DeprecationWarning: Reading network using constructor is deprecated. Please, use IECore.read_network() method instead model = IENetwork(model_description_path, model_weights_path) Traceback (most recent call last): File "face_recognition_demo.py", line 446, in main() File "face_recognition_demo.py", line 441, in main visualizer = Visualizer(args) File "face_recognition_demo.py", line 240, in __init__ self.frame_processor = FrameProcessor(args) File "face_recognition_demo.py", line 131, in __init__ face_detector_net = self.load_model(args.m_fd) File "face_recognition_demo.py", line 177, in load_model model = IENetwork(model_description_path, model_weights_path) File "ie_api.pyx", line 1099, in openvino.inference_engine.ie_api.IENetwork.__cinit__ RuntimeError: fc7_mbox_priorbox/naked_not_unsqueezed has zero dimension that is not allowable

    このようなエラーが出る場合は、2019R3のモデルをダウンロードして使ってみてください。(他のエラーパターンもあるので基本的には2019R3で良いかもしれません) https://download.01.org/opencv/2019/open_model_zoo/R3/20190905_163000_models_bin/

    なお、本ユースケースでは、face-detection-retail-0004を利用しました。

    WebカメラのOnOffについて

    基本的に、顔認識用カメラ側でnot(自分の顔認識がされた)場合に、web会議側のカメラをオフにする動作となります。以下のページが参考になりました。ありがとうございます。

    https://www.raspberrypi.org/forums/viewtopic.php?t=242059

    https://artfinex.co.jp/wp/wp-content/uploads/2019/03/afx_RaspberryPiRaspbianUSB_Reset_UHF.pdf

    最後に

    ビデオ会議ではいろんな事故がありますが、割と下半身をぽんぽんすーにしている人も多いのがびっくりです。今後は、下半身を検出してカメラをオフにする仕組みを作りたいと思います。

    環境構築(ubuntu18.04編)

    インストールの前に

    • インターネット環境

    ※2020.06.04追記:OpenVINO 2020.3 LTS Release も同様の手順で入る事を確認済です
    ※2020.07.21追記:OpenVINO 2020.4 Release も同様の手順で入る事を確認済です

    インストールされるコンポーネント

    コンポーネント説明
    Model OptimizerThis tool imports, converts, and optimizes models, which were trained in popular frameworks, to a format usable by Intel tools, especially the Inference Engine.
    Popular frameworks include Caffe*, TensorFlow*, MXNet*, and ONNX*.
    Inference Engine
    ディープラーニングエンジン
    アプリケーション組み込みライブラリ
    Drivers and runtimes for OpenCL™ version 2.1Enables OpenCL on the GPU/CPU for Intel® processors
    Intel® Media SDKOffers access to hardware accelerated video codecs and frame processing
    OpenCVIntel Hardware用にコンパイルされたOpenCV
    Sample Applications推論エンジンを使用するためのコンソールデモアプリケーション
    DemosA set of console applications that demonstrate how you can use the Inference Engine in your applications to solve specific use-cases
    Additional ToolsA set of tools to work with your models
    Documentation for PreTrained ModelsDocumentation for the pre-trained models available in the Open Model Zoo repo

    プラットフォーム

    ハードウェアの制限

    • 6th-10th Generation Intel® Core™
    • Intel® Xeon® v5 family
    • Intel® Xeon® v6 family
    • Intel® Neural Compute Stick 2

    OS

    • Ubuntu 18.04.x long-term support (LTS), 64-bit
    • CentOS 7.4, 64-bit (for target only)
    • Yocto Project v3.0, 64-bit (for target only and requires modifications)

    ソフトウェアのインストール

    今回はUbuntu18.04にOpenVINO toolkit 2020.2をセットアップします
    CPUスペックは、Intel(R) Atom(TM) Processor E3950 @ 1.60GHzとなります

    必要なソフトウェア

    • CMake 3.4 or higher
    • Python 3.5 or higher

    OpenVINO ToolKIT のダウンロード

    こちらから登録を行い、ダウンロードして下さい

    OpenVINO Toolkit のインストール

    openvino@ubuntu$ ls l_openvino_toolkit_p_2020.2.120.tgz
    
    openvino@ubuntu$ tar -xvzf l_openvino_toolkit_p_2020.2.120.tgz
    
    openvino@ubuntu$ cd l_openvino_toolkit_p_2020.2.120/
    
    #コマンドラインインストール
    openvino@ubuntu$ sudo ./install.sh
     Welcome
     --------------------------------------------------------------------------------
     Welcome to the Intel® Distribution of OpenVINO™ toolkit 2020.2 for Linux*
     --------------------------------------------------------------------------------
     The Intel installation wizard will install the Intel® Distribution of OpenVINO™
     toolkit 2020.2 for Linux* to your system.
     
    
     The Intel® Distribution of OpenVINO™ toolkit quickly deploys applications and
     solutions that emulate human vision. Based on Convolutional Neural Networks
     (CNN), the toolkit extends computer vision (CV) workloads across Intel®
     hardware, maximizing performance. The Intel Distribution of OpenVINO toolkit
     includes the Intel® Deep Learning Deployment Toolkit (Intel® DLDT).
     
    
     Before installation please check system requirements:
     https://docs.openvinotoolkit.org/2020.2/_docs_install_guides_installing_openvino
     _linux.html#system_requirements
     and run following script to install external software dependencies:
     
    
     sudo -E ./install_openvino_dependencies.sh
     
    
     Please note that after the installation is complete, additional configuration
     steps are still required.
     
    
     For the complete installation procedure, refer to the Installation guide:
     https://docs.openvinotoolkit.org/2020.2/_docs_install_guides_installing_openvino
     _linux.html.
     
    
     You will complete the following steps:
        1.  Welcome
        2.  End User License Agreement
        3.  Prerequisites
        4.  Configuration
        5.  Installation
        6.  First Part of Installation is Complete
     
    
     --------------------------------------------------------------------------------
     Press "Enter" key to continue or "q" to quit:  

    基本的には、Enterで進めていくとインストールされます
    途中で、必要なアプリケーションなどのチェックが入りますので、
    もし不足している場合は、画面に従いインストールが必要になります

    #必要であればここで別端末を利用してソフトウェアをインストールします
    openvino@ubuntu$ sudo apt-get install cmake
    defaultのまま設定をすすめていくと、
    
     First Part of Installation is Complete
     --------------------------------------------------------------------------------
     The first part of Intel® Distribution of OpenVINO™ toolkit 2020.2 for Linux*
     has been successfully installed in 
     /opt/intel/openvino_2020.2.120.
     
    
     ADDITIONAL STEPS STILL REQUIRED: 
     
    
     Open the Installation guide at:
      https://docs.openvinotoolkit.org/2020.2/_docs_install_guides_installing_openvin
     o_linux.html 
     and follow the guide instructions to complete the remaining tasks listed below:
     
    
      • Set Environment variables 
      • Configure Model Optimizer 
      • Run the Verification Scripts to Verify Installation and Compile Samples
     
    
     --------------------------------------------------------------------------------
     Press "Enter" key to quit:  

    インストール完了です

    外部依存ソフトウェアのインストール

    openvino@ubuntu$ cd /opt/intel/openvino/install_dependencies/
    openvino@ubuntu$ sudo -E ./install_openvino_dependencies.sh 
     
    
     This script installs the following OpenVINO 3rd-party dependencies:
       1. GTK+, FFmpeg and GStreamer libraries used by OpenCV
       2. libusb library required for Myriad plugin for Inference Engine
       3. build dependencies for OpenVINO samples
       4. build dependencies for GStreamer Plugins
      
    環境により異なりますが、上記ライブラリが自動的にインストールされます

    環境変数の設定

    openvino@ubuntu$ source /opt/intel/openvino/bin/setupvars.sh
    
    #ログイン時に環境変数を有効にする場合
    vi <user_directory>/.bashrc
    #最終行に下記を追加
    source /opt/intel/openvino/bin/setupvars.sh 
    

    Model Optimizer の設定

    openvino@ubuntu$ cd /opt/intel/openvino/deployment_tools/model_optimizer/install_prerequisites
     openvino@ubuntu$ sudo ./install_prerequisites.sh

    インストールのチェック

    openvino@ubuntu$ cd /opt/intel/openvino/deployment_tools/demo
    openvino@ubuntu$ ./demo_squeezenet_download_convert_run.sh 

    Demo check

    openvino@ubuntu$ cd /opt/intel/openvino/deployment_tools/demo
    openvino@ubuntu$ ./demo_security_barrier_camera.sh

    2020.1リリースよりも若干早くなっているようです

    GPU関連モジュールインストール

    openvino@ubuntu$ cd /opt/intel/openvino/install_dependencies/
    openvino@ubuntu$ sudo -E su
    root@ubuntu# ./install_NEO_OCL_driver.sh

    ここで過去にOpenVINOをインストールしていた場合、依存関係で下記のようなエラーが発生します

     dpkg: dependency problems prevent removal of intel-igc-core:
      intel-igc-opencl depends on intel-igc-core (= 1.0.2597).
     
    
     dpkg: error processing package intel-igc-core (--purge):
      dependency problems - not removing
     Errors were encountered while processing:
      intel-igc-core
     ERROR: unable to remove intel-igc-core
            please resolve it manually and try to launch the script again. 

    intel-igc-openclがintel-igc-coreに依存関係があるためで、この場合は手動でintel-igc-openclを削除しましょう(下記コマンド参照)

    dpkg -r intel-igc-opencl

    Demo check

    openvino@ubuntu$ cd /opt/intel/openvino/deployment_tools/demo
    openvino@ubuntu$ ./demo_security_barrier_camera.sh -d GPU

    CPUと比較して3倍弱のスピードが出ています

    Neural Compute Stick2 の使用

    #usersグループにカレントユーザーを加えます 
    $ sudo usermod -a -G users "$(whoami)"
    
    #NCS2用のルールをコピーし、リブートします
    $ sudo cp /opt/intel/openvino/inference_engine/external/97-myriad-usbboot.rules /etc/udev/rules.d/
    $ sudo udevadm control --reload-rules
    $ sudo udevadm trigger
    $ sudo ldconfig 

    2020.1と同様にGPUと同等程度の速さとなりました

    お疲れ様でした
    インストールはこれで完了です

    環境構築(Windows編)

    本記事は、https://docs.openvinotoolkit.org/latest/_docs_install_guides_installing_openvino_windows.html を元に記述しています。元のページも参照してください。

    インストールされるコンポーネント

    コンポーネント説明
    Model Optimizerこのツールは、人気のあるフレームワークでトレーニングされたモデルを、Intelツール、特に推論エンジンで使用可能な形式にインポート、変換、および最適化します。 注:人気のあるフレームワークには、Caffe *、TensorFlow *、MXNet *、およびONNX *などのフレームワークが含まれます。
    Inference Engine
    ディープラーニングエンジン
    アプリケーション組み込みライブラリ
    OpenCVIntel Hardware用にコンパイルされたOpenCV
    Inference Engine Samples推論エンジンを使用するためのコンソールデモアプリケーション
    Demos特定のユースケースを解決するためにアプリケーションで推論エンジンを使用する方法を示す複数のコンソールアプリケーション
    Additional Toolsモデルを操作するための一連のツール
    Documentation for Pre-Trained ModelsOpen Model Zooリポジトリで利用可能な事前トレーニング済みモデルのドキュメント

    プラットフォーム

    ハードウェアの制限

    • 6th-10th Generation Intel® Core™ processors
    • Intel® Xeon® v5 family
    • Intel® Xeon® v6 family
    • Intel® Movidius™ Neural Compute Stick
    • Intel® Neural Compute Stick 2
    • Intel® Vision Accelerator Design with Intel® Movidius™ VPUs

    OS

    • Microsoft Windows* 10 64-bit

    ソフトウェア


    インストール手順

    Install the Intel® Distribution of OpenVINO™ toolkit Core Components

    1. Intel® Distribution of OpenVINO™ toolkitを未だダウンロードしていない場合は、 最新版をダウンロードしてください。デフォルトではダウンロードフォルダにw_openvino_toolkit_p_<version>.exeというファイル名で保存されます。
    2. ダウンロードフォルダに移動します。
    3. w_openvino_toolkit_p_<version>.exeをダブルクリックします。インストール先とコンポーネントの選択のウィンドウが表示されます。デフォルトのインストール先は、C:\Program Files (x86)\IntelSWTools\openvino_<version>です。C:\Program Files (x86)\IntelSWTools\openvinoのショートカットも作成されます。
    4. Nextを選択します。
    5. 情報収集に関する選択が聞かれるので選択します。その後、Nextを選択します。
    6. 動作に必要なコンポーネントが不足している場合、画面上に表示されますが、ここでは何もしなくても大丈夫です。OpenVINO™ toolkit コアコンポーネントをインストール後、不足しているコンポーネントをインストールしてください。※不足のコンポーネントが複数ある場合、忘れないためにメモや写真を撮っておくと良いかもしれません。
    7. Nextを選択します。
    8. コアコンポーネントのインストール完了の画面が表示されます。
    9. Finishを選択し、インストールウィザードを終了します。
    10. 不足しているコンポーネントがある場合、次のステップに進む前に必ずインストールしてください。全てのコンポーネントのインストールが終わったら、次のステップに進みます。

    Pythonのインストール

    ここでは、Python 3.6.8 x86-64のインストーラを利用しました。

    環境変数の設定(一時的)

    OpenVINO™アプリケーションをコンパイルおよび実行する前に、環境変数の設定が必要です。コマンドラインを開き、setupvars.batを実行すると、環境変数に一時的に設定されます。永続的に環境変数に設定する場合は、後述の手順が必要です。

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

    setupvars.bat

    この画面ではpythonのバージョンを確認後、バッチファイルを実行して環境変数を設定しています。

    Model Optimizerの構成

    Model Optimizerは、Intel® Distribution of OpenVINO™ toolkitの主要コンポーネントです。Model Optimizerを使用してモデルを実行しないと、トレーニング済みモデルで推論を行うことはできません。モデルオプティマイザーを使用して事前トレーニング済みのモデルを実行すると、ネットワークの中間表現(IR)を出力します。IRはモデル全体を記述するファイルのペアです:

    • .xml: ネットワークトポロジが記載されているファイル
    • .bin: バイナリデータが含まれているファイル

    推論エンジンは、CPU、GPU、またはVPUハードウェア全体で共通のAPIを使用して、IRファイルを読み取り、ロードし、推測します。

    Model OptimizerはPython *ベースのコマンドラインツール(mo.py)で、C:\ Program Files(x86)\ IntelSWTools \ openvino \ deployment_tools \ model_optimizerにあります。 Caffe *、TensorFlow *、MXNet *、ONNX *などの一般的なディープラーニングフレームワークでトレーニングされたモデルでこのツールを使用して、推論エンジンが使用できる最適化されたIR形式に変換します。

    このセクションでは、スクリプトを使用して、Model Optimizerを、サポートされているすべてのフレームワークに対して同時に、または個々のフレームワークに対して構成する方法について説明します。スクリプトを使用する代わりにModel Optimizerを手動で構成する場合は、「Model Optimizerの構成Configuring the Model Optimizer」ページの「手動構成プロセスの使用」セクションを参照してください。

    Model Optimizerの詳細については、Model Optimizer開発者ガイドModel Optimizer Developer Guideを参照してください。

    Model Optimizer 構成手順

    Model Optimizerは1回でサポートするフレームワークを全て構成するか、その都度構成するかを選択できます。必要に応じて方法を選択してください。ここでは全てのフレームワークを構成する手順を示します。

    インストールの確認

    インストールが完了した事を確認するために、2つのサンプルのコンパイルと実行を行います。

    1. コマンドラインを開きます。
    2. Inference Engine demo ディレクトリを開きます。
      cd C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\demo\
    3. 次の手順で説明する検証用スクリプトを実行します。

    Image Classification Verification Scriptの実行

    スクリプトを実行するには、demo_squeezenet_download_convert_run.batファイルを開始します。

    このスクリプトは、SqueezeNetモデルをダウンロードし、Model Optimizerを使用して、モデルを.‍binおよび.‍xml中間表現(IR)ファイルに変換します。推論エンジンはこのモデル変換を必要とするため、IRを入力として使用し、Intelハードウェアで最適なパフォーマンスを実現できます。 この検証スクリプトは、Image Classification Sample AsyncアプリケーションImage Classification Sample Async をビルドし、demoディレクトリのcar.pngイメージを使用して実行します。中間表現の簡単な説明については、Model Optimizerの構成Configuring the Model Optimizerを参照してください。

    検証スクリプトが完了すると、トップ10カテゴリのラベルと信頼度が得られます。

    実行結果。スポーツカーとして認識されている事が確認できます。

    Inference Pipeline Verification Scriptの実行

    コンソールでdemo_security_barrier_camera.batファイルを開始します。
    このスクリプトは、事前にトレーニングされた3つのモデルIRをダウンロードし、セキュリティバリアカメラデモアプリケーションSecurity Barrier Camera Demoをビルドし、ダウンロードしたモデルとデモディレクトリからcar_1.bmpイメージを使用して実行し、推論パイプラインを表示します。検証スクリプトは、車両属性を相互に構築する車両認識を使用して、特定の属性に絞り込みます。

    最初に、オブジェクトが車両として識別されます。この識別は、ナンバープレートを含む特定の車両属性を識別する次のモデルへの入力として使用されます。最後に、ナンバープレートとして識別された属性は、ナンバープレート内の特定の文字を認識する3番目のモデルへの入力として使用されます。

    デモが完了すると、次の2つのウィンドウが開きます。

    • デモによって実行されたタスクに関する情報を表示するコンソールウィンドウ
    • 次のような検出結果が境界ボックスとしてレンダリングされた結果のフレームを表示する画像ビューアーウィンドウ。
    inference_pipeline_script_win.png

    ウィンドウを閉じてデモを終了します。

    検証スクリプトの詳細については、C:\ Program Files(x86)\ IntelSWTools \ openvino \ deployment_tools \ demoのREADME.txtを参照してください。

    OpenVINO™事前トレーニング済みオブジェクト検出およびオブジェクト認識モデルの詳細な説明については、OpenVINO™ツールキット事前トレーニング済みモデルの概要ページ Overview of OpenVINO™ toolkit Pre-Trained Models を参照してください。

    このセクションで、OpenVINO™ツールキットの概要を理解頂けたと思います。以上でインストール、構成が完了です。

    もし、Intel® Processor graphics (GPU), Intel® Movidius™ Neural Compute Stickや、Intel® Neural Compute Stick 2 or Intel® Vision Accelerator Design with Intel® Movidius™ (VPU)を使いたい場合、また、CMake* and Python*をWindows環境変数に追加したい場合は、オプションの手順を行ってください。

    続けてイメージの分類サンプルアプリケーションを実行したい場合は、Run the Image Classification Sample Application を参照してください。

    オプションの手順

    場合に応じて、追加設定を行います。詳細は英語のドキュメントを参照してください。

    Intel® Vision Accelerator Design with Intel® Movidius™ VPUs上での推論

    1. <OpenVINOインストール先>\deployment_tools\inference-engine\external\MovidiusDriver 配下にある、Movidius_VSC_Device.infを右クリックしてMovidius™ VSC driverをインストールします。
    2. 次に、Visual C++ Redistributable for Visual Studio 2015 をインストールします。既にインストールされている場合はその旨メッセージが表示されます。


    お疲れ様でした。インストールはこれで完了です。

    もっとサンプルが実行したい!って場合は、次の記事もお試しください。

    環境構築(RaspberryPi編)

    本記事は、https://docs.openvinotoolkit.org/latest/_docs_install_guides_installing_openvino_raspbian.html を元に記述しています。元のページも参照してください。

    ※2020.06.04追記:OpenVINO 2020.3 LTS Release も同様の手順で入る事を確認済です。

    ※2021.02.19追記:OpenVINO 2021.2 も同様の手順で入る事を確認済です。

    インストールの前に

    • Intel® Movidius™ Neural Compute Stick (Intel® NCS) 又は、Intel® Neural Compute Stick 2 が必要です
    • インターネット環境

    インストールされるコンポーネント

    コンポーネント説明
    Inference Engine
    ディープラーニングエンジン
    アプリケーション組み込みライブラリ
    OpenCVIntel Hardware用にコンパイルされたOpenCV
    Sample Applications推論エンジンを使用するためのコンソールデモアプリケーション

    プラットフォーム

    ハードウェアの制限

    • ARMv7-A CPUアーキテクチャのRaspberry Pi 。uname -mを実行し、armv7lが返ってくる事を確認
    • Intel® Movidius™ Neural Compute Stick (Intel® NCS) 又は、Intel® Neural Compute Stick 2

    OS

    • Raspbian* Buster, 32-bit
    • Raspbian* Stretch, 32-bit

    ソフトウェアのインストール

    必要なソフトウェア

    • CMake 3.7.2 以上
    • Python 3.5, 32-bit

    Install the OpenVINO™ Toolkit for Raspbian* OS Package

    1. 最新のOpenVINO toolkit for Raspbian OSをIntel® Open Source Technology Centerからダウンロードしてください。ファイル名はl_openvino_toolkit_runtime_raspbian_p_<version>.tgzです。
    2. ターミナルを開きます
    3. ダウンロード先フォルダに移動します。
        cd ~/Downloads/
        デフォルトでは、パッケージのファイル名はl_openvino_toolkit_runtime_raspbian_p_<version>.tgzで保存されます。
    4. インストール先のフォルダを作成します
        sudo mkdir -p /opt/intel/openvino
    5. パッケージを展開します。
        sudo tar -xf l_openvino_toolkit_runtime_raspbian_p_<version>.tgz --strip 1 -C /opt/intel/openvino
    6. 以上でOpenVINO toolkitはインストールされました。追加設定が必要なので、次のステップに進んでください。

    Install External Software Dependencies

    1. Inference Engineのサンプルアプリケーションをビルドするために、CMake(バージョン3.7.2 以上)が必要です。ターミナルを開き、以下のコマンドを実行してください。
      • sudo apt install cmake
    2. 以上でCMakeはインストールされました。次のステップに進んでください。

    Set the Environment Variables

    OpenVINO Toolkitアプリケーションをコンパイルする前や、実行する前に、環境変数を必ず更新する必要があります。

      source /opt/intel/openvino/bin/setupvars.sh
    このコマンドによって、OpenVINOの環境が設定されます
    このコマンドはログインごとに行う必要がありますが、
    .bash_profileに書き込めば、その必要はありません
      echo "source /opt/intel/openvino/bin/setupvars.sh" >> ~/.bashrc

    新規にターミナルを開き、以下が表示されていればOKです。

      [setupvars.sh] OpenVINO environment initialized

    Add USB Rules

    1. 現在のユーザをusersグループに追加します。
        sudo usermod -a -G users "$(whoami)"
      ログアウト、ログインで有効になります。
    2. もし.bashrcを更新していない場合、setupvar.shを実行してください。
        source /opt/intel/openvino/bin/setupvars.sh
    3. Intel® Movidius™ Neural Compute Stick 又は Intel® Neural Compute Stick 2を使うために、以下のスクリプトを実行してください。

        sh /opt/intel/openvino/install_dependencies/install_NCS_udev_rules.sh
    4. Intel® Movidius™ Neural Compute Stick 又は Intel® Neural Compute Stick 2を挿してください。


    お疲れ様でした。インストールはこれで完了です。引き続きサンプルの実行をご確認ください。

    環境構築(MacOS編)

    インストールの前に

    • macOS 10.14.4(Mojave) 以上
    • インターネット環境

    ※2020.06.05追記:OpenVINO 2020.3 LTS Release も同様の手順で入る事を確認済です。

    インストールされるコンポーネント

    コンポーネント説明
    Model OptimizerThis tool imports, converts, and optimizes models, which were trained in popular frameworks, to a format usable by Intel tools, especially the Inference Engine.
    Popular frameworks include Caffe*, TensorFlow*, MXNet*, and ONNX*.
    Inference Engine
    ディープラーニングエンジン
    アプリケーション組み込みライブラリ
    OpenCVIntel Hardware用にコンパイルされたOpenCV
    Sample Applications推論エンジンを使用するためのコンソールデモアプリケーション
    DemosA set of console applications that demonstrate how you can use the Inference Engine in your applications to solve specific use-cases
    Additional ToolsA set of tools to work with your models
    Documentation for PreTrained ModelsDocumentation for the pre-trained models available in the Open Model Zoo repo

    プラットフォーム

    ハードウェアの制限

    • 6th-10th Generation Intel® Core™
    • Intel® Xeon® v5 family
    • Intel® Xeon® v6 family
    • Intel® Neural Compute Stick 2

    ソフトウェアのインストール

    必要なソフトウェア

    • CMake 3.4 or higher
    • Python 3.5 or higher
    • Apple Xcode* Command Line Tools
    • (Optional) Apple Xcode* IDE (not required for OpenVINO, but useful for development)

    CMakeのインストール

    CMake のページでMacOS用のcmakeをダウンロードする

    dmg形式の場合、Applicationsフォルダにコピー

    Terminalで下記コマンドを実行するとシンボリックリンクを作成してくれる
    sudo “/Applications/CMake.app/Contents/bin/cmake-gui” –install

    Pythonのインストール


    Python3.5〜3.7が必要となりますが、Macには2系がインストールされているので、Python のページでダウンロード

    今回は、3.7.6をインストールします
    インストールは、pkg形式でクリックのみでインストール可能です

    Apple Xcode Command Line Tools のインストール

    XcodeはCommand Line Toolsのみでのインストールが可能です
    Apple Developer ページにアクセスし、Apple Xcode Command Line Toolsをダウンロードします


    OpenVINOのインストール・設定

    OpenVino toolkitのダウンロード

    こちらよりユーザー情報を登録後、最新版のOpenVino toolkit for macOSをダウンロードします
    ダウンロード後は、dmgとなるので実行

    クリックして表示し、m_openvino_toolkitアイコンクリックで、インストール画面へ移行します

    CMake2.8 以上がインストールされていない、と表示があります
    依存するツールがない場合はこちらに表示されます

    これでインストール完了です
    次は環境設定に移ります

    OpenVINO 環境設定

    Terminalから環境設定を行います


    source /opt/intel/openvino/bin/setupvars.sh
    このコマンドによって、OpenVINOの環境が設定されます
    このコマンドはログインごとに行う必要がありますが、
    .bash_profileに書き込めば、その必要はありません

    Model Optimizer 設定

    cd /opt/intel/openvino/deployment_tools/model_optimizer/install_prerequisites
    sudo ./install_prerequisites.sh

    NEURAL COMPUTE STICK2 の使用

    MacでNCS2を使用する場合は、下記のコマンドで使用することが可能です

    brew install libusb

    お疲れ様でした
    インストールはこれで完了です