OpenVINO toolkit 2021.3 ベンチマーク

OpenVINO toolkit 2021.3のベンチマークを取りました
使用したアプリケーションは、security barrier c++ demoを使用しております

また使用機材は下記となります

11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 
DDR4-4267 16GB
Ubuntu 20.04 LTS

ベンチマーク時のオプションは下記となります

security_barrier_camera_demo -d $a -d_va $b -d_lpr $c -i car_1.bmp -m openvino_models/ir/intel/vehicle-license-plate-detection-barrier-0106/FP16/vehicle-license-plate-detection-barrier-0106.xml -m_lpr openvino_models/ir/intel/license-plate-recognition-barrier-0001/FP16/license-plate-recognition-barrier-0001.xml -m_va openvino_models/ir/intel/vehicle-attributes-recognition-barrier-0039/FP16/vehicle-attributes-recognition-barrier-0039.xml -no_show
-d -d_va -d_lpr FPS Average
CPU CPU CPU 83.4
CPU CPU GPU 120.3
CPU CPU MYRIAD 84.7
CPU GPU CPU 86.1
CPU GPU GPU 118.5
CPU GPU MYRIAD 84.2
CPU MYRIAD CPU 88.1
CPU MYRIAD GPU 124.6
CPU MYRIAD MYRIAD 67.2
GPU CPU CPU 90.7
GPU CPU GPU 112.6
GPU CPU MYRIAD 78.0
GPU GPU CPU 95.4
GPU GPU GPU 98.4
GPU GPU MYRIAD 80.4
GPU MYRIAD CPU 93.6
GPU MYRIAD GPU 113.3
GPU MYRIAD MYRIAD 66.7
MYRIAD CPU CPU 30.4
MYRIAD CPU GPU 31.9
MYRIAD CPU MYRIAD 28.1
MYRIAD GPU CPU 30.6
MYRIAD GPU GPU 31.3
MYRIAD GPU MYRIAD 28.2
MYRIAD MYRIAD CPU 30.2
MYRIAD MYRIAD GPU 31.5
MYRIAD MYRIAD MYRIAD 26.3

安定して動作している様子です

OpenVINO 2021.3 環境構築(Ubuntu20.04編)

インストールの前に

OpenVINO2021.x系からインストールされる場合は、ほぼそのままでインストールできるようです
OpenVINO2020.x系からインストールする場合、それまでのものと比べ、インストールがUbuntu18.04のインストール時の設定では行えなくなっています
またインストールされるフォルダが異なります


プラットフォーム

ハードウェアの制限

  • 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)

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

今回はUbuntu20.04にOpenVINO toolkit 2021.3をセットアップします
CPUスペックは、Intel(R) Core(TM) i7-1165G7 @ 2.80GHzとなります

必要なソフトウェア

  • CMake 3.13 or higher
  • Python 3.5 or higher

OpenVINO ToolKIT のダウンロード

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

OpenVINO Toolkit のインストール

openvino@ubuntu$ ls l_openvino_toolkit_p_2021.3.394.tgz
openvino@ubuntu$ tar -xvzf l_openvino_toolkit_p_2021.3.394.tgz
openvino@ubuntu$ cd l_openvino_toolkit_p_2021.3.394/

#コマンドラインインストール
openvino@ubuntu$ sudo ./install.sh

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

defaultのまま設定をすすめていくと、インストール完了です

環境変数の設定

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

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

Model Optimizer の設定

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

Ubuntu18.04に標準で入るtensorflowのバージョンが必要なバージョンよりも低いため、 恐らくここでもエラーが発生すると思います

sudo python3 -m pip install --upgrade pip
sudo python3 -m pip uninstall -y tensorflow
sudo python3 -m pip install tensorflow==1.15.2 

でtensorflowのバージョンを上げると、インストールされると思います

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

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

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

インストールのチェック

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

Demo check

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

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

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

ここで過去にOpenVINOをインストールしていた場合、そのバージョンによっては下記のメッセージが出て、インストールされません

root@xps:/opt/intel/openvino_2021/install_dependencies# ./install_NEO_OCL_driver.sh 
 Intel OpenCL graphics driver installer
 Checking current driver version...
 
 WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
 
 Intel(R) Graphics Compute Runtime installation skipped because current version greater or equal to 19.41.14441
 Installation of Intel Compute Runtime interrupted 

Demo check

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

Neural Compute Stick2 の使用

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

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

以上で、インストールが完了しました

OpenVINO 2021.3 Release

