About this project
YoloDotNet is a modular .NET 8 computer-vision library for running YOLO models exported to ONNX. It is implemented in C# and uses ONNX Runtime and SkiaSharp, without requiring a Python runtime or OpenCV. The library targets desktop applications, backend services, and real-time vision pipelines on Windows, Linux, and macOS.
Supported inference tasks include image classification, standard object detection, oriented bounding-box detection, segmentation, and pose estimation. The documentation lists support for YOLOv5u through YOLOv26, YOLO-World, YOLO-E, and RT-DETR model families, with a verified-model table covering specific classification, detection, segmentation, pose, and OBB variants. Image and video-stream usage are demonstrated in the repository's demo projects.
The core YoloDotNet package is provider-agnostic, and users install exactly one execution-provider package. Available providers are CPU, CUDA with optional TensorRT support, OpenVINO, CoreML, and DirectML. Platform availability varies: CPU works across Windows, Linux, and macOS; CUDA and OpenVINO support Windows and Linux; CoreML supports macOS; and DirectML supports Windows. The README notes that mixing providers can cause native runtime conflicts.
The API is designed for explicit control over model loading, preprocessing, thresholds, memory, and execution behavior. A typical object-detection flow creates a Yolo instance with YoloOptions and an execution provider, decodes an image with SkiaSharp, calls RunObjectDetection with confidence and IoU settings, draws the results, and saves the output. The IoU parameter applies to NMS-based models and is ignored for models such as YOLOv10 and YOLOv26 that handle the relevant post-processing internally.
Version 4.2 adds region-of-interest inference for selected image or video areas, optional edge drawing on segmented objects, ordered contour-point extraction, ToJson and SaveJson result helpers, and ToYoloFormat and SaveYoloFormat helpers for producing YOLO-style annotations. Other documented features include engine caching and configurable resize and sampling settings.
Users supply their own ONNX models; the project does not download, include, or bundle pretrained weights. The README recommends Ultralytics export opset 17 for YOLOv5u through YOLOv12 and opset 18 for YOLOv26. YoloDotNet itself is MIT licensed, while models produced with Ultralytics tooling may be AGPL-3.0 or require a commercial license, so users are responsible for confirming model-license compliance.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.