source : Intel OpenVINO Document |
最近剛好在實驗在Win10環境下,若不使用C/C++,不安裝Intel OpenVINO 2022.1 Windows標準版安裝程式(w_openvino_toolkit_p_2022.1.0.643_offline.exe)[1]是否可以只安裝Python開發環境?先說結論,可以,但有坑要填。以下就讓我慢慢道來。
經查找Intel OpenVINO官方文件,在Get Started - Installing OpenVINO - OpenVINO Runtime - Windows - From PyPi [2]下有清楚的安裝說明,以下摘錄重要步驟說明。
- 先建構Python虛擬環境(避免污染目前Python工作環境)。
- 啟動並進入Python虛擬環境。
- 只需執行 「pip install openvino」即可完整安裝OpenVINO。
- 以Python執行一段碼「python -c "from openvino.runtime import Core"」來驗證工作環境已完整安裝無誤。
個人電腦上原先有安裝有Python 3.9 及 Anaconda 4.13.0,雖然OpenVINO文件上說明Python 3.6 ~ 3.9都能正常工作,但執行安裝後雖然顯示成功,但也出現很多套件包相容性錯誤訊息。因此建構虛擬環境時建議將Python降版到3.7,即在「python -m venv openvino_env」後加上「--python=python3.7」。若是使用Anacoda建構獨立環境時,則先使用「conda create -n openvino_env python=3.7」建立Python 3.7環境,並以「conda activate openvino_env」啟動環境,再執行「pip install openvino」,就能正確安裝,並且不會有套件包相容性錯誤訊息發生。
到這一步以為就能開始使用,但不幸地是,我們忘了OpenVINO 2022.1版把部署用和開發用的版本隔開了。如前一篇文章「OpenVINO 2022大改版讓Edge AI玩出新花樣」[3] Fig. 1所示,以上步驟安裝的只有部署用的部份,而像是OpenCV, Model Optimizer, Benchmark Tool, Accuracy Checker and Annotation Converter, Post-Training Optimization Tool, Model Downloader and other Open Model Zoo Tools等工具是不在這個安裝包中,須改以「pip install openvino-dev」來替代。不然連下載Intel預訓練(Pre-Trained)或公眾(Public)模型都沒辦法,因為少了Model Downloader。
本來以為改安裝openvino-dev就能正確工作,結果又發現一個奇怪的問題,使用CPU, iGPU進行推論都沒問題,但使用NCS2(神經網路計算棒二代,或稱MYRIAD)卻無法用來推論。經多方詢問高手及查找後,才得知原來在Github上的Release Notes有提及(如下清單所示),Movidius Myriad X的Plugin是不包含在其中的,所以NCS2及含多Myriad X的VPU卡都會變得無法載入模型進行推論。
- Intel® Movidius™ Myriad™ X plugin is not included
- The Intel® version of OpenCV will not be included, please visit this guide on how to use the community version
為了解決上述NSC2無法被偵測到及運行問題,只好乖乖的重新安裝標準版的安裝程式[1]。安裝好後在進入Python虛擬環境前要先執行「C:\Program Files (x86)\Intel\openvino_2022\setupvars.bat」來設置相關環境變數,才能認到所有plugin的DLL程式庫,使後續Python的範例程式能順利運行。
到了這裡,本來以為就能開始下載(Model Downloader)、轉換(Model Converter)及優化(Model Optimizer)預訓練模型,結果又發現執行時會缺少一些模型框架套件包(如caffe, kaldi, mxnet, onnx, pytorch, tensorflow, tensorflow2)。經查找這部份的說明反而在PyPi網頁[5]上有更清楚的說明。須改用「pip install openvino-dev[tensorflow2,onnx,pytorch,caffe]」,而中括號的內容就是依個人需求自行增減框架項目。如果增加了這些框架套件包時,安裝時間會大幅增加,需耐心等候。
目前Intel 11 / 12代的CPU及iGPU推論速度上都已比NCS2快,所以個人猜想新版大概是為了減少部署空間及增快安裝速度,所以預設就不安裝相關plugins吧?也或許Intel忘了整合進去,下一版才會再加入吧?
小結
此次填坑花了不少時間,如果各位只想使用Python + Intel CPU/iGPU環境來開發OpenVINO,則先準備好Python 3.7的虛擬環境,再以「pip install openvino-dev[tensorflow2,onnx,pytorch,caffe]」進行安裝,就能一次到位。若仍想使用NCS2則只能乖乖安裝標準版的安裝程式。希望此次的心得分享可以讓大更容易的安裝和使用新版(2022.1)的OpenVINO。
參考文獻
[1] Intel, Download Intel Distribution of OpenVINO Toolkit
https://www.intel.com/content/www/us/en/developer/tools/openvino-toolkit/download.html
[2] Intel, Install Intel® Distribution of OpenVINO™ Toolkit from PyPI Repository
https://docs.openvino.ai/nightly/openvino_docs_install_guides_installing_openvino_pip.html
[3] 許哲豪,OpenVINO 2022大改版讓Edge AI玩出新花樣
https://omnixri.blogspot.com/2022/08/openvino-2022edge-ai.html
[4] Intel, Github - openvinotoolkit - releases
https://github.com/openvinotoolkit/openvino/releases/tag/2022.1.1
[5] Intel, PyPi - OpenVINO Development Tools
https://pypi.org/project/openvino-dev/
沒有留言:
張貼留言