OpenVINO主要包括模型優化器(Model Optimizer)和推理引擎(Inference engine)兩部分。模型優化器負責將各種格式的深度神經網絡模型轉換成統一的自定義格式,並在轉換過程中進行模型優化;推理引擎接受經過模型優化器轉換並優化的網絡模型,為Intel的各種計算設備提供高性能的神經網絡推理運算。本文主要記錄在Win10 X64+VS2019+Python3.6環境下的安裝過程,以及安裝過程中的注意事項。下圖是其推理引擎的驗證結果:
在Python+OpenCV中調用本文中提及的車牌檢測模型:
1. Install Intel® Distribution of OpenVINO™ toolkit for Windows* 10
Visual Studio 2019或2017或2015
CMake3.10或更高版本+X64,若是VS2019,則需要CMake3.14(含)及以上版本。 注:CMake必須是安裝版本(.msi)且安裝過程中選擇設置環境變量;CMake的ZIP的壓縮檔即便是已設置環境變量,OpenVINO的安裝程序也無法檢測到,仍然會認為CMake缺失。
Python 3.8.5 64位
我的電腦中在安裝OpenVINO之前,已有VS2019 + CMake3.18 + python3.8,並且已設置好相關環境變量,因此本文後續部分將只記錄OpenVINO的安裝及驗證過程。
另外,我個人比較推薦先安裝Visual Studio,CMake和Python合適的版本,最後安裝OpenVINO,這樣
2. OpenVINO下載與安裝
在Distribution中,有多種安裝方式可選。這裡主要說明一下其中的[PIP Package Manager]的方式,此方式最簡單,但是它只有Inference Engine。所以大家在下載之前要確認好是否只要Inference Engine,如果不是,那就不能選[PIP Package Manager]的方式。
我選的是[Online & Offine(recommanded)],選定後需要先註冊,才能下載;
3. OpenVINO設置環境變量
OpenVINO設置環境變量有兩種方法:一種是每次使用時都用命令提示符設置一次;另一種手動永久設置環境變量。
單次設置環境變量
打開command.exe,切換至OpenVINO安裝目錄下的setupvars.bat文件所在路徑,運行
- C:\Program Files (x86)\Intel\openvino_2021.4.689\bin>setupvars.bat
- Python 3.8.5
- [setupvars.bat] OpenVINO environment initialized
複製代碼
運行完成後,在同一個command.exe窗口下檢查opencv的版本。只有在如下輸出結果時,才可以在opencv中調用openvino的相關示例或模型。
注:檢查opencv的版本需要在運行setupvars.bat命令之後,且在同一個command.exe窗口中。若另外打開一個command.exe或者將setupvars.bat的運行窗口關閉,則OpenVINO的環境變量設置均處於失效狀態。
- (openvino_env) C:\Program Files (x86)\Intel\openvino_2021.4.689\bin>python
- Python 3.8.5 (default, Sep 3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
- Warning:
- This Python interpreter is in a conda environment, but the environment has
- not been activated. Libraries may fail to load. To activate this environment
- please see https://conda.io/activation
- Type "help", "copyright", "credits" or "license" for more information.
- >>> import cv2
- >>> print(cv2.__version__)
- 4.5.3-openvino
複製代碼
永久設置環境變量
永久設置較為複雜,詳細請參考: 為Windows 永久設置OpenVINO™環境變量®10
4. Configure the Model Optimizer
環境變量設置好以後,就可以進行模型優化器(Model Optimizer)的配置了,即官網安裝流程中的[
在命令行中切換至如下路徑:
- cd "c:\Program Files (x86)\Intel\openvino_2021.4.689\deployment_tools\model_optimizer\install_prerequisites"
複製代碼
運行
- install_prerequisites.bat
複製代碼
5.運行
此步運行兩個demo腳本來驗證OpenVINO™工具包是否安裝成功,腳本所在路徑
- c:\Program Files (x86)\Intel\openvino_2021.4.689\deployment_tools\demo
複製代碼
打開命令行,切換至上述路徑下,先運行
- demo_squeezenet_download_convert_run.bat
複製代碼
該腳本下載一個SqueezeNet模型,使用模型優化器將模型轉換為.bin和.xml 中間表示(IR)文件。該腳本
- Image C:\Program Files (x86)\Intel\openvino_2021.1.110\deployment_tools\demo\car.png
-
- classid probability label
- ------- ----------- -----
- 817 0.6853030 sports car, sport car
- 479 0.1835197 car wheel
- 511 0.0917197 convertible
- 436 0.0200694 beach wagon, station wagon, wagon, estate car, beach waggon, station waggon, waggon
- 751 0.0069604 racer, race car, racing car
- 656 0.0044177 minivan
- 717 0.0024739 pickup, pickup truck
- 581 0.0017788 grille, radiator grille
- 468 0.0013083 cab, hack, taxi, taxicab
- 661 0.0007443 Model T
-
- [ INFO ] Execution successful
-
- [ INFO ] This sample is an API example, for any performance measurements please use the dedicated benchmark_app tool
-
- ###############|| Classification demo completed successfully ||###############
複製代碼
接下來運行圖像檢測驗證腳本,在上一個腳本相同的路徑下,在命令提示符中運行demo_security_barrier_camera.bat文件:
- demo_security_barrier_camera.bat
複製代碼
該腳本下載了三個經過預先訓練的模型IR,構建了Security Barrier Camera Demo 應用程序,並與下載的模型和demo目錄中的car_1.bmp 圖像一起運行它,以顯示推理管道。驗證腳本使用車輛識別,其中車輛屬性彼此建立,以縮小特定屬性的範圍。首先,將物體識別為車輛。該標識用作下一個模型的輸入,該模型標識特定的車輛屬性,包括車牌。最後,將識別為車牌的屬性用作第三種模型的輸入,該模型可以識別車牌中的特定字符。圖像檢測結果以及相應顯示圖像如下:
- [ INFO ] InferenceEngine: API version ......... 2.1
- Build ........... 2021.1.0-1237-bece22ac675-releases/2021/1
- [ INFO ] Files were added: 1
- [ INFO ] C:\Program Files (x86)\Intel\openvino_2021.1.110\deployment_tools\demo\car_1.bmp
- [ INFO ] Loading device CPU
- CPU
- MKLDNNPlugin version ......... 2.1
- Build ........... 2021.1.0-1237-bece22ac675-releases/2021/1
-
- [ INFO ] Loading detection model to the CPU 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
- [ INFO ] Display resolution: 1920x1080
- [ INFO ] Number of allocated frames: 3
- [ INFO ] Resizable input with support of ROI crop and auto resize is disabled
複製代碼
本文到此結束,感謝支持,歡迎關注。
|