<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用OpenVINO? 部署PaddleSeg模型庫中的DeepLabV3+模型

英特爾物聯網 ? 來源:英特爾物聯網 ? 作者:英特爾物聯網 ? 2021-11-22 14:58 ? 次閱讀

01

概述

本文是OpenVINO 工具套件與百度飛槳PaddlePaddle模型轉換/部署系列的第二部。這篇文章專注于展示如何將百度飛槳PaddelSeg項目下的DeepLabV3+路面語義分割模型轉換為OpenVINO工具套件的IR模型并且部署到CPU上。

為了使本文擁有更廣的受眾面,文章的目標部署平臺選擇了CPU和iGPU。關于如何部署到邊緣設備例如Intel Movidius MyraidX VPU上,請參考第一篇文章:

Ubuntu20.04環境下使用OpenVINO部署BiSeNetV2模型

那么我們重述一下什么是語義分割:

語義分割(Semantic Segmentatio)是計算機視覺對現實世界理解的基礎,大到自動駕駛,小到個人應用只要細心觀察都可以發現語義分割的應用場所無處不在。其實語義分割相當于是圖像分割+ 對分割區域的理解。


因此圖像語義分割也稱為圖像語義標注,由于圖像語義分割不僅要識別出對象還要標出每個對象的邊界,所以相關的模型會具有像素級別(Pixel Level)的密集預測能力。

本篇文章的主要目的是展示如何把已有的百度飛槳Paddle模型一步一步的部署到Intel的Movidius Myriad X VPU上。同時本文也展示了一種思路:如何在浩瀚的Internet網絡找到正確的信息,少走彎路。

1.1

OpenVINO工具套件的重要性

面對當下眾多流行的AI框架,比如PaddlePaddle、PyTorch、Tensorflow等等,每個框架都有自己特殊的神經網絡結構和文件類型,每個框架內的設計也盡不一樣, 如此訓練出來的模型則千差萬別,這對軟件開發和重用造成了一定的麻煩。

是否可以有一種工具可以使我們,不管選用什么AI框架來構建專屬于自己的神經網絡時,在最后部署到生產環境中的環節,都可以擁有統一的接口,可重用的代碼呢?

答案是肯定的。OpenVINO工具套件就是這樣的一款工具,有了它的幫助,AI工程師可以在模型構建、訓練階段,選擇自己熟悉的任何AI框架來搭建起符合要求的個性化神經網絡, 而在后期使用OpenVINO快速構建起專屬的解決方案,提供統一的接口,并在Intel 的硬件上優化性能。

1.2

這篇文章的著重點和非著重點

正如前面提到的,,這篇文章的著重點在于一步一步演示怎樣導出已經訓練好的或者已有的百度飛槳PaddleSeg模型,并且怎樣轉換Paddle模型到ONNX格式,最后再轉到OpenVINO 工具套件IR模型,直至部署到CPU上為止。在每一步我都會提供相應的官方網址,一步一步的把讀者推向正確的官網文檔,減少走彎路。

再來講一下這篇文章不講什么。這篇文章不講解怎樣安裝Python,Anaconda,OpenVINO工具套件這樣的基礎需求框架。以上幾個產品的官方網站教程都做的非常詳細,而且會實時更新,相信對于每個不同的技術,閱讀相對應的官方文檔可以省去很多麻煩,少走彎路。這篇文章更多的精力會用在講解模型之間的轉換,部署,以及排錯。

1.3

Intel OpenVINO簡介

OpenVINO工具套件(以下簡稱OV)是Intel 發布的一個綜合性工具套件,用于快速開發解決各種任務的應用程序和解決方案。它包括人類視覺,自動語音識別,自然語言處理,推薦系統等。該工具套件基于最新一代人工神經網絡,包括卷積神經網絡 (CNN)、Recurrent Network和基于注意力的網絡,可跨英特爾 硬件擴展計算機視覺和非視覺工作負載,從而最大限度地提高性能。

1.4

百度飛槳

