0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英特爾開發(fā)套件使用OpenVINO? C# API部署Yolov8模型

英特爾物聯(lián)網(wǎng) ? 來源:英特爾物聯(lián)網(wǎng) ? 2023-10-13 16:33 ? 次閱讀
bcd17478-699e-11ee-939d-92fbcf53809c.png

英特爾發(fā)行版OpenVINO工具套件[1]基于 oneAPI 而開發(fā),可以加快高性能計(jì)算機(jī)視覺深度學(xué)習(xí)視覺應(yīng)用開發(fā)速度工具套件,適用于從邊緣到云的各種英特爾平臺(tái)上,幫助用戶更快地將更準(zhǔn)確的真實(shí)世界結(jié)果部署到生產(chǎn)系統(tǒng)中。通過簡(jiǎn)化的開發(fā)工作流程,OpenVINO 可賦能開發(fā)者在現(xiàn)實(shí)世界中部署高性能應(yīng)用程序和算法。

C# 是由 C 和 C++ 衍生出來的一種安全的、穩(wěn)定的、簡(jiǎn)單的、優(yōu)雅的面向?qū)ο?a target="_blank">編程語(yǔ)言。C# 綜合了 VB 簡(jiǎn)單的可視化操作和 C++ 的高運(yùn)行效率,以其強(qiáng)大的操作能力、優(yōu)雅的語(yǔ)法風(fēng)格、創(chuàng)新的語(yǔ)言特性和便捷的面向組件編程的支持成為 .NET 開發(fā)的首選語(yǔ)言。然而OpenVINO 未提供 C# 語(yǔ)言接口,這對(duì)在 C# 中使用OpenVINO 帶來了很多麻煩,在之前的工作中,我們推出了OpenVINO C# API[2],旨在推動(dòng)OpenVINO在 C# 領(lǐng)域的應(yīng)用,目前已經(jīng)成功在 Window 平臺(tái)實(shí)現(xiàn)使用。在本文中,我們將介紹如何在 英特爾開發(fā)套件 AlxBoard 上基于 Linux 系統(tǒng)實(shí)現(xiàn) OpenVINO C# API。

項(xiàng)目中所使用的代碼已上傳至 OpenVINO C# API 倉(cāng)庫(kù)中,GitHub 網(wǎng)址為:

https://github.com/guojin-yan/OpenVINO-CSharp-API/blob/csharp3.0/tutorial_examples/AlxBoard_deploy_yolov8/Program.cs

(復(fù)制鏈接到瀏覽器打開)

1. 英特爾開發(fā)套件 AlxBoard 介紹

bcdc31c4-699e-11ee-939d-92fbcf53809c.png

圖1 英特爾開發(fā)套件 AlxBoard介紹

bcf5302a-699e-11ee-939d-92fbcf53809c.svg

1.1 產(chǎn)品定位

英特爾開發(fā)套件AlxBoard 是英特爾開發(fā)套件官方序列中的一員,專為入門級(jí)人工智能應(yīng)用和邊緣智能設(shè)備而設(shè)計(jì)。英特爾開發(fā)套件 AlxBoard 能完美勝人工智能學(xué)習(xí)、開發(fā)、實(shí)訓(xùn)、應(yīng)用等不同應(yīng)用場(chǎng)景。該套件預(yù)裝了英特爾 OpenVINO 工具套件、模型倉(cāng)庫(kù)和演示。

套件主要接口與 Jetson Nano 載板兼容,GPIO 與樹莓派兼容,能夠最大限度地復(fù)用成熟的生態(tài)資源。這使得套件能夠作為邊緣計(jì)算引擎,為人工智能產(chǎn)品驗(yàn)證和開發(fā)提供強(qiáng)大支持;同時(shí),也可以作為域控核心,為機(jī)器人產(chǎn)品開發(fā)提供技術(shù)支撐。

使用英特爾開發(fā)套件 AlxBoard,您將能夠在短時(shí)間內(nèi)構(gòu)建出一個(gè)出色的人工智能應(yīng)用應(yīng)用程序。無(wú)論是用于科研、教育還是商業(yè)領(lǐng)域,英特爾開發(fā)套件 AlxBoard 都能為您提供良好的支持。借助OpenVINO工具套件,CPU、iGPU都具備強(qiáng)勁的AI推理能力,支持在圖像分類、目標(biāo)檢測(cè)、分割和語(yǔ)音處理等應(yīng)用中并行運(yùn)行多個(gè)神經(jīng)網(wǎng)絡(luò)。

bcf5302a-699e-11ee-939d-92fbcf53809c.svg

1.2 產(chǎn)品參數(shù)

