作者:算力魔方創(chuàng)始人/英特爾創(chuàng)新大使劉力
C#不僅在PC游戲開(kāi)發(fā)、大型商業(yè)系統(tǒng)領(lǐng)域應(yīng)用廣泛,還成為開(kāi)源測(cè)控、機(jī)器視覺(jué)與運(yùn)動(dòng)控制,以及PC數(shù)集與分析領(lǐng)域中的主流開(kāi)發(fā)語(yǔ)言!
在開(kāi)源測(cè)控、機(jī)器視覺(jué)、數(shù)采與分析三大領(lǐng)域中,如何快速將AI模型集成到應(yīng)用程序中,實(shí)現(xiàn)AI賦能和應(yīng)用增值?最容易的方式是:在C#中,使用OpenVINO?工具套件集成AI模型。

一,什么是OpenVINO? 工具套件?
OpenVINO? 工具套件是一個(gè)用于優(yōu)化和部署人工智能(AI)模型,提升AI推理性能的開(kāi)源工具集合,不僅支持以卷積神經(jīng)網(wǎng)絡(luò)(CNN)為核心組件的預(yù)測(cè)式AI模型(Predictive AI),還支持以Transformer為核心組件的生成式AI模型(Generative AI)。
OpenVINO?工具套件支持對(duì)基于PyTorch、TensorFlow、PaddlePaddle等主流深度學(xué)習(xí)框架訓(xùn)練好的模型進(jìn)行優(yōu)化,提升其在英特爾? CPU、獨(dú)立顯卡、集成顯卡、NPU等硬件上的AI推理計(jì)算性能。
二,什么是OpenVINO? C# API?
OpenVINO? C# API 是一個(gè)開(kāi)源的 OpenVINO? 的 .Net wrapper(包裝器)項(xiàng)目,它基于最新的OpenVINO? Runtime庫(kù)開(kāi)發(fā),通過(guò)調(diào)用官方的OpenVINO? C API ,允許開(kāi)發(fā)者在 .NET 和 .NET Framework 環(huán)境中使用 C# 語(yǔ)言調(diào)用AI模型,并實(shí)現(xiàn)AI模型在英特爾? CPU、獨(dú)立顯卡、集成顯卡、NPU上的推理加速。
OpenVINO? C# API的GitHub倉(cāng):https://github.com/guojin-yan/OpenVINO-CSharp-API

為了方便開(kāi)發(fā)者使用,OpenVINO? C# API提供了NuGet Package,可以通過(guò)NuGet管理工具直接進(jìn)行安裝。
三,搭建OpenVINO? C# API開(kāi)發(fā)環(huán)境
搭建OpenVINO? C# API開(kāi)發(fā)環(huán)境共分三步:
1.安裝.NET 8.0
2.在VS Code中配置C#開(kāi)發(fā)環(huán)境
3.使用NuGet安裝OpenVINO? C# API依賴項(xiàng)
本節(jié)依次介紹。
1,安裝.NET 8.0:
請(qǐng)進(jìn)入.NET官網(wǎng)下載地址:https://dotnet.microsoft.com/zh-cn/download,下載.NET 8.0安裝包。

下載完畢后,以管理員方式運(yùn)行安裝包,并按默認(rèn)方式完成安裝。

安裝完畢后,請(qǐng)啟動(dòng)“命令提示符”,然后輸入 “dotnet --info” 指令,驗(yàn)證安裝是否成功:

