You are on page 1of 30

OpenVINO™

Open Visual Inference & Neural Network


Optimization Toolkit

May. 2019
OpenVINO 簡介
Intel 開發之一項免費、跨硬體(CPU、 GPU、FPGA、ASIC)的
開放電腦視覺推論及神經網路(深度學習)優化工具包
OpenVINO 主要應用為Infernence, Predict,模型須在其它框
架如TensorFlow, Caffe等訓練好才能使用
OpenVINO 除了可提供硬體加速外,
更提供模型優化器(Model Optimizer),
可去除模型中的冗餘參數,並可降階
32 bit float number,以犧牲數個小數
來換取推論速度提升數十倍到百倍
OpenVINO 簡介
優化後,產出二個中間表示(Intermediate Representation、IR)檔
案(*.bin, *.xml),再交給推論引擎(Inference Engine)依指定的加
速硬體(CPU、GPU、FPGA、ASIC)進行預測
工具包整合了 OpenCV, OpenVX, OpenCL 等開源軟體工具
硬體加速晶片支援 CPU, GPU, FPGA, ASIC (IPU、VPU)等
OS支援 Windows, Liunx (Ubuntu, CentOS…) , Raspbian 等
支援 Caffe, TensorFlow, Mxnet, ONNX 等深度學習框架已訓練好
的模型及參數
OpenVINO 應用範疇
OpenVINO 簡介
OpenVINO 簡介

.pb

Indirect:
.h5
.h5df
OpenVINO Inference Engine Arch.
OpenVINO v.s NCSDK

Toolkit
OpenVINO NCSDK 1.X NCSDK 2.X
相容性比較

NCS Gen.1   
NCS Gen.2   
ARM platform   
Intel platform   
效能比較
42 41.03 40.56
40
38
36
34
31.73
32
30 29.61

28
USB 電源 5V2A 電源
NCS 一代 NCS 二代 單位:秒
在 Raspbian 9 安裝 OpenVINO (Pi 3, 3+)
依序執行以下指令:
1. wget
https://download.01.org/opencv/2019/openvinotoolkit/l_openvino_t
oolkit_raspbi_p_2019.1.094.tgz
2. tar -xvf l_openvino_toolkit_raspbi_p_2019.1.094.tgz
3. sed -i "s|<INSTALLDIR>|$(pwd)/inference_engine_vpu_arm|"
inference_engine_vpu_arm/bin/setupvars.sh
4. source inference_engine_vpu_arm/bin/setupvars.sh
5. sh
inference_engine_vpu_arm/install_dependencies/install_NCS_udev_r
ules.sh
使用內建 Face recognition sample測試 OpenVINO

下載
編譯 輸入Image
已訓練好之
User Application 進行Inference
xml, bin Model
使用內建 Face recognition sample測試 OpenVINO
依序執行以下指令:
1. cd
~/inference_engine_vpu_arm/deployment_tools/inference_engine/samples
2. mkdir build && cd build
3. cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-
march=armv7-a"
4. make -j2 object_detection_sample_ssd
5. wget –no-check-certificate
https://download.01.org/openvinotoolkit/2018_R4/open_model_zoo/face-
detection-adas-0001/FP16/face-detection-adas-0001.bin
6. wget –no-check-certificate
https://download.01.org/openvinotoolkit/2018_R4/open_model_zoo/face-
detection-adas-0001/FP16/face-detection-adas-0001.xml
使用內建 Face recognition sample測試 OpenVINO
依序執行以下指令:
7. ./armv7l/Release/object_detection_sample_ssd -m face-detection-
adas-0001.xml -d MYRIAD -i <YOURIMG>
8. 系統會出現 [ INFO ] Image out_0.bmp created! 訊息,即可察看結
果檔案:out_0.bmp (右下圖所示)
補充:以Keras model 轉換為 vino xml & bin files

將h5轉為
PC上安裝
訓練模型並 pb model file
OpenVINO
保存h5 model (TensorFlow
For win/linux
native format)
PC
Pi 3
使用 model-
Pi 3上安裝
optimizer將pb model
OpenVINO Inference at
file轉換為
for Raspbian Raspberry Pi 3!!
xml & bin files
& Copy model to Pi
(OpenVINO專用格式)
補充:以Keras model 轉換為 vino xml & bin files