bd18c4ea-699e-11ee-939d-92fbcf53809c.png

bcf5302a-699e-11ee-939d-92fbcf53809c.svg

1.3 AI 推理單元

借助 OpenVINO 工具,能夠?qū)崿F(xiàn) CPU+iGPU 異構(gòu)計(jì)算推理,IGPU 算力約為 0.6TOPS

bd4b0446-699e-11ee-939d-92fbcf53809c.png

2. 配置 .NET 環(huán)境

.NET是一個(gè)免費(fèi)的跨平臺(tái)開源開發(fā)人員平臺(tái),用于構(gòu)建多種應(yīng)用程序。下面將演示英特爾開發(fā)套件 AlxBoard如何在Ubuntu 20.04上安裝.NET 環(huán)境,支持.NET Core 2.0-3.1系列以及.NET 5-8系列,如果你的英特爾開發(fā)套件 AlxBoard使用的是其他 Linux 系統(tǒng),你可以參考在Linux發(fā)行版上安裝.NET - .NET | Microsoft Learn[3]。

bcf5302a-699e-11ee-939d-92fbcf53809c.svg

2.1 添加Microsoft包存儲(chǔ)庫(kù)

使用APT進(jìn)行安裝可通過幾個(gè)命令來完成。安裝.NET之前,請(qǐng)運(yùn)行以下命令,將Microsoft包簽名密鑰添加到受信任密鑰列表,并添加包存儲(chǔ)庫(kù)。

打開終端并運(yùn)行以下命令:

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

下圖為輸入上面命令后控制臺(tái)的輸出:

bd6d1f5e-699e-11ee-939d-92fbcf53809c.png

圖21.2.1添加Microsoft包存儲(chǔ)庫(kù)輸出

bcf5302a-699e-11ee-939d-92fbcf53809c.svg

2.2 安裝 SDK

.NET SDK使你可以通過.NET開發(fā)應(yīng)用。如果安裝.NET SDK,則無(wú)需安裝相應(yīng)的運(yùn)行時(shí)。若要安裝.NET SDK,請(qǐng)運(yùn)行以下命令:

sudo apt-get update
sudo apt-get install -y dotnet-sdk-3.1

下圖為安裝后控制臺(tái)的輸出:

bd8f8d6e-699e-11ee-939d-92fbcf53809c.png

圖3安裝SDK輸出

bcf5302a-699e-11ee-939d-92fbcf53809c.svg

2.3 測(cè)試安裝

通過命令行可以檢查SDK版本以及 Runtime 時(shí)版本。

dotnet --list-sdks
dotnet --list-runtimes

下圖為輸入測(cè)試命令后控制臺(tái)的輸出:

bdb2ad58-699e-11ee-939d-92fbcf53809c.png

圖4SDK版本以及 Runtime 版本

bcf5302a-699e-11ee-939d-92fbcf53809c.svg

2.4 測(cè)試控制臺(tái)項(xiàng)目

在 linux 環(huán)境下,我們可以通過 dotnet 命令來創(chuàng)建和編譯項(xiàng)目,項(xiàng)目創(chuàng)建命令為:

dotnet new  -o 

此處我們創(chuàng)建一個(gè)簡(jiǎn)單測(cè)試控制臺(tái)項(xiàng)目:

dotnet new console -o test_net6.0
cd test_net6.0
dotnet run

下圖為輸入測(cè)試命令后控制臺(tái)的輸出以及項(xiàng)目文件夾文件情況,C# 項(xiàng)目會(huì)自動(dòng)創(chuàng)建一個(gè) Program.cs 程序文件,里面包含了程序運(yùn)行入口主函數(shù),同時(shí)還會(huì)創(chuàng)建一個(gè) *.csproj 文件,負(fù)責(zé)指定項(xiàng)目編譯中的一些配置。

bddf80da-699e-11ee-939d-92fbcf53809c.pngbe0293cc-699e-11ee-939d-92fbcf53809c.png

圖5控制臺(tái)項(xiàng)目

以上就是 .NET 環(huán)境的配置步驟,如果你的環(huán)境與本文不匹配,可以通過.NET文檔| Microsoft Learn[4]獲取更多安裝步驟。

3. 安裝OpenVINO Runtime

OpenVINO有兩種安裝方式: OpenVINO Runtime 和OpenVINO Development Tools。OpenVINO Runtime 包含用于在處理器設(shè)備上運(yùn)行模型部署推理的核心庫(kù)。OpenVINO Development Tools 是一組用于處理 OpenVINO 和 OpenVINO 模型的工具,包括模型優(yōu)化器、OpenVINO Runtime、模型下載器等。在此處我們只需要安裝 OpenVINO Runtime 即可。

