栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

YOLOX Window10 TensorRT 全面部署教程

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

安装torch2trt

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

编译Demo

1.首先还是确保自己在ubuntu上安装了TensorRT。
2.开始修改CMakeLists.txt 文件,这个文件在demo/TensorRT/cpp/CMakeLists.txt 路径下。
我修改了这几处:

但是按照官方的教程(其实就是cmake):
mkdir build
cd build
cmake …
make
但是我一直成功不了最后这个make,有知道的吗?

所以我跳过了在ubuntu上搞最后的部署,直接搞window10上的C++部署。因为之前弄yolov5啥的,弄过很多次tensorrt相关的部署了,所以对我来说不是太难。

Window10 部署

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自己要拷到运行目录下:

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

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

运行如下命令行:
TensorRTCPP.exe model_trt.engine -i 3.bmp
我的原图为:

最终结果会在当前目录中生成:

总结

本文详细说明了yolox 的windows10 上tensorrt的实际部署流程,有问题可下面留言讨论,或者加我QQ进行讨论:695768170

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/355591.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号