【ubuntu20.04上openvino安装及环境配置】
文章目錄
- 一,安裝及配置
- 二,測試
- 三,OpenVINO?工具套件轉(zhuǎn)換
- 四, OpenVINO?工具套件轉(zhuǎn)換
- 五、使用OpenVINO?工具套件進(jìn)行推理部署
原文鏈接
一,安裝及配置
1.下載英特爾? Distribution of OpenVINO? toolkit package 安裝包
choice1:去官網(wǎng)下載
Download Intel? Distribution of OpenVINO? Toolkit
版本選如下版本
2.解壓安裝包(以下皆以l_openvino_toolkit_p_2021.4.752為例)
tar -xvzf l_openvino_toolkit_p_2021.4.752.tgz3.來到l_openvino_toolkit_p_2021.4.752目錄
cd l_openvino_toolkit_p_2021.4.7524.使用圖形用戶界面 (GUI) 安裝向?qū)?/p> sudo ./install_GUI.sh
( 如果你已經(jīng)有opencv,那么在勾選安裝產(chǎn)品時可以選擇不安裝opencv,會造成高版本的opencv與低版本的opencv沖突)
5.安裝外部依賴:
cd /opt/intel/openvino_2021/install_dependencies sudo -E ./install_openvino_dependencies.sh6.配置環(huán)境
gedit ~/.bashrc將下述命令行添加至最后一行
source /opt/intel/openvino_2021/bin/setupvars.sh7.驗(yàn)證 新打開一個終端,看見[setupvars.sh] OpenVINO environment initialized.證明成功。
cd /opt/intel/openvino_2021/deployment_tools/model_optimizer/install_prerequisites sudo ./install_prerequisites_onnx.sh至此環(huán)境配置成功。
二,測試
第一個測試是使用caffe的squeezenet模型進(jìn)行預(yù)測,進(jìn)行該測試過程中需要聯(lián)網(wǎng)下載一些資源,注意,如果在上一步?jīng)]有安裝caffe框架相關(guān)的pyhton包,需要pip install安裝一下。
首先進(jìn)入demo目錄:
執(zhí)行第二腳本demo_security_barrier_camera.sh
./demo_security_barrier_camera.sh運(yùn)行成功后會顯示以下結(jié)果:
三,OpenVINO?工具套件轉(zhuǎn)換
安裝好OpenVINO?工具套件后,我們需要使用OpenVINO?工具套件的模型優(yōu)化器(Model Optimizer)將ONNX文件轉(zhuǎn)換成IR(Intermediate Representation)文件。
首先設(shè)置 OpenVINO?工具套件的環(huán)境和變量:
source /opt/intel/openvino_2021/bin/setupvars.sh然后運(yùn)行如下腳本,實(shí)現(xiàn)ONNX模型到IR文件(.xml和.bin)的轉(zhuǎn)換:
python3 /opt/intel/openvino_2021/deployment_tools/model_optimizer/mo.py --input_model runs/exp5/weights/best.onnx --model_name yolov5s_best -s 255 --reverse_input_channels --output Conv_487,Conv_471,Conv_455報錯(其實(shí)這里的格式也有問題)