百度飛槳(以下簡稱Paddle)是百度旗下一個致力于讓AI深度學習技術的創新與應用更加簡單的工具集。其中包括,PaddleCV,PaddleSeg,PaddleClas等工具幫助您快速的搭建起AI應用程序,最快落地AI模型項目。對于有過Tensorflow, PyTorch經驗的朋友來說, Paddle的角色和前面二者是一樣的,都是高度集成的AI框架。目前Paddle有很活躍的開發者社區,有利于快速找到自己需要的答案和幫助。

02

概述面向的讀者和需要的軟件

2.1

面向的讀者

本文面向的讀者是具有一定編程能力和經驗的開發人員,AI模型開發員,熟悉Python語言,并使用Anaconda,已有訓練好的模型,期待能部署到邊緣設備上來投入實際生產中。對于0基礎的讀者也是一個很好的機會通過一篇文章一并了解以上的幾個技術以及怎樣綜合使用這些技術,讓它們成為您得心應手的工具來幫助您最快的實現AI部署。

2.2

需要的軟件

Anaconda,Python(創建Anaconda虛擬環境的時候會自帶),OpenVINO工具套件,Paddle,PaddleSeg,Paddle2Onnx,mamba。

03

安裝PaddlePaddle & PaddleSeg

在介紹完以上內容或,現在可以正式動工啦。由于本文用到的BiSeNetV2路面分割模型是用PaddleSeg訓練的,所以需要先安裝PaddleSeg的基礎庫PaddlePaddle。然后再安裝PaddelSeg。

