欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 文化 > Tensorrt yolov8配置( ubuntu18.04 CUDA11.4 cudnn8.2.4 tensorrt8.4.1.5 )

Tensorrt yolov8配置( ubuntu18.04 CUDA11.4 cudnn8.2.4 tensorrt8.4.1.5 )

2024/10/23 23:32:38 来源:https://blog.csdn.net/weixin_45702256/article/details/142879837  浏览:    关键词:Tensorrt yolov8配置( ubuntu18.04 CUDA11.4 cudnn8.2.4 tensorrt8.4.1.5 )

配置环境: ubuntu18.04 CUDA11.4 cudnn8.2.4 tensorrt8.4.1.5

CUDA tensorrt onnx等版本对应

注意安装对应的版本
具体参考版本对应

1、安装tensorrt

(1)查看cuda版本

nvidia-smi

(2)安装pycuda使用python时必须安装

pip3 install pycuda -i https://mirrors.aliyun.com/pypi/simple

下载:
下载链接

在这里插入图片描述

在这里插入图片描述

(1)解压缩

tar -zxvf TensorRT-8.2.1.8.Linux.x86_64-gnu.cuda-11.4.cudnn8.2.tar.gz 

(2)添加环境变量

sudo gedit ~/.bashrc
# 添加以下内容
export LD_LIBRARY_PATH=/home/wyh/environment_setting/TensorRT-8.4.1.5/lib:$LD_LIBRARY_PATH
export LIBRARY_PATH=/home/wyh/environment_setting/TensorRT-8.4.1.5/lib::$LIBRARY_PATH
export LD_LIBRARY_PATH=/home/wyh/environment_setting/TensorRT-8.4.1.5/targets/x86_64-linux-gnu/lib:$LD_LIBRARY_PATH
export LIBRARY_PATH=/home/wyh/environment_setting/TensorRT-8.4.1.5/targets/x86_64-linux-gnu/lib:$LIBRARY_PATH# 重新source环境变量
source ~/.bashrc

(3)具体安装Tensorrt
安装tensorrt、graphsurgeon、uff

# 根据python版本选择对应的文件,我这里时python3.6
# 第一次安装的版本为8.2.1.8后面使用时出现版本问题更改下述的8.4.1.5
# cd TensorRT-8.2.1.8/python/  
# pip3 install tensorrt-8.2.1.8-cp36-none-linux_x86_64.whl 
# cd /TensorRT-8.2.1.8/graphsurgeon
# pip3 install graphsurgeon-0.4.5-py2.py3-none-any.whl 
# cd /TensorRT-8.2.1.8/uff
# pip3 install uff-0.6.9-py2.py3-none-any.whl 
注意安装版本:
cd environment_setting/TensorRT-8.4.1.5/python/
pip3 install tensorrt-8.4.1.5-cp36-none-linux_x86_64.whl cd environment_setting/TensorRT-8.4.1.5/graphsurgeon/
pip3 install graphsurgeon-0.4.6-py2.py3-none-any.whl # python 3.7以上可安装
cd environment_setting/TensorRT-8.4.1.5/uff/
pip3 install uff-0.6.9-py2.py3-none-any.whl 

(4)测试Tensorrt是否安装成功
注意:在进行测试时保证tensorrt已加入到环境变量中

cd environment_setting/TensorRT-8.4.1.5/samples/sampleMNIST
make
cd ../../bin/
./sample_mnist

运行后出现如下所示表明安装正常
在这里插入图片描述

(5)下载TensorRT-Alpha并设置

git clone https://github.com/FeiYull/tensorrt-alpha
cd tensorrt-alpha/cmake
sudo gedit common.cmake
# 在文件common.cmake中的第18行中,设置成自己的目录
# set(TensorRT_ROOT /home/wyh/TensorRT-8.4.1.8)

在这里插入图片描述
在这里插入图片描述

2、YOLOv8-tensorrt部署

在conda中进行配置

2.1获取onnx文件

# 进入yolov8虚拟环境
setconda 
conda activate yolov8
pip install onnx==1.12.0 #安装在yolov8虚拟环境中

2.2 下载官方权重文件

直接在网页搜索以下链接即可直接下载

