win10系统搭建yolov5-tensorrt加速全流程记录

因为自己在查阅yolov5使用tensorrt加速资料的过程中走过一些弯路,所以在这里把自己亲手搭建yolov5-tensorrt加速流程进行记录,防止记忆消失~

1、各种环境包下载

tensorrt加速过程是利用gpu对模型计算加速的过程,因此,需要将与之相关的环境包全部下载完成。这里贴出我自己今次环境搭建的主要硬件。

  • 显卡为 1660sTi
  • python 3.9
  • win10

根据上述显卡下载对应的cuda版本、cudnn版本、pytorch版本、torchvision 版本 。这里需要提醒的是,所有环境之间的对应关系要保持兼容,否则会出现意想不到的错误。

重中之中,安装TensorRT。下面是英伟达下载tensorrt的官网,值得注意的是,tensorryt的版本也要注意保持兼容。

下在好tensorrt后,需要将文件夹中的一些文件来回复制粘贴,这个部分好多博主都写过,这里就不再阐述。

还有注意的一点,tensorrt安装后也要配置环境变量。

2、安装opencv

https://opencv.org/releases/?aliasId=l10B6XvDlABIGHJ2I这里是opencv官网,从官网下载好安装包后,进行安装,这个安装和普通软件的安装没有区别,直接点开EXE安装包,一直下一步就可以完成了。

2.1、 添加环境变量

D:\Program\OpenCV\build\x64\vc16\bin
D:\Program\OpenCV\build\x64\vc16\lib
D:\Program\OpenCV\build\include
D:\Program\OpenCV\build\include\opencv2

2.2、查看opencv是否安装成功

win+R后输入cmd,然后在控制台输入opencv_version,如果能正常显示opencv版本则安装成功。

3、YOLOV5项目源码以及编译后的源码下载

4、生成WTS模型

  • 将仓库中的gen_wts.py和下载好的yolov5s.pt权重文件拷贝到yolov5 6.0的目录下

  • 运行下面的命令进行模型的转换
  • python gen_wts.py -w yolov5s.pt -o yolov5s.wts

  • 其中w参数为输入pt模型路径,-o参数为输出wts模型的路径。
  • 运行完成后,会在当前目录下生成一个yolov5s.wts的权重模型,这个模型就是用于之后转换为tensorrt的专用序列化模型。

5、cmake编译

5.1. 生成Makefile

在上面下载的编译好的yolov5源码仓库下新建一个build文件夹。

打开Cmake,源文件选择本仓库目录,build选择刚新建的build目录

修改configure

选择自己需用的Visual Studio版本,以及编译平台,之后点击finish

一段时间之后就可以完成了

5.1.1. 配置CMakeLists.txt

打开CMakeLists.txt,修改OpenCV、TensorRT、dirent.h的目录,其中dirent.h在本仓库的include中,需要注意的,这些路径都必须使用绝对路径,用\来分割路径。

5.1.2. 修改算力

CUDA GPU | NVIDIA 开发者

CUDA GPU | NVIDIA 开发者

具体数值参考上面nvidia官网进行设定

这里RTX 2060的算力是75,所以修改arch=compute_75;code=sm_75

6、源代码编译

6.1. 修改源代码

使用Visual Studio打开项目build文件夹中的sln文件

  • 搜索yololayer.h文件对其进行修改
  • 修改文件中的这些参数为自己的模型类别数、输入大小,
  • 如果使用的是官方预训练权重,那么不用修改。但如果是自己训练的模型不修改的话,之后是会报错的.

static constexpr int CLASS_NUM = 80;
static constexpr int INPUT_H = 640;  // yolov5's input height and width must be divisible by 32.
static constexpr int INPUT_W = 640;

6.2. 生成exe

将界面上方的debug改为Release,然后点击菜单栏处的生成-重新生成yolov5

编译成功后如下图。

可以看到build/release文件夹下已经生成了对应的exe文件了

6.3. 生成engine

  • 将最开始生成的yolov5s.wts模型复制到exe所在的文件夹中,在这个目录中打开cmd输入
 yolov5 -s yolov5s.wts yolov5s.engine s

  • 我们这边使用的是s模型,最后则输入s,同理若为m模型,最后一个参数则需要改成m

  • 此时,程序会将wts转换为engine序列化模型,需要的时间比较久.

编译完成后。

  • 生成engine完成后,会在文件夹下出现yolov5s.engine的模型,

7. 推理

  • 将仓库中的pictures文件夹复制到EXE文件夹项,尝试预测是否正确,输入
yolov5 -d yolov5s.engine ./pictures

里面一共有两张图片,每一张的推理时间仅为4毫秒,也就是250FPS,这个速度可以说相当快了

推理效果

结语

至此,yolov5+tensorrt部署工作完成,最重要的是两点,一个是环境部署,一个是cmakelist的修改。

  • 21
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值