OpenVINO 2021.3がリリースされました
https://software.intel.com/en-us/openvino-toolkit
https://software.intel.com/content/www/us/en/develop/articles/openvino-relnotes.html

Intelからのリリースを転記します

Major Features and Improvements

  • Upgrade to the latest version for new capabilities and performance improvements.
  • Introduces a preview of Conditional Compilation (available in open-source distribution) which enables a significant reduction to the binary footprint of the runtime components (Inference Engine linked into applications) for particular models.
  • Introducing support for the 3rd Gen Intel® Xeon® Scalable platform (code-named Ice Lake), which delivers advanced performance, security, efficiency, and built-in AI acceleration to handle unique workloads and more powerful AI.
  • New pre-trained models and support for public models to streamline development:
    • Pre-trained Models: machine-translation, person-vehicle-bike-detection, text-recognition and text-to-speech.
    • Public Models: aclnet-int8 (sound_classification), deblurgan-v2 (image_processing), fastseg-small and fastseg-large (semantic segmentation) and more.
  • Developer tools now available as Python wheel packages using pip install openvino-dev on Windows*, Linux*, and macOS* for easy package installation and upgrades.

その他、今後サポートされるOSに多数変更があります

OpenVINO.jpでは引き続きベンチマークなどを行っていきたいと思います

OpenVINO toolkit 2021.1 ベンチマーク

TigerLake搭載機が入手できましたので設定に紆余曲折ありましたが、OpenVINO toolkit 2021.1のベンチマークを取りました
使用したアプリケーションは、security barrier c++ demoを使用しております

また使用機材は下記となります

11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 
DDR4-4267 16GB
Ubuntu 20.04 LTS

ベンチマーク時のオプションは下記となります

security_barrier_camera_demo -d $a -d_va $b -d_lpr $c -i car_1.bmp -m openvino_models/ir/intel/vehicle-license-plate-detection-barrier-0106/FP16/vehicle-license-plate-detection-barrier-0106.xml -m_lpr openvino_models/ir/intel/license-plate-recognition-barrier-0001/FP16/license-plate-recognition-barrier-0001.xml -m_va openvino_models/ir/intel/vehicle-attributes-recognition-barrier-0039/FP16/vehicle-attributes-recognition-barrier-0039.xml -no_show
-d-d_va-d_lprFPS Average
CPUCPUCPU89.725
CPUCPUGPU123
CPUGPUCPU77.675
CPUGPUGPU108.575
GPUCPUCPU92.85
GPUCPUGPU112.55
GPUGPUCPU91.35
GPUGPUGPU105.25

MYRIADはまだ私の環境では安定していないので、設定が出来次第、ベンチマークを取る予定です。

日立制御エッジコンピュータ CE50-10

OpenVINOTMツールキットをプレインストールされた組み込み向けPCです。

ファンレス、スピンドルレスで組み込みに強い仕様になっています。

詳しくは、https://www.hitachi.co.jp/products/it/control_sys/platform/cs_edge/index.html

OpenVINOをTigerLake搭載マシンで使用する

2021年を迎えて、新型GPUのIris Xe Graphicsが搭載されたIntel第11世代CPU TigerLakeを搭載したマシンがそろってきました
供給の問題だと思いますが、前世代のIceLakeは搭載マシンが少なかったのですが、今回のTigerLakeは、大手メーカーはほとんどが採用マシンを発表している様です

と言うわけで、TigerLakeマシンを入手しましたので、OpenVINOツールキットを導入していきましょう

openvino.jpでは、下記の様にリリースごとに環境構築のチェックをしているのですが、常に最新マシンがあるわけではありませんが、なるべく最新機種に近いものでチェックを行っています

今回は上記の記事をみながら進めていきました

今回使用したマシンは、
Dell Inspirion Corei7 1165G7, 16GBマシンです
標準搭載のSSDは512GBでしたが、1TBの物に載せ替えて、Windows10とのデュアルブートにしておきました

一方のOSはWindows10ですが、もう一方のOSはubuntu18ですとマシンが最新すぎて少々厳しそうでしたので、ubuntu20.04LTSを選択しました

第1の問題

通常通り、OpenVINO Toolkit 2021.2をダウンロードし、インストールを行います
ここまでは同じなのですが、demo_security_barrier_camera.shを実行する際に問題がありました
GPUが使用できません…エラーが発生し、1001と言う表示がされます
どうやらGPUドライバが認識できていない様です

さらに調査していくと、下記の様な情報がえられましたhttps://www.intel.co.jp/content/www/jp/ja/support/articles/000057923/software/development-software.html

