赞
踩
注意!!本文的前提是CUDA CUDNN 以及OpenCV都已经装好
注意!!本文的前提是CUDA CUDNN 以及OpenCV都已经装好
注意!!本文的前提是CUDA CUDNN 以及OpenCV都已经装好
本文的环境:CUDA 11.3 CUDNN 8.7 OpenCV 4.7 TensorRT 8.4.2.4 GTX1650
国内下载可以参考
https://blog.csdn.net/fl1623863129/category_12437415.html?spm=1001.2014.3001.5482
官网下载:
下载后解压,一般放到home目录下
注意替换掉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了。
以TensorRT-8.4.2为例,进入到该文件夹,打开终端,切换到虚拟环境,安装以下包:
然后在虚拟环境中执行以下命令验证是否安装成功:
python
import tensorrt
tensorrt.__version__
或者直接 pip list 也可以看到。
git clone https://github.com/wang-xinyu/tensorrtx.git
刚下载好后可以看到里面有很多文件夹,只保留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
从tensorrt-master/yolov8/文件夹中拷贝gen_wts.py文件到ultralytics/ultralytics/目录下
然后打开终端,进入虚拟环境,运行命令
python gen_wts.py
就可以看到在ultralytics/ultralytics/weights目录下已经生成了yolov8s.wts文件。
在gen_wts.py中可以修改想要生成的模型:
在tensorrt-master/yolov8文件夹中,修改CMakelists.txt文件,改成自己的TensorRT版本:
修改include/config.h文件,yolov8官网的权重是80个类别,根据自己的需要修改:
然后执行以下命令(不需要进入虚拟环境):
mkdir build && cd build
cmake ..
make -j8
然后就可以看到在tensorrt-master/yolov8/biuld目录中,生成了yolov8的可执行文件以及动态库文件:
拷贝ultralytics/ultralytics/weights/yolov8s.wts文件到tensorrt-master/yolov8/build/目录下,执行命令:
./yolov8_det -s yolov8s .wts yolov8s .engine s
可以看到生成了yolov8s.engine文件
把要推理的图片imges文件夹放到tesnorrtx-master/yolov8/build/目录下,执行命令:
./yolov8_det -d yolov8s.engine images/ g
就可以看到推理后的图片:
也可以把动态库文件libmyplugins.so以及可执行文件yolov8_det,拷贝到其他地方使用,其实真正需要的也就是这两个文件以及yolov8s.engine文件。
可以参考tensorrtx 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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。