基于 .NET 10 Yolo 多模型智能识别平台
高效 · 灵活 · 易部署
在 AI 应用落地 的过程中,模型管理 与 多任务识别 一直是开发者的痛点。
无论是 检测、分类、分割、姿态估计、定向检测,往往都需要同时部署多个模型,传统方案在 效率 和 易用性 上总会遇到瓶颈。
VisualIdentity 正是为了解决这一系列问题而生。
它结合了 .NET 10 的现代化能力、YoloDotNet 的高性能推理、以及 SQLite 的轻量级管理,为开发者提供一个 开箱即用 的智能识别平台。
✅ 多模型管理
✅ 单机多任务识别
✅ 跨平台部署
- 🏭 工业质检:瑕疵检测、异物识别
- 🛒 零售分析:顾客行为、货架检测
- 🛡️ 智能安防:异常行为、姿态识别
- 🎓 科研教育:多模型实验平台
- 🌐 边缘计算:轻量化部署到嵌入式或服务器
- 对于YOLOv26,导出时 opset=18
- 对于YOLOv5u–YOLOv12,导出时 opset=17
[!重要] 使用正确的作集确保与 ONNX 运行时的最佳兼容性和性能。 有关如何将模型导出到 ONNX 的更多信息,请参见 https://docs.ultralytics.com/modes/export/
示例导出命令(Ultralytics CLI):
# For YOLOv5u–YOLOv12 (opset 17)
yolo export model=yolov8n.pt format=onnx opset=17
# For YOLOv26 (opset 18)
yolo export model=yolo26n.pt format=onnx opset=18dotnet add package Snet.Yolo.Server
(选择下方一项)
# CPU
dotnet add package YoloDotNet.ExecutionProvider.Cpu
# 硬件
dotnet add package YoloDotNet.ExecutionProvider.Cuda
dotnet add package YoloDotNet.ExecutionProvider.OpenVino
dotnet add package YoloDotNet.ExecutionProvider.CoreML
dotnet add package YoloDotNet.ExecutionProvider.DirectMLusing SkiaSharp;
using Snet.Model.data;
using Snet.Yolo.Server;
using Snet.Yolo.Server.handler;
using Snet.Yolo.Server.models.data;
using Snet.Yolo.Server.models.@enum;
using YoloDotNet.ExecutionProvider.Cpu;
using YoloDotNet.Extensions;
using YoloDotNet.Models;
namespace Snet.Yolo.Test
{
internal class Program
{
static async Task Main(string[] args)
{
//????? 为对应数据
// 原始图片路径
string imagePath = "?????";
//模型路径
string onnxModel = "?????";
//识别类型
OnnxType onnxType = OnnxType.ObjectDetection;
//直接调用库来进行本地识别操作
using SKImage image2 = SKImage.FromEncodedData(imagePath);
// 调用识别
OperateResult operateResult = await IdentityOperate.Instance(new Yolo.Server.models.data.IdentityData
{
Hardware = new CpuExecutionProvider(onnxModel), //使用CPU进行运算
IdentifyType = onnxType,
SN = $"{onnxType}{onnxModel}"
}).RunAsync(new ObjectDetectionData
{
Confidence = 0.23,
Iou = 0.7,
File = image2.Encode().ToArray()
});
// 转换结果
List<ObjectDetection> results2 = operateResult.GetObjectDetectionResult().ToObjectDetection();
//绘制结果
using SKBitmap resultImage2 = image2.Draw(results2);
}
}
}- 支持 增 / 删 / 改 / 查
- 模型 版本化 & 快速切换
- 一机多模型轻松维护
- 支持 检测 / OBB 定向检测 / 分类 / 分割 / 姿态估计
- 基于 YoloDotNet 高速推理内核
- 零配置,一键运行
- 支持 Windows / Linux / Docker 部署
- 提供轻量化配置,适配 边缘设备 & 服务器
- 开箱即用,降低开发门槛
- 集成 Dapper & SqlSugarCore
- 支持高性能 SQL 映射与链式查询
- 自动建表,高效开发
- 保持轻量同时,具备 生产级性能
- 适用于.NET的、超快速的、可投入生产的YOLO推理
- YoloDotNet 是一个模块化、轻量级的C#库,用于实现实时计算机视觉以及.NET环境下基于YOLO的推理。
| 分类 (Classification) | 检测 (Detection) | OBB 定向检测 | 分割 (Segmentation) | 姿态估计 (Pose) |
|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
| pexels.com | pexels.com | pexels.com | pexels.com | pexels.com |
以下YOLO模型已使用YoloDotNet进行了测试和验证 官方Ultralytics导出和默认头部
| 分类 (Classification) | 检测 (Detection) | 分割 (Segmentation) | 姿态估计 (Pose) | OBB 定向检测 |
|---|---|---|---|---|
| YOLOv8-cls YOLOv11-cls YOLOv12-cls YOLOv26-cls |
YOLOv5u YOLOv8 YOLOv9 YOLOv10 YOLOv11 YOLOv12 YOLOv26 RT-DETR |
YOLOv8-seg YOLOv11-seg YOLOv12-seg YOLOv26-seg YOLO-World (v2) |
YOLOv8-pose YOLOv11-pose YOLOv12-pose YOLOv26-pose |
YOLOv8-obb YOLOv11-obb YOLOv12-obb YOLOv26-obb |
| Provider | Windows | Linux | macOS |
|---|---|---|---|
| CPU | ✅ | ✅ | ✅ |
| CUDA / TensorRT | ✅ | ✅ | ❌ |
| OpenVINO | ✅ | ✅ | ❌ |
| CoreML | ❌ | ❌ | ✅ |
| DirectML | ✅ | ❌ | ❌ |
ℹ️ 只能引用一个执行提供程序包 混合使用不同的提供程序会导致本地运行时冲突
- 🌐 Shunnet.top
- 🔥 Ultralytics
- ⚡ YoloDotNet
- 🖥️ WpfMUI
本项目基于 MIT 开源。
请阅读 LICENSE 获取完整条款。
👉 点击跳转





