YOLOX在OpenVINO、ONNXRUNTIME、TensorRT上面推理部署與速度比較
阿新 • • 發佈:2022-04-14
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上的速度比較,現在加上本篇比較了YOLOX
CPU上速度最快的是OpenVINO
GPU上速度最快的是TensorRT
能不改程式碼,同時支援CPU跟GPU推理是ONNXRUNTIMEOpenCV DNN毫無意外的速度最慢(CPU/GPU)