Yolov5部署TensorRT加速
- 一、软件安装
-
- 1.安装Visual Studio 2017
- 2.安装CUDA11.0
- 3.安装cudnn8.0.5
- 4.安装Opencv3.4.0
- 5.安装TensorRT
- 二、Yolov5部署TensorRT加速
-
- 1.Yolov5项目部署
- 2.Cmake编译生成VS工程
- 3.VS生成engine模型
系统环境:
Windows11;
cuda 11.1;
cudnn8.0.5;
VisualStudio2017;
Opencv3.4.0
一、软件安装
1.安装Visual Studio 2017
下载Visual Studio 2017 社区版
下载链接: https://visualstudio.microsoft.com/zh-hans/downloads/
一定要在安装CUDA之前安装Visual Studio,安装CUDA时会自动配置好VS中的环境,不然在VS中无法使用CUDA
2.安装CUDA11.0
确定并下载自己使用的CUDA版本
CUDA下载链接:https://developer.nvidia.com/cuda-toolkit
1.将CUDA运行安装,建议默认路径
2.安装完成后设置环境变量
查看系统变量中是否添加了路径,如果没有需要自己添加
接下来在系统中添加几个系统变量
CUDA_LIB_PATH =%CUDA_PATH%libx64
CUDA_BIN_PATH = %CUDA_PATH%bin
CUDA_SDK_BIN_PATH =%CUDA_SDK_PATH%binwin64
CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%commonlibx64
CUDA_SDK_PATH = C:ProgramDataNVIDIA CorporationCUDA Samplesv11.1
在系统变量Path中添加
%CUDA_LIB_PATH%;%CUDA_BIN_PATH%;%CUDA_SDK_LIB_PATH%;%CUDA_SDK_BIN_PATH%;
C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.1libx64
C:Program FilesNVIDIAGPU Computing ToolkitCUDAv11.1include
C:Program FilesNVIDIA GPU ComputingToolkitCUDAv11.1extrasCUPTIlib64
C:ProgramDataNVIDIA CorporationCUDASamplesv11.1binwin64
C:ProgramDataNVIDIA CorporationCUDASamplesv11.1commonlibx64
3.安装cudnn8.0.5
根据自己的CUDA版本下载对应的cudnn
cudnn下载链接:https://developer.nvidia.cn/rdp/cudnn-download
解压后将bin,include,lib中的文件复制粘贴到cuda的文件夹下
将cudabin中的文件复制到 C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.1bin
将cudainclude中的文件复制到 C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.1include
将cudalib中的文件复制到 C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.1lib
4.安装Opencv3.4.0
下载链接: https://opencv.org/
注意:不要下载最新版本(不要高于4.0版本!)
将压缩包解压到相应目录,如D:czpopencv
将其添加进系统变量Path:D:czpopencvbuildx64vc14bin
5.安装TensorRT
根据CUDA和cudnn版本下载对应的TensorRT
TensorRT下载链接:https://developer.nvidia.com/nvidia-tensorrt-download
1.解压后将里面lib的绝对路径添加到环境变量中
将 TensorRT-8.0.1.6include中头文件复制到C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.1include
将TensorRT-8.0.1.6lib中所有lib文件复制到C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.1libx64
将TensorRT-8.0.1.6lib中所有dll文件复制到C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.1bin
2.安装uff和graphsurgeon
解压后的uff和graphsurgeon文件夹中,分别含有各自的.whl安装文件
使用pip进行安装
pip install graphsurgeon-0.4.5-py2.py3-none-any.whl
pip install uff-0.6.9-py2.py3-none-any.whl
3.安装pycuda
如果要使用python接口的tensorrt,则需要安装pycuda
pip install pycuda
4.配置VS2017
用VS2017打开sampleMNIST示例
将D:TensorRT-8.0.1.6lib加入 项目->属性->VC++目录–>可执行文件目录
将D:TensorRT-8.0.1.6lib加入 VC++目录–>库目录
将D:TensorRT-8.0.1.6include加入C/C++ –> 常规 –> 附加包含目录
将nvinfer.lib、nvinfer_plugin.lib、nvonnxparser.lib和nvparsers.lib加入链接器–>输入–>附加
依赖项
D:TensorRT-8.0.1.6lib*.lib
5.测试TensorRT示例代码
即TensorRT安装成功!
二、Yolov5部署TensorRT加速
1.Yolov5项目部署
1.下载yolov5源码
GitHub地址: https://github.com/ultralytics/yolov5.git
2.下载tensorrtx源码
GitHub地址: https://github.com/wang-xinyu/tensorrtx.git
注意:yolov5版本必须要与tensorrtx版本对应!
3.下载dirent.h文件
下载链接: https://github.com/tronkko/dirent
放置到 tensorrtx/include文件夹下,文件夹需新建
4.生成yolov5s.wts文件
将tensorrtx源码中的gen_wts.py复制到yolov5源码中并运行,生成.wts模型
将’yolov5s.wts’ 文件复制到tensorrtx/yolov5/build目录下
2.Cmake编译生成VS工程
1.source code 为源码的路径 build the binaries为生成的VS工程的路径
2.路径设置完成后,点击左下方Configure,然后选择VS的版本以及x64平台
3.点击Generate生成项目
注意:配置时出现的红色警告忽略!
3.VS生成engine模型
1.打开yolov5工程编译生成,可以看到在tensorrtxyolov5buildDebug文件下生成了一个yolov5.exe文件
2.cmd进入到tensorrtxyolov5buildDebug目录下,然后执行**yolov5.exe -s yolov5s.wts yolov5.engine s
**命令, 可以看到在当前目录下生成了一个yolov5.engine文件,说明转换成功。
注:转换过程可能相对较慢,耐心等待即可
3.在tensorrtxyolov5buildDebug目录下新建一个img文件夹然后放入测试图片,通过cmd执行yolov5.exe -d img
,调用yolov5.engine进行测试
即Yolov5部署TensorRT成功!