物体检测框架YoloDotNet初体验

  • 物体检测框架YoloDotNet初体验已关闭评论
  • 7 次浏览
  • A+
所属分类:.NET技术
摘要

一、 什么是Yolo You Only Look Once是基于深度学习的一种实时目标检测算法。有速度快、实时性好的特点。Yolo依赖Python和相关深度学习框架。

二、 什么是YoloDotNet

一、 什么是Yolo

You Only Look Once是基于深度学习的一种实时目标检测算法。有速度快、实时性好的特点。Yolo依赖Python和相关深度学习框架。

二、 什么是YoloDotNet

YoloDotNet是Yolo在.NET平台的实现,基于C# .NET8,开发者可以使用熟悉的C#语开发部署。YoloDotNet能够在图像和视频中进行实时物体检测。支持分类、物体检测、OBB检测、分割检测出的物体、姿态估计等任务。另外还提供了自定义关键点配置、开放词汇检测、零样本物体检测等功能。

三、运行环境准备

1. 安装 CUDA v12.x,下载地址:https://developer.nvidia.com/cuda-downloads

2. 安装 cuDNN v9.x,下载地址:https://developer.nvidia.com/cudnn-downloads

3. 配置环境变量,将cuDNN库目录添加到Path环境变量中,cuDNN库目录默认为C:Program FilesNVIDIACUDNNv9.5bin12.6。

4. 下载yolo模型,https://docs.ultralytics.com/models/yolov8/#supported-tasks-and-modes

5. 模型转换为onxx格式。文末可获取转换完成的模型。

  • 安装python环境。

    • windows上直接安装参考:python环境搭建

    • conda方式安装:conda install Python=3.10

  • 安装pytorch

    • conda方式安装:conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch-nightly -c nvidia

  • 安装其它依赖包

    • pip install ultralytics

    • pip install onnx

    • pip install onnxruntime

    • pip install onnxslim

  • 执行转换

    • 切换到模型所在目录,创建convert.py程序文件:      

from ultralytics import YOLO # 加载模型 model = YOLO("yolo11n.pt") # 导出模型 model.export(format="onnx")

    • 执行转换:python convert.py

6. 安装.net sdk

  • 下载地址:https://dotnet.microsoft.com/zh-cn/download/dotnet/8.0。

  • 验证安装:dotnet --version

四、创建项目

  • 新建控制台应用程序项目:dotnet new console -n demo

  • 添加YoloDotNet依赖

    • 切换到demo目录执行:dotnet add package YoloDotNet

  • Program.cs核心代码

// 初始化yolo对象 string modelPath = "e:/yolov8l.onnx"; using var yolo = new Yolo(new YoloOptions {     OnnxModel = modelPath,     ModelType = ModelType.ObjectDetection,     Cuda = false,     GpuId = 0,     PrimeGpu = false, });  // 加载图片数据 using var image = SKImage.FromEncodedData("e:/pic/1.jpeg"); // 执行检测任务 var results = yolo.RunObjectDetection(image, confidence: 0.25, iou: 0.7); // 在图片上绘制检测结果 using var resultImage = image.Draw(results); // 检测结果保存为新图片 resultImage.Save("e:/pic/1_result.jpeg", SKEncodedImageFormat.Jpeg, 80);

 

  • 运行程序:dotnet run

  • 检测效果

物体检测框架YoloDotNet初体验

物体检测框架YoloDotNet初体验

物体检测框架YoloDotNet初体验

物体检测框架YoloDotNet初体验

 

onxx模型下载:关注公众号回复"yolo"

物体检测框架YoloDotNet初体验