PC上安裝 直接將K.session()內之資訊
OpenVINO 輸出為pb model file
For win/linux ⚠ Must Freeze All Variables ⚠
PC
Pi 3
使用 model-
Pi 3上安裝
optimizer將pb model
OpenVINO Inference at
file轉換為
for Raspbian Raspberry Pi 3!!
xml & bin files
& Copy model to Pi
(OpenVINO專用格式)
補充:安裝 OpenVINO for Linux (CLI 模式)
1. 開啟終端機
2. 移動至家(~)目錄
cd ~
3. 解壓縮安裝程式
tar -xvzf l_openvino_toolkit_p_<version>.tgz
4. 進入安裝程式之目錄
cd l_openvino_toolkit_p_<version>.tgz
5. 如果加目錄存在下面2個資料夾,請更名或刪除
/home/<user>/inference_engine_samples
/home/<user>/openvino_models
補充:安裝 OpenVINO for Linux (CLI 模式)
6. 使用root權限執行安
裝程式
sudo ./install.sh
7. 歡迎畫面,
按Enter鍵繼續
補充:安裝 OpenVINO for Linux (CLI 模式)
8. 空格鍵按到底輸入
accept,接著按Enter
補充:安裝 OpenVINO for Linux (CLI 模式)
9. 回報使用狀況給intel,
輸入2(不同意)/1(同
意),後按Enter繼續
補充:安裝 OpenVINO for Linux (CLI 模式)
10.出現缺少元件訊息但
不影響安裝,輸入1
後按Enter繼續
補充:安裝 OpenVINO for Linux (CLI 模式)
11.安裝元件清單,空格
鍵按到底輸入
accept,接著按Enter
補充:安裝 OpenVINO for Linux (CLI 模式)
12.再次跳出缺少元件訊
息依然不影響安裝,
輸入1 後按Enter繼續
補充:安裝 OpenVINO for Linux (CLI 模式)
13.開始安裝程序,請稍後……
補充:安裝 OpenVINO for Linux (CLI 模式)
14.出現安裝成功(第一部分)訊息,按Enter結束安裝程式
補充:安裝 OpenVINO for Linux (CLI 模式)
15.設定環境變數 (若加入到~/.bashrc檔案中,則每次都會執行)
source /opt/intel/openvino/bin/setupvars.sh
即會出現 [setupvars.sh] OpenVINO environment initialized. 訊息
16.設定model optimizer (轉檔) virtualenv環境
cd /opt/intel/openvino/deployment_tools/model_optimizer/install_prerequisites
sudo ./install_prerequisites.sh tf venv
補充:安裝 OpenVINO for Linux (CLI 模式)
17.完成後,使用以下指令進入,即可開始使用mo.py等工具
source /opt/intel/openvino_2019.1.133/deployment_tools/model_optimizer/install_
prerequisites/../venv/bin/activate
補充:模型轉換指令
18.mo.py --input_model <MODEL_PATH> --input_shape <SHAPES> --
data_type=<TYPE (model weights之精度)>
• 例. mo.py --input_model trans_model/inference_graph.pb --
input_shape [1,28,28,1] --data_type=FP16
• Windows 版本指令前要加上python與半形空格
• OpenVINO for Raspbian 不包含此功能
補充:模型轉換指令
References
1. https://makerpro.cc/2018/10/use-intel-openvino-to-make-
self-driving-vision-system/
2. https://simplecore.intel.com/nervana/wp-
content/uploads/sites/53/2018/05/IntelAIDC18_MoniqueJon
es_YiGe_Odyssey_5_24_final.pdf
3. https://software.intel.com/en-us/articles/transitioning-from-
intel-movidius-neural-compute-sdk-to-openvino-toolkit
4. https://www.dlology.com/blog/how-to-run-keras-model-
inference-x3-times-faster-with-cpu-and-intel-openvino-1/
References
5. https://docs.opencv.org/4.0.1/d6/d0f/group__dnn.html
6. https://www.learnopencv.com/using-openvino-with-opencv/
7. https://docs.openvinotoolkit.org/latest/_docs_install_guides_
installing_openvino_raspbian.html
8. https://docs.openvinotoolkit.org/latest/_docs_install_guides_
installing_openvino_linux.html
9. https://docs.openvinotoolkit.org/latest/_docs_install_guides_
installing_openvino_windows.html

You might also like