在安裝Paddle組件之前,請確保您已經安裝好了Anaconda。(地址:

https://docs.anaconda.com/anaconda/install/index.html)

第一步:創建一個conda 虛擬環境:

conda create -n "paddle" python=3.8.8 ipython

創建好環境后 別忘了激活環境:

conda activate paddle

第二步:安裝GPU或者CPU版本的PaddlePaddle:

至于是選擇GPU還是CPU版本的Paddle,主要是根據您的硬件配置。如果您有NVIDIA最近幾年的顯卡例如:RTX 1060,RTX 2070等,那么請選擇安裝GPU版本。查看CUDA對GPU支持的具體信息,請閱讀NVIDIA官網的GPU Compute Capability(地址:

https://developer.nvidia.com/cuda-gpus)

首先安裝NVIDIA的cudnn

conda install cudnn

安裝的時候也可以把conda 換成mamba(地址:https://github.com/mamba-org/mamba),從而得到更快的下載速度。

8153d7f0-494e-11ec-b939-dac502259ad0.png

圖四:使用Mamba安裝cudnn

這里快速介紹一下mamba。它是Conda的C++實現。相比于Conda,它提供多線程下載,這也就意味著它可以比Conda更好的利用網絡資源,下載的更快。同時它也能更快的解析依賴項。估計用Conda多的朋友應該會遇到過,Conda有時候查找依賴項非常慢、很耽誤時間。Mamba是您的好朋友,以下教程種再看到conda的命令,大家都可以自動替換成mamba來提高速度, 讓您的效率飛起來~!

安裝PaddlePaddle的時候,Paddle的官網(https://www.paddlepaddle.org.cn/)是您的好朋友,(任何時候安裝任何東西,找到官網一般就能獲取最新的指南), 我以Ubuntu 20.04的系統為例(如果您用其他的系統,那么請選擇相應的選項)

具體命令如下:

conda install paddlepaddle-gpu==2.1.2 cudatoolkit=11.2 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge

安裝完底層框架之后,是時候安裝PaddleSeg(地址:https://github.com/PaddlePaddle/PaddleSeg)啦。同理, 安裝PaddleSeg的時候您的好朋友還是它的官網或者它的Github倉庫。

pip install paddleseg

git clone https://github.com/PaddlePaddle/PaddleSeg

安裝完PaddleSeg之后 我們就可以開始激動人心的步驟:導出已經訓練好的模型~!

04

模型轉換

模型的轉換分為4個步驟:

1. 導出已經訓練好的模型

2. 轉換到ONNX模型

3. 通過ONNX模型轉換到OpenVINO工具套件的 IR模型

4. 最后編譯IR模型成為.blob模型(只適用于Intel VPU,神經棒等, CPU不需要)

其中3和4都是可以在Intel Movidius Myriad X VPU上部署測試的。

4.1

導出已經訓練好的模型

本文將會以PaddleSeg官方的DeepLabV3P模型(DeepLabV3+[2](地址:

https://github.com/PaddlePaddle/PaddleSeg/tree/release/2.2/configs/deeplabv3p)

是一款相對較新的神經網絡構架,擁有不錯的準確度和性能)為例(如果您有自己的模型,請替換掉下面例子中的模型,并且更新相應的配置即可)。本文選中的是以Pascol VOC 2012 + Aug 為數據集訓練好的, ResNet50_OS8為骨干網絡的DeepLabV3P模型。

命令的格式如下:

conda activate paddle

cd PaddleSeg

python export.py

--config / Github/PaddleSeg/configs/deeplabv3p/deeplabv3p_resnet50_os8_voc12aug_512x512_40k.yml

--model /Models/Paddle/Segmentation/deeplabv3p_pascalvoc2012.pdparams

如果一切運行正常您將會看到類似如下的信息:

W0922 2341.752403 25116 device_context.cc:404] Please NOTE: device: 0, GPU Compute Capability: 7.5, Driver API Version: 11.2, Runtime API Version: 11.2

W0922 2341.775831 25116 device_context.cc:422] device: 0, cuDNN Version: 8.1.

2021-09-22 2344 [INFO] Loading pretrained model from https://bj.bcebos.com/paddleseg/dygraph/resnet50_vd_ssld_v2.tar.gz

Connecting to https://bj.bcebos.com/paddleseg/dygraph/resnet50_vd_ssld_v2.tar.gz

Downloading resnet50_vd_ssld_v2.tar.gz

[==================================================] 100.00%

Uncompress resnet50_vd_ssld_v2.tar.gz

[==================================================] 100.00%

2021-09-22 2304 [INFO] There are 275/275 variables loaded into ResNet_vd.

2021-09-22 2305 [INFO] Loaded trained params of model successfully.

/anaconda3/envs/paddle/lib/python3.8/site-packages/paddle/fluid/layers/utils.py DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.9 it will stop working

return (isinstance(seq, collections.Sequence) and

2021-09-22 2307 [INFO] Model is saved in ./output.

具體的模型deeplabv3p_resnet50_os8_voc12aug_512x512_40k.yml配置文件可以在PaddleSeg的官方Github閱讀。

(地址:

https://github.com/PaddlePaddle/PaddleSeg/blob/release/2.2/configs/deeplabv3p/deeplabv3p_resnet50_os8_voc12aug_512x512_40k.yml)

如果想知道更多參數,您的好朋友還是PaddleSeg的官方Github Repository:模型導出(地址:

https://github.com/PaddlePaddle/PaddleSeg/blob/release/2.2/docs/export/export/model_export.md)

來講解一下這條命令。

--config 是用來指定模型配置參數的文件。在這個文件里它說明了您使用的模型叫什么名字, 比如在我的例子中,使用的模型叫做:BiSeNetV2, 您需要的分類有多少種,用了什么優化器,損失函數是什么,batch size是多少等等都在這個文件里面。

來看一下

deeplabv3p_resnet50_os8_voc12aug_512x512_40k.yml配置文件 地址:

https://github.com/PaddlePaddle/PaddleSeg/blob/release/2.2/configs/deeplabv3p/deeplabv3p_resnet50_os8_voc12aug_512x512_40k.yml)的內容

_base_: '../_base_/pascal_voc12aug.yml'

model:

type: DeepLabV3P

backbone:

type: ResNet50_vd

output_stride: 8

multi_grid: [1, 2, 4]

pretrained: https://bj.bcebos.com/paddleseg/dygraph/resnet50_vd_ssld_v2.tar.gz

backbone_indices: [0, 3]

aspp_ratios: [1, 12, 24, 36]

aspp_out_channels: 256

align_corners: False

pretrained: null

可以看出, 它只需要在本配置文件里面指出了和模板文件pascal_voc12aug.yml (地址:

https://github.com/PaddlePaddle/PaddleSeg/blob/release/2.2/configs/_base_/pascal_voc12aug.yml)

不一樣的參數. 而它的模板文件又參照了pascal_voc12.yml (地址:

https://github.com/PaddlePaddle/PaddleSeg/blob/release/2.2/configs/_base_/pascal_voc12.yml)

作為更上一層的模板文件。

這樣做的好處顯而易見. 您在自己的模型配置文件里, 只需要做少許改動,指出和模板文件不同的配置便可以,大量的相同配置則被重復使用了。

一個小竅門就是,參考PaddleSeg項目里已有的模板 (例如您剛克隆的PaddleSeg代碼下面的 deeplabv3p_resnet50_os8_voc12aug_512x512_40k.yml) (地址:

https://github.com/PaddlePaddle/PaddleSeg/blob/release/2.2/configs/deeplabv3p/deeplabv3p_resnet50_os8_voc12aug_512x512_40k.yml)

一級一級的追查回到最底層的模板,您就差不多可以知道在xml文件里有哪些參數可以指定的了。同時也參考自己在訓練AI模型的時候代碼里用到了哪些參數,基本上都是要在這個config文件里面反映出來的。

--model 指向的是您已經訓練好的模型文件。

4.2

轉模型到ONNX: Paddle --> ONNX

模型導出后第一道轉換現在開始了.Paddle提供了轉換工具 Paddle2onnx. (地址:

https://github.com/PaddlePaddle/Paddle2ONNX)我們先來安裝它:

pip install paddle2onnx

是時候轉化模型到ONNX啦

paddle2onnx --model_dir inference --model_filename model.pdmodel --params_filename model.pdiparams --save_file road_seg.onnx --opset_version 11

--enable_onnx_checker True

這里 model_dir, model_filename, 以及params_filename和Save_file替換成自己的文件路徑就好.

--model_dir是轉換后的模型要保存的目錄

--enable_onnx_checker 把這個也啟動,讓轉換程序幫我們檢查模型

我當時遇到的問題:

Opset_version的默認值是9(地址:

https://github.com/PaddlePaddle/Paddle2ONNX#parameters),當我在轉BiSeNetV2的時候一開始并沒有指定這個,而且出錯了,經過研究,發現是因為BiSeNetV2的框架比較新,需要把這個opset_version調高到11,更改到11后就好了。目前看到官網能穩定支持的是 11,但是也有看到過別人用12的,大家可以邊試邊用。

如果轉換成功啦則會看到類似的如下信息:

2021-08-23 2233 [INFO] ONNX model generated is valid.

2021-08-23 2233 [INFO] ONNX model saved in /onnx_models/road_seg.onnx

4.3

轉換ONNX模型到OpenVINO IR模型

鋪墊了很久,終于來到了這一步。

先來快速介紹一下OpenVINO的IR模型。IR的全稱叫做Intermediate Representation. IR格式的模型是由2個文件組成的,它們分別是 .xml 和 .bin.

來到這一步之前請確保您的Intel OpenVINO安裝成功啦。怎樣安裝Intel OpenVINO呢?您的好朋友又要出現了:Intel OpenVINO官網安裝教程(地址:

https://docs.openvinotoolkit.org/cn/latest/openvino_docs_install_guides_installing_openvino_linux.html#install-openvino),這里是Intel OpenVINO官方下載地址(https://software.seek.intel.com/openvino-toolkit)

Intel OpenVINO的安裝包里3種安裝選項分別是:

1. 圖像界面GUI安裝

2. 命令行安裝

3. 命令行安裝安靜模式

對于新手,推薦用GUI安裝,清清楚楚、明明白白。

4.3.1

設置外部軟件依賴

安裝成功后,記得把Install External Software Dependencies(地址:

https://docs.openvinotoolkit.org/cn/latest/openvino_docs_install_guides_installing_openvino_linux.html#install-external-dependencies)這個部分的要求也跟完這一步是需要的。

4.3.2

激活Intel OpenVINO環境變量

小提示:接下來要使用OV就要設置好它的環境變量。官方教程(地址:

https://docs.openvinotoolkit.org/cn/latest/openvino_docs_install_guides_installing_openvino_linux.html#set-the-environment-variables)要求把環境變量加載到您的 .bashrc文件里,這樣每次打開任何命令行接口都可以自動加載OV的環境變量。但是我在實際使用過程中發現了一個問題。安裝完OV后,我的一部分程序開始報錯,出現了一個和Gstreamer相關的錯誤信息。經過研究發現原來OV的環境變量會和Anaconda的虛擬環境沖突,導致GStreamer出現問題。

其實解決方法也很簡單。我們一般只會在模型轉換的時候用到OV,那么就不要把OV的環境變量設置到.bashrc文件里面,只需要在使用OV之前,在命令行里激活OV的環境變量就行。激活環境變量的方法如下:

source /opt/intel/openvino_2021/bin/setupvars.sh

記住/opt/intel/openvino_2021/bin 是默認的OV安裝路徑,如果您改變了路徑,請記得也隨之改變這里的路徑。

4.3.3

配置模型優化器

Model Optimizer(MO)

相信我同志們,我知道過程很長,但是曙光就在眼前啦~!這個就是開始轉OpenVINO IR模型前要調整的最后一步,堅持住~!

MO是一個基于Python的命令行工具,可以用來從其他流行的人工智能框架例如Caffe,ONNX,TensorFlow等導入訓練好的模型。沒有用MO優化過的模型是不能用來在OV上做推理的。

在這一步可以只為您需要的環境比如ONNX,或者Tensorflow等做配置,但也可以一下配置好可以適用于各種人工智能框架的環境。我在這里選擇了后者,畢竟路慢慢其修遠 現在用ONNX 之后也有可能用到任何其他網絡。

那么第一步先CD到MO設置的文件夾里面:

4.3.4

轉ONNX模型到IR模式

cd /opt/intel/openvino_2021/deployment_tools/model_optimizer

python mo_onnx.py --input_model /inference/onnx_models/road_seg.onnx

--output_dir /openvino/FP16

--input_shape [1,3,224,224]

--data_type FP16

--scale_values [127.5,127.5,127.5]

--mean_values [127.5,127.5,127.5]

這里需要提一下怎樣找出—input_shape 的參數值.

一般來說模型是自己訓練的 那么您在訓練的時候就要指定輸入圖片的尺寸大下, 那么這個512,512就是指圖片的寬和高. 前面的1是batch size,3是圖片的顏色通道數.

-data_type來指定模型的精度,

如果轉換成功,您將會看到如下輸出:

Model Optimizer arguments:

Common parameters:

- Path to the Input Model: /Models/Paddle/Segmentation/DeepLabV3+/Onnx/pascalvoc.onnx

- Path for generated IR: /Models/Paddle/Segmentation/DeepLabV3+/OpenVINO/

- IR output name: pascalvoc

- Log level: ERROR

- Batch: Not specified, inherited from the model

- Input layers: Not specified, inherited from the model

- Output layers: Not specified, inherited from the model

- Input shapes: [1,3,512,512]

- Mean values: Not specified

- Scale values: Not specified

- Scale factor: Not specified

- Precision of IR: FP16

- Enable fusing: True

- Enable grouped convolutions fusing: True

- Move mean values to preprocess section: None

- Reverse input channels: False

ONNX specific parameters:

- Inference Engine found in: /opt/Intel/OpenVINO_2021/python/python3.8/OpenVINO

Inference Engine version: 2021.4.0-3839-cd81789d294-releases/2021/4

Model Optimizer version: 2021.4.0-3839-cd81789d294-releases/2021/4

[ SUCCESS ] Generated IR version 10 model.

[ SUCCESS ] XML file: /Models/Paddle/Segmentation/DeepLabV3+/OpenVINO/pascalvoc.xml

[ SUCCESS ] BIN file: /Models/Paddle/Segmentation/DeepLabV3+/OpenVINO/pascalvoc.bin

[ SUCCESS ] Total execution time: 18.65 seconds.

[ SUCCESS ] Memory consumed: 640 MB.

4.4

驗證轉換后的IR模型

在繼續下去之前我們應該先檢驗一下這個模型是否真的轉換成功。

在運行如下代碼之前,請換一個命令行窗口,并且啟動之前創建的Anaconda 環境,這樣做是為了確保OV的環境變量和Conda的不互相沖突,產生錯誤。

運行如下代碼infer_deeplabv3p.py地址:https://github.com/franva/Intel-OpenVINO-Paddle/blob/main/infer_deeplabv3p.py

檢測轉換后的模型的正確性:

import cv2

import numpy as np

from OpenVINO.inference_engine import IENetwork, IECore

import paddleseg.transforms as T

from colors_pascalvoc import ColorMap_PASCALVOC

# Please update the pathes to xml and bin files respectively on your machine

model_xml = r'/Models/Paddle/Segmentation/DeepLabV3+/OpenVINO/pascalvoc.xml'

model_bin = r'/Models/Paddle/Segmentation/DeepLabV3+/OpenVINO/pascalvoc.bin'

ie = IECore()

# Read IR

net = IENetwork(model=model_xml, weights=model_bin)

input_blob = next(iter(net.inputs))

out_blob = next(iter(net.outputs))

exec_net = ie.load_network(network=net, device_name="CPU")

del net

transforms = [

T.Resize(target_size=(512,512)),

T.Normalize()

]

def show_img(img, window_name, channel_first=True):

visual = img

if channel_first:

visual = img.transpose(1,2,0)

visual = cv2.resize(visual, (600, 600))

else:

visual = cv2.resize(visual, (600,600))

cv2.imshow(window_name, visual)

def save_img(img, img_fn):

cv2.imwrite(img_fn, img)

# Run inference, replace this mp4 file with your own video

video = '/Testing Videos/mel_highway.mp4'

cap = cv2.VideoCapture(video)

read_successfully, frame = cap.read()

while read_successfully:

if read_successfully == False:

continue

resized_frame, tesrt = T.Compose([transforms[0]])(frame)

img, _ = T.Compose(transforms)(frame)

# add an new axis in front

img_input = img[np.newaxis, :]

result = exec_net.infer(inputs={input_blob: img_input})

img_segmentation = result['save_infer_model/scale_0.tmp_1']

img_segmentation = np.squeeze(img_segmentation)

class_colors = ColorMap_PASCALVOC.COLORS

class_colors = np.asarray(class_colors, dtype=np.uint8)

img_mask = class_colors[img_segmentation]

img_mask = img_mask.transpose(2, 0, 1)

img_overlayed = cv2.addWeighted(resized_frame, 1, img_mask, 1, 0.5)

img_overlayed = img_overlayed.transpose(1,2,0)

img_overlayed = cv2.cvtColor(img_overlayed, cv2.COLOR_RGB2BGR)

show_img(img_overlayed, 'overlayed', False)

show_img(img_mask, 'mask', True)

if cv2.waitKey(1) == ord('q'):

break

read_successfully, frame = cap.read()

cap.release()

cv2.destroyAllWindows()

4.5

模型性能和吞吐量

測試好模型之后,我們還可以檢查一下模型的性能和吞吐量。幸運的是,Intel DevCloud已經提供了現有的工具來幫助我們快速完成這項工作。

我們任意挑選了幾套硬件搭配,來看一下剛轉換好的IR模型性能。

823183b6-494e-11ec-b939-dac502259ad0.png

圖八: Benchmark of DeepLabV3+模型

由上圖可以看出,更好的GPU支持會帶來更多的性能提升。同樣大部分AI模型檢測,分類,分割任務不需要很高的分辨率,所以適當降低輸入圖像的尺寸后也能大幅度提高模型的性能。

關于如何使用Intel DevCloud,更詳細的步驟請參考:

使用OpenVINO優化和部署DenseNet模型并在DevCloud上完成性能測試-上篇

使用OpenVINO 優化和部署DenseNet模型并在DevCloud上完成性能測試-下篇

至此,整個流程結束。恭喜大家成功的把模型落地,并且部署到了邊緣設備上。期待看到你們各個精彩的應用啦!

最后貼上Github 的本文章的陪同代碼庫(地址:https://github.com/franva/Intel-OpenVINO-Paddle),歡迎大家提出寶貴的意見。

05

總結

本文一開始先介紹了圖像分割和語義分割,闡述了用OpenVINO 工具套件部署模型的重要性??焖俳榻B了OpenVINO 工具套件以及百度的 PaddlePaddle框架。然后以一個訓練好的百度飛槳Paddle模型為例開始,一步一步帶著大家把模型轉換到了OpenVINO 工具套件的IR格式,直到部署到CPU上面。對于不同的模型,只需要適量的改動,便可以快速獨立的開發屬于自己的AI應用程序。

編輯:jq


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 圖像分割
    +關注

    關注

    4

    文章

    173

    瀏覽量

    17882
  • 代碼
    +關注

    關注

    30

    文章

    4569

    瀏覽量

    67063
  • GitHub
    +關注

    關注

    3

    文章

    457

    瀏覽量

    16000

原文標題:如何使用OpenVINO? 部署PaddleSeg模型庫中的DeepLabV3+模型?

文章出處:【微信號:英特爾物聯網,微信公眾號:英特爾物聯網】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    使用CUBEAI部署tflite模型到STM32F0,模型創建失敗怎么解決?

    CRC IP,用MX生成工程時已經啟用了CRC,代碼也有。 但是依舊無法生成模型。 想問問該如何解決,還是說F0還是無法部署AI模型
    發表于 03-15 08:10

    NNCF壓縮與量化YOLOv8模型OpenVINO部署測試

    OpenVINO2023版本衍生出了一個新支持工具包NNCF(Neural Network Compression Framework – 神經網絡壓縮框架),通過對OpenVINO IR格式模型的壓縮與量化更好的提升
    的頭像 發表于 11-20 10:46 ?1044次閱讀
    NNCF壓縮與量化YOLOv8<b class='flag-5'>模型</b>與<b class='flag-5'>OpenVINO</b><b class='flag-5'>部署</b>測試

    如何使用OpenVINO C++ API部署FastSAM模型

    象的位置和邊界。本文將介紹如何使用 OpenVINO C++ API 部署 FastSAM 模型,以實現快速高效的語義分割。在前文中我們發表了《基于 OpenVINO Python A
    的頭像 發表于 11-17 09:53 ?536次閱讀
    如何使用<b class='flag-5'>OpenVINO</b> C++ API<b class='flag-5'>部署</b>FastSAM<b class='flag-5'>模型</b>

    人工智能大模型、應用場景、應用部署教程超詳細資料

    部署過程的難度。教程中所使用的模型均為開源模型,同步提供了相應的下載鏈接,為客戶節省寶貴的時間。 Adain風格遷移模型 這是一種風格遷
    發表于 11-13 14:49

    基于OpenVINO C# API部署RT-DETR模型

    Python API 部署 RT-DETR 模型 | 開發者實戰》和《基于 OpenVINO C++ API 部署 RT-DETR 模型
    的頭像 發表于 11-10 16:59 ?430次閱讀
    基于<b class='flag-5'>OpenVINO</b> C# API<b class='flag-5'>部署</b>RT-DETR<b class='flag-5'>模型</b>

    基于OpenVINO C++ API部署RT-DETR模型

    Python API 部署 RT-DETR 模型 | 開發者實戰》,在該文章中,我們基于 OpenVINO Python API 向大家展示了包含后處理的 RT-DETR 模型
    的頭像 發表于 11-03 14:30 ?411次閱讀
    基于<b class='flag-5'>OpenVINO</b> C++ API<b class='flag-5'>部署</b>RT-DETR<b class='flag-5'>模型</b>

    如何使用OpenVINO Python API部署FastSAM模型

    象的位置和邊界。本文將介紹如何使用 OpenVINO Python API 部署 FastSAM 模型,以實現快速高效的語義分割。
    的頭像 發表于 10-27 11:04 ?352次閱讀

    基于OpenVINO Python API部署RT-DETR模型

    平臺實現 OpenVINO 部署 RT-DETR 模型實現深度學習推理加速, 在本文中,我們將首先介紹基于 OpenVINO Python API
    的頭像 發表于 10-20 11:15 ?582次閱讀
    基于<b class='flag-5'>OpenVINO</b> Python API<b class='flag-5'>部署</b>RT-DETR<b class='flag-5'>模型</b>

    OpenVINO場景文字檢測與文字識別教程

    OpenVINO是英特爾推出的深度學習模型部署框架,當前最新版本是OpenVINO2023版本。OpenVINO2023自帶各種常見視覺任務
    的頭像 發表于 09-24 15:31 ?826次閱讀
    <b class='flag-5'>OpenVINO</b>場景文字檢測與文字識別教程

    使用OpenVINO優化并部署訓練好的YOLOv7模型

    在《英特爾銳炫 顯卡+ oneAPI 和 OpenVINO 實現英特爾 視頻 AI 計算盒訓推一體-上篇》一文中,我們詳細介紹基于英特爾 獨立顯卡搭建 YOLOv7 模型的訓練環境,并完成了 YOLOv7 模型訓練,獲得了最佳精
    的頭像 發表于 08-25 11:08 ?1003次閱讀
    使用<b class='flag-5'>OpenVINO</b>優化并<b class='flag-5'>部署</b>訓練好的YOLOv7<b class='flag-5'>模型</b>

    無法使用MYRIAD在OpenVINO trade運行YOLOv7自定義模型怎么解決?

    無法確定如何將 YOLOv7 模型的重量(.pt 文件)轉換為OpenVINO?中間表示 (IR) 并推斷有 MYRIAD 的 IR。 分辨率 轉換使用此 GitHub* 存儲
    發表于 08-15 08:29

    如何將PyTorch模型OpenVINO trade結合使用?

    無法確定如何轉換 PyTorch 掩碼 R-CNN 模型以配合OpenVINO?使用。
    發表于 08-15 07:04

    Arm性能模型庫發布說明產品修訂版

    ?性能模型庫可以讓您以一種或多種方法部署性能模型。 此版本允許您使用以下平臺部署提供的IP性能模型:·將ARM?蘇格拉底?性能應用程序
    發表于 08-11 06:20

    沒有“中間商賺差價”, OpenVINO? 直接支持 PyTorch 模型對象

    隨著 OpenVINO 2023.0 版本的發布,OpenVINO 工具庫中預置了全新的 PyTorch 前端,為開發者們提供了一條全新的 PyTorch 模型支持路徑,帶來更友好的用戶
    的頭像 發表于 06-27 16:39 ?495次閱讀
    沒有“中間商賺差價”, <b class='flag-5'>OpenVINO</b>? 直接支持 PyTorch <b class='flag-5'>模型</b>對象

    如何將Pytorch自訓練模型變成OpenVINO IR模型形式

    本文章將依次介紹如何將Pytorch自訓練模型經過一系列變換變成OpenVINO IR模型形式,而后使用OpenVINO Python API 對IR
    的頭像 發表于 06-07 09:31 ?1269次閱讀
    如何將Pytorch自訓練<b class='flag-5'>模型</b>變成<b class='flag-5'>OpenVINO</b> IR<b class='flag-5'>模型</b>形式
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>