视觉/图像重磅干货,第一时间送达!
导 读
本文主要介绍在C#中使用YoloV8实现目标检测,并给详细步骤和代码。
详细步骤
【1】环境和依赖项。
需先安装VS2022最新版,.NetFramework8.0,然后新建项目,nuget安装
YoloSharp,YoloSharp介绍:
https://github.com/dme-compunet/YoloSharp
最新版6.0.1,本文只演示CPU版本。
【2】YoloV8模型转换。
将下载的(或自己训练好的)YoloV8模型转为onnx格式,代码如下:
from ultralytics import YOLO
# Load a model
model = YOLO('path/to/best.pt')
# Export the model to ONNX format
model.export(format='onnx')
【3】编写C#推理代码。
将转换后的onnx模型和测试图片准备好,使用下面代码加载即可预测:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//using System.Drawing;
using Compunet.YoloSharp;
using Compunet.YoloSharp.Plotting;
using SixLabors.ImageSharp;
using Compunet.YoloSharp.Data;
namespace Yolo_CSharp
{
internal class Program
{
static void Main(string[] args)
{
//Load the YOLO predictor
using var predictor = new YoloPredictor("yolov8n.onnx");
predictor.Configuration.SuppressParallelInference = true;
predictor.Configuration.KeepAspectRatio = true;
predictor.Configuration.Confidence = 0.3F;
var results = predictor.Detect("2.jpg");
using var image = SixLabors.ImageSharp.Image.Load("2.jpg");
using var ploted = results.PlotImage(image);
ploted.Save("cc.jpg");
Console.WriteLine(results);
}
}
}
【3】推理结果对比
使用python版本.pt模型推理和转换后的onnx模型在C#下推理结果对比如下:
python-yolov8n.pt
C#-yolov8n.onnx
—THE END—
觉得有用,麻烦给个赞和在看