【YoloDeployCsharp】基于.NET Framework的YOLO深度学习模型部署测试平台

YoloDeployCsharp|基于.NET Framework的YOLO深度学习模型部署测试平台

1. 项目介绍

  基于.NET Framework 4.8 开发的深度学习模型部署测试平台,提供了YOLO框架的主流系列模型,包括YOLOv8~v9,以及其系列下的Det、Seg、Pose、Obb、Cls等应用场景,同时支持图像与视频检测。模型部署引擎使用的是OpenVINO™、TensorRT、ONNX runtime以及OpenCV DNN,支持CPU、IGPU以及GPU多种设备推理。

  其中,OpenVINO™以及TensorRT的C#接口均为自行开发,项目链接为:

OpenVINO™ C# API :

https://github.com/guojin-yan/OpenVINO-CSharp-API.git

TensorRT C# API :

https://github.com/guojin-yan/TensorRT-CSharp-API.git

  演示视频:

  C#&YOLO系列深度学习模型部署平台页面主要包括四个区域,分别为:模型选择和加载区域、推理区域、输入图像展示区域以及输出结果图像展示区域。如下图所示:

  如下图所示,演示的是使用YOLOv5 Det模型的推理情况,

  同样的方式,我们可以实现多种模型在不同平台的上的推理,如下图所示:

下面是制作的一个演示视频:

C#模型部署平台:基于YOLOv8目标检测模型的视频检测

2. 支持模型

  项目在开发时,同时开发了YOLOv5~v9以及YOLO World等YOLO系列模型,模型部署工具使用的是OpenVINO 、TensorRT 、ONNX runtime、OpenCV DNN,但有一些模型部署工具对模型的算子存在不支持情况,因此,对该项目中所使用的所有模型进行了测试,如下表所示:

ModelOpenVINO CPUOpenVINO GPUTensorRT GPUONNX runtime CPUONNX runtime GPUOpenCV DNN
YOLOv5 Det
YOLOv5 Seg
YOLOv5 Cls
YOLOv6 Det
YOLOv7 Det
YOLOv8 Det
YOLOv8 Seg
YOLOv8 Pose
YOLOv8 Obb
YOLOv8 Cls
YOLOv9 Det
YOLOv9 Seg
YOLO World

3. 时间测试

  在开发的模型部署平台上进行时间测试,当前的测试环境为:

  • CPU:11th Intel Core i7-1165G7 2.8GHz
  • IGPU:Intel Iris Xe Graphics
  • GPU:NVIDIA GeForce RTX 2060

在同一环境下,对其中一些模型进行了测试,如下表所示:

ModelOpenVINO CPUOpenVINO IGPUTensorRT GPUONNX runtime CPUONNX runtime GPUOpenCV DNN
YOLOv5s Det53.78 ms28.84 ms22.95 ms95.68 ms29.22 ms178.53 ms
YOLOv5s Seg119.53 ms43.49 ms31.17 ms144.68 ms42.27 ms500.26 ms
YOLOv6s Det98.66 ms43.50 ms19.93 ms147.14 ms25.90 msd155.20 ms
YOLOv8s Det77.06 ms37.54 ms20.04 ms134.05 ms25.82 ms191.34 ms
YOLOv8s Seg105.55 ms48.45 ms25.91 ms200.01 ms37.24 ms532.16 ms

  通过测试结果可以看出:

  • 在GPU上:使用独立显卡加速的TensorRT在推理速度上表现是十分优秀的,但使用集成显卡加速的OpenVINO其推理速度也不容小觑,如果上到英特尔的独立显卡,其推理速度应该还会有很大程度上的提升,而ONNX runtime使用独立显卡加速,其推理性能上与TensorRT相比稍逊色;
  • 在CPU上,OpenVINO 的表现时十分突出的,在使用极少的CPU占用上,其推理速度已经有了很大的提升,而ONNX runtime以及OpenCV DNN占用CPU很大的情况下,其推理速度远不如OpenVINO。

4. 总结

  项目源码目前已经在GitHub上开源,项目链接为:

https://github.com/guojin-yan/YoloDeployCsharp.git

  各位开发者可以根据自己情况加逆行下载,并进行项目配置,其中一些内容的配置可以参考一下文章:

  最后如果各位开发者在使用中有任何问题,欢迎大家与我联系。

### 部署YOLO模型于Windows系统的指南 #### 选择合适的YOLO版本 对于希望在Windows环境下部署YOLO模型的应用开发者而言,有多种YOLO版本可供选择,包括但不限于YOLOv5, YOLOv7以及最新的YOLOv8。每种版本都有其特点,在性能、速度等方面存在差异[^2]。 #### 准备环境 为了顺利运行YOLO模型,需先安装Python解释器并设置好虚拟环境。接着通过pip工具安装必要的库文件,比如`opencv-python`, `numpy`等基础依赖项。如果计划利用GPU加速计算,则还需额外配置CUDA Toolkit及相关驱动程序[^3]。 #### 获取预训练权重与配置文件 可以从官方仓库或其他可信资源处下载所需的YOLO架构对应的`.cfg`配置文件和`.weights`预训练参数文件。这些文件定义了网络结构及初始化权值,是成功加载模型的关键组成部分之一[^1]。 #### 编写推理脚本 编写一段简单的Python代码用于执行预测操作: ```python import cv2 from ultralytics import YOLO model = YOLO('path/to/your/yolov8n.pt') # 加载模型 image = cv2.imread('test.jpg') results = model(image) for result in results: boxes = result.boxes.cpu().numpy() for box in boxes: r = box.xyxy[0].astype(int) cv2.rectangle(image, (r[0], r[1]), (r[2], r[3]), (0, 255, 0), 2) cv2.imshow('Result', image) cv2.waitKey(0) ``` 这段代码展示了如何读取图片并通过已训练好的YOLO模型获取检测框位置信息,并将其绘制到原始图像之上显示出来。 #### 使用.NET Framework集成YOLO 针对那些更倾向于采用C#语言进行开发的朋友来说,《YoloDeployCsharp》提供了一个很好的解决方案——这是一个专门面向.NET Framework设计的YOLO深度学习模型部署测试平台。它不仅支持常见的YOLO系列算法,而且能够方便快捷地完成从模型转换到最后上线发布的整个过程[^4]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

椒颜皮皮虾྅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值