YOLOX在OpenVINO、ONNXRUNTIME、TensorRT上面推理部署与速度比较

https://mp.weixin.qq.com/s/gjQxtc2QUI0zVRV62pSWag

 

旷视科技开源了内部目标检测模型-YOLOX,性能与速度全面超越YOLOv5早期版本!

图片

如此神奇原因在于模型结构的修改,下图说明了改了什么地方:

图片

把原来的耦合头部,通过1x1卷积解耦成两个并行的分支,经过一系列处理之后最终取得精度与速度双提升。实验对比结果如下:

图片

论文与代码模型下载地址:

https://arxiv.org/pdf/2107.08430.pdf
https://github.com/Megvii-BaseDetection/YOLOX

ONNX格式模型转与部署

下载YOLOX的ONNX格式模型(github上可以下载)

https://github.com/Megvii-BaseDetection/YOLOX/tree/main/demo/ONNXRuntime
https://github.com/Megvii-BaseDetection/YOLOX/releases/download/0.1.1rc0/yolox_s.onnx

 

下载ONNX格式模型,打开之后如图:

图片

输入格式:1x3x640x640,默认BGR,无需归一化。
输出格式:1x8400x85

官方说明ONNX格式支持OpenVINO、ONNXRUNTIME、TensorRT三种方式,而且都提供源码,官方提供的源码参考如下

https://github.com/Megvii-BaseDetection/YOLOX/tree/main/demo

本人就是参考上述的代码然后一通猛改,分别封装成三个类,完成了统一接口,公用了后处理部分的代码,基于本人笔记本的硬件资源与软件版本:

-GPU 3050Ti
-CPU i7 11代
-OS:Win10 64位
-OpenVINO2021.4
-ONNXRUNTIME:1.7-CPU
-OpenCV4.5.4
-Python3.6.5
-YOLOX
-TensorRT8.4.x

在三个推理平台上测试结果如下:

图片

运行截图如下:onnxruntime推理

图片

 

OpenVINO推理

图片

 

TensorRT推理 - FP32

图片

 

转威FP16

图片

 

TensorRT推理 - FP16

图片

 

总结

之前我写过一篇文章比较了YOLOv5最新版本在OpenVINO、ONNXRUNTIME、OpenCV DNN上的速度比较,现在加上本篇比较了YOLOXTensorRT、OpenVINO、ONNXRUNTIME上推理部署速度比较,得到的结论就是:

CPU上速度最快的是OpenVINO
GPU上速度最快的是TensorRT

能不改代码,同时支持CPU跟GPU推理是ONNXRUNTIMEOpenCV DNN毫无意外的速度最慢(CPU/GPU)

 

posted @   水木清扬  阅读(4034)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
历史上的今天:
2021-04-14 Ubuntu16.04下cuda版本的切换
2019-04-14 CVPR 2019 神奇的超分辨率算法DPSR:应对图像模糊降质去模糊+超分辨
点击右上角即可分享
微信分享提示