ubuntu18下使用TensorRT对yolov5加速记录

ubuntu18下使用TensorRT对yolov5加速记录

默认已经安装好了Vs2015,cuda,cudnn

一,安装TensorRT

1.对应自己的Cuda 与Cudnn版本

nvcc -V
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

我的版本信息如下
在这里插入图片描述

2.下载TensorRT
下载链接TensorRT

下载对应版本即可
3.安装TensorRT
参考:教程

二,使用tensorRT加速LeNet验证

主要步骤参考:https://github.com/wang-xinyu/tensorrtx/blob/master/tutorials/getting_started.md
补充:
1.cp [PATH-OF-pytorchx]/pytorchx/lenet/lenet5.wts .
在这一步中, [PATH-OF-pytorchx]并不是你的pytorch安装路径,应该是在上一步中git clone的pytorchx文件夹路径。觉得麻烦,也可以直接复制文件到对应文件夹。
2.需要修改tensorrtx/lenet/CMakeLists.txt内容

include_directories(/usr/include/x86_64-linux-gnu/)
link_directories(/usr/lib/x86_64-linux-gnu/)

修改为

include_directories(/home/xxxx/TensorRT-6.0.1.5/include/)
link_directories(/home/xxxx/TensorRT-6.0.1.5/targets/x86_64-linux-gnu/lib/)

即修改为你自己的trnsorRT的路径

三,使用TensorRT加速yolov5

1.
1)下载yolov5文件

此处要注意下载版本的问题,尤其是之后需要下载对应的.pt文件。yolov5目前已经更新到了V4版本,也可以复制修改这个链接:https://github.com/ultralytics/yolov5/releases/download/v3.0/yolov5s.pt
只需要修改v3.0处对应版本就行,进行下载。
2)下载编译库:https://github.com/wang-xinyu/tensorrtx

2.生成yolov5s.wts
拷贝tensorrtx/yolov5/gen_wts.py到yolov5文件夹下,并将.pt文件放置于weights文件夹下。运行gen_wts.py,生成yolov5s.wts文件。
在这里插入图片描述
3.编译yolov5
1).将yolov5s.wts文件拷贝到tensorrtx/yolov5文件夹下
2).更新一下 yololayer.h中的类别信息,当然要是你并没有训练自己的yolov5模型的话,使用默认的即可。CLASS_NUM=80
3)CMakeLists.txt文件类似上面修改一下
4)tensorrtx/yolov5文件夹输入

mkdir build
cd build
cmake ..
make

make时遇到的问题:
问题1:

tensorrtx/yolov5/calibrator.cpp:4:10: fatal error: opencv2/dnn/dnn.hpp: 没有那个文件或目录
 #include <opencv2/dnn/dnn.hpp>

解决办法:原因是因为没有安装opencv和opencv的dnn模块。需要重新安装opencv+OpenCV-contrib。当然这又是一段辛酸经历!具体参考我的另一篇博客
安装结束后重新编译即可。
问题2:

/workspace/tensorrtx/yolov5/yololayer.h:6:10: fatal error: NvInfer.h: No such file or directory
 #include "NvInfer.h"

解决办法:在tensorrt_release/include文件夹下打开终端,输入

sudo cp -r /XXXX/TensorRT-6.0.1.5/include/* /usr/local/include/tensorrt/

tensorrt_release:为tensorRt的安装地址。如果/usr/local/include/下没有tensorrt文件夹的话,直接复制文件到include文件夹下也可以。
问题3:

Linking CXX shared library libmyplugins.so
/usr/bin/ld: cannot find -lnvinfer
collect2: error: ld returned 1 exit status

解决方法:
tensorrt_release/lib文件夹下开启终端,输入

sudo cp -r /home/jun/TensorRT-6.0.1.5/include/* /usr/local/include/

路径修改为自己的就可以。
4.使用Yolov5
1)最开始时,使用命令:

sudo ./yolov5 -s yolov5s.wts yolov5s.engine s

进行engine文件生成,但出现如下问题:

arguments not right!
./yolov5 -s  // serialize model to plan file
./yolov5 -d ../samples  // deserialize plan file and run inference

原因是因为我使用的是yolov5-v3.0版本代码,具体情况参考问题
更换对应版本代码即可。
打开对应tensorrtx/yolov5文件夹下的READMI.md,参考对应指令即可。
2).输入

sudo ./yolov5 -s

开始生成engine文件。如图
在这里插入图片描述
继续输入指令

sudo ./yolov5 -d  samples_path

samples_path为需要检测图像的文件夹地址
在这里插入图片描述
接下来继续尝试,使用利用tensorRT对自己的yolov5模型进行加速处理。

  • 7
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 24
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小俊俊的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值