YoloSharp
🚀 A high performance real-time object detection solution using YOLO11 ⚡️ powered by ONNX-Runtime
Install / Use
/learn @dme-compunet/YoloSharpREADME
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
Related Skills
node-connect
330.7kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
81.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
330.7kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
81.4kCommit, push, and open a PR
