YoloDotNet
YoloDotNet 是一款专为 .NET 生态打造的高性能计算机视觉库,支持在图片和实时视频流中快速执行分类、目标检测、旋转框检测、图像分割及姿态估计等任务。它主要解决了开发者在 .NET 环境中集成 YOLO 模型时依赖 Python 运行时、预处理逻辑不透明以及运行效率难以掌控的痛点。
通过完全基于 C# 和 .NET 8 构建,YoloDotNet 摒弃了沉重的 OpenCV 依赖和隐藏的“魔法”操作,确保推理过程完全可控、可预测且跨平台兼容(Windows、Linux、macOS)。其独特亮点在于原生支持多种主流 YOLO 系列模型(从 YOLOv5u 到最新的 YOLOv26、YOLO-World 等)及 RT-DETR,并提供对 CPU、CUDA、TensorRT、OpenVINO 等多种硬件加速后端的精细控制。此外,最新版本还新增了感兴趣区域(ROI)推理、轮廓点提取及便捷的 JSON/YOLO 格式数据导出功能。
这款工具非常适合需要构建桌面应用、后端服务或实时视觉流水线的 .NET 开发者使用。如果你追求纯 .NET 技术栈、需要生产级的稳定性,并希望在不引入 Python 环境的前提下实现低延迟、确定性的 AI 推理,YoloDotNet 将是理想的选择。
使用场景
某智能仓储团队正在开发一套运行在 Windows 工业工控机上的实时包裹分拣系统,需要精准识别传送带上包裹的类别、位置及旋转角度。
没有 YoloDotNet 时
- 架构臃肿复杂:团队被迫在 C# 主程序中嵌入 Python 运行时来调用 PyTorch 模型,导致部署包体积巨大且环境配置极易出错。
- 延迟不可控:图像数据需在 .NET 与 Python 进程间频繁序列化传输,造成明显的推理延迟,无法满足高速传送带的实时性要求。
- 功能支持缺失:现有的 .NET 视觉库难以原生支持带角度检测(OBB),无法准确判断倾斜包裹的姿态,导致机械臂抓取失败率高。
- 维护成本高昂:依赖隐式的预处理逻辑和重型框架(如 OpenCV 的完整绑定),使得内存占用波动大,长期运行容易出现内存泄漏。
使用 YoloDotNet 后
- 纯 .NET 轻量化部署:直接基于 .NET 8 和 ONNX Runtime 运行,彻底移除 Python 依赖,将部署包体积缩小 60%,实现“开箱即用”。
- 极致低延迟推理:利用 YoloDotNet 的零拷贝内存管理和原生预处理,推理端到端延迟降低至毫秒级,完美匹配高速分拣节奏。
- 原生支持多任务检测:轻松调用 OBB 检测和姿态估计功能,精准识别倾斜包裹的角度坐标,机械臂抓取成功率提升至 99%。
- 确定性资源管控:通过显式配置执行后端(如 DirectML 或 CUDA)和内存策略,系统在高负载下连续运行数周依然稳定,无内存泄漏风险。
YoloDotNet 让 .NET 开发者无需妥协于跨语言调用的性能损耗,真正实现了生产级、高性能且完全可控的原生计算机视觉应用落地。
运行环境要求
- Windows
- Linux
- macOS
- 非必需
- 若需加速,支持 NVIDIA GPU (CUDA/TensorRT)、Intel GPU (OpenVINO)、Apple Silicon (CoreML) 或 Windows DirectML
- 具体显卡型号、显存大小及 CUDA 版本取决于所选的 ONNX Runtime 执行提供程序,文中未明确指定最低要求
未说明

