news 2026/5/5 12:20:19

.NET 10 也能跑 YOLO?用 YoloSharp 轻松实现目标检测

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
.NET 10 也能跑 YOLO?用 YoloSharp 轻松实现目标检测

前言

工业视觉、智能安防、零售分析等场景中,目标检测早已不是"高大上"的专属技术,而是逐渐成为日常开发的一部分。然而,对于 .NET 开发来说,想要在 C# 项目中快速接入 YOLO 模型却并不容易——要么依赖 Python 服务做胶水调用,要么陷入复杂的 C++ 封装或跨平台部署难题。

有没有一种方式,能让我们像调用普通类库一样,在 WPF、WinForms 或 ASP.NET 应用中直接运行 YOLO?

本文推荐一个项目它不追求大而全,而是聚焦于"开箱即用、简洁高效",让 C# 开发也能轻松驾驭前沿的计算机视觉。

项目介绍

YoloSharp 是一个基于 ONNX Runtime 的轻量级目标检测库,专为 .NET 平台设计。

它将主流 YOLO 系列模型(如 YOLO26、YOLO12 等)封装成直观的 C# API,开发者只需加载 ONNX 模型文件和一张 Bitmap 图像,即可获得结构化的检测结果。

项目目前专注于目标检测任务,输入仅支持 System.Drawing.Bitmap,源码结构清晰、依赖明确,便于集成到各类 Windows 桌面或服务端应用中。

项目功能

1、支持 CPU 和 GPU 推理,通过构造函数传入 GPU ID 即可启用 CUDA 加速;

2、兼容多种 YOLO 模型导出的 ONNX 格式,包括 YOLO26、YOLO12 等主流变体;
3、提供完整的图像预处理流程,自动完成 RGB 提取、归一化、张量转换;

4、内置非极大值抑制(NMS)算法,有效过滤重叠框;

5、输出标准化的 BoundingBox 结构,包含类别索引、置信度、坐标与尺寸;

6、支持自定义置信度阈值(默认 0.3)和 IoU 阈值(默认 0.45),灵活适配不同场景。

项目特点

1、API 极简:核心检测仅需两步——初始化 Yolo 对象,调用 Detect 方法;

2、零外部依赖:除 ONNX Runtime 和 System.Drawing 外无其他第三方库;

3、源码透明:所有图像处理、后处理逻辑均开放,便于调试与定制;

4、性能优先:预处理使用原生 byte 数组操作,避免频繁内存分配;

5、环境灵活:可根据本地是否安装 CUDA 自由切换 CPU/GPU 模式。

项目技术

YoloSharp 基于 Microsoft.ML.OnnxRuntime 构建推理引擎,利用其跨平台、高性能的特性执行模型前向计算。

图像处理模块通过 LockBits 直接读取 Bitmap 的 RGB24 数据,避免 GDI+ 的性能瓶颈。

后处理部分实现了标准的 NMS 流程,并通过 Helper 类提供 IoU 计算、张量转换等工具方法。

整个项目采用分层设计:YoloSharp.Core 定义接口与数据模型,YoloSharp.Bitmap 实现图像适配,YoloSharp 主项目整合推理逻辑,结构清晰,易于扩展。

项目示例

使用示例如下:

using YoloSharp; using System.Drawing; var yolo = new Yolo("model.onnx"); // CPU 模式 // var yolo = new Yolo("model.onnx", 0); // GPU 模式,使用 GPU 0 usingvar bitmap = new Bitmap("image.jpg"); var input = new Input(); var tensor = input.Detection(yolo, bitmap); var results = yolo.Detect(tensor, bitmap.Width, bitmap.Height); if (results != null) { foreach (var box in results) { Console.WriteLine($"类别: {yolo.Names[box.Index]}, 置信度: {box.Confidence:F2}, 位置: ({box.X}, {box.Y}, {box.Width}, {box.Height})"); } }