四, OpenVINO?工具套件轉(zhuǎn)換
安裝好OpenVINO?工具套件后,我們需要使用OpenVINO?工具套件的模型優(yōu)化器(Model Optimizer)將ONNX文件轉(zhuǎn)換成IR(Intermediate Representation)文件。
首先設(shè)置 OpenVINO?工具套件的環(huán)境和變量:
source /opt/intel/openvino_2021/bin/setupvars.sh然后運(yùn)行如下腳本,實(shí)現(xiàn)ONNX模型到IR文件(.xml和.bin)的轉(zhuǎn)換:
python /opt/intel/openvino_2021/deployment_tools/model_optimizer/mo.py --input_model runs/exp6/weights/best.onnx --model_name yolov5s_best -s 255 --reverse_input_channels --output Conv_487,Conv_471,Conv_455關(guān)于命令行的參數(shù)用法,更多細(xì)節(jié)可參考:https://docs.openvinotoolkit.org/cn/latest/openvino_docs_MO_DG_prepare_model_convert_model_Converting_Model_General.html
轉(zhuǎn)換成功后,即可得到y(tǒng)olov5s_best.xml 和 yolov5s_best.bin文件。
五、使用OpenVINO?工具套件進(jìn)行推理部署
1 安裝Python版的OpenVINO?工具套件
這里使用Python進(jìn)行推理測試。因?yàn)槲疑厦娌捎胊pt的方式安裝OpenVINO?工具套件,這樣安裝后Python環(huán)境中并沒有OpenVINO?工具套件,所以我這里需要用pip安裝一下OpenVINO?工具套件。
注:如果你是編譯源碼等方式進(jìn)行安裝的,那么可以跳過這步:
pip install openvino另外,安裝時要保持版本的一致性:
2 OpenVINO?工具套件實(shí)測
OpenVINO?工具套件官方提供了YOLOv3版本的Python推理demo,可以參考:
https://github.com/openvinotoolkit/open_model_zoo/blob/master/demos/object_detection_demo/python/object_detection_demo.py
我們這里參考這個已經(jīng)適配好的YOLOv5版本:https://github.com/violet17/yolov5_demo/blob/main/yolov5_demo.py,該源代碼的輸入數(shù)據(jù)是camera或者video,所以我們可以將test數(shù)據(jù)集中的圖像轉(zhuǎn)換成視頻(test.mp4)作為輸入,或者可以自行修改成圖像處理的代碼。
其中YOLOv5版本相對于官方Y(jié)OLOv3版本的主要修改點(diǎn):
但在實(shí)際測試中,會出現(xiàn)這個問題 ‘openvino.inference_engine.ie_api.IENetwork’ object has no attribute ‘layers’ :
[ INFO ] Creating Inference Engine… [ INFO ] Loading network files:
yolov5/yolov5s_best.xml yolov5/yolov5s_best.bin yolov5_demo.py:233:
DeprecationWarning: Reading network using constructor is deprecated.
Please, use IECore.read_network() method instead net =
IENetwork(model=model_xml, weights=model_bin) Traceback (most recent
call last): File “yolov5_demo.py”, line 414, in
sys.exit(main() or 0) File “yolov5_demo.py”, line 238, in main
not_supported_layers = [l for l in net.layers.keys() if l not in
supported_layers] AttributeError:
‘openvino.inference_engine.ie_api.IENetwork’ object has no attribute
‘layers’
經(jīng)過我調(diào)研后才得知,在OpenVINO?工具套件2021.02及以后版本, ‘ie_api.IENetwork.layers’ 就被官方刪除了:
所以需要將第327、328行的內(nèi)容:
out_blob = out_blob.reshape(net.layers[layer_name].out_data[0].shape) layer_params = YoloParams(net.layers[layer_name].params, out_blob.shape[2])修改為:
out_blob = out_blob.reshape(net.outputs[layer_name].shape)params = [x._get_attributes() for x in function.get_ordered_ops() if x.get_friendly_name() == layer_name][0]layer_params = YoloParams(params, out_blob.shape[2])并在第322行下面新添加一行代碼:
function = ng.function_from_cnn(net)最終在終端,輸入下面命令:
python yolov5_demo.py -m yolov5/yolov5s_best.xml test.mp4加上后處理,使用OpenVINO?工具套件的推理時間平均在220ms左右,測試平臺為英特爾? 酷睿? i5-7300HQ,而使用PyTorch CPU版本的推理時間平均在1.25s,可見OpenVINO?工具套件加速明顯!
最終檢測結(jié)果如下:
如果你想在CPU上實(shí)現(xiàn)模型的快速推理,可以試試OpenVINO?工具套件哦~
總結(jié)
以上是生活随笔為你收集整理的【ubuntu20.04上openvino安装及环境配置】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vijos - 佳佳的魔法药水(最短路)
- 下一篇: ubuntu设置网卡默认启动_ubunt