这个项目能做什么
YoloDotNet 是一个模块化的 .NET 8 计算机视觉库,用于运行导出为 ONNX 格式的 YOLO 模型。它使用 C# 实现,并依赖 ONNX Runtime 和 SkiaSharp,无需 Python 运行时或 OpenCV。该库面向 Windows、Linux 和 macOS 上的桌面应用程序、后端服务以及实时视觉管道。
支持的推理任务包括图像分类、标准目标检测、定向边界框检测、分割和姿态估计。文档列出了对 YOLOv5u 至 YOLOv26、YOLO-World、YOLO-E 和 RT-DETR 模型系列的支持,并提供了一个经过验证的模型表,涵盖特定的分类、检测、分割、姿态和 OBB 变体。仓库中的演示项目展示了图像和视频流的使用方法。
核心 YoloDotNet 包与提供程序无关,用户只需安装一个执行提供程序包。可用的提供程序包括 CPU、CUDA(可选 TensorRT 支持)、OpenVINO、CoreML 和 DirectML。平台可用性因提供程序而异:CPU 支持 Windows、Linux 和 macOS;CUDA 和 OpenVINO 支持 Windows 和 Linux;CoreML 支持 macOS;DirectML 支持 Windows。README 指出,混合使用提供程序可能导致原生运行时冲突。
API 设计旨在对模型加载、预处理、阈值、内存和执行行为提供显式控制。典型的目标检测流程包括:使用 YoloOptions 和执行提供程序创建 Yolo 实例,使用 SkiaSharp 解码图像,调用 RunObjectDetection 并设置置信度和 IoU 设置,绘制结果,并保存输出。IoU 参数适用于基于 NMS 的模型,对于 YOLOv10 和 YOLOv26 等内部处理相关后处理的模型,该参数将被忽略。
版本 4.2 新增了针对选定图像或视频区域的感兴趣区域推理、分割对象上的可选边缘绘制、有序轮廓点提取、ToJson 和 SaveJson 结果辅助方法,以及用于生成 YOLO 格式注释的 ToYoloFormat 和 SaveYoloFormat 辅助方法。其他文档化的功能包括引擎缓存以及可配置的调整大小和采样设置。
用户需自行提供 ONNX 模型;该项目不会下载、包含或捆绑预训练权重。README 建议 YOLOv5u 至 YOLOv12 使用 Ultralytics 导出 opset 17,YOLOv26 使用 opset 18。YoloDotNet 本身采用 MIT 许可证,而使用 Ultralytics 工具生成的模型可能采用 AGPL-3.0 许可证或需要商业许可证,因此用户有责任确认模型许可证的合规性。
评论
0 评分人数达到10人后显示
登录后参与讨论。