- 配置流程
- 训练自己的模型
- 安装torch2trt
- 转换模型
- 编译Demo
- Window10 部署
- Window10上使用自己训练的模型进行tensorrt检测
- 总结
官网这部分写的非常笼统,我把完整教程分享给大家。
环境:
window10+GTX1650+TensorRT-7.2.3.4-CUDA11.1
yolox程序在ubuntu上,所以部分内容是ubuntu上操作
其他环境不保证
训练部分请参照官网流程进行训练,或者直接使用官方提供的几个模型也可。得到.pth文件。例如这里我的是:best_ckpt.pth
yolox官网这里真的懒,就给了个链接,好在之前我用过,自己的环境中也有这个模块。下面来说说这个模块。
首先还是要先进入到这个git地址:https://github.com/NVIDIA-AI-IOT/torch2trt
注意注意,他的安装教程可没有写在最前面,最前面是一些功能的简单的介绍,吹一下他这个工具多好用,然后支持多少多少模型等等,我们直接跳过去,看setup部分。
安装之前要确保自己的环境中已经安装了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模型生成的名称。
自己通过修改红框部分,然后直接执行这个tools/trt.py 也可以。
最终可以在你对应的output文件夹中生成一个model_trt.engine 文件,这个文件才是我们tensorrt需要的文件。同时生成了一个model_trt.pth 文件,里面是保存了模型的所有参数。
上面这一步yolox教程中写的还比较详细,但是其中没有对自己的模型的一些路径配置做说明:
https://github.com/Megvii-baseDetection/YOLOX/blob/main/demo/TensorRT/python/README.md
1.首先还是确保自己在ubuntu上安装了TensorRT。
2.开始修改CMakeLists.txt 文件,这个文件在demo/TensorRT/cpp/CMakeLists.txt 路径下。
我修改了这几处:
但是按照官方的教程(其实就是cmake):
mkdir build
cd build
cmake …
make
但是我一直成功不了最后这个make,有知道的吗?
所以我跳过了在ubuntu上搞最后的部署,直接搞window10上的C++部署。因为之前弄yolov5啥的,弄过很多次tensorrt相关的部署了,所以对我来说不是太难。
1.我直接创建了一个新的控制台应用程序。
2.拷贝了官方提供的两个文件:
3.工程中只留这两个:
4.然后就是配置include 和lib等,我直接截图:
nvinfer.lib
nvinfer_plugin.lib
C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.0libx64cudart.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
然后编译一下,从项目里,选择生成自定义,然后选自己的cuda版本就行了。
最后编译成功像这样:
当然要想使用对应的几个dll自己要拷到运行目录下:
最后就到了我们的实际使用环节,可以自己在cmd中输入命令行,我自己习惯运行程序,所以对程序进行了修改。大家根据需求自己进行灵活运用,最终肯定还是要在自己的项目中进行部署。
这里展示用命令行的
运行如下命令行:
TensorRTCPP.exe model_trt.engine -i 3.bmp
我的原图为:
最终结果会在当前目录中生成:
本文详细说明了yolox 的windows10 上tensorrt的实际部署流程,有问题可下面留言讨论,或者加我QQ进行讨论:695768170