bcf5302a-699e-11ee-939d-92fbcf53809c.svg

3.1下載OpenVINO Runtime

訪問Download the Intel Distribution of OpenVINO Toolkit[5]頁(yè)面,按照下面流程選擇相應(yīng)的安裝選項(xiàng),在下載頁(yè)面,由于我們的設(shè)備使用的是 Ubuntu20.04,因此下載時(shí)按照指定的編譯版本下載即可。

be1e4eb4-699e-11ee-939d-92fbcf53809c.pngbe3d408a-699e-11ee-939d-92fbcf53809c.png

圖6OpenVINO Runtime下載

bcf5302a-699e-11ee-939d-92fbcf53809c.svg

3.2 解壓安裝包

我們所下載的OpenVINO Runtime本質(zhì)是一個(gè) C++ 依賴包,因此我們把它放到我們的系統(tǒng)目錄下,這樣在編譯時(shí)會(huì)根據(jù)設(shè)置的系統(tǒng)變量獲取依賴項(xiàng)。首先在系統(tǒng)文件夾下創(chuàng)建一個(gè)文件夾:

sudo mkdir -p /opt/intel

然后解壓縮我們下載的安裝文件,并將其移動(dòng)到指定文件夾下:

tar -xvzf l_openvino_toolkit_ubuntu20_2022.3.1.9227.cf2c7da5689_x86_64.tgz
sudo mv l_openvino_toolkit_ubuntu20_2022.3.1.9227.cf2c7da5689_x86_64 /opt/intel/openvino_2023.1

bcf5302a-699e-11ee-939d-92fbcf53809c.svg

3.3 安裝依賴

接下來我們需要安裝OpenVINO Runtime所有的依賴項(xiàng),通過命令行輸入以下命令即可:

cd /opt/intel/openvino_2022.3.1/
sudo -E ./install_dependencies/install_openvino_dependencies.sh
be6b53bc-699e-11ee-939d-92fbcf53809c.png

圖7安裝 OpenVINO Runtime 依賴項(xiàng)

bcf5302a-699e-11ee-939d-92fbcf53809c.svg

3.4 配置環(huán)境變量

安裝完成后,我們需要配置環(huán)境變量,以保證在調(diào)用時(shí)系統(tǒng)可以獲取對(duì)應(yīng)的文件,通過命令行輸入以下命令即可:

source /opt/intel/openvino_2022.3.1/setupvars.sh

以上就是OpenVINO Runtime環(huán)境的配置步驟,如果你的環(huán)境與本文不匹配,可以通過Install OpenVINO Runtime on Linux — OpenVINO documentation — Version(2023.1) [6]獲取更多安裝步驟。

配置AlxBoard_deploy_yolov8項(xiàng)目

項(xiàng)目中所使用的代碼已經(jīng)放在 GitHub 倉(cāng)庫(kù)AlxBoard_deploy_yolov8[7],大家可以根據(jù)情況自行下載和使用,下面我將會(huì)從頭開始一步步構(gòu)建 AlxBoard_deploy_yolov8 項(xiàng)目。

bcf5302a-699e-11ee-939d-92fbcf53809c.svg

4.1創(chuàng)建AlxBoard_deploy_yolov8項(xiàng)目

在該項(xiàng)目中,我們需要使用 OpenCvSharp,該依賴目前在 Ubutun 平臺(tái)最高可以支持 .NET Core 3.1,因此我們此處創(chuàng)建一個(gè) .NET Core 3.1 的項(xiàng)目,使用 Terminal 輸入以下指令創(chuàng)建并打開項(xiàng)目文件:

dotnet new console --framework "netcoreapp3.1" -o AlxBoard_deploy_yolov8
cd AlxBoard_deploy_yolov8

be9e48e4-699e-11ee-939d-92fbcf53809c.png

圖81.4.1創(chuàng)建AlxBoard_deploy_yolov8項(xiàng)目

創(chuàng)建完項(xiàng)目后,將 AlxBoard_deploy_yolov8 的代碼內(nèi)容替換到創(chuàng)建的項(xiàng)目中的 Program.cs 文件中.

bcf5302a-699e-11ee-939d-92fbcf53809c.svg

4.2添加OpenVINO C# API 依賴

由于 OpenVINO C# API當(dāng)前正處于開發(fā)階段,還未創(chuàng)建 Linux 版本的 NuGet Package,因此需要通過下載項(xiàng)目源碼以項(xiàng)目引用的方式使用。

下載源碼

通過 Git 下載項(xiàng)目源碼,新建一個(gè) Terminal,并輸入以下命令克隆遠(yuǎn)程倉(cāng)庫(kù),將該項(xiàng)目放置在 AlxBoard_deploy_yolov8 同級(jí)目錄下。