こちらの記述をみると、カーネルバージョンが5.7以上でないと動作しないとのことです

第2の問題

Ubuntu20.04でインストールされるカーネルは5.4系です
こちらを5.7以上にアップデートする必要があります
sudo apt-cache search linux-image-5.
でカーネルイメージのバージョンを確認したところ、5.8.0-xxが最新になっている様です
こちらのバージョンでインストールしてみます
sudo apt-get install linux-image-5.8.0-34-generic

インストールしてみると、ネットワークが認識されていない様です
このモデルはWiFi6が搭載されているのですが、リリースされている5.8系のバージョンでは認識されない様です
こちらのWiFiドライバはIntelからも最新版が出ていてインストールしましたが、認識されませんでした

カーネルアップデートではなんともならない様なので、WiFi6関連の情報を調べていたところ、linux-generic-hwe-20.04 をインストールすることで、kernel5.8系でWiFiが認識できるカーネルがインストールできることがわかりました

sudo apt-get install linux-generic-hwe-20.04
uname -r
5.8.0-40-generic

と言うことで、5.8系の最新版がインストールできました

次に必要なドライバーをインストールします

 wget https://github.com/intel/compute-runtime/releases/download/20.43.18277/intel-gmmlib_20.3.2_amd64.deb
 wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.5353/intel-igc-core_1.0.5353_amd64.deb
 wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.5353/intel-igc-opencl_1.0.5353_amd64.deb
 wget https://github.com/intel/compute-runtime/releases/download/20.43.18277/intel-opencl_20.43.18277_amd64.deb
 wget https://github.com/intel/compute-runtime/releases/download/20.43.18277/intel-ocloc_20.43.18277_amd64.deb
 wget https://github.com/intel/compute-runtime/releases/download/20.43.18277/intel-level-zero-gpu_1.0.18277_amd64.deb 

 sudo dpkg -i *.deb 

こちらでGPUを使用できる様になります
demo_security_barrier_camera.sh で試したところ下記の様に動作しました

 Run ./security_barrier_camera_demo -d CPU -d_va CPU -d_lpr CPU -i /opt/intel/openvino_2021/deployment_tools/demo/car_1.bmp -m /home/klf/openvino_models/ir/intel/vehicle-license-plate-detection-barrier-0106/FP16/vehicle-license-plate-detection-barrier-0106.xml -m_lpr /home/klf/openvino_models/ir/intel/license-plate-recognition-barrier-0001/FP16/license-plate-recognition-barrier-0001.xml -m_va /home/klf/openvino_models/ir/intel/vehicle-attributes-recognition-barrier-0039/FP16/vehicle-attributes-recognition-barrier-0039.xml -d GPU -no_show
 

 [ INFO ] InferenceEngine:  API version ......... 2.1
 Build ........... 2021.2.0-1877-176bdf51370-releases/2021/2
 [ INFO ] Files were added: 1
 [ INFO ]     /opt/intel/openvino_2021/deployment_tools/demo/car_1.bmp
 [ INFO ] Loading device CPU
 [ INFO ]  CPU
 MKLDNNPlugin version ......... 2.1
 Build ........... 2021.2.0-1877-176bdf51370-releases/2021/2
 

 [ INFO ] Loading device GPU
 [ INFO ]  GPU
 clDNNPlugin version ......... 2.1
 Build ........... 2021.2.0-1877-176bdf51370-releases/2021/2
 

 [ INFO ] Loading detection model to the GPU plugin
 [ INFO ] Loading Vehicle Attribs model to the CPU plugin
 [ INFO ] Loading Licence Plate Recognition (LPR) model to the CPU plugin
 [ INFO ] Number of InferRequests: 1 (detection), 3 (classification), 3 (recognition)
 [ INFO ] 4 streams for CPU, 2 streams for GPU
 [ INFO ] Display resolution: 1920x1080
 [ INFO ] Number of allocated frames: 3
 [ INFO ] Resizable input with support of ROI crop and auto resize is disabled
 94.4FPS for (1 / 1) frames
 Detection InferRequests usage: 100.0%
 

 [ INFO ] Execution successful
 

 

 ###################################################
 

 Demo completed successfully. 

動作している様です
これで、GPUの動作を確認できます

Intel® NUC 11 Enthusiast Mini PC 発表

IntelからTigerLakeが搭載されたNUCが発表されました
注目は Intel® Iris® Xe Graphics とNVidia RTX2060が搭載されていることです
https://www.intel.com/content/www/us/en/products/boards-kits/nuc/mini-pcs/nuc11phki7caa.html

