馨晴 發表於 2025-10-7 17:51:00

基于DeploySharp 的深度学习模型部署测试平台:支持YOLO全系列模型

<h2 id="1-程序获取和下载">1. 程序获取和下载</h2>
<p>    基于DeploySharp 开发的深度学习模型部署测试平台,提供了YOLO框架的主流系列模型,包括YOLOv5~v13,以及其系列下的Detection、Segmentation、Oriented Bounding Box、Human Pose Estimation等应用场景。模型部署引擎支持OpenVINO™、ONNX runtime,支持CPU、IGPU以及GPU多种设备推理。项目链接为:</p>
<pre><code>https://github.com/guojin-yan/DeploySharp/tree/DeploySharpV1.0/applications
</code></pre>
<p>    如果你想快速使用该平台,可以加入QQ技术交流群通过群文件下载,或者通过GitHub在DeploySharp 项目中下载。</p>
<pre><code> git clone https://github.com/guojin-yan/DeploySharp.git
cd DeploySharp/applications
</code></pre>
<p>    打开指定目录后,直接打开<code>DeploySharp-Applications.sln</code>解决方案即可。</p>
<p><img src="https://img2024.cnblogs.com/blog/2933426/202510/2933426-20251007174954408-31182387.png"></p>
<p>    打开解决方案后,资源管理器中有两个项目,一个是.NET 6.0框架,一个是.NET Framework 4.8框架,用户可以根据自己需求进行运行。</p>
<p><img src="https://img2024.cnblogs.com/blog/2933426/202510/2933426-20251007174954390-1891783917.png"></p>
<p>    程序运行后页面如下图所示:</p>
<p><img src="https://img2024.cnblogs.com/blog/2933426/202510/2933426-20251007174954402-288049657.png"></p>
<h2 id="2-平台介绍">2. 平台介绍</h2>
<h3 id="21-支持的模型选项">2.1 支持的模型选项</h3>
<p>基于DeploySharp 开发的深度学习模型部署测试平台所支持的模型列表与DeploySharp 库一致,后续会跟着DeploySharp 迭代进行同步更新,具体支持的模型:</p>
<p><img src="https://img2024.cnblogs.com/blog/2933426/202510/2933426-20251007174954420-1126100483.png"></p>
<blockquote>
<p>开发者在使用时,可以根据自己需求进行选择,但在使用时,模型路径“<code>Model Path</code>”选择的模型类型,要和“<code>Model Type</code>保持一致,否者程序运行可能出差或者结果出现错误。</p>
</blockquote>
<h3 id="22-支持的推理引擎工具">2.2 支持的推理引擎工具</h3>
<p>基于DeploySharp 开发的深度学习模型部署测试平台所支持多种推理引擎,其中已经开发完成并已经支持的有OpenVINO和ONNX Runtime,其中TensorRT正在开发中,不日后会完成支持。</p>
<p><img src="https://img2024.cnblogs.com/blog/2933426/202510/2933426-20251007174954435-1804327883.png"></p>
<p>其中当推理设备选择ONNX Runtime时,还可以选择ONNX Runtime运行的推理引擎,支持的内容如下图所示:</p>
<p><img src="https://img2024.cnblogs.com/blog/2933426/202510/2933426-20251007174954407-1818401885.png"></p>
<p>​    ONNX Runtime支持的更多加速方式,需要用户自己进行代码构建,其构建流程与方式,参考官方教程即可,链接为:</p>
<pre><code>https://runtime.onnx.org.cn/docs/execution-providers/
</code></pre>
<h3 id="23-支持的推理设备">2.3 支持的推理设备</h3>
<p>同时用户还可以选择不同的推理设备,包括AUTO、CPU、GPU0、GPU1、NPU,其中GPU0、GPU1表示的含义要在使用的推理引擎工具中确定。</p>
<p><img src="https://img2024.cnblogs.com/blog/2933426/202510/2933426-20251007174954382-2143354374.png"></p>
<h2 id="3-推理引擎和设备匹配使用">3. 推理引擎和设备匹配使用</h2>
<table>
<thead>
<tr>
<th style="text-align: center">推理引擎</th>
<th style="text-align: center">推理设备</th>
<th style="text-align: center">ONNX加速</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center">OpenVINO</td>
<td style="text-align: center">AUTO,CPU,GPU0(Intel 集显),GPU1(Intel 独显),NPU</td>
<td style="text-align: center">Default</td>
</tr>
<tr>
<td style="text-align: center">ONNX Runtime</td>
<td style="text-align: center">CPU</td>
<td style="text-align: center">Default</td>
</tr>
<tr>
<td style="text-align: center">ONNX Runtime</td>
<td style="text-align: center">AUTO,CPU,GPU0(Intel 集显),GPU1(Intel 独显),NPU</td>
<td style="text-align: center">OpenVINO</td>
</tr>
<tr>
<td style="text-align: center">ONNX Runtime</td>
<td style="text-align: center">GPU0(英伟达独显),GPU1(英伟达独显)</td>
<td style="text-align: center">Cuda</td>
</tr>
<tr>
<td style="text-align: center">ONNX Runtime</td>
<td style="text-align: center">GPU0,GPU1</td>
<td style="text-align: center">DML</td>
</tr>
</tbody>
</table>
<h2 id="4-程序运行示例">4. 程序运行示例</h2>
<p>在对应的项目中,图像处理库已经安装,不同项目就是使用的不同图像处理库,下面演示使用不同的模型推理引擎使用流程。</p>
<h3 id="41-openvino推理">4.1 OpenVINO推理</h3>
<p>所下载的项目中已经配置好了OpenVINO环境,选择模型和图片后,直接运行即可。推理结果如下图所示:</p>
<p><img src="https://img2024.cnblogs.com/blog/2933426/202510/2933426-20251007174954428-597673230.png"></p>
<blockquote>
<p>如果使用的是.NET Framework 4.8框架,在程序运行前,请卸载并重新安装一下<code>OpenVINO.runtime.win</code>NuGet Package,重新生成项目后,进入到项目bin/Debug或者bin/Release目录,找到该目录下的文件夹dll/win-x64,在该目录下可以看到openvino_c.dll文件,然后将该目录下所有文件,复制到bin/Debug或者bin/Release目录下,重新再生成一下项目。如果使用的.NET 6.0框架,</p>
</blockquote>
<h3 id="42-onnx-runtime推理">4.2 ONNX Runtime推理</h3>
<p>如果只是用ONNX Runtime推理,不需要安装其他的依赖既可以使用,默认只能使用CPU推理,如下图所示:</p>
<p><img src="https://img2024.cnblogs.com/blog/2933426/202510/2933426-20251007174954436-868032314.png"></p>
<h3 id="43-onnx-runtime推理--openvino加速">4.3 ONNX Runtime推理 + OpenVINO加速</h3>
<p>如果是用ONNX Runtime推理并配合OpenVINO加速,则需要安装额外的依赖库:</p>
<pre><code>Intel.ML.OnnxRuntime.OpenVino
</code></pre>
<p>安装完成后,运行程序即可,其中原生OpenVINO支持的推理设备AUTO、CPU、GPU0(Intel 集显)、GPU1(Intel 独显)、NPU,在此处均可以使用,如下图所示:</p>
<p><img src="https://img2024.cnblogs.com/blog/2933426/202510/2933426-20251007174954464-1381105728.png"></p>
<blockquote>
<p>如果使用的是.NET Framework 4.8框架,安装完<code>Intel.ML.OnnxRuntime.OpenVino</code>后,如果依旧报错:”无法在 DLL“onnxruntime”中找到名为“OrtSessionOptionsAppendExecutionProvider_OpenVINO”的入口点。”,可以找到<code>Intel.ML.OnnxRuntime.OpenVino</code>包目录,然后将该目录下的所有dll文件,复制到项目的bin/Debug或者bin/Release目录下即可。</p>
</blockquote>
<h3 id="44-onnx-runtime推理--dml加速">4.4 ONNX Runtime推理 + DML加速</h3>
<p>如果是用ONNX Runtime推理并配合DML加速,则需要安装额外的依赖库:</p>
<pre><code>Microsoft.ML.OnnxRuntime.DirectML
</code></pre>
<p>安装完成后,运行程序即可,此处可以使用GPU、GPU1,如下图所示:</p>
<p><img src="https://img2024.cnblogs.com/blog/2933426/202510/2933426-20251007174954451-1637144204.png"></p>
<h2 id="5模型运行时间测试">5.模型运行时间测试</h2>
<p>​    在开发的模型部署平台上进行时间测试,当前的测试环境为:</p>
<ul>
<li>CPU: Intel(R) Core(TM) Ultra 9 288V</li>
<li>IGPU: Intel(R) Arc(TM) 140V GPU (16GB)</li>
<li>NPU: Intel(R) AI Boost</li>
</ul>
<p>在同一环境下,对其中一些模型进行了测试,如下表所示:</p>
<table>
<thead>
<tr>
<th style="text-align: center">Model Name</th>
<th style="text-align: center">OpenVINO CPU</th>
<th style="text-align: center">OpenVINO IGPU</th>
<th style="text-align: center">OpenVINO NPU</th>
<th style="text-align: center">ONNX Runtime CPU</th>
<th style="text-align: center">ONNX Runtime OpenVINO CPU</th>
<th style="text-align: center">ONNX RuntimeDirectML IGPU</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center"><strong>YOLOv5s-det</strong></td>
<td style="text-align: center">16.84 FPS</td>
<td style="text-align: center">60.23 FPS</td>
<td style="text-align: center">48.36 FPS</td>
<td style="text-align: center">21.06 FPS</td>
<td style="text-align: center">16.80 FPS</td>
<td style="text-align: center">40.11 FPS</td>
</tr>
<tr>
<td style="text-align: center"><strong>YOLOv5-seg</strong></td>
<td style="text-align: center">8.91 FPS</td>
<td style="text-align: center">21.24 FPS</td>
<td style="text-align: center">20.11 FPS</td>
<td style="text-align: center">10.86 FPS</td>
<td style="text-align: center">8.56 FPS</td>
<td style="text-align: center">16.54 FPS</td>
</tr>
<tr>
<td style="text-align: center"><strong>YOLOv8s-det</strong></td>
<td style="text-align: center">12.02 FPS</td>
<td style="text-align: center">67.74 FPS</td>
<td style="text-align: center">51.84 FPS</td>
<td style="text-align: center">14.84 FPS</td>
<td style="text-align: center">11.52 FPS</td>
<td style="text-align: center">36.38 FPS</td>
</tr>
<tr>
<td style="text-align: center"><strong>YOLOv8s-seg</strong></td>
<td style="text-align: center">6.30 FPS</td>
<td style="text-align: center">15.96 FPS</td>
<td style="text-align: center">14.09 FPS</td>
<td style="text-align: center">7.17 FPS</td>
<td style="text-align: center">6.24 FPS</td>
<td style="text-align: center">12.71 FPS</td>
</tr>
<tr>
<td style="text-align: center"><strong>YOLOv8s-obb</strong></td>
<td style="text-align: center">4.61 FPS</td>
<td style="text-align: center">35.13 FPS</td>
<td style="text-align: center">20.02 FPS</td>
<td style="text-align: center">5.62 FPS</td>
<td style="text-align: center">4.56 FPS</td>
<td style="text-align: center">15.80 FPS</td>
</tr>
<tr>
<td style="text-align: center"><strong>YOLOv11s-det</strong></td>
<td style="text-align: center">13.48 FPS</td>
<td style="text-align: center">62.40 FPS</td>
<td style="text-align: center">53.51 FPS</td>
<td style="text-align: center">15.71 FPS</td>
<td style="text-align: center">13.41 FPS</td>
<td style="text-align: center">38.83 FPS</td>
</tr>
<tr>
<td style="text-align: center"><strong>YOLOv11s-seg</strong></td>
<td style="text-align: center">6.64 FPS</td>
<td style="text-align: center">16.18 FPS</td>
<td style="text-align: center">14.46 FPS</td>
<td style="text-align: center">7.55 FPS</td>
<td style="text-align: center">6.59 FPS</td>
<td style="text-align: center">12.74 FPS</td>
</tr>
<tr>
<td style="text-align: center"><strong>YOLOv11s-obb</strong></td>
<td style="text-align: center">5.58 FPS</td>
<td style="text-align: center">33.14 FPS</td>
<td style="text-align: center">19.99 FPS</td>
<td style="text-align: center">6.35 FPS</td>
<td style="text-align: center">5.56 FPS</td>
<td style="text-align: center">17.87 FPS</td>
</tr>
</tbody>
</table>
<p>    以上便是基于DeploySharp 开发的深度学习模型部署测试平台的安装和使用教程。最后如果各位开发者在使用中有任何问题,欢迎大家与我联系。</p>
<p><img src="https://img2024.cnblogs.com/blog/2933426/202510/2933426-20251007174954438-985104359.png"></p><br><br>
来源:https://www.cnblogs.com/guojin-blogs/p/19128679
頁: [1]
查看完整版本: 基于DeploySharp 的深度学习模型部署测试平台:支持YOLO全系列模型