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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM