YoloSharp.Core
6.1.0
dotnet add package YoloSharp.Core --version 6.1.0
NuGet\Install-Package YoloSharp.Core -Version 6.1.0
<PackageReference Include="YoloSharp.Core" Version="6.1.0" />
<PackageVersion Include="YoloSharp.Core" Version="6.1.0" />
<PackageReference Include="YoloSharp.Core" />
paket add YoloSharp.Core --version 6.1.0
#r "nuget: YoloSharp.Core, 6.1.0"
#:package YoloSharp.Core@6.1.0
#addin nuget:?package=YoloSharp.Core&version=6.1.0
#tool nuget:?package=YoloSharp.Core&version=6.1.0
YoloSharp
🚀 A high performance real-time object detection solution using YOLO11 ⚡️ powered by ONNX-Runtime
Features
- YOLO Tasks 🌟 Support for all YOLO vision tasks ( Detect | OBB | Pose | Segment | Classify)
- High Performance 🚀 Various techniques and use of .NET features to maximize performance
- Reduced Memory Usage 🧠 By reusing memory blocks and reducing the pressure on the GC
- Plotting Options ✏️ Draw the predictions on the target image to preview the model results
- YOLO Versions 🔧 Includes support for: YOLOv8 YOLOv10 YOLO11 YOLO12 YOLO26
Installation
The project provides the following NuGet packages:
| Package | Description | Dependencies |
|---|---|---|
| YoloSharp | CPU-based inference | Includes all runtime dependencies (all platforms) |
| YoloSharp.Gpu | GPU-based inference | Includes all runtime dependencies (all platforms) |
| YoloSharp.Core | Core library without runtime dependencies | None – suitable for lightweight production or for using alternative runtimes |
Usage
1. Export model to ONNX format:
For convert the pre-trained PyTorch model to ONNX format, run the following Python code:
from ultralytics import YOLO
# Load a model
model = YOLO('path/to/best.pt')
# Export the model to ONNX format
model.export(format='onnx')
2. Load the ONNX model with C#:
Add the YoloSharp (or YoloSharp.Gpu) package to your project:
dotnet add package YoloSharp
Use the following C# code to load the model and run basic prediction:
using Compunet.YoloSharp;
// Load the YOLO predictor
using var predictor = new YoloPredictor("path/to/model.onnx");
// Run model
var result = predictor.Detect("path/to/image.jpg");
// or
var result = await predictor.DetectAsync("path/to/image.jpg");
// Write result summary to terminal
Console.WriteLine(result);
Plotting
You can to plot the target image for preview the model results, this code demonstrates how to run a inference, plot the results on image and save to file:
using Compunet.YoloSharp;
using Compunet.YoloSharp.Plotting;
using SixLabors.ImageSharp;
// Load the YOLO predictor
using var predictor = new YoloPredictor("path/to/model.onnx");
// Load the target image
using var image = Image.Load("path/to/image");
// Run model
var result = await predictor.PoseAsync(image);
// Create plotted image from model results
using var plotted = await result.PlotImageAsync(image);
// Write the plotted image to file
plotted.Save("./pose_demo.jpg");
You can also predict and save to file in one operation:
using Compunet.YoloSharp;
using Compunet.YoloSharp.Plotting;
using SixLabors.ImageSharp;
// Load the YOLO predictor
using var predictor = new YoloPredictor("path/to/model.onnx");
// Run model, plot predictions and write to file
predictor.PredictAndSaveAsync("path/to/image");
Example Images:
| Detect | Pose |
|---|---|
| Segment | Obb |
Not Supported:
The following features are not currently supported, they may be added later
- Batch Processing: You have to predict them one by one
- Dynamic Size: The image resized according to
imgsz
License
AGPL-3.0 License
Important Note: This project depends on ImageSharp, you should check the license details here
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Clipper2 (>= 2.0.0)
- Microsoft.Extensions.DependencyInjection (>= 10.0.1)
- Microsoft.ML.OnnxRuntime.Managed (>= 1.23.2)
- SixLabors.ImageSharp (>= 3.1.12)
- SixLabors.ImageSharp.Drawing (>= 2.1.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.