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


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

    旷视科技开源了内部目标检测模型-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上的速度比较,现在加上本篇比较了YOLOXTensorRT、OpenVINO、ONNXRUNTIME上推理部署速度比较,得到的结论就是:

    CPU上速度最快的是OpenVINOGPU上速度最快的是TensorRT

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

  • 相关阅读:
    剑指offer-删除链表中重复的结点
    剑指offer-矩阵中的路径
    剑指offer-旋转数组的最小数字
    剑指offer-用两个栈实现队列
    剑指offer-二叉树的下一个节点
    剑指offer-从尾到头打印链表
    SSM整合所需jar包
    剑指offer-树中两个节点的最低公共祖先
    剑指offer-判断是否是平衡二叉树
    剑指offer-二叉树的深度
  • 原文地址:https://www.cnblogs.com/shuimuqingyang/p/16145361.html
Copyright © 2020-2023  润新知