点击上方蓝字关注我们
微信公众号:OpenCV学堂 关注获取更多计算机视觉与深度学习知识
YOLOX目标检测模型
旷视科技开源了内部目标检测模型-YOLOX,性能与速度全面超越YOLOv5早期版本!
如此神奇原因在于模型结构的修改,下图说明了改了什么地方:
把原来的耦合头部,通过1x1卷积解耦成两个并行的分支,经过一系列处理之后最终取得精度与速度双提升。实验对比结果如下:
论文与代码模型下载地址:
https://arxiv.org/pdf/2107.08430.pdfhttps://github.com/Megvii-BaseDetection/YOLOX
ONNX格式模型转与部署
下载YOLOX的ONNX格式模型(github上可以下载)
https://github.com/Megvii-BaseDetection/YOLOX/tree/main/demo/ONNXRuntimehttps://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上的速度比较,现在加上本篇比较了YOLOX在TensorRT、OpenVINO、ONNXRUNTIME上推理部署速度比较,得到的结论就是:
CPU上速度最快的是OpenVINOGPU上速度最快的是TensorRT
能不改代码,同时支持CPU跟GPU推理是ONNXRUNTIME
OpenCV DNN毫无意外的速度最慢(CPU/GPU)
扫码查看OpenCV Pytorch系统化学习路线图
推荐阅读
CV全栈开发者说 - 从传统算法到深度学习怎么修炼
2022入坑深度学习,我选择Pytorch框架!
Pytorch轻松实现经典视觉任务
教程推荐 | Pytorch框架CV开发-从入门到实战
OpenCV4 C 学习 必备基础语法知识三
OpenCV4 C 学习 必备基础语法知识二
OpenCV4.5.4 人脸检测 五点landmark新功能测试
OpenCV4.5.4人脸识别详解与代码演示
OpenCV二值图象分析之Blob分析找圆
OpenCV4.5.x DNN YOLOv5 C 推理
OpenCV4.5.4 直接支持YOLOv5 6.1版本模型推理
OpenVINO2021.4 YOLOX目标检测模型部署测试
比YOLOv5还厉害的YOLOX来了,官方支持OpenVINO推理