【OpenVINO】OpenVINO C# API2.0 更新,支持NuGet包

更新日志

  • 🔥 2023.1.23 :发布 OpenVinoSharp 2.0
    • 🗳 OpenVinoSharp 库:

      • 基于OpenVINO C# API 1.0 以及使用中所出现的问题,将一些问题进行了修改;
      • 增加数据处理方式。
    • 🔮 NuGet包:

      • 制作并发布NuGet包,包括OpenVinoSharp.winOpenVinoSharp.win.simplify 两个安装包。
    • 💡 技术文档:

简介

OpenVINO™是一个用于优化和部署深度学习模型的开源工具包,是英特尔基于自身现有的硬件平台开发的一种可以加快高性能计算机视觉和深度学习视觉应用开发速度工具套件,用于快速开发应用程序和解决方案,以解决各种任务(包括人类视觉模拟、自动语音识别、自然语言处理和推荐系统等)。

  官方发行的OpenVINO™未提供C#编程语言接口,因此在使用时无法实现在C#中利用OpenVINO™进行模型部署。在该项目中,利用动态链接库功能,调用官方依赖库,实现在C#中部署深度学习模型,为方便使用,在该项目中提供了NuGet包方便使用,为了方便大家再此基础上进行开发,该项目提供了详细的技术文档。

NuGet包

托管库

PackageDescriptionLink
OpenVinoSharp.winOpenVinoSharp 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修改。

应用案例

  • 基于C#和OpenVINO部署PP-Human

| GitHub代码库 | CSDN博客 | 微信推文 |

  • 基于C#和OpenVINOTM部署PP-TinyPose

| GitHub代码库 | CSDN博客 | 微信推文 |

  • 基于C#和OpenVINO部署PaddleOCR模型

| 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()删除内存地址
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

椒颜皮皮虾྅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值