[深度学习 - 目标检测] yolov5的TensorRT模型加速

1. 环境配置

  1. 基础

参考:[深度学习] yolov5 环境配置

  1. 安装TensorRT
  • 自用版本:TensorRT-7.2.3.4

https://developer.nvidia.com/tensorrt

  1. 安装Opencv
  • 自用版本:4.5.2

https://opencv.org/opencv-4-5-2/


2. 源码下载

  1. yolov5
  • 路径E:/dev/yolov5

https://github.com/ultralytics/yolov5

  1. tensorrtx
  • 路径:E:/dev/tensorrtx

https://github.com/wang-xinyu/tensorrtx

  1. 下载文件dirent.h
  • 放置到 tensorrtx/include文件夹下,文件夹需新建.

下载地址 https://github.com/tronkko/dirent


3. 生成 .wts 文件

  1. 下载权重文件:yolov5m6.pt,拷贝到E:/dev/yolov5路径下的weights文件夹中;
  2. 拷贝E:/dev/tensorrtx/yolov5路径下的文件:gen_wts.py,到E:/dev/yolov5路径下;
  3. 打开Anaconda Prompt,激活yolov5 环境:
conda activate yolov5
  1. 进入到E:\Dev\yolov5路径下,执行如下代码:
python gen_wts.py -w weights/yolov5s.pt -o weights/yolov5s.wts

4. 生成 .engine 文件

  1. 打开E:/Dev/tensorrtx/yolov5路径下的CMakeList.txt文件,配置OpenCV、TensorRT的安装路径;我自己操作时,使用官方默认的CMakeList.txt,build程序后,运行报错:

xxxx CUDA 11.1.targets(785,9): error MSB3721: 命令““C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin\nvcc.exe” -gencode=arch=compute_52,code=“sm_52,compute_52” xxxx \yolov5\yololayer.cu"”已退出,返回代码为 1。

  1. 使用CMake工具,编译程序:

  2. CMake出现 Generating done之后,进入到E:\Dev\tensorrtx\yolov5\build文件下, 用Visual Studio(个人用的2017版)打开yolov5.sln程序,并将运行环境设置为:Release 、x64;选择菜单栏生成 -- > 重新生成解决方案,编译成功后,即可在\build\Release路径下得到yolov5.exe文件;

  3. . 使用cmd ,进入到tensorrtx\yolov5\build\Release>路径下,运行一下yolov5.exe,会提示缺少opencv_world452.dllnvinfer.dll,用Everything软件扫描本机找到相应的文件,拷贝到该目录下即可,同时也可将yolov5m6.wts文件拷贝到此处,在此路径下直接运行命令,生成最终的.engine文件。

E:\Dev\tensorrtx\yolov5\build\Release>  yolov5.exe -s yolov5m6.wts yolov5m6.engine m6

5. 推理

  1. E:\Dev\tensorrtx\yolov5\build路径下新建文件夹sample
  2. E:\Dev\yolov5\data\images路径下的图片复制到上面sample文件夹下;
  3. E:\Dev\tensorrtx\yolov5\build\Release路径下,cmd执行如下命令:
  • yolov5 -d yolov5m6.engine ../samples
E:\Dev\tensorrtx\yolov5\build\Release>yolov5 -d yolov5m6.engine ../samples

结果展示:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值