YOLOv5 Tensorrt 部署 Python/C++

YOLOv5 Tensorrt 部署

项目简介

  • 基于Tensorrt加速Yolov5
  • 支持Windows10
  • 支持Python/C++

环境说明

  • Tensorrt 8.2.1.8
  • Cuda 10.2
  • Cudnn 8.2.1
  • Opencv 3.4.5
  • Cmake 3.17.1
  • VS 2019
  • GTX1650

相关部分文件下载方式

Opencv :opencv网址
CUDA:CUDA网址
cuDNN:cudnn网址
其他文件:百度云盘
提取码:ngsx

运行案例(Windows)

从yolov5 网址(上文提到压缩包中有5.0版本)下载,这里以yolov5s.pt为例。下载yolov5源代码和本仓库代码

1. 生成WTS模型

将仓库中的gen_wts.py和刚才下载好的yolov5s.pt拷贝至yolov5的目录下
在这里插入图片描述在该文件cmd后运行

python gen_wts.py -w yolov5s.pt -o yolov5s.wts

ps : -w参数为输入pt模型路径,-o参数为输出wts模型的路径。

在运行后,在同级文件夹同生成,这个模型是之后转换为tensorrt专用的序列化模型
在这里插入图片描述

Cmake过程

在本仓库(Yolov5_Tensorrt_Win10-master)目录下新建一个build文件夹
在这里插入图片描述打开Cmake,选择本仓库目录,以及新建的build目录,再点击左下方configure按钮。
在这里插入图片描述选择自己的Visual Studio版本,如2019,第二个框中选择x64,之后点击finish,会自动加载CMakeLists.txt,添加库,正常运行如下(若出现红色警告,则需要修改框中信息)一切正常之后点击generate,最后点击open project。
在这里插入图片描述

编译

打开项目后,在左侧解决方案资源管理器中,一次展开yolov5,header files,打开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;

修改为自己的模型类别数目,输入大小!!
在这里插入图片描述
将界面上方Debug改为Release,先重新生成下解决方案(有时候不用),之后右键yolov5项目,点击重新生成。
在这里插入图片描述编译成功,没有报错!编译成功会打开build/Release,可以看到生成的exe可执行文件。
在这里插入图片描述

C++运行

将第一步生成的yolov5s.wts模型复制到exe的文件夹中,在这个目录下打开cmd输入

yolov5 -s yolov5s.wts yolov5s.engine s

ps:使用的是s模型,最后为输入s。

69c.png)正常运行,此时程序在将wts转换为engine序列化模型,需要等待预计10-20分钟左右。生成engine完成后,会在文件夹下出现yolov5s.engine模型。将本仓库的pictures文件夹复制到exe文件夹下,尝试预测是否正确,输入:

yolov5 -d yolov5s.engine ./pictures

在这里插入图片描述
查看保存的图片,受否输出正确的框。

在这里插入图片描述

Python部署

在C++部署正确之后,尝试使用python部署。C++的代码预测只能通过文件夹内的图片,对于视频流或摄像头预测需要修改代码,且目前很多项目都是基于python语言完成,故本仓库提供了python的部署方法。在刚才的C++工程中右键yolov5,点击属性。改为DLL,第一个需要手动输入。右键项目,重新生成,文件夹下会出现yolov5.dll,将本仓库的python_trt.py复制到dll文件夹下。
在这里插入图片描述
在这里插入图片描述直接运行python_trt.py即可,窗口展示(可修改为摄像头)。

#读摄像头视频与展示
cap=cv2.VideoCapture(0)#0--主摄像头  1....n
cap.set(3,100)#长
cap.set(4,100)#宽
cap.set(10,100)#亮度

在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值