git clone https://github.com/guojin-yan/OpenVINO-CSharp-API.git
cd OpenVINO-CSharp-API

本文的項(xiàng)目目錄為:

Program
--|-AlxBoard_deploy_yolov8
--|-OpenVINO-CSharp-API

修改 OpenVINO依賴

由于項(xiàng)目源碼的 OpenVINO依賴與本文設(shè)置不同,因此需要修改 OpenVINO依賴項(xiàng)的路徑,主要通過修改OpenVINO-CSharp-API/src/CSharpAPI/native_methods/ov_base.cs 文件即可,修改內(nèi)容如下:

rivate const string dll_extern = "./openvino2023.1/openvino_c.dll";
---修改為--->
private const string dll_extern = "libopenvino_c.so";

添加項(xiàng)目依賴

在 Terminal 輸入以下命令,即可將 OpenVINO C# API 添加到 AlxBoard_deploy_yolov8 項(xiàng)目引用中。

dotnet add reference ./../OpenVINO-CSharp-API/src/CSharpAPI/CSharpAPI.csproj

添加環(huán)境變量

該項(xiàng)目需要調(diào)用 OpenVINO 動(dòng)態(tài)鏈接庫(kù),因此需要在當(dāng)前環(huán)境下增加 OpenVINO 動(dòng)態(tài)鏈接庫(kù)路徑:

export LD_LIBRARY_PATH=/opt/intel/openvino_2023.0/runtime/lib/intel64

bcf5302a-699e-11ee-939d-92fbcf53809c.svg

4.3添加 OpenCvSharp

安裝 NuGet Package

OpenCvSharp 可以通過 NuGet Package 安裝,只需要在 Terminal 輸入以下命令:

dotnet add package OpenCvSharp4_.runtime.ubuntu.20.04-x64
dotnet add package OpenCvSharp4

添加環(huán)境變量

將以下路徑添加到環(huán)境變量中:

export LD_LIBRARY_PATH=/home/ygj/Program/OpenVINO-CSharp-API/tutorial_examples/AlxBoard_deploy_yolov8/bin/Debug/netcoreapp3.1/runtimes/ubuntu.20.04-x64/native

/bin/Debug/netcoreapp3.1/runtimes/ubuntu.20.04-x64/native 是 AlxBoard_deploy_yolov8 編譯后生成的路徑,該路徑下存放了 libOpenCvSharpExtern.so 文件,該文件主要是封裝的 OpenCV 中的各種接口。也可以將該文件拷貝到項(xiàng)目運(yùn)行路徑下。

檢測(cè) libOpenCvSharpExtern 依賴

由于 libOpenCvSharpExtern.so 是在其他環(huán)境下編譯好的動(dòng)態(tài)鏈接庫(kù),本機(jī)電腦可能會(huì)缺少相應(yīng)的依賴,因此可以通過 ldd 命令檢測(cè)。

ldd libOpenCvSharpExtern.so

becb2472-699e-11ee-939d-92fbcf53809c.png

圖9檢測(cè) libOpenCvSharpExtern 依賴

如果輸出內(nèi)容中沒有 no found 的,說明不缺少依賴,如果存在,則需要安裝缺少的依賴項(xiàng)才可以正常使用。

添加完項(xiàng)目依賴以及 NuGet Package 后,項(xiàng)目的配置文件內(nèi)容為:

"Microsoft.NET.Sdk">
 
  "..OpenVINO-CSharp-APIsrcCSharpAPICSharpAPI.csproj" />
 
 
  "OpenCvSharp4" Version="4.8.0.20230708" />
  "OpenCvSharp4_.runtime.ubuntu.20.04-x64" Version="4.8.0.20230708" />
 
 
  Exe
  netcoreapp3.1
 

5. 運(yùn)行 AlxBoard_deploy_yolov8項(xiàng)目

該項(xiàng)目測(cè)試所使用的模型與文件都可以在 OpenVINO-CSharp-API 中找到,因此下面我們通過 OpenVINO-CSharp-API 倉(cāng)庫(kù)下的模型與文件進(jìn)行測(cè)試。

通過 dotnet 運(yùn)行,只需要運(yùn)行以下命令即可。

dotnet run 

參數(shù)設(shè)指的是模型預(yù)測(cè)類型、模型路徑、圖片文件路徑參數(shù),預(yù)測(cè)類型輸入包括:'det'、'seg'、'pose'、'cls'四種類型;默認(rèn)推理設(shè)備設(shè)置為'AUTO',對(duì)于'det'、'seg'預(yù)測(cè),可以設(shè)置參數(shù),如果設(shè)置該參數(shù),會(huì)將結(jié)果繪制到圖片上,如果未設(shè)置,會(huì)通過控制臺(tái)打印出來。

