Ubuntu下编译yolov5出错

文章目录

  • 前言
  • 一、源码下载
  • 二、服务器环境
  • 三、使用步骤
    • 1.模型转换pt->wts
    • 2.编译:
    • 3.模型转换wts->engine:
    • 4.c++推理:
    • 5.python推理:
  • 四、错误记录
    • 1.cmake 时出错
    • 2.make编译时错误
    • 3.make编译时出错
  • 总结


前言

近期,在Ubuntu下用TensorRT推理YOLOV5代码时,出了以下错误,故写本文来记录一下


一、源码下载

YOLOV5:这里
tensorrtx: 这里
注意他们的版本一定一定一定要配套

为保险起见的话也可以在tensorrtx下的yolov5目录里的readme文件里下载对应的版本,如下:
Ubuntu下编译yolov5出错_第1张图片

二、服务器环境

以下环境仅供参考,不一定非要一致,只要互相配套即可。

cuda 11.4
cudnn 8.x (具体版本忘记看了,在官网里下载配套的即可)
TensorRT 8.2

python环境

TensorRT=8.2 (上一步安装好TensorRT时,会在python文件夹下给出对应的whl文件,在我们的python环境下直接pip install即可)
pytorch=1.9
torchvision==0.10.0

其他依赖项pip install -r requirements.txt即可

三、使用步骤

1.模型转换pt->wts

复制tensorrtx的yolov5里的get_wts.py到原yolov5目录下,然后更改里面的参数内容,如pt模型路径,然后运行get_wts.py文件即可。

2.编译:

进入到tensorrtx的yolov5目录下,先将yololayer.h里的类别数改为自己的(如果你是推理自己的模型的话,如果是官方模型直接进行下边操作)

mkdir build
cd build
cmake ..
make

3.模型转换wts->engine:

执行以下命令:

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

sudo可加可不加
xxx.wts是我们在1生成的wts路径
xxx.engine是我们要生成的文件名
s 是我们的模型选型,可以换成l,m,x等

4.c++推理:

执行命令:

sudo ./yolov5 -d xxx.engine xxx

sudo:可加可不加
xxx.engine: 上一步转换成功的engine路径
xxx:测试图片路径,只传文件夹路径即可

5.python推理:

进入到yolov5_trt.py里,更改以下参数:
engine_file_path:模型路径
categories:类别标签
image_dir:测试图片路径
python推理后默认会将结果保存在当前目录的output文件夹下

四、错误记录

1.cmake 时出错

Ubuntu下编译yolov5出错_第2张图片
没有注意,直接进行了make编译,导致出错如下:

请添加图片描述

解决办法:
在CMakeList.txt里的find_package(OpenCV)之前加入:
set(OpenCV_DIR   /home/Downloads/opencv-4.5.1/build)
也就是加入了opencv编译的路径

2.make编译时错误

Ubuntu下编译yolov5出错_第3张图片
解决办法:
在CMakeLists.txt里更改tensorrt的路径,红色区域为默认路径,改为中间两个,也就是自己tensorrt安装路径
Ubuntu下编译yolov5出错_第4张图片

3.make编译时出错

Ubuntu下编译yolov5出错_第5张图片
解决办法

Ubuntu下编译yolov5出错_第6张图片
以上方案二选一,opencv的路径根据自己的路径进行修改


总结

报错记录就到这里,准备的有点仓促,有很多不足,望各位大佬见谅。新的一年开始了,祝各位代码越写越流畅。
Ubuntu下编译yolov5出错_第7张图片

你可能感兴趣的:(ubuntu,深度学习,pytorch)