news 2026/8/2 6:33:17

DeploySharp开源发布:让C#部署深度学习模型更加简单

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DeploySharp开源发布:让C#部署深度学习模型更加简单

简介

DeploySharp 是一个专为 C# 开发者设计的跨平台模型部署框架,提供从模型加载、配置管理到推理执行的端到端解决方案。其核心架构采用模块化命名空间设计,显著降低了 C# 生态中深度学习模型的集成复杂度,

1. 架构设计与功能分层

根命名空间 DeploySharp 作为统一入口,集成模型加载、推理执行等核心功能

通过子命名空间(如 DeploySharp.Engine)实现模块化分层设计

关键类采用泛型设计,支持图像处理/分类/检测等多任务标准数据交互

2. 多引擎支持与扩展能力

原生支持 OpenVINO(通过OpenVinoSharp)、ONNX Runtime 推理引擎

支持 YOLOv5-v12全系列模型、Anomaly及其他主流模型部署

3. 跨平台运行时支持

兼容 .NET Framework 4.8 及 .NET 6/7/8/9

深度集成 .NET 运行时生态(NuGet 包管理)

4. 高性能推理能力

异步推理支持(System.Threading.Tasks)

支持单张/批量图片推理模式

丰富的预处理(ImageSharp/OpenCvSharp)和后处理操作

5. 开发者支持体系

中英双语代码注释与技术文档

log4net 分级日志系统(错误/警告/调试)

提供可视化结果展示方案

提供完善的示例代码库

该项目开源遵循 Apache License 2.0 协议,开发者可通过 QQ 群、微信公众号等渠道获取支持。未来版本计划扩展 TensorRT 支持并优化现有引擎的异构计算能力。

项目链接:

https://github.com/guojin-yan/DeploySharp.git

2. 模型支持列表

Model Name Model Type OpenVINO ONNX Runtime TensorRT

YOLOv5 Detection ✅ ✅ ing...

YOLOv5 Segmentation ✅ ✅ ing...

YOLOv6 Detection ✅ ✅ ing...

YOLOv7 Detection ✅ ✅ ing...

YOLOv8 Detection ✅ ✅ ing...

YOLOv8 Segmentation ✅ ✅ ing...

YOLOv8 Pose ✅ ✅ ing...

YOLOv8 Oriented Bounding Boxes ✅ ✅ ing...

YOLOv9 Detection ✅ ✅ ing...

YOLOv9 Segmentation ✅ ✅ ing...

YOLOv10 Detection ✅ ✅ ing...

YOLOv11 Detection ✅ ✅ ing...

YOLOv11 Segmentation ✅ ✅ ing...

YOLOv11 Pose ✅ ✅ ing...

YOLOv11 Oriented Bounding Boxes ✅ ✅ ing...

YOLOv12 Detection ✅ ✅ ing...

Anomalib Segmentation ✅ ✅ ing...

3. NuGet Package

3.1 Core Managed Libraries

Package Description Link

JYPPX.DeploySharp DeploySharp API core libraries https://www.nuget.org/packages/JYPPX.DeploySharp/

3.2 Native Runtime Libraries

Package Description Link

JYPPX.DeploySharp.ImageSharp An assembly that uses ImageSharp as an image processing tool. https://www.nuget.org/packages/JYPPX.DeploySharp.ImageSharp/

JYPPX.DeploySharp.OpenCvSharp An assembly that uses OpenCvSharp as an image processing tool. https://www.nuget.org/packages/JYPPX.DeploySharp.OpenCvSharp/

4. 如何安装

4.1 获取方式

大家可以直接在NuGet Gallery官网上进行查找使用:

image-20251002125042083

或者在Visual Studio的NuGet程序包中进行查找安装:

image-20251002125313962

4.2 NuGet Package组合使用方式

DeploySharp包含了OpenCvSharp、ImageSharp等图像处理方式,同时支持OpenVINO、ONNX Runtime模型部署引擎,因此用户可以根据自己需求自行组合,并安装对应的NuGet Package即可开箱使用。以下总结了常用的一些使用情况的NuGet Package安装场景:

OpenVINO推理+OpenCvSharp图像处理

JYPPX.DeploySharp

JYPPX.DeploySharp.OpenCvSharp

OpenVINO.runtime.win