bcf5302a-699e-11ee-939d-92fbcf53809c.svg

5.1編譯運(yùn)行Yolov8-det模型

編譯運(yùn)行命令為:

dotnet run det /home/ygj/Program/OpenVINO-CSharp-API/model/yolov8/yolov8s.xml /home/ygj/Program/OpenVINO-CSharp-API/dataset/image/demo_2.jpg GPU.0 /home/ygj/Program/OpenVINO-CSharp-API/dataset/lable/COCO_lable.txt

模型推理輸出結(jié)果為:

---- OpenVINO INFO----
Description : OpenVINO Runtime
Build number: 2023.1.0-12185-9e6b00e51cd-releases/2023/1
Set inference device GPU.0.
[INFO] Loading model files: /home/ygj/Program/OpenVINO-CSharp-API/model/yolov8/yolov8s.xml
[INFO] model name: torch_jit
[INFO]  inputs:
[INFO]   input name: images
[INFO]   input type: f32
[INFO]   input shape: Shape : [1, 3, 640, 640]
[INFO]  outputs:
[INFO]   output name: output0
[INFO]   output type: f32
[INFO]   output shape: Shape : [1, 84, 8400]
[INFO] Read image files: /home/ygj/Program/OpenVINO-CSharp-API/dataset/image/demo_2.jpg


Detection result : 


1: 0 0.89  (x:744 y:43 width:388 height:667)
2: 0 0.88  (x:149 y:202 width:954 height:507)
3:270.72(x:435y:433width:98height:284)

bef206a0-699e-11ee-939d-92fbcf53809c.jpg

圖10Yolov8-det模型預(yù)測(cè)輸出

bcf5302a-699e-11ee-939d-92fbcf53809c.svg

5.2編譯運(yùn)行Yolov8-cls模型

編譯運(yùn)行命令為:

dotnet run cls /home/ygj/Program/OpenVINO-CSharp-API/model/yolov8/yolov8s-cls.xml /home/ygj/Program/OpenVINO-CSharp-API/dataset/image/demo_7.jpg GPU.0

模型推理輸出結(jié)果為:

--- OpenVINO INFO----
Description : OpenVINO Runtime
Build number: 2023.1.0-12185-9e6b00e51cd-releases/2023/1
Set inference device GPU.0.
[INFO] Loading model files: /home/ygj/Program/OpenVINO-CSharp-API/model/yolov8/yolov8s-cls.xml
[INFO] model name: torch_jit
[INFO]  inputs:
[INFO]   input name: images
[INFO]   input type: f32
[INFO]   input shape: Shape : [1, 3, 224, 224]
[INFO]  outputs:
[INFO]   output name: output0
[INFO]   output type: f32
[INFO]   output shape: Shape : [1, 1000]
[INFO] Read image files: /home/ygj/Program/OpenVINO-CSharp-API/dataset/image/demo_7.jpg




Classification Top 10 result : 


classid probability
------- -----------
294   0.992173
269   0.002861
296   0.002111
295   0.000714
270   0.000546
276   0.000432
106   0.000159
362   0.000147
260   0.000078
272   0.000070

bcf5302a-699e-11ee-939d-92fbcf53809c.svg

5.3編譯運(yùn)行Yolov8-pose模型

編譯運(yùn)行命令為:

dotnet run pose /home/ygj/Program/OpenVINO-CSharp-API/model/yolov8/yolov8s-pose.xml /home/ygj/Program/OpenVINO-CSharp-API/dataset/image/demo_9.jpg GPU.0

模型推理輸出結(jié)果為:

---- OpenVINO INFO----
Description : OpenVINO Runtime
Build number: 2023.1.0-12185-9e6b00e51cd-releases/2023/1
Set inference device GPU.0.
[INFO] Loading model files: /home/ygj/Program/OpenVINO-CSharp-API/model/yolov8/yolov8s-pose.xml
[INFO] model name: torch_jit
[INFO]  inputs:
[INFO]   input name: images
[INFO]   input type: f32
[INFO]   input shape: Shape : [1, 3, 640, 640]
[INFO]  outputs:
[INFO]   output name: output0
[INFO]   output type: f32
[INFO]   output shape: Shape : [1, 56, 8400]
[INFO] Read image files: /home/ygj/Program/OpenVINO-CSharp-API/dataset/image/demo_9.jpg




Classification result : 


