【ubuntu20.04上openvino安装及环境配置】
文章目錄
- 一,安裝及配置
- 二,測(cè)試
- 三,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ái)到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)品時(shí)可以選擇不安裝opencv,會(huì)造成高版本的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)證 新打開(kāi)一個(gè)終端,看見(jiàn)[setupvars.sh] OpenVINO environment initialized.證明成功。
cd /opt/intel/openvino_2021/deployment_tools/model_optimizer/install_prerequisites sudo ./install_prerequisites_onnx.sh至此環(huán)境配置成功。
二,測(cè)試
第一個(gè)測(cè)試是使用caffe的squeezenet模型進(jìn)行預(yù)測(cè),進(jìn)行該測(cè)試過(guò)程中需要聯(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)行成功后會(huì)顯示以下結(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報(bào)錯(cuò)(其實(shí)這里的格式也有問(wèn)題)
莓派上,要加上這個(gè)參數(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)行推理測(cè)試。因?yàn)槲疑厦娌捎胊pt的方式安裝OpenVINO?工具套件,這樣安裝后Python環(huán)境中并沒(méi)有OpenVINO?工具套件,所以我這里需要用pip安裝一下OpenVINO?工具套件。
注:如果你是編譯源碼等方式進(jìn)行安裝的,那么可以跳過(guò)這步:
pip install openvino另外,安裝時(shí)要保持版本的一致性:
2 OpenVINO?工具套件實(shí)測(cè)
OpenVINO?工具套件官方提供了YOLOv3版本的Python推理demo,可以參考:
https://github.com/openvinotoolkit/open_model_zoo/blob/master/demos/object_detection_demo/python/object_detection_demo.py
我們這里參考這個(gè)已經(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版本相對(duì)于官方Y(jié)OLOv3版本的主要修改點(diǎn):
但在實(shí)際測(cè)試中,會(huì)出現(xiàn)這個(gè)問(wè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)過(guò)我調(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?工具套件的推理時(shí)間平均在220ms左右,測(cè)試平臺(tái)為英特爾? 酷睿? i5-7300HQ,而使用PyTorch CPU版本的推理時(shí)間平均在1.25s,可見(jiàn)OpenVINO?工具套件加速明顯!
最終檢測(cè)結(jié)果如下:
如果你想在CPU上實(shí)現(xiàn)模型的快速推理,可以試試OpenVINO?工具套件哦~
總結(jié)
以上是生活随笔為你收集整理的【ubuntu20.04上openvino安装及环境配置】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Vijos - 佳佳的魔法药水(最短路)
- 下一篇: ubuntu设置网卡默认启动_ubunt