TensorRT安装--YOLOv8推理教程

注意!!本文的前提是CUDA CUDNN 以及OpenCV都已经装好
注意!!本文的前提是CUDA CUDNN 以及OpenCV都已经装好
注意!!本文的前提是CUDA CUDNN 以及OpenCV都已经装好
本文的环境:CUDA 11.3 CUDNN 8.7 OpenCV 4.7 TensorRT 8.4.2.4 GTX1650

1. TensorRT下载

国内下载可以参考

https://blog.csdn.net/fl1623863129/category_12437415.html?spm=1001.2014.3001.5482

官网下载:

https://developer.nvidia.com/nvidia-tensorrt-8x-download

下载后解压,一般放到home目录下

2. Ubuntu TensorRT设置环境变量:

注意替换掉TR_PATH

vi ~/.bashrc

export TR_PATH=your path(/home/hhh/TensorRT-8.4.2)
export PATH=$PATH:$TR_PATH/bin
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:$TR_PATH/include
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TR_PATH/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TR_PATH/targets/x86_64-linux-gnu/lib

source ~/.bashrc

现在C++就可以使用TRT了。

3. Python使用TRT

以TensorRT-8.4.2为例,进入到该文件夹,打开终端,切换到虚拟环境,安装以下包:

  1. python目录下的tensorrt-xxx-cp38-none-linux_x86_64.whl
  2. uff目录下的uff-xxx-py2.py3-none-any.whl
  3. graphsurgeon目录下的graphsurgeon-xxx-py2.py3-none-any.whl

然后在虚拟环境中执行以下命令验证是否安装成功:

python
import tensorrt
tensorrt.__version__

或者直接 pip list 也可以看到。

4. tensorrtx YOLOv8推理

4.1 下载官方源码:

https://github.com/wang-xinyu/tensorrtx

git clone https://github.com/wang-xinyu/tensorrtx.git

刚下载好后可以看到里面有很多文件夹,只保留YOLOv8的即可:
在这里插入图片描述

4.2 下载YOLOv8源码

git clone https://github.com/ultralytics/ultralytics.git

在ultralytics/ultralytics/目录下新建weights目录,然后从官网下载yolov8权重模型放到weights目录中,或者自己训练的也行。这里提供yolov8s的下载命令:

wget https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8s.pt

4.3 生成yolov8s.wts文件

从tensorrt-master/yolov8/文件夹中拷贝gen_wts.py文件到ultralytics/ultralytics/目录下
在这里插入图片描述

然后打开终端,进入虚拟环境,运行命令

python gen_wts.py

就可以看到在ultralytics/ultralytics/weights目录下已经生成了yolov8s.wts文件。
在这里插入图片描述

在gen_wts.py中可以修改想要生成的模型:
在这里插入图片描述

4.4 编译

在tensorrt-master/yolov8文件夹中,修改CMakelists.txt文件,改成自己的TensorRT版本:
在这里插入图片描述
修改include/config.h文件,yolov8官网的权重是80个类别,根据自己的需要修改:
在这里插入图片描述

然后执行以下命令(不需要进入虚拟环境):

mkdir build && cd build
cmake ..
make -j8

然后就可以看到在tensorrt-master/yolov8/biuld目录中,生成了yolov8的可执行文件以及动态库文件:
在这里插入图片描述

4.5 生成yolov8s.engine文件

拷贝ultralytics/ultralytics/weights/yolov8s.wts文件到tensorrt-master/yolov8/build/目录下,执行命令:

./yolov8_det -s yolov8s .wts yolov8s .engine s

可以看到生成了yolov8s.engine文件
在这里插入图片描述

4.6 推理

把要推理的图片imges文件夹放到tesnorrtx-master/yolov8/build/目录下,执行命令:

./yolov8_det -d yolov8s.engine images/ g

就可以看到推理后的图片:
在这里插入图片描述

也可以把动态库文件libmyplugins.so以及可执行文件yolov8_det,拷贝到其他地方使用,其实真正需要的也就是这两个文件以及yolov8s.engine文件。

可以参考tensorrtx yolov8官网的教程:

https://github.com/wang-xinyu/tensorrtx/tree/master/yolov8

cd {tensorrtx}/yolov8/
// update kNumClass in config.h if your model is trained on custom dataset
mkdir build
cd build
cp {ultralytics}/ultralytics/yolov8.wts {tensorrtx}/yolov8/build
cmake ..
make
 ./yolov8_det -s [.wts] [.engine] [n/s/m/l/x]  // serialize model to plan file
 ./yolov8_det -d [.engine] [image folder]  [c/g] // deserialize and run inference, the images in [image folder] will be processed.
// For example yolov8
 ./yolov8_det -s yolov8n.wts yolov8.engine n
 ./yolov8_det -d yolov8n.engine ../images c //cpu postprocess
 ./yolov8_det -d yolov8n.engine ../images g //gpu postprocess
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Goafan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值