1: 1  0.94  (x:104 y:22 width:152 height:365) Nose: (188 ,60 ,0.93) Left Eye: (192 ,53 ,0.83) Right Eye: (180 ,54 ,0.90) Left Ear: (196 ,53 ,0.50) Right Ear: (167 ,56 ,0.76) Left Shoulder: (212 ,92 ,0.93) Right Shoulder: (151 ,93 ,0.94) Left Elbow: (230 ,146 ,0.90) Right Elbow: (138 ,142 ,0.93) Left Wrist: (244 ,199 ,0.89) Right Wrist: (118 ,187 ,0.92) Left Hip: (202 ,192 ,0.97) Right Hip: (168 ,193 ,0.97) Left Knee: (184 ,272 ,0.96) Right Knee: (184 ,276 ,0.97) Left Ankle: (174 ,357 ,0.87) Right Ankle: (197 ,354 ,0.88) 

bf2c40ae-699e-11ee-939d-92fbcf53809c.jpg

圖11Yolov8-pose模型預(yù)測(cè)輸出

bcf5302a-699e-11ee-939d-92fbcf53809c.svg

5.4運(yùn)行Yolov8-seg模型

編譯運(yùn)行命令為:

dotnet run seg /home/ygj/Program/OpenVINO-CSharp-API/model/yolov8/yolov8s-seg.xml /home/ygj/Program/OpenVINO-CSharp-API/dataset/image/demo_2.jpg GPU.0 /home/ygj/Program/OpenVINO-CSharp-API/dataset/lable/COCO_lable.txt

模型推理輸出結(jié)果為:

---- OpenVINO INFO----
Description : OpenVINO Runtime
Build number: 2023.1.0-12185-9e6b00e51cd-releases/2023/1
Set inference device GPU.0.
[INFO] Loading model files: /home/ygj/Program/OpenVINO-CSharp-API/model/yolov8/yolov8s-seg.xml
47
[INFO] model name: torch_jit
[INFO]  inputs:
[INFO]   input name: images
[INFO]   input type: f32
[INFO]   input shape: Shape : [1, 3, 640, 640]
[INFO]  outputs:
[INFO]   output name: output0
[INFO]   output type: f32
[INFO]   output shape: Shape : [1, 116, 8400]
[INFO] Read image files: /home/ygj/Program/OpenVINO-CSharp-API/dataset/image/demo_2.jpg




Segmentation result : 


1: 0 0.90  (x:745 y:42 width:403 height:671)
2: 0 0.86  (x:121 y:196 width:1009 height:516)
3: 27 0.69  (x:434 y:436 width:90 height:280)

bf42831e-699e-11ee-939d-92fbcf53809c.jpg

圖12Yolov8-seg模型預(yù)測(cè)輸出

6. 模型運(yùn)行時(shí)間

英特爾開發(fā)套件 AlxBoard 板載了英特爾賽揚(yáng) N5105 CPU 以及英特爾 11 代集成顯卡,此處對(duì) CPU、GPU 的推理情況做了一個(gè)簡(jiǎn)單測(cè)試,主要檢測(cè)了模型推理時(shí)間,并使用英特爾幻影峽谷進(jìn)行了同步測(cè)試,測(cè)試結(jié)果如表所示。

bf582e8a-699e-11ee-939d-92fbcf53809c.png

可以看出,英特爾賽揚(yáng) N5105 CPU 在模型推理性能是十分強(qiáng)大的,且搭配的英特爾 11 代集成顯卡,將推理速度提升了 6 倍左右,針對(duì) Yolov8 模型,平均處理速度可以達(dá)到 10FPs。而相比于幻影峽谷的推理速度,英特爾開發(fā)套件 AlxBoard 推理性能大約為其五分之一,這相比一般的開發(fā)板,英特爾開發(fā)套件 AlxBoard 的算力還是十分強(qiáng)大的。

總結(jié)

在該項(xiàng)目中,我們基于 Ubutn 20.04系統(tǒng),成功實(shí)現(xiàn)了在 C# 環(huán)境下調(diào)用 OpenVINO 部署深度學(xué)習(xí)模型,驗(yàn)證了在 Linux 環(huán)境下 OpenVINO C# API 項(xiàng)目的的可行性,這對(duì)后面在 Linux 環(huán)境下開發(fā) OpenVINO C# API 具有很重要的意義。

