Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)—超详细

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)

一位入门CV的小白,第一次使用TensorRT来加速部署YOLOv5项目。

此文详细记录了实操过程中的种种坑与不足,一来方便自己回顾温习,二来帮助想使用YOLOv5与TensorRT来部署项目的小伙伴避免踩一些坑,三来希望得到各位大佬大牛的高见!

文章目录

1 软件下载及安装

​ 本文操作均在Win10系统上完成,需要用到的软件与依赖包有:cuda 10.2 , cudnn 7.6.5 , VS2019 , OpenCV 3.4.0 , Anaconda3 , CMake 3.19.4 , TensorRT 7

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

(PS:先安装VS2019,再安装CUDA10.2+CUDNN7.6.5; 否者后面CMake编译会报错”No CUDA toolset found”)

⭐⭐⭐

[PS:以上所有软件及依赖库均可在官方下载获得,按照下面叙述教程操作即可实现;官网访问速度很慢,下载需要等待很长时间,如若想一次性快速下载即可使用,请访问链接(包含全部软件): https://blog.csdn.net/weixin_39588099/article/details/119994609?spm=1001.2014.3001.5501]

; (1) 安装VS2019

​ 用来学习与练手,社区版就已足够(本文使用社区版)。如需更多功能或商用,请安装专业版或企业版。

官网链接:https://visualstudio.microsoft.com/zh-hans/downloads/

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

下载后,双击vs_***.exe进行安装,需勾选如下信息(此处我已安装):

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

然后自定义安装路径,执行即可(需耐心等待一个小时左右),安装成功后界面

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

(2) 安装NVIDIA显卡驱动

​ 第一步需要在设备管理器中查看自己电脑的显卡型号,比如在这里可以看到本文中使用的显卡型号为NVIDIA GeForce GTX 1660 Ti

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

NVIDIA 显卡驱动官网链接:https://www.nvidia.cn/Download/index.aspx?lang=cn , 搜索就可以下载电脑相对应的英伟达显卡驱动

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

安装完成之后,在命令提示符cmd中输入执行:

nvidia-smi

如果报错:’nvidia-smi’ 不是内部或外部命令,也不是可运行的程序或批处理文件。
则需要把’C:\Program Files\NVIDIA Corporation\NVSMI’添加到环境变量的path中,再重新打开cmd窗口输入命令执行。
如果输出下图所示的显卡信息,则说明电脑的显卡驱动安装成功。

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

(3) 安装CUDA10.2+CUDNN7.6.5

1) CUDA安装

​ CUDA用的是10.2版本,官网链接:https://developer.nvidia.com/cuda-10.2-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

下载后得到文件:cuda_10.2.89_441.22_win10.exe,点击安装即可,此处使用默认路径以方便后面配置路径

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

安装完成后设置环境变量

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

右键点击此电脑,打开属性—>高级系统设置—>环境变量,可以看到系统变量中多了CUDA_PATH和CUDA_PATH_V10_2两个环境变量(CUDA默认安装位置路径为:C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.2)

接下来,还需要在系统变量中添加以下五个变量:

CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.2
CUDA_LIB_PATH = %CUDA_PATH%\lib\x64 CUDA_BIN_PATH = %CUDA_PATH%\bin CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64 CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

在系统变量中双击打开Path变量, 在其末尾添加如下指令路径:

%CUDA_LIB_PATH%;%CUDA_BIN_PATH%;%CUDA_SDK_LIB_PATH%;%CUDA_SDK_BIN_PATH%;
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\include
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\extras\CUPTI\lib64
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.2\bin\win64
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.2\common\lib\x64

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

2) CUDNN安装

​ CUDNN官方链接:https://developer.nvidia.com/cudnn

第一次需要用邮箱注册,然后登录

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

下载后得到文件:cudnn-10.2-windows10-x64-v7.6.5.32.zip

将压缩包文件解压打开,然后将cuda目录下的bin,include,lib中的文件分别复制粘贴到路径C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2文件夹下相对应的目录

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

; 3) 安装测试

最后测试CUDA是否配置成功,打开CMD执行:

nvcc -V

即可看到如下图所示CUDA的信息,则配置成功(此后可愉快的使用GPU啦……)

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

(4) 安装OpenCV3.4.0

​ OpenCV3.4.0,官网链接: https://opencv.org/opencv-3-4.html

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

选择 Win pack点击下载(此处官网下载,或许很慢,需要耐心等待)

下载完成后,双击opencv-3.4.0-vc14_vc15.exe运行进行解压,将压缩包解压到相应目录(自定义路径),如:D:\Program Files (x86)\opencv,然后在系统变量Path的末尾添加:D:\Program Files (x86)\opencv\build\x64\vc15\bin,即完成安装

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

