【YoloDeployCsharp】基于.NET Framework的YOLO深度學(xué)習(xí)模型部署測試平臺
1. 項(xiàng)目介紹
? 基于.NET Framework 4.8 開發(fā)的深度學(xué)習(xí)模型部署測試平臺,提供了YOLO框架的主流系列模型,包括YOLOv8~v9,以及其系列下的Det、Seg、Pose、Obb、Cls等應(yīng)用場景,同時支持圖像與視頻檢測。模型部署引擎使用的是OpenVINO?、TensorRT、ONNX runtime以及OpenCV DNN,支持CPU、IGPU以及GPU多種設(shè)備推理。
? 其中,OpenVINO?以及TensorRT的C#接口均為自行開發(fā),項(xiàng)目鏈接為:
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系列深度學(xué)習(xí)模型部署平臺頁面主要包括四個區(qū)域,分別為:模型選擇和加載區(qū)域、推理區(qū)域、輸入圖像展示區(qū)域以及輸出結(jié)果圖像展示區(qū)域。如下圖所示:

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

? 同樣的方式,我們可以實(shí)現(xiàn)多種模型在不同平臺的上的推理,如下圖所示:
![]() |
![]() |
|---|---|
![]() |
![]() |
2. 支持模型
? 項(xiàng)目在開發(fā)時,同時開發(fā)了YOLOv5~v9以及YOLO World等YOLO系列模型,模型部署工具使用的是OpenVINO 、TensorRT 、ONNX runtime、OpenCV DNN,但有一些模型部署工具對模型的算子存在不支持情況,因此,對該項(xiàng)目中所使用的所有模型進(jìn)行了測試,如下表所示:
| 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. 時間測試
? 在開發(fā)的模型部署平臺上進(jìn)行時間測試,當(dāng)前的測試環(huán)境為:
- CPU:11th Intel Core i7-1165G7 2.8GHz
- IGPU:Intel Iris Xe Graphics
- GPU:NVIDIA GeForce RTX 2060
在同一環(huán)境下,對其中一些模型進(jìn)行了測試,如下表所示:
| 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 |
? 通過測試結(jié)果可以看出:
- 在GPU上:使用獨(dú)立顯卡加速的TensorRT在推理速度上表現(xiàn)是十分優(yōu)秀的,但使用集成顯卡加速的OpenVINO其推理速度也不容小覷,如果上到英特爾的獨(dú)立顯卡,其推理速度應(yīng)該還會有很大程度上的提升,而ONNX runtime使用獨(dú)立顯卡加速,其推理性能上與TensorRT相比稍遜色;
- 在CPU上,OpenVINO 的表現(xiàn)時十分突出的,在使用極少的CPU占用上,其推理速度已經(jīng)有了很大的提升,而ONNX runtime以及OpenCV DNN占用CPU很大的情況下,其推理速度遠(yuǎn)不如OpenVINO。
4. 總結(jié)
? 項(xiàng)目源碼目前已經(jīng)在GitHub上開源,項(xiàng)目鏈接為:
https://github.com/guojin-yan/YoloDeployCsharp.git
? 各位開發(fā)者可以根據(jù)自己情況加逆行下載,并進(jìn)行項(xiàng)目配置,其中一些內(nèi)容的配置可以參考一下文章:
? 最后如果各位開發(fā)者在使用中有任何問題,歡迎大家與我聯(lián)系。


基于.NET Framework 4.8 開發(fā)的深度學(xué)習(xí)模型部署測試平臺,提供了YOLO框架的主流系列模型,包括YOLOv8~v9,以及其系列下的Det、Seg、Pose、Obb、Cls等應(yīng)用場景,同時支持圖像與視頻檢測。模型部署引擎使用的是OpenVINO?、TensorRT、ONNX runtime以及OpenCV DNN,支持CPU、IGPU以及GPU多種設(shè)備推理。




浙公網(wǎng)安備 33010602011771號