OpenCvSharp4.runtime.win

OpenVINO推理+ImageSharp图像处理

JYPPX.DeploySharp

JYPPX.DeploySharp.ImageSharp

OpenVINO.runtime.win

ONNX Runtime推理+OpenCvSharp图像处理

JYPPX.DeploySharp

JYPPX.DeploySharp.OpenCvSharp

OpenCvSharp4.runtime.win

ONNX Runtime推理+ImageSharp图像处理

JYPPX.DeploySharp

JYPPX.DeploySharp.OpenCvSharp

ONNX Runtime(OpenVINO加速)推理+ImageSharp图像处理

JYPPX.DeploySharp

JYPPX.DeploySharp.ImageSharp

Intel.ML.OnnxRuntime.OpenVino

ONNX Runtime(DML加速)推理+ImageSharp图像处理

JYPPX.DeploySharp

JYPPX.DeploySharp.ImageSharp

Microsoft.ML.OnnxRuntime.DirectML

ONNX Runtime(CUDA加速)推理+ImageSharp图像处理

JYPPX.DeploySharp

JYPPX.DeploySharp.ImageSharp

Microsoft.ML.OnnxRuntime.DirectML

由于使用CUDA对ONNX Runtime加速受GPU设备型号以及软件版本影响,因此需要按照ONNX Runtime官方提供的版本对应关系进行下载使用,其中ONNX Runtime与CUDA、cuDNN对应关系请参考一下以下链接:

https://runtime.onnx.org.cn/docs/execution-providers/CUDA-ExecutionProvider.html#requirements

以上所列出的使用方式均可以通过NuGet Package一键安装,同样的,ONNX Runtime还支持更多加速方式,但需要用户自己进行代码构建,其构建流程与方式,参考官方教程即可,链接为:

https://runtime.onnx.org.cn/docs/execution-providers/

5. 开始使用

如果你不知道如何使用,通过下面代码简单了解使用方法。

5.1 ImageSharp图像处理

using DeploySharp.Data;

using DeploySharp.Engine;

using DeploySharp.Model;

using SixLabors.ImageSharp;

using SixLabors.ImageSharp.PixelFormats;

using System;

namespace DeploySharp.ImageSharp.Demo

{

public class YOLOv5DetDemo

{

public static void Run()

{

// 模型和测试图片可以前往QQ群(945057948)下载

// 将下面的模型路径替换为你自己的模型路径

string modelPath = @"E:\Model\Yolo\yolov5s.onnx";

// 将下面的图片路径替换为你自己的图片路径

string imagePath = @"E:\Data\image\bus.jpg";

Yolov5DetConfig config = new Yolov5DetConfig(modelPath);

//config.SetTargetInferenceBackend(InferenceBackend.OnnxRuntime);

Yolov5DetModel model = new Yolov5DetModel(config);

var img = Image.Load(imagePath);

var result = model.Predict(img);

model.ModelInferenceProfiler.PrintAllRecords();

var resultImg = Visualize.DrawDetResult(result, img as Image<Rgb24>, new VisualizeOptions(1.0f));

resultImg.Save(@$"./result_{ModelType.YOLOv5Det.ToString()}.jpg");

}

}

}

5.2 OpenCvSharp图像处理

using OpenCvSharp;

using System.Diagnostics;

using DeploySharp.Model;

using DeploySharp.Data;

using DeploySharp.Engine;

using DeploySharp;

using System.Net.Http.Headers;

namespace DeploySharp.OpenCvSharp.Demo

{

public class YOLOv5DetDemo

{

public static void Run()

{

// 模型和测试图片可以前往QQ群(945057948)下载

// 将下面的模型路径替换为你自己的模型路径

string modelPath = @"E:\Model\Yolo\yolov5s.onnx";

// 将下面的图片路径替换为你自己的图片路径

string imagePath = @"E:\Data\image\bus.jpg";

Yolov5DetConfig config = new Yolov5DetConfig(modelPath);

config.SetTargetInferenceBackend(InferenceBackend.OnnxRuntime);

Yolov5DetModel model = new Yolov5DetModel(config);

Mat img = Cv2.ImRead(imagePath);

var result = model.Predict(img);

model.ModelInferenceProfiler.PrintAllRecords();

var resultImg = Visualize.DrawDetResult(result, img, new VisualizeOptions(1.0f));

Cv2.ImShow("image", resultImg);

Cv2.WaitKey();

}

}

}

