简体中文| English
OpenVINO™ 是一个用于优化和部署 AI 推理的开源工具包。
- 提升深度学习在计算机视觉、自动语音识别、自然语言处理和其他常见任务中的性能
- 使用流行框架(如TensorFlow,PyTorch等)训练的模型
- 减少资源需求,并在从边缘到云的一系列英特尔®平台上高效部署
然而 OpenVINO™未提供C#语言接口,这对在C#中使用 OpenVINO™带来了很多麻烦,因此基于OpenVINO™工具套件推出了 OpenVINOSharp,旨在推动 OpenVINO™在C#领域的应用。OpenVINOSharp 由于是基于 OpenVINO™ 开发,所支持的平台与OpenVINO™ 一致,具体信息可以参考 OpenVINO™。
目前 OpenVinoSharp 已经更新迭代起到3.0版本,相比于之前版本,OpenVinoSharp 3.0 版本做了较大程度上的更新,由原来的重构 C++ API 改为直接读取 OpenVINO™ 官方 C API,使得应用更加灵活,所支持的功能更加丰富。
Package | Description | Link |
---|---|---|
OpenVinoSharp.win | OpenVinoSharp core libraries,附带完整的OpenVINO 2023.0依赖库 |
以下文章提供了OpenVINOSharp在不同平台的安装方法,可以根据自己使用平台进行安装。
-
快速体验
-
使用方法
如果你不知道如何使用,通过下面代码简单了解使用方法。
using OpenVinoSharp; // 引用命名空间
namespace test
{
internal class Program
{
static void Main(string[] args)
{
Core core = new Core(); // 初始化 Core 核心
Model model = core.read_model("./model.xml"); // 读取模型文件
CompiledModel compiled_model = core.compiled_model(model, "AUTO"); // 将模型加载到设备
InferRequest infer_request = compiled_model.create_infer_request(); // 创建推理通道
Tensor input_tensor = infer_request.get_tensor("images"); // 获取输入节点Tensor
infer_request.infer(); // 模型推理
Tensor output_tensor = infer_request.get_tensor("output0"); // 获取输出节点Tensor
core.free(); // 清理 Core 非托管内存
}
}
}
项目中所封装的类、对象例如Core、Model、Tensor等,通过调用 C api 接口实现,具有非托管资源,需要调用**dispose()**方法处理,否则就会出现内存泄漏。
如果想了解更多信息,可以参阅:OpenVINOSharp API Documented
(API Documented 正在建设中)
- 🗳 OpenVinoSharp 库:
- 升级OpenVinoSharp 2.0 到 OpenVinoSharp 3.0 版本,由原来的重构 C++ API 改为直接读取 OpenVINO™ 官方 C API,使得应用更加灵活,所支持的功能更加丰富。
- 🛹应用案例:
- OpenVinoSharp部署Yolov8模型实例。
- 🔮 NuGet包:
- 制作并发布NuGet包,发布OpenVinoSharp.win 3.0.120 ,包含OpenVINO 2023.0 依赖项。
如果您对OpenVINO™ 在C#使用感兴趣,有兴趣对开源社区做出自己的贡献,欢迎加入我们,一起开发OpenVinoSharp。
如果你对该项目有一些想法或改进思路,欢迎联系我们,指导下我们的工作。
本项目的发布受Apache 2.0 license许可认证。