2つのGPUが搭載されているので、一台で学習→推論→実機投入テストができると思われます
(本来の使用方法とは違うと思いますが…)

面白そうな一台ですので、openvino.jpでも追いかけていきたいと思います

Formula Recognition demo

image を LaTexに変換してくれるFormula RecognitionがOpenVINO 2021からはいったので、試してみます

実行環境

CPU: 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
MemTotal:       4002276 kB
OS: Ubuntu 20.04LTS
vmware上で実行

モデルのダウンロード

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

最低限動作させるオプション

Options:
-h, –help Show this help message and exit.
-m_encoder M_ENCODER Required. Path to an .xml file with a trained encoder part of the model
-m_decoder M_DECODER Required. Path to an .xml file with a trained decoder part of the model
-i INPUT, –input INPUT
Required. Path to a folder with images or path to an image files
-o OUTPUT_FILE, –output_file OUTPUT_FILE
Optional. Path to file where to store output. If not mentioned, result will be storedin the console.
–vocab_path VOCAB_PATH
Required. Path to vocab file to construct meaningful phrase

この中で、vocab pathが必須になっています
今回は、
https://github.com/openvinotoolkit/open_model_zoo/tree/master/models/intel/formula-recognition-medium-scan-0001
からvocab.jsonをダウンロードして使用します

imageファイルはサンプルでついてくる下記のものを使用します

実行

/opt/intel/openvino_2021/deployment_tools/open_model_zoo/demos/python_demos/formula_recognition_demo/formula_recognition_demo.py -m_encoder ~/openvino_models/intel/formula-recognition-medium-scan-0001/formula-recognition-medium-scan-0001-im2latex-encoder/FP16/formula-recognition-medium-scan-0001-im2latex-encoder.xml -m_decoder ~/openvino_models/intel/formula-recognition-medium-scan-0001/formula-recognition-medium-scan-0001-im2latex-decoder/FP16/formula-recognition-medium-scan-0001-im2latex-decoder.xml –vocab_path vocab.json -i sample.png

結果

Formula: 4 7 4 W ^ { 1 } + 7 . 1 9 o ^ { 4 } – 6 – 0 . 9 6 L ^ { 1 } y

ちゃんと認識されているようです

少しオプションがわかりにくいので、調査が進み次第、第2弾に続けたいと思います

OpenVINO 2021.2 Release

OpenVINO 2021.2がリリースされました
https://software.intel.com/en-us/openvino-toolkit
https://software.intel.com/content/www/us/en/develop/articles/openvino-relnotes.html

Intelからのリリースを転記します

Executive Summary

  • Integrates the Deep Learning Workbench with the Intel® DevCloud for the Edge as a Beta release. Graphically analyze models using the Deep Learning Workbench on the Intel® DevCloud for the Edge (instead of a local machine only) to compare, visualize and fine-tune a solution against multiple remote hardware configurations.
  • Introduces support for Red Hat Enterprise Linux (RHEL) 8.2. See System Requirements for more info.
  • Introduces per-channel quantization support in the Model Optimizer for models quantized with TensorFlow Quantization-Aware Training containing per-channel quantization for weights, which improves performance by model compression and latency reduction.
  • Pre-trained models and support for public models to streamline development:Public Models: Yolov4 (for object detection), AISpeech (for speech recognition), and DeepLabv3 (for semantic segmentation)
  • Pre-trained Models: Human Pose Estimation (update), Formula Recognition Polynomial Handwritten (new), Machine Translation (update), Common Sign Language Recognition (New), and Text-to-Speech (new)
  • New OpenVINO™ Security Add-on, which controls access to model(s) through secure packaging and execution. Based on KVM Virtual machines and Docker* containers and compatible with the OpenVINO™ Model Server, this new add-on enables packaging for flexible deployment and controlled model access.
  • PyPI project moved from openvino-python to openvino, and 2021.1 version to be removed in the default view. The specific version is still available for users depending on this exact version by using openvino-python==2021.1

OpenVINO.jpでは引き続きベンチマークなどを行っていきたいと思います

インテル・スリー・チャレンジ2021

インテルがOpenVINOツールキットを使用した開発コンテストやローカル5G、川柳!など3つのコンテストを開催します

OpenVINOツールキットを使用した開発コンテストは今回で3回目
商品も出るので皆さん奮って参加してみましょう♪

その際には、ぜひNeural Compute Stick 2を当てて応募してくださいね