注意:由于 ML 框架对 GPU 环境有特定要求(如 CUDA 版本),建议根据本地环境调整 ONNX Runtime 的运行时包(如 Microsoft.ML.OnnxRuntime.Gpu)。

项目效果

以 YOLO26 模型为例,在 RTX 3060 GPU 上处理 640×640 图像,端到端耗时约 35ms;在 i7-12700K CPU 上约为 120ms。检测结果准确,边界框位置与官方 Python 实现基本一致。

更重要的是,集成过程极其顺畅——只需将模型文件放入项目目录,几行代码即可完成从图像加载到结果输出的全流程,大幅降低 .NET 开发使用深度学习模型的门槛。

项目源码

项目采用标准 .NET 解决方案结构:

yolo-sharp/ ├── src/ │ ├── YoloSharp/ # 核心检测类 │ ├── YoloSharp.Bitmap/ # Bitmap 图像处理 │ └── YoloSharp.Core/ # 核心接口和模型 │ └── Model/ # BoundingBox 等数据类 ├── test/ # 控制台测试项目 └── YoloSharp.sln # Visual Studio 解决方案

GitHub:https://github.com/Eviav/YoloSharp

总结

项目是一个精准解决"C# 如何跑 YOLO"的实用工具。它没有花哨的功能,却把核心体验做到位:简单、可控、高效。

对于需要在 .NET 生态中嵌入目标检测能力的开发来说,无论是做工业质检、智能监控,还是学习,YoloSharp 都提供了一条低摩擦的路径。

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

推翻150年数学直觉:数学家烧坏几台笔记本,解决几何拓扑难题

来源:机器之心编译这是一次数学理论与计算机算力结合的胜利。设想一下,如果我们的天空总是被一层厚厚的不透明云层所遮蔽,既看不见星星,也无法从上方俯瞰我们的星球,我们还能发现地球是圆的吗?答案是肯定的…

作者头像 李华
网站建设 2026/4/18 12:32:55

踩坑记录:用SenseVoiceSmall做语音分析那些事

踩坑记录:用SenseVoiceSmall做语音分析那些事 1. 引言:为什么选择SenseVoiceSmall? 最近在做一个需要多语言支持的语音情感分析项目,目标是不仅能识别用户说了什么,还要知道“怎么说的”——语气是开心还是愤怒&…

作者头像 李华
网站建设 2026/5/1 13:36:53

Maven依赖管理与生命周期

1. 依赖管理:配置、引入与删除 1.1 添加依赖的三种方式 方式一:手动编辑pom.xml(推荐) 方式二:复制坐标 从Maven Repository复制依赖坐标,粘贴到pom.xml 1.2 删除依赖的两种方式 方式一:手动…

作者头像 李华
网站建设 2026/5/2 14:25:30

康复护理智能穿戴设备研发:AI 人工智能的技术支撑

康复护理智能穿戴设备研发:AI 人工智能的技术支撑关键词:康复护理、智能穿戴设备、AI算法、传感器数据、医疗健康科技摘要:本文从老龄化社会对康复护理的迫切需求出发,深入解析AI如何为康复护理智能穿戴设备提供技术支撑。通过拆解…

作者头像 李华
网站建设 2026/4/26 3:45:55

导师严选2026自考AI论文平台TOP8:8款测评哪款最实用

导师严选2026自考AI论文平台TOP8:8款测评哪款最实用 2026自考AI论文平台测评:如何选出真正实用的写作助手 随着人工智能技术在学术领域的广泛应用,越来越多的自考生开始依赖AI写作工具来提升论文写作效率。然而,面对市场上五花八门…

作者头像 李华
网站建设 2026/4/29 9:17:13

springboot_ssm844农产品商城 农场供销一体系统SSM

目录 具体实现截图系统概述核心功能技术架构创新点应用价值 系统所用技术介绍写作提纲源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 具体实现截图 系统概述 SpringBoot_SSM844农产品商城是一个基于SpringBootSSM(Spring…

作者头像 李华