当前位置:   article > 正文

TensorRT安装--YOLOv8推理教程_tensorrt推理yolov8

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

现在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__
  • 1
  • 2
  • 3

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

4. tensorrtx YOLOv8推理

4.1 下载官方源码:

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

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

  • 1
  • 2

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

4.2 下载YOLOv8源码

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

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

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

4.3 生成yolov8s.wts文件

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

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

python gen_wts.py
  • 1

就可以看到在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
  • 1
  • 2
  • 3

然后就可以看到在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
  • 1

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

4.6 推理

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

./yolov8_det -d yolov8s.engine images/ g
  • 1

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

也可以把动态库文件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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/1013325
推荐阅读
相关标签
  

闽ICP备14008679号