实战 | C#中使用YoloV8实现目标检测 (步骤 + 代码)

2024-11-21 08:45   重庆  
点击下方卡片,关注“机器视觉与AI深度学习

视觉/图像重磅干货,第一时间送达!

导  读

    本文主要介绍在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 modelmodel = YOLO('path/to/best.pt')
# Export the model to ONNX formatmodel.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—

觉得有用,麻烦给个赞和在看 

机器视觉与AI深度学习
专注于机器视觉、AI、深度学习等技术最新资讯、实战内容及应用案例的分享,交流!
 最新文章