; (5) 安装Anaconda3+Pytorch1.7

​ 对于Anaconda3,直接在官网下载安装包,官网链接:https://www.anaconda.com/products/individual-d

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

下载后点击进行安装,一直执行下一步,选择好软件的安装路径,例如本文中的安装路径为D:\ProgramData\Anaconda3,然后耐心等待,等到安装完成

安装默认是官网海外服务器,添加国内镜像源就可以实现快速的Download,清华TUNA提供了Anaconda仓库的镜像

打开Anaconda Prompt (Anaconda3)依次运行以下命令:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/conda config --set show_channel_urls yes

对于Pytorch1.7,打开Anaconda Prompt (Anaconda3)创建虚拟环境,其中需要命名(这个命名随意的,选择能让你开心的命名最重要),本文中使用pytorch1.7作为环境名

conda create -n pytorch1.7 python=3.8

创建了环境以后,激活

conda activate pytorch1.7

激活后暂时不操作且不能关闭,我们需要在所创建的pytorch1.7环境下安装pytorch的1.7版本,本文中选择离线安装(速度更快)

需要下载官方安装包,链接:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/win-64/

此处选择的版本为:pytorch-1.7.1-py3.8_cuda102_cudnn7_0.tar.bz2

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

然后在环境里执行

conda install --offline pytorch-1.7.1-py3.8_cuda102_cudnn7_0.tar.bz2

耐心等待,安装完成即可

(6) 安装CMake3.19.4

​ 本文中安装的是cmake-3.19.4版本,Github链接:https://github.com/Kitware/CMake/releases?after=v3.19.5

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

下载完成后,一直点击下一步执行即可

其中出现下图所示情况,询问是否将CMake添加到 系统环境变量选择第二个(所有用户均可访问的环境变量),最后一行如果勾选,将在桌面创建快捷方式图标,根据个人选择,然后继续点击Next,最后点击Install,等待程序安装完成

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

安装完成之后,重启电脑,然后打开Anaconda Prompt (Anaconda3),输入以下命令

cmake /V

如果出现cmake的版本号,则说明cmake已经安装成功,如果没出现或者报错,则检查是否存在其他较低的版本或者检查是否已经将cmake添加到系统环境变量Path中!

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

2 YOLOv5项目下载及安装

(1) 项目下载

本文中直接下载V4.0源码(方便快捷),Github链接:https://github.com/ultralytics/yolov5/tags

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

下载压缩包,完成后解压到自定义文件夹下

; (2) 权重下载

下载V4.0版本相对应的预训练权重文件

权重文件Github链接:https://github.com/ultralytics/yolov5/releases,本文中使用的权重是yolov5s.pt,下载完成后,将其放到yolov5-4.0\weights目录下

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

(3) 安装依赖库

安装所需库,利用清华镜像源进行安装,再次打开Anaconda Prompt (Anaconda3),激活前面创建的虚拟环境

conda activate pytorch1.7

继续执行以下指令,进入到yolov5-4.0目录下,例如(根据自己的解压路径修改)

d:cd D:\YOLOv5_TensorRT-PeiZhi\yolov5-4.0

在此路径下执行

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

(4) 安装测试

在yolov5-4.0目录下,上述步骤后继续执行

python detect.py --source ./data/images/ --weights weights/yolov5s.pt --conf 0.6

出现以下信息,则测试成功

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

3 TensorRT7下载及安装

(1) 安装包下载

安装包官方链接:https://developer.nvidia.com/tensorrt

进入后操作步骤为:

  • 点击 GET STARTED
  • 进入后点击 Download Now
  • 然后点击 Login
  • 此后选择 *TensorRT 7

此处下载对应的版本

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

得到压缩包:TensorRT-7.0.0.11.Windows10.x86_64.cuda-10.2.cudnn7.6.zip

; (2) 环境配置

  • 在D盘(其他盘也可)新建文件夹,命名为tensorrt_tar,然后将下载的压缩包拷贝到此文件夹下
  • 将压缩文件解压得到TensorRT-7.0.0.11的文件夹,将里边lib文件夹的绝对路径添加到环境变量中,即D:\tensorrt_tar\TensorRT-7.0.0.11\lib
  • 将TensorRT-7.0.0.11目录中的lib文件夹下的.dll文件全部复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin目录下
  • 使用python接口的tensorrt时,需要安装pycuda包 进入网址,下载对应版本的.whl文件:https://www.lfd.uci.edu/~gohlke/pythonlibs/?cm_mc_uid=08085305845514542921829&cm_mc_sid_50200000=1456395916&cm_mc_uid=08085305845514542921829&cm_mc_sid_50200000=1456395916#pycuda , 本文中使用如下.whl文件(供参考)

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

