YOLOX Window10 TensorRT 全面部署教程

YOLOX Window10 TensorRT 全面部署教程

  • 配置流程
    • 训练自己的模型
    • 安装torch2trt
    • 转换模型
    • 编译Demo
    • Window10 部署
    • Window10上使用自己训练的模型进行tensorrt检测
  • 总结

配置流程

官网这部分写的非常笼统,我把完整教程分享给大家。
环境:
window10+GTX1650+TensorRT-7.2.3.4-CUDA11.1
yolox程序在ubuntu上,所以部分内容是ubuntu上操作
其他环境不保证

训练自己的模型

训练部分请参照官网流程进行训练,或者直接使用官方提供的几个模型也可。得到.pth文件。例如这里我的是:best_ckpt.pth
YOLOX Window10 TensorRT 全面部署教程_第1张图片

安装torch2trt

yolox官网这里真的懒,就给了个链接,好在之前我用过,自己的环境中也有这个模块。下面来说说这个模块。
首先还是要先进入到这个git地址:https://github.com/NVIDIA-AI-IOT/torch2trt
注意注意,他的安装教程可没有写在最前面,最前面是一些功能的简单的介绍,吹一下他这个工具多好用,然后支持多少多少模型等等,我们直接跳过去,看setup部分。
YOLOX Window10 TensorRT 全面部署教程_第2张图片
安装之前要确保自己的环境中已经安装了tensorrt,这些之前我都装过,所以我自己操作的时候这些没有太多阻力,但是安装ubuntu上python的tensorrt安装也不是特别简单。
自己从CSDN上找一下教程就行了,此处不再赘述,给个链接:https://blog.csdn.net/weixin_43541325/article/details/105999858
安装好tensorrt后才可以继续安装torch2trt。按照他的步骤执行:
python setup.py install
即可。

转换模型

这一步是让你把自己训练的.pth 模型文件转成trt的.engine文件,序列化引擎文件,供最终我们的C++程序使用。
此时我们要回到自己的yolox工程下,然后通过命令行的方式进行模型转换。例如我的是这样执行:
python tools/trt.py -n yolox-nano -c YOLOX_outputs/nano_OCR/best_ckpt.pth -expn nano_OCR
注意这里我修改了 -expn的路径,改成了我自己output模型生成的名称。
YOLOX Window10 TensorRT 全面部署教程_第3张图片
自己通过修改红框部分,然后直接执行这个tools/trt.py 也可以。
最终可以在你对应的output文件夹中生成一个model_trt.engine 文件,这个文件才是我们tensorrt需要的文件。同时生成了一个model_trt.pth 文件,里面是保存了模型的所有参数。

YOLOX Window10 TensorRT 全面部署教程_第4张图片
上面这一步yolox教程中写的还比较详细,但是其中没有对自己的模型的一些路径配置做说明:
https://github.com/Megvii-BaseDetection/YOLOX/blob/main/demo/TensorRT/python/README.md

编译Demo

1.首先还是确保自己在ubuntu上安装了TensorRT。
2.开始修改CMakeLists.txt 文件,这个文件在demo/TensorRT/cpp/CMakeLists.txt 路径下。
我修改了这几处:
YOLOX Window10 TensorRT 全面部署教程_第5张图片
但是按照官方的教程(其实就是cmake):
mkdir build
cd build
cmake …
make
但是我一直成功不了最后这个make,有知道的吗?
在这里插入图片描述
所以我跳过了在ubuntu上搞最后的部署,直接搞window10上的C++部署。因为之前弄yolov5啥的,弄过很多次tensorrt相关的部署了,所以对我来说不是太难。

Window10 部署

1.我直接创建了一个新的控制台应用程序。
2.拷贝了官方提供的两个文件:
YOLOX Window10 TensorRT 全面部署教程_第6张图片
3.工程中只留这两个:
YOLOX Window10 TensorRT 全面部署教程_第7张图片
4.然后就是配置include 和lib等,我直接截图:
YOLOX Window10 TensorRT 全面部署教程_第8张图片
YOLOX Window10 TensorRT 全面部署教程_第9张图片
YOLOX Window10 TensorRT 全面部署教程_第10张图片
nvinfer.lib
nvinfer_plugin.lib
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\lib\x64\cudart.lib
cudadevrt.lib
cudart_static.lib
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
comdlg32.lib
advapi32.lib
opencv_world440.lib
YOLOX Window10 TensorRT 全面部署教程_第11张图片
然后编译一下,从项目里,选择生成自定义,然后选自己的cuda版本就行了。
YOLOX Window10 TensorRT 全面部署教程_第12张图片
最后编译成功像这样:
YOLOX Window10 TensorRT 全面部署教程_第13张图片
当然要想使用对应的几个dll自己要拷到运行目录下:
YOLOX Window10 TensorRT 全面部署教程_第14张图片

Window10上使用自己训练的模型进行tensorrt检测

最后就到了我们的实际使用环节,可以自己在cmd中输入命令行,我自己习惯运行程序,所以对程序进行了修改。大家根据需求自己进行灵活运用,最终肯定还是要在自己的项目中进行部署。
这里展示用命令行的
YOLOX Window10 TensorRT 全面部署教程_第15张图片

运行如下命令行:
TensorRTCPP.exe model_trt.engine -i 3.bmp
我的原图为:
YOLOX Window10 TensorRT 全面部署教程_第16张图片

最终结果会在当前目录中生成:
YOLOX Window10 TensorRT 全面部署教程_第17张图片

总结

本文详细说明了yolox 的windows10 上tensorrt的实际部署流程,有问题可下面留言讨论

另外我这里有编写好的yolox_TensorRT_dll静态调用dll,和应用示例exe。内容包括了所有源代码和使用说明以及环境说明,欢迎购买。
https://download.csdn.net/download/qq_34809969/85655763

你可能感兴趣的:(部署环节tensorrt,yolox,深度学习,pytorch,ubuntu)