IntptrMax.YoloSharp
1.1.13
dotnet add package IntptrMax.YoloSharp --version 1.1.13
NuGet\Install-Package IntptrMax.YoloSharp -Version 1.1.13
<PackageReference Include="IntptrMax.YoloSharp" Version="1.1.13" />
<PackageVersion Include="IntptrMax.YoloSharp" Version="1.1.13" />
<PackageReference Include="IntptrMax.YoloSharp" />
paket add IntptrMax.YoloSharp --version 1.1.13
#r "nuget: IntptrMax.YoloSharp, 1.1.13"
#:package IntptrMax.YoloSharp@1.1.13
#addin nuget:?package=IntptrMax.YoloSharp&version=1.1.13
#tool nuget:?package=IntptrMax.YoloSharp&version=1.1.13
YoloSharp
Train Yolo model in C# with TorchSharp. </br> With the help of this project you won't have to transform .pt model to onnx, and can train your own model in C#.
Feature
- Written in C# only.
- Train and predict your own model.
- Support Yolov5, Yolov5u, Yolov8, Yolov11 and Yolov12 now.
- Support Predict, Segment and Obb now.
- Support n/s/m/l/x size.
- Support LetterBox and Mosaic4 method for preprocessing images.
- Support NMS with GPU.
- Support Load PreTrained models from ultralytics/yolov5/yolov8/yolo11 and yolov12(converted).
- Support .Net6 or higher.
Models
You can download yolo pre-trained models here.
<details> <summary>Prediction Checkpoints</summary>
model | n | s | m | l | x |
---|---|---|---|---|---|
yolov5 | yolov5n | yolov5s | yolov5m | yolov5l | yolov5x |
yolov5 | yolov5nu | yolov5su | yolov5mu | yolov5lu | yolov5xu |
yolov8 | yolov8n | yolov8s | yolov8m | yolov8l | yolov8x |
yolov11 | yolov11n | yolov11s | yolov11m | yolov11l | yolov11x |
</details>
<details> <summary>Segmention Checkpoints</summary>
model | n | s | m | l | x |
---|---|---|---|---|---|
yolov8 | yolov8n | yolov8s | yolov8m | yolov8l | yolov8x |
yolov11 | yolov11n | yolov11s | yolov11m | yolov11l | yolov11x |
</details>
How to use
You can download the code or add it from nuget.
dotnet add package IntptrMax.YoloSharp
Please add one of libtorch-cpu, libtorch-cuda-12.1, libtorch-cuda-12.1-win-x64 or libtorch-cuda-12.1-linux-x64 version 2.5.1.0 and OpenCvSharp4.runtime to execute.
You can use it with the code below:
Yolo Task
// Create Yolo Task
YoloTask yoloTask = new YoloTask(taskType, numberClass, yoloType: yoloType, deviceType: deviceType, yoloSize: yoloSize, dtype: dtype);
// Train model
yoloTask.LoadModel(preTrainedModelPath, skipNcNotEqualLayers: true);
yoloTask.Train(rootPath, trainDataPath, valDataPath, outputPath: outputPath, imageSize: imageSize, batchSize: batchSize, epochs: epochs, imageProcessType: imageProcessType);
// Predict image
yoloTask.LoadModel(Path.Combine(outputPath, "best.bin"));
List<YoloResult> predictResult = yoloTask.ImagePredict(predictImage, predictThreshold, iouThreshold);
</br>
Use yolov8n pre-trained model to detect.
Use yolov8n-seg pre-trained model to detect.
Use yolov8n-obb pre-trained model to detect.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
-
net6.0
- Newtonsoft.Json (>= 13.0.4)
- OpenCvSharp4 (>= 4.11.0.20250507)
- TorchSharp (>= 0.105.1)
- TorchVision (>= 0.105.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.