(3) 示例测试

1) VS2019配置

  • 此处对sampleMNIST示例进行测试,进入到D:\tensorrt_tar\TensorRT-7.0.0.11\samples\sampleMNIST目录下,选择sample_mnist.sln文件—>右键点击打开方式—>选择Microsoft Visual Studio 2019打开文件
  • 然后依次点击 项目—>属性—>VC++目录
  • 将路径D:\tensorrt_tar\TensorRT-7.0.0.11\lib分别加入 可执行文件目录库目录
  • 将D:\tensorrt_tar\TensorRT-7.0.0.11\include加入C/C++ —> 常规 —> 附加包含目录
  • 将nvinfer.lib、nvinfer_plugin.lib、nvonnxparser.lib和nvparsers.lib加入链接器–>输入–> *附加依赖项

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

; 2) pgm文件下载

进入到D:\tensorrt_tar\TensorRT-7.0.0.11\data\mnist目录下,运行download_pgms.py文件

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

如若下载失败或太慢,可打开download_pgms.py文件修改下载链接,如下所示

  • 将35行的链接 http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz 修改为 http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz
  • 将38行的链接 http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz 修改为 http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz

3) 安装测试

在VS2019中,将sample_mnist项目选中右键执行生成,事先需选取Release x64平台

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

显示成功后,便点击 调试—>开始执行(不调试)(H)

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

最后生成如下图所示结果,则测试成功(数字是随机的,此处显示的是1,可以不同)

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

; 4 TensorRT加速部署⭐

(1) tensorrtx下载

对于tensorrtx,Github链接:https://github.com/wang-xinyu/tensorrtx/tags,选择与YOLOv5相对应的V4.0版本下载

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

下载完成后,将压缩包放置在D盘并解压,随后修改文件夹名为tensorrtx

; (2) dirent.h下载

Dirent 是一个 C/C++ 编程接口,允许程序员在 Linux/UNIX 下检索有关文件和目录的信息。 该项目为 Microsoft Windows 提供了 Linux 兼容的 Dirent 接口,Github链接:https://github.com/tronkko/dirent

进入选择 Code—>Download ZIP 即可下载,下载后将压缩包解压,进入将include文件夹复制到tensorrtx目录下

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

(3) yolov5s.wts生成

进入D:\tensorrtx\yolov5文件夹中,将gen_wts.py文件复制到开始下载的YOLOv5项目(yolov5-4.0)文件夹中

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

然后操作

稍等一会儿,yolov5s.wts将会生成,存在于文件夹中

(4) CMakeList.txt修改⭐

官方给出的CMakeList是linux版本的,想在Windows系统下运行项目需要修改CMakeList文件。具体修改完成后的内容如下:

复制粘贴即可用,需根据自己路径修改5处(##1—>##5)

cmake_minimum_required(VERSION 2.6)project(yolov5)  set(OpenCV_DIR "D:\\Program Files (x86)\\opencv\\build")

(5) tensorrtx编译运行

在D:\tensorrtx\yolov5目录下新建build文件夹,随后打开cmake-gui软件

确定好源代码路径和生成路径—>点击Configure并设置环境—>点击Finish,等待Configure done—>点击Generate并等待Generate done—>点击Open Project

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

打开项目后,使用Release x64平台生成解决方案,如下图所示,即生成成功

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

; (6) tensorrtx加速命令

由上述步骤可知,项目编译成功,会在D:\tensorrtx\yolov5\build\Release目录下生成yolov5.exe可执行文件

将第(3)步骤中生成的yolov5s.wts复制粘贴到D:\tensorrtx\yolov5\build\Release目录下,打开cmd执行

yolov5.exe -s yolov5s.wts yolov5s.engine s

则会在目录下生成一个yolov5s.engine文件

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

在D:\tensorrtx\yolov5\build目录下,新建samples文件夹,里面存放待检测图像

还是在D:\tensorrtx\yolov5\build\Release目录下,打开cmd执行

yolov5.exe -d yolov5s.engine ../samples

可得到加速后的检测结果

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

(7) 正常与加速检测对比

直接运行原版项目中的detect.py文件进行检测,从结果可看出检测速度很慢

Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)---超详细

两幅图像的检测速度分别为43ms和38ms,而进过TensorRT加速后的检测速度为7ms与7ms,可见加速明显

; 5 总结

到此,利用TensorRT来加速部署YOLOv5这一实战项目已成功实现。

Original: https://blog.csdn.net/weixin_39588099/article/details/119994675
Author: 畅想未来2020
Title: Win10—YOLOv5实战+TensorRT部署+VS2019编译(小白教程~易懂易上手)—超详细

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/682235/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球