2,在VS Code中配置C#開(kāi)發(fā)環(huán)境:
VS Code(Visual Studio Code)是一款由微軟開(kāi)發(fā)的開(kāi)源、免費(fèi)、跨平臺(tái)的輕量級(jí)代碼編輯器;支持多種編程語(yǔ)言(如C、C++、C#、Java、Python、JavaScript等)的代碼編輯,具備語(yǔ)法高亮、代碼折疊、代碼補(bǔ)全、代碼重構(gòu)等功能;廣泛應(yīng)用于各類軟件開(kāi)發(fā)領(lǐng)域。
[注意]:使用VS Studio的開(kāi)發(fā)者,無(wú)需安裝VS Code的插件,可略過(guò)該小節(jié)!
首先,請(qǐng)從:https://code.visualstudio.com/,下載并安裝VS Code。
然后,啟動(dòng)VS Code,在“Extensions:Marketplace”中搜索關(guān)鍵字:“C#”,依次安裝C#和C# Dev Kit插件。

接著,啟動(dòng)“命令提示符”并輸入 “dotnet new console -o hello_world -f net8.0”命令,創(chuàng)建一個(gè)名叫“hello_world”的C# console項(xiàng)目。

最后,啟動(dòng)VS Code,并用“File-->Open Folder...”打開(kāi)hello_world文件夾,然后點(diǎn)擊“Run Project...”按鈕,若在Terminal中成功輸出“Hello, World!”說(shuō)明在VS Code配置C#開(kāi)發(fā)環(huán)境成功!

3,使用NuGet安裝OpenVINO? C# API:
首先,啟動(dòng)“命令提示符”,用命令創(chuàng)建YOLOv8推理項(xiàng)目:
dotnet new console -o yolov8_async_csharp -f net8.0
然后,進(jìn)入“yolov8_async_csharp”目錄,使用NuGet安裝OpenVINO? C# API,命令如下:
dotnet add package OpenVINO.CSharp.API --version 2024.3.0.2 dotnet add package OpenVINO.runtime.win --version 2024.3.0.1 dotnet add package OpenVINO.CSharp.API.Extensions.OpenCvSharp --version 1.0.6.1

最后,使用NuGet安裝OpenCvSharp4:
dotnet add package OpenCvSharp4 --version 4.9.0.20240103 dotnet add package OpenCvSharp4.runtime.win --version 4.9.0.20240103
到此,OpenVINO? C# API開(kāi)發(fā)環(huán)境搭建完畢!
四,用C# 編寫OpenVINO?推理程序
首先,請(qǐng)從:
https://github.com/openvino-book/openvino_handbook/tree/main/chapter_5/C%23/yolov8_async_csharp,
下載范例程序Program.cs(覆蓋yolov8_asysc_csharp文件夾中的Program.cs),測(cè)試視頻test_video.mp4和yolov8s IR格式模型,放入yolov8_asysc_csharp文件夾中。
然后,點(diǎn)擊“Run project”或使用快捷鍵“Ctrl+F5”運(yùn)行程序,結(jié)果如下視頻所示:
https://live.csdn.net/v/462063
五,總結(jié)
OpenVINO? C# API 易學(xué)易用,可以方便將AI模型集成到C#應(yīng)用程序中!
如果你有更好的文章,歡迎投稿!
稿件接收郵箱:nami.liu@pasuntech.com
更多精彩內(nèi)容請(qǐng)關(guān)注“算力魔方?”!
審核編輯 黃宇
-
AI
+關(guān)注
關(guān)注
91文章
40908瀏覽量
302481 -
OpenVINO
+關(guān)注
關(guān)注
0文章
118瀏覽量
815
發(fā)布評(píng)論請(qǐng)先 登錄
AI大模型微調(diào)企業(yè)項(xiàng)目實(shí)戰(zhàn)課
AI大模型微調(diào)企業(yè)項(xiàng)目實(shí)戰(zhàn)課【共137課時(shí)】 (讠果xingkeit-top)# AI大模型 # 實(shí)戰(zhàn)課
大模型 ai coding 比較
使用NORDIC AI的好處
C#上位機(jī)實(shí)戰(zhàn)開(kāi)發(fā)指南
AI智能體開(kāi)發(fā)C#軟件的臨時(shí)方案
低成本AI邊緣計(jì)算盒子DIY:基于迅為RK3568和開(kāi)源模型,輕松玩轉(zhuǎn)智能識(shí)別
如何在vivadoHLS中使用.TLite模型
【內(nèi)測(cè)活動(dòng)同步開(kāi)啟】這么???這么強(qiáng)?新一代大模型MCP開(kāi)發(fā)板來(lái)啦!
無(wú)法在NPU上推理OpenVINO?優(yōu)化的 TinyLlama 模型怎么解決?
無(wú)法將Tensorflow Lite模型轉(zhuǎn)換為OpenVINO?格式怎么處理?
使用Openvino? GenAI運(yùn)行Sdxl Turbo模型時(shí)遇到錯(cuò)誤怎么解決?
無(wú)法將Openvino? 2025.0與onnx運(yùn)行時(shí)Openvino? 執(zhí)行提供程序 1.16.2 結(jié)合使用,怎么處理?
OpenVINO C#如何運(yùn)行YOLO11實(shí)例分割模型
C#中使用OpenVINO?:輕松集成AI模型!
評(píng)論