https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pt
https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8s.pt
https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8m.pt
https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8l.pt
https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8x.pt
https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8x6.pt

2.3导出onnx

在终端运行以下命令获取相对应的权重文件,在yolov8虚拟环境中运行

yolo mode=export model=yolov8n.pt format=onnx dynamic=True    #simplify=True
yolo mode=export model=yolov8s.pt format=onnx dynamic=True    #simplify=True
yolo mode=export model=yolov8m.pt format=onnx dynamic=True    #simplify=True
yolo mode=export model=yolov8l.pt format=onnx dynamic=True    #simplify=True
yolo mode=export model=yolov8x.pt format=onnx dynamic=True    #simplify=True
# 1280
yolo mode=export model=yolov8x6.pt format=onnx dynamic=True   #simplify=True

2.4 将onnx格式文件编译为trt

注意:tensorrt要加入到环境变量中 ,或者如下运行
下列可在终端直接运行,不需要进入虚拟环境
根据实际需要的权重文件进行修改

cd /environment_setting/tensorrt-alpha/data/yolov8
# 环境配置
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/TensorRT-8.4.1.5/lib
# 生成trt文件
# 640  ../../../TensorRT-8.4.1.5/bin/trtexec为各路径,根据实际情况填写
../../../TensorRT-8.4.1.5/bin/trtexec   --onnx=yolov8n.onnx  --saveEngine=yolov8n.trt  --buildOnly --minShapes=images:1x3x640x640 --optShapes=images:4x3x640x640 --maxShapes=images:8x3x640x640
../../../TensorRT-8.4.1.5/bin/trtexec   --onnx=yolov8s.onnx  --saveEngine=yolov8s.trt  --buildOnly --minShapes=images:1x3x640x640 --optShapes=images:4x3x640x640 --maxShapes=images:8x3x640x640
../../../TensorRT-8.4.1.5/bin/trtexec   --onnx=yolov8m.onnx  --saveEngine=yolov8m.trt  --buildOnly --minShapes=images:1x3x640x640 --optShapes=images:4x3x640x640 --maxShapes=images:8x3x640x640
# 1280../../../TensorRT-8.4.1.5/bin/trtexec  --onnx=yolov8x6.onnx  --saveEngine=yolov8x6.trt  --buildOnly --minShapes=images:1x3x1280x1280 --optShapes=images:4x3x1280x1280 --maxShapes=images:8x3x1280x1280

注意:遇到的问题:
编译文件时发现WARNING: onnx2trt_utils.cpp:366: Your ONNX model has been generated with INT64 weights, while TensorRT does not natively support INT64. Attempting to cast down to INT32.导致最终无法编译成功
出现此情况时我的cuda版本是11.4, tensorrt版本是8.2.1.8,无法生成最终trt文件
解决方法:将tensorrt更改为8.4.1.5版本,修改后生成TRT文件成功,其他各依赖要注意版本正确

2.5 编译tensorrt-yolov8

cd environment_setting/tensorrt-alpha/yolov8/
mkdir build
cd build
cmake ..
make

2.6 测试

cd environment_setting/tensorrt-alpha/yolov8/build
## 640
# 推理图片并保存
./app_yolov8  --model=../../data/yolov8/yolov8n.trt --size=640 --batch_size=1  --img=../../data/6406407.jpg   --show --savePath
./app_yolov8  --model=../../data/yolov8/yolov8n.trt --size=640 --batch_size=8  --video=../../data/people.mp4  --show --savePath# 推理视频并保存
./app_yolov8  --model=../../data/yolov8/yolov8n.trt --size=640 --batch_size=8  --video=../../data/people.mp4  --show --savePath=../
# 在线推理相机视频
./app_yolov8  --model=../../data/yolov8/yolov8n.trt     --size=640 --batch_size=2  --cam_id=0  --show
## 1280
# infer camera
./app_yolov8  --model=../../data/yolov8/yolov8x6.trt     --size=1280 --batch_size=2  --cam_id=0  --show# 下面参数解释
# --show 表示可视化结果
# --savePath 表示保存,默认保存在build目录
# --savePath=../ 保存在上一级目录

参考链接:参考

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com