如何在.net应用程序中使用openvino?

问题描述 投票:0回答:3

我想知道是否可以在.net应用程序中使用openvino?

我已将 yolo 网络转换为 onnx 网络以与 ml.net 一起使用。接下来我想做的是实现 openvino 来看看它是否加速。到目前为止,我已经使用 openvino Model_optimizer 转换了我的 onnx 模型,但到目前为止找不到任何方法在 .net 应用程序中实现 openvino。

谢谢你

.net inference openvino
3个回答
0
投票

到目前为止,还没有官方支持 OpenVINO 与 .NET 应用程序的集成。相反,OpenVINO 有自己的推理引擎应用程序,支持 C++ 和 Python。您可以参考这里了解更多信息。

性能方面,既然你提到了加速,你可以尝试使用OpenVINO Post-Training Optimization Tool来加速深度学习模型的推理。

另外,请确保根据您要用于推理的硬件为深度学习模型选择正确的精度。


0
投票
目前有 onnx 运行时,您可以在 C# 中运行推理并在 python 中训练模型并转换为 onnx 模型 (model.onnx) 参考链接:

https://onnxruntime.ai/docs/get-started/with-csharp.html


0
投票
在.NET应用程序中使用OpenVINO是可行的,可以通过使用我开发的OpenVINO.NET开源项目来完成。这是 OpenVINO 工具包的高质量非官方包装,它提供了 .NET 和 OpenVINO 之间的桥梁,使 OpenVINO 的强大功能能够在 .NET 应用程序中轻松利用。

以下是要遵循的步骤:

第 1 步:设置 OpenVINO.NET

使用我作为 OpenVINO.NET 项目一部分提供的 NuGet 包,而不是克隆我的 Github 存储库。安装以下四个 NuGet 包:

    Sdcb.OpenVINO
  • Sdcb.OpenVINO.runtime.win-x64
  • OpenCvSharp4
  • OpenCvSharp4.runtime.win
这些包包含.NET PInvoke 和平台动态链接库包。如果你使用的是Linux,可以考虑使用我专门发布的Docker镜像(

sdflysha/openvino-base

),以缓解部署压力。

第二步:实施

OpenVINO.NET 提供低级 C API 和易于使用的高级 API。让您享受原汁原味的 C API 感觉,或者利用符合 C# 命名约定、熟练处理异常、利用 C# 特性进行性能优化的高级 API,如

ReadOnlySpan<T>

第 3 步:使用模型

OpenVINO.NET 支持多种模型格式,包括 OpenVINO 的本机中间表示 (IR) 格式,该格式由 .xml 和 .bin 文件组成。对于YOLO网络,可以使用YOLO官网提供的命令行工具直接转换为IR格式,如下:

yolo export model=yolov8n-seg.pt format=openvino

示例

为了帮助您开始使用 OpenVINO.NET,我在 GitHub 上创建了四个示例项目:

  • Yolov8 物体检测示例
  • Yolov8 对象分类示例
  • 基于OpenVINO官方人脸检测-0200模型的人脸检测示例
  • PaddleOCR 示例 - 3 种不同模型的组合
我希望这些示例为您提供一个良好的起点,帮助您了解如何在自己的 .NET 应用程序中使用 OpenVINO.NET。

终于...

如果您发现 OpenVINO.NET 项目有帮助或正在使用它,如果您能在

GitHub 上为其加注星标🌟,我将不胜感激。您的支持是对我继续从事 .NET 开源项目工作的巨大鼓励。正是开源社区的力量促使我为全世界的 .NET 开发人员提供更多的可能性。让我们一起探索.NET的无限潜力!

© www.soinside.com 2019 - 2024. All rights reserved.