【OpenVINO】OpenVINO C# API2.0 更新,支持NuGet包
OpenVINO™是一个用于优化和部署深度学习模型的开源工具包,是英特尔基于自身现有的硬件平台开发的一种可以加快高性能计算机视觉和深度学习视觉应用开发速度工具套件,用于快速开发应用程序和解决方案,以解决各种任务(包括人类视觉模拟、自动语音识别、自然语言处理和推荐系统等)。官方发行的OpenVINO™未提供C#编程语言接口,因此在使用时无法实现在C#中利用OpenVINO™进行模型部署。
更新日志
-
🔥 2023.1.23 :发布 OpenVinoSharp 2.0
-
🗳 OpenVinoSharp 库:
- 基于OpenVINO C# API 1.0 以及使用中所出现的问题,将一些问题进行了修改;
- 增加数据处理方式。
-
🔮 NuGet包:
- 制作并发布NuGet包,包括OpenVinoSharp.win 、OpenVinoSharp.win.simplify 两个安装包。
-
💡 技术文档:
- 无
-
简介
OpenVINO™是一个用于优化和部署深度学习模型的开源工具包,是英特尔基于自身现有的硬件平台开发的一种可以加快高性能计算机视觉和深度学习视觉应用开发速度工具套件,用于快速开发应用程序和解决方案,以解决各种任务(包括人类视觉模拟、自动语音识别、自然语言处理和推荐系统等)。
官方发行的OpenVINO™未提供C#编程语言接口,因此在使用时无法实现在C#中利用OpenVINO™进行模型部署。在该项目中,利用动态链接库功能,调用官方依赖库,实现在C#中部署深度学习模型,为方便使用,在该项目中提供了NuGet包方便使用,为了方便大家再此基础上进行开发,该项目提供了详细的技术文档。
NuGet包
托管库
Package | Description | Link |
---|---|---|
OpenVinoSharp.win | OpenVinoSharp core libraries,附带完整的OpenCV 4.5.5、OpenVINO 2022.3依赖库 | [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QKvN8a31-1675956837448)(null)] |
安装
OpenVINO安装
OpenVINO安装,请参考openvino_installation.md安装指导文档。
OpenVINO C# API NuGet包安装
(1)下载NuGet包
使用Visual Studio自带的NuGet管理包,搜索OpenVinoSharp.win,找到对应的包,并将其安装到项目中。
(2)复制依赖项
由于项目依赖较多的外部依赖项,因此为了方便使用,此处提供了所需的依赖。
打开下载的NuGet下载路径,路径一般为C:\Users\(用户名)\.nuget\packages\
,并找到openvinosharp.win
,将external lib
文件夹中的所有文件复制到程序运行目录中。
技术文档
由于该项目是基于作者自身使用需求开发,结合常见模型部署方式封装的API函数,因此为了满足其他开发者的需求,此处公开详细的技术文档,如有需求,可以自行根据技术文档openvinosharp_documents修改。
应用案例
| GitHub代码库 | CSDN博客 | 微信推文 |
| GitHub代码库 | CSDN博客 | 微信推文 |
许可证书
本项目的发布受Apache 2.0 license许可认证。
API文档
命名空间
using OpenVinoSharp;
模型推理API
序号 | API | 参数解释 | 说明 | |
---|---|---|---|---|
1 | 方法 | Core() | 构造函数 | 初始化推理核心,读取本地模型,加载到设备,并创建推理通道 |
参数 | string model | 模型路径 | ||
string device | 设备名称 | |||
string cache_dir | 缓存路径 | |||
2 | 方法 | void set_input_shape() | 设置输入节点形状 | 根据节点维度设置 |
参数 | string node_name | 节点名称 | ||
int[] input_shape | 形状数组 | |||
3 | 方法 | void load_input_data() | 设置图片/普通输入数据 | 方法重载 |
参数 | string node_name | 输入节点名称 | ||
float[] input_data | 输入数据 | |||
参数 | string node_name | 输入节点名称 | ||
byte[] image_data | 图片数据 | |||
int type | 数据处理类型: type = 0: 均值方差归一化、常规缩放 type = 1: 普通归一化(1/255)、常规缩放 type = 2: 不归一化、常规缩放 type = 0: 均值方差归一化、仿射变换 type = 1: 普通归一化(1/255)、仿射变换 type = 2: 不归一化、仿射变换 | |||
4 | 方法 | void infer() | 模型推理 | |
5 | 方法 | void T[] read_infer_result <T>() | 读取推理结果数据 | 支持读取Float32、Int32、Int64格式数据 |
参数 | string output_name | 输出节点名 | ||
int data_size | 输出数据长度 | |||
6 | 方法 | void delet() | 删除内存地址 |
更多推荐
所有评论(0)