时间:2025-10-02 22:53
人气:
作者:admin
DeploySharp 是一个专为 C# 开发者设计的跨平台模型部署框架,提供从模型加载、配置管理到推理执行的端到端解决方案。其核心架构采用模块化命名空间设计,显著降低了 C# 生态中深度学习模型的集成复杂度,
DeploySharp 作为统一入口,集成模型加载、推理执行等核心功能DeploySharp.Engine)实现模块化分层设计OpenVinoSharp)、ONNX Runtime 推理引擎System.Threading.Tasks)log4net 分级日志系统(错误/警告/调试)该项目开源遵循 Apache License 2.0 协议,开发者可通过 QQ 群、微信公众号等渠道获取支持。未来版本计划扩展 TensorRT 支持并优化现有引擎的异构计算能力。
项目链接:
https://github.com/guojin-yan/DeploySharp.git
| 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... |
| Package | Description | Link |
|---|---|---|
| JYPPX.DeploySharp | DeploySharp API core libraries | https://www.nuget.org/packages/JYPPX.DeploySharp/ |
| 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/ |
大家可以直接在NuGet Gallery官网上进行查找使用:

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

DeploySharp包含了OpenCvSharp、ImageSharp等图像处理方式,同时支持OpenVINO、ONNX Runtime模型部署引擎,因此用户可以根据自己需求自行组合,并安装对应的NuGet Package即可开箱使用。以下总结了常用的一些使用情况的NuGet Package安装场景:
JYPPX.DeploySharp
JYPPX.DeploySharp.OpenCvSharp
OpenVINO.runtime.win
OpenCvSharp4.runtime.win
JYPPX.DeploySharp
JYPPX.DeploySharp.ImageSharp
OpenVINO.runtime.win
JYPPX.DeploySharp
JYPPX.DeploySharp.OpenCvSharp
OpenCvSharp4.runtime.win
JYPPX.DeploySharp
JYPPX.DeploySharp.OpenCvSharp
JYPPX.DeploySharp
JYPPX.DeploySharp.ImageSharp
Intel.ML.OnnxRuntime.OpenVino
JYPPX.DeploySharp
JYPPX.DeploySharp.ImageSharp
Microsoft.ML.OnnxRuntime.DirectML
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/
如果你不知道如何使用,通过下面代码简单了解使用方法。
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");
}
}
}
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();
}
}
}
获取更多应用案例请参考:
| 案例类型 | 框架 | 链接 |
|---|---|---|
| 桌面应用 | .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 |

后续会推出更多的应用案例使用介绍,敬请关注。
如果想了解更多信息,可以参阅:DeploySharp API Documented

如果您对DeploySharp在C#使用感兴趣,有兴趣对开源社区做出自己的贡献,欢迎加入我们,一起开发DeploySharp。
如果你对该项目有一些想法或改进思路,欢迎联系我们,指导下我们的工作。
本项目的发布受Apache 2.0 license许可认证。
最后如果各位开发者在使用中有任何问题,欢迎大家与我联系。

Microsoft Agent Framework Skills 执行 Scripts(实
EF Core 原生 SQL 实战:FromSql、SqlQuery 与对