除此之外,我們還使用 OpenVINO C# API 檢驗(yàn)了英特爾開發(fā)套件 AlxBoard 的模型推理能力,最總針對(duì) Yolov8模型,平均處理速度可以達(dá)到 10FPs,這對(duì)目前大多數(shù)開發(fā)板來說,已經(jīng)達(dá)到了很高的推理速度。后續(xù)我還會(huì)將繼續(xù)使用 OpenVINO C# API 在 英特爾開發(fā)套件 AlxBoard 部署更多的深度學(xué)習(xí)模型。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 英特爾
    +關(guān)注

    關(guān)注

    60

    文章

    9816

    瀏覽量

    171114
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1464

    瀏覽量

    61670
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5431

    瀏覽量

    120790

原文標(biāo)題:英特爾開發(fā)套件使用 OpenVINO? C# API 部署 Yolov8 模型 | 開發(fā)者實(shí)戰(zhàn)

文章出處:【微信號(hào):英特爾物聯(lián)網(wǎng),微信公眾號(hào):英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于C#OpenVINO?在英特爾獨(dú)立顯卡上部署PP-TinyPose模型

    作者:英特爾物聯(lián)網(wǎng)行業(yè)創(chuàng)新大使 楊雪鋒 OpenVINO 2022.2版開始支持英特爾獨(dú)立顯卡,還能通過“累計(jì)吞吐量”同時(shí)啟動(dòng)集成顯卡 + 獨(dú)立顯卡助力全速 AI 推理。本文基于 C#
    的頭像 發(fā)表于 11-18 18:27 ?2383次閱讀

    英特爾BOOT Loader開發(fā)套件-高級(jí)嵌入式開發(fā)基礎(chǔ)

    從技術(shù)角度概括介紹用于快速開發(fā)部署啟動(dòng)加載器的英特爾 Boot Loader 開發(fā)套件(英特爾 BLDK),該
    發(fā)表于 12-07 14:57 ?59次下載
    <b class='flag-5'>英特爾</b>BOOT Loader<b class='flag-5'>開發(fā)套件</b>-高級(jí)嵌入式<b class='flag-5'>開發(fā)</b>基礎(chǔ)

    在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8分類模型

    本系列文章將在 AI 愛克斯開發(fā)板上使用 OpenVINO 開發(fā)套件依次部署并測(cè)評(píng) YOLOv8 的分類
    的頭像 發(fā)表于 05-05 11:47 ?972次閱讀
    在AI愛克斯<b class='flag-5'>開發(fā)</b>板上用<b class='flag-5'>OpenVINO</b>?加速<b class='flag-5'>YOLOv8</b>分類<b class='flag-5'>模型</b>

    在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8目標(biāo)檢測(cè)模型

    《在 AI 愛克斯開發(fā)板上用 OpenVINO 加速 YOLOv8 分類模型》介紹了在 AI 愛克斯開發(fā)板上使用
    的頭像 發(fā)表于 05-12 09:08 ?1204次閱讀
    在AI愛克斯<b class='flag-5'>開發(fā)</b>板上用<b class='flag-5'>OpenVINO</b>?加速<b class='flag-5'>YOLOv8</b>目標(biāo)檢測(cè)<b class='flag-5'>模型</b>

    AI愛克斯開發(fā)板上使用OpenVINO加速YOLOv8目標(biāo)檢測(cè)模型

    《在AI愛克斯開發(fā)板上用OpenVINO加速YOLOv8分類模型》介紹了在AI愛克斯開發(fā)板上使用Open
    的頭像 發(fā)表于 05-26 11:03 ?1140次閱讀
    AI愛克斯<b class='flag-5'>開發(fā)</b>板上使用<b class='flag-5'>OpenVINO</b>加速<b class='flag-5'>YOLOv8</b>目標(biāo)檢測(cè)<b class='flag-5'>模型</b>

    在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8-seg實(shí)例分割模型

    《在 AI 愛克斯開發(fā)板上用 OpenVINO 加速 YOLOv8 目標(biāo)檢測(cè)模型》介紹了在 AI 愛克斯開發(fā)板上使用
    的頭像 發(fā)表于 06-05 11:52 ?911次閱讀
    在AI愛克斯<b class='flag-5'>開發(fā)</b>板上用<b class='flag-5'>OpenVINO</b>?加速<b class='flag-5'>YOLOv8</b>-seg實(shí)例分割<b class='flag-5'>模型</b>

    OpenVINO? C++ API編寫YOLOv8-Seg實(shí)例分割模型推理程序

    本文章將介紹使用 OpenVINO 2023.0 C++ API 開發(fā)YOLOv8-Seg 實(shí)例分割(Instance Segmentati
    的頭像 發(fā)表于 06-25 16:09 ?1401次閱讀
    用<b class='flag-5'>OpenVINO</b>? <b class='flag-5'>C</b>++ <b class='flag-5'>API</b>編寫<b class='flag-5'>YOLOv8</b>-Seg實(shí)例分割<b class='flag-5'>模型</b>推理程序

    在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8-seg實(shí)例分割模型

    《在 AI 愛克斯開發(fā)板上用 OpenVINO 加速 YOLOv8 目標(biāo)檢測(cè)模型》介紹了在 AI 愛克斯開發(fā)板上使用
    的頭像 發(fā)表于 06-30 10:43 ?813次閱讀
    在AI愛克斯<b class='flag-5'>開發(fā)</b>板上用<b class='flag-5'>OpenVINO</b>?加速<b class='flag-5'>YOLOv8</b>-seg實(shí)例分割<b class='flag-5'>模型</b>

    三種主流模型部署框架YOLOv8推理演示

    深度學(xué)習(xí)模型部署OpenVINO、ONNXRUNTIME、TensorRT三個(gè)主流框架,均支持Python與C++的SDK使用。對(duì)YOLOv
    的頭像 發(fā)表于 08-06 11:39 ?2485次閱讀

    使用OpenVINO優(yōu)化并部署訓(xùn)練好的YOLOv7模型

    在《英特爾銳炫 顯卡+ oneAPI 和 OpenVINO 實(shí)現(xiàn)英特爾 視頻 AI 計(jì)算盒訓(xùn)推一體-上篇》一文中,我們?cè)敿?xì)介紹基于英特爾 獨(dú)立顯卡搭建
    的頭像 發(fā)表于 08-25 11:08 ?1381次閱讀
    使用<b class='flag-5'>OpenVINO</b>優(yōu)化并<b class='flag-5'>部署</b>訓(xùn)練好的<b class='flag-5'>YOLOv</b>7<b class='flag-5'>模型</b>

    基于OpenVINO英特爾開發(fā)套件上實(shí)現(xiàn)眼部追蹤

    本文將以訓(xùn)練一個(gè)眼部追蹤 AI 小模型為背景,介紹從 Pytorch 自定義網(wǎng)絡(luò)模型,到使用 OpenVINO NNCF 量化工具優(yōu)化模型,并部署
    的頭像 發(fā)表于 09-18 10:11 ?700次閱讀

    基于英特爾開發(fā)套件的AI字幕生成器設(shè)計(jì)

    市面上有很多自然語(yǔ)言處理模型,本文旨在幫助開發(fā)者快速將 OpenAI* 的熱門 NLP 模型 Whisper 部署英特爾
    的頭像 發(fā)表于 09-27 16:59 ?814次閱讀
    基于<b class='flag-5'>英特爾</b><b class='flag-5'>開發(fā)套件</b>的AI字幕生成器設(shè)計(jì)

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

    Python API 部署 RT-DETR 模型 | 開發(fā)者實(shí)戰(zhàn)》和《基于 OpenVINO C
    的頭像 發(fā)表于 11-10 16:59 ?659次閱讀
    基于<b class='flag-5'>OpenVINO</b> <b class='flag-5'>C#</b> <b class='flag-5'>API</b><b class='flag-5'>部署</b>RT-DETR<b class='flag-5'>模型</b>

    OpenVINO C# API在intel平臺(tái)部署YOLOv10目標(biāo)檢測(cè)模型

    模型設(shè)計(jì)策略,從效率和精度兩個(gè)角度對(duì)YOLOs的各個(gè)組成部分進(jìn)行了全面優(yōu)化,大大降低了計(jì)算開銷,增強(qiáng)了性能。在本文中,我們將結(jié)合OpenVINO C# API使用最新發(fā)布的
    的頭像 發(fā)表于 06-21 09:23 ?862次閱讀
    用<b class='flag-5'>OpenVINO</b> <b class='flag-5'>C#</b> <b class='flag-5'>API</b>在intel平臺(tái)<b class='flag-5'>部署</b><b class='flag-5'>YOLOv</b>10目標(biāo)檢測(cè)<b class='flag-5'>模型</b>

    【轉(zhuǎn)載】英特爾開發(fā)套件“哪吒”快速部署YoloV8 on Java | 開發(fā)者實(shí)戰(zhàn)

    OpenVINO 工具套件基于OneAPI開發(fā),可以加快高性能計(jì)算機(jī)視覺和深度學(xué)習(xí)應(yīng)用開發(fā)速度的工具套件,適用于從邊緣到云的各種
    的頭像 發(fā)表于 03-23 08:05 ?388次閱讀
    【轉(zhuǎn)載】<b class='flag-5'>英特爾</b><b class='flag-5'>開發(fā)套件</b>“哪吒”快速<b class='flag-5'>部署</b><b class='flag-5'>YoloV8</b> on Java | <b class='flag-5'>開發(fā)</b>者實(shí)戰(zhàn)