经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » ASP.net » 查看文章
【YoloDeployCsharp】基于.NET Framework的YOLO深度学习模型部署测试平台
来源:cnblogs  作者:椒颜皮皮虾  时间:2024/5/6 16:17:22  对本文有异议

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 :

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

TensorRT C# API :

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

? 演示视频:

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

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

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

2. 支持模型

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

Model OpenVINO CPU OpenVINO GPU TensorRT GPU ONNX runtime CPU ONNX runtime GPU OpenCV 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

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

Model OpenVINO CPU OpenVINO IGPU TensorRT GPU ONNX runtime CPU ONNX runtime GPU OpenCV DNN
YOLOv5s Det 53.78 ms 28.84 ms 22.95 ms 95.68 ms 29.22 ms 178.53 ms
YOLOv5s Seg 119.53 ms 43.49 ms 31.17 ms 144.68 ms 42.27 ms 500.26 ms
YOLOv6s Det 98.66 ms 43.50 ms 19.93 ms 147.14 ms 25.90 msd 155.20 ms
YOLOv8s Det 77.06 ms 37.54 ms 20.04 ms 134.05 ms 25.82 ms 191.34 ms
YOLOv8s Seg 105.55 ms 48.45 ms 25.91 ms 200.01 ms 37.24 ms 532.16 ms

? 通过测试结果可以看出:

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

4. 总结

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

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

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

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

原文链接:https://www.cnblogs.com/guojin-blogs/p/18172502

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号