6.应用案例

获取更多应用案例请参考:

案例类型 框架 链接

桌面应用 .NET Framework 4.8 https://github.com/guojin-yan/DeploySharp/tree/DeploySharpV1.0/applications/.NET Framework 4.8/DeploySharp.ImageSharp-ApplicationPlatform

桌面应用 .NET 6.0 https://github.com/guojin-yan/DeploySharp/tree/DeploySharpV1.0/applications/.NET 6.0/DeploySharp.OpenCvSharp-ApplicationPlatform

控制台应用 .NET Framework 4.8、.NET 6.0-9.0 https://github.com/guojin-yan/DeploySharp/tree/DeploySharpV1.0/samples

image-20251002124851175

后续会推出更多的应用案例使用介绍,敬请关注。

7. API文档

如果想了解更多信息,可以参阅:DeploySharp API Documented

image-20251002124938166

8. 贡献

如果您对DeploySharp在C#使用感兴趣,有兴趣对开源社区做出自己的贡献,欢迎加入我们,一起开发DeploySharp。

如果你对该项目有一些想法或改进思路,欢迎联系我们,指导下我们的工作。

9. 许可证书

本项目的发布受Apache 2.0 license许可认证。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/1 22:57:40

构建你的专属视频生态:Invidious模块化扩展实战指南

你是否厌倦了主流视频平台无休止的广告轰炸和隐私追踪&#xff1f;是否希望在移动设备上也能享受同样的无广告体验&#xff1f;今天&#xff0c;让我们一起来探索Invidious这个开源视频替代前端的扩展生态&#xff0c;看看如何通过模块化思维构建属于你自己的隐私友好型视频观看…

作者头像 李华
网站建设 2026/7/31 22:04:22

科大讯飞语音引擎:让Android设备开口说话的终极方案

科大讯飞语音引擎&#xff1a;让Android设备开口说话的终极方案 【免费下载链接】科大讯飞语音引擎TTS.apk下载 本仓库提供科大讯飞语音引擎TTS.apk的下载&#xff0c;支持32位和64位版本&#xff0c;适用于最新的Android系统。该语音引擎为Android平台提供中文发音的TTS&#…

作者头像 李华
网站建设 2026/8/1 12:55:49

Cyberdrop和Bunkr批量下载工具完全指南

Cyberdrop和Bunkr批量下载工具完全指南 【免费下载链接】CyberdropBunkrDownloader Simple downloader for cyberdrop.me and bunkrr.sk 项目地址: https://gitcode.com/gh_mirrors/cy/CyberdropBunkrDownloader 在当今数字化时代&#xff0c;我们经常需要从各种在线平台…

作者头像 李华
网站建设 2026/8/2 1:22:05

LaMa推理优化终极指南:从模型导出到TensorRT极致加速

LaMa推理优化终极指南&#xff1a;从模型导出到TensorRT极致加速 【免费下载链接】lama 项目地址: https://gitcode.com/gh_mirrors/lam/lama 想要将LaMa图像修复模型的推理速度提升3-5倍&#xff1f;本文为你揭秘完整的LaMa推理优化方案&#xff0c;涵盖ONNX模型导出、…

作者头像 李华
网站建设 2026/7/30 7:16:45

从零开始学Flink:实时流处理实战

在大数据处理领域&#xff0c;实时流处理正变得越来越重要。Apache Flink作为领先的流处理框架&#xff0c;提供了强大而灵活的API来处理无界数据流。本文将通过经典的SocketWordCount示例&#xff0c;深入探讨Flink实时流处理的核心概念和实现方法&#xff0c;帮助你快速掌握F…

作者头像 李华
网站建设 2026/8/1 7:07:07

python:backtrader 如何使用 tushare 股票数据?

我来详细介绍在Backtrader中使用Tushare数据的几种方法&#xff0c;从简单到复杂&#xff0c;包括示例代码。 方法1&#xff1a;使用PandasData&#xff08;推荐&#xff0c;最灵活&#xff09; 这是最常用的方法&#xff0c;将Tushare数据转换为Pandas DataFrame&#xff0c;然…

作者头像 李华