快速开始
YoloDotNet v4.2 🚀
面向 .NET 的极速、生产就绪的 YOLO 推理
YoloDotNet 是一个模块化、轻量级的 C# 库,用于在 .NET 中实现实时计算机视觉和基于 YOLO 的推理。
它为现代 YOLO 模型系列(从 YOLOv5u 到 YOLOv26、YOLO-World、YOLO-E 和 RT-DETR)提供高性能推理,并对执行、内存和预处理进行显式控制。
YoloDotNet 基于 .NET 8、ONNX Runtime 和 SkiaSharp 构建,有意避免使用 OpenCV 等重量级计算机视觉框架。
没有 Python 运行时、隐藏的预处理或隐式行为——只有在 Windows、Linux 和 macOS 上实现快速、可预测推理所需的组件。
无需 Python,没有魔法,只有高效、确定性的 YOLO——专为 .NET 打造。
⭐ 为什么选择 YoloDotNet?
YoloDotNet 专为需要以下特性的开发者设计:
- ✅ 纯 .NET — 无 Python 运行时,无脚本
- ✅ 真正的性能 — 支持 CPU、CUDA / TensorRT、OpenVINO、CoreML、DirectML
- ✅ 明确的配置 — 可预测的精度和内存使用
- ✅ 生产就绪 — 引擎缓存、长时间运行稳定性
- ✅ 多任务支持 — 目标检测、定向边界框检测、分割、姿态估计、分类
非常适合需要确定性行为和完全控制的 桌面应用、后端服务和实时视觉流水线。
🆕 v4.2 新特性
- 新增 感兴趣区域 (ROI) 支持,允许在图像或视频流的选定区域上运行推理
(适用于监控、区域监测以及性能优先的流水线) - 新增在分割对象上绘制边缘的选项,以提高视觉清晰度
- 新增用于 JSON 导出 的辅助方法:
ToJson()— 将推理结果转换为 JSONSaveJson()— 将推理结果直接保存为 JSON 文件
- 新增用于 YOLO 格式标注 的辅助方法:
ToYoloFormat()— 将结果转换为 YOLO 注释格式SaveYoloFormat()— 将结果保存为 YOLO 兼容的训练数据
- 新增
GetContourPoints()辅助方法,用于从分割对象中提取 有序轮廓点 - 更新了 YOLOv26 推理执行,使其与其他任务保持一致,从而提升 一致性及整体执行效率
📖 完整发布历史:CHANGELOG.md
[!TIP] 查看演示
演示项目中提供了展示 YoloDotNet 功能的实用、可运行示例:
👉 浏览演示文件夹
🚀 快速入门
💡 ONNX 模型导出要求
- 对于 YOLOv26 模型,请使用 opset=18 导出
- 对于 YOLOv5u–YOLOv12,请使用 opset=17 导出
[!IMPORTANT] 使用正确的 opset 可确保与 ONNX Runtime 的最佳兼容性和性能。
有关如何将模型导出为 ONNX 的更多信息,请参阅 https://docs.ultralytics.com/modes/export/
导出命令示例(Ultralytics CLI):
# 对于 YOLOv5u–YOLOv12(opset 17)
yolo export model=yolov8n.pt format=onnx opset=17
# 对于 YOLOv26(opset 18)
yolo export model=yolo26n.pt format=onnx opset=18
[!WARNING] 模型许可说明:
YoloDotNet 采用 MIT 许可证,但 大多数 Ultralytics YOLO 模型采用 AGPL-3.0 许可证,或在商业用途中需要商业许可证。
您有责任确保您对任何模型的使用符合其许可条款。
详情请参阅 Ultralytics 模型许可。
1️⃣ 安装核心包
dotnet add package YoloDotNet
2️⃣ 安装 恰好一个(!) 执行提供程序
# 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.DirectML
💡 注意: CUDA 执行提供程序包含可选的 TensorRT 加速功能。无需单独安装 TensorRT 包。
3️⃣ 运行目标检测
using SkiaSharp;
using YoloDotNet;
using YoloDotNet.Models;
using YoloDotNet.Extensions;
using YoloDotNet.ExecutionProvider.Cpu;
using var yolo = new Yolo(new YoloOptions
{
ExecutionProvider = new CpuExecutionProvider("model.onnx")
});
using var image = SKBitmap.Decode("image.jpg");
// 注意:IoU 参数仅用于基于 NMS 的模型。
// 对于 YOLOv10 和 YOLOv26,由于后处理由模型内部完成,因此会忽略 IoU。
var results = yolo.RunObjectDetection(image, confidence: 0.25, iou: 0.7);
image.Draw(results);
image.Save("result.jpg");
现在您已成功使用 纯 C# 运行 YOLO 推理。
💡 重要提示:精度取决于配置
YOLO 推理的精度并非自动获得。
图像缩放模式、采样方法以及置信度/IoU 阈值等预处理设置必须与模型的训练方式保持一致。
这些设置直接决定了精度与性能之间的权衡,应被视为模型本身的一部分。
📖 在调整模型或比较结果之前,请阅读:
👉 精度与配置指南
支持的任务
| 分类 | 目标检测 | OBB 检测 | 分割 | 姿态估计 |
|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
| pexels.com | pexels.com | pexels.com | pexels.com | pexels.com |
✅ 已验证的 YOLO 模型
以下 YOLO 模型已使用 YoloDotNet,并通过 Ultralytics 官方导出及默认头部进行了 测试和验证。
| 分类 | 目标检测 | 分割 | 姿态估计 | 旋转目标检测 |
|---|---|---|---|---|
| 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 |
📁 示例
演示文件夹中提供了动手示例:
👉 浏览演示项目
包括图像推理、视频流、GPU 加速、分割以及大图像工作流。
执行提供者
| 提供者 | Windows | Linux | macOS | 文档 |
|---|---|---|---|---|
| CPU | ✅ | ✅ | ✅ | CPU README |
| CUDA / TensorRT | ✅ | ✅ | ❌ | CUDA README |
| OpenVINO | ✅ | ✅ | ❌ | OpenVINO README |
| CoreML | ❌ | ❌ | ✅ | CoreML README |
| DirectML | ✅ | ❌ | ❌ | DirectML README |
ℹ️ 只能引用 一个 执行提供者包。
混用不同提供者会导致原生运行时冲突。
⚡ 性能特性
YoloDotNet 致力于稳定且低开销的推理,其运行时成本主要由执行提供者和模型决定。
📊 基准测试:/test/YoloDotNet.Benchmarks
- 预热后延迟稳定
- 从 CPU → GPU → TensorRT 的性能可预测扩展
- 内存分配行为可预测
- 适用于实时和长时间运行的服务
🚀 模块化执行提供者
- 核心包与具体提供者无关
- 执行提供者为独立的 NuGet 包
- 原生 ONNX Runtime 依赖被隔离
这样做的意义: 减少冲突、部署更可预测,且在生产环境中更加安全。
支持 YoloDotNet
⭐ 给仓库加星
💬 分享反馈
🤝 赞助开发
许可证
MIT 许可证
版权所有 © Niklas Swärd
特此授予任何人免费获取本软件及其相关文档文件(“软件”)副本的权利,以进行处理。在不受限制的情况下,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利;并允许向任何接收该软件的人提供服务,但须遵守以下条件:
上述版权声明和本许可声明应包含在所有副本或软件的重要部分中。
“软件”按“原样”提供,不提供任何形式的保证,无论是明示还是暗示,包括但不限于适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权所有者均不对因合同、侵权或其他原因引起的任何索赔、损害赔偿或其他责任负责,这些责任可能源于或与软件的使用有关。
模型许可与责任
YoloDotNet 采用 MIT 许可证,并为使用 Ultralytics YOLO 工具导出的 YOLO 模型提供 ONNX 推理引擎。
本项目 不 包含、分发、下载或捆绑任何预训练模型。
用户必须自行提供 ONNX 模型。
使用 Ultralytics 工具生成的 YOLO ONNX 模型通常根据 AGPL-3.0 或 Ultralytics 的单独商业许可证进行授权。
YoloDotNet 不会 强制、修改或转移与用户提供的模型相关的任何许可条款。
用户需自行负责 确保其对任何模型的使用符合适用的许可条款,包括与商业使用、分发或网络部署相关的要求。
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器




