[深度学习 - 目标检测] yolov5的TensorRT模型加速
·
1. 环境配置
- 基础
- 安装TensorRT
- 自用版本:TensorRT-7.2.3.4
- 安装Opencv
- 自用版本:4.5.2
2. 源码下载
- yolov5
- 路径
E:/dev/yolov5
- tensorrtx
- 路径:
E:/dev/tensorrtx
- 下载文件dirent.h
- 放置到
tensorrtx/include
文件夹下,文件夹需新建.
3. 生成 .wts 文件
- 下载权重文件:
yolov5m6.pt
,拷贝到E:/dev/yolov5
路径下的weights
文件夹中; - 拷贝
E:/dev/tensorrtx/yolov5
路径下的文件:gen_wts.py
,到E:/dev/yolov5
路径下; - 打开Anaconda Prompt,激活yolov5 环境:
conda activate yolov5
- 进入到
E:\Dev\yolov5
路径下,执行如下代码:
python gen_wts.py -w weights/yolov5s.pt -o weights/yolov5s.wts
4. 生成 .engine 文件
- 打开
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。
-
解决方案:替换了官方
CMakeList.txt
文件:
-
使用CMake工具,编译程序:
-
CMake出现
Generating done
之后,进入到E:\Dev\tensorrtx\yolov5\build
文件下, 用Visual Studio(个人用的2017版)打开yolov5.sln
程序,并将运行环境设置为:Release 、x64
;选择菜单栏生成 -- > 重新生成解决方案
,编译成功后,即可在\build\Release
路径下得到yolov5.exe
文件; -
. 使用cmd ,进入到
tensorrtx\yolov5\build\Release>
路径下,运行一下yolov5.exe
,会提示缺少opencv_world452.dll
、nvinfer.dll
,用Everything
软件扫描本机找到相应的文件,拷贝到该目录下即可,同时也可将yolov5m6.wts
文件拷贝到此处,在此路径下直接运行命令,生成最终的.engine
文件。
E:\Dev\tensorrtx\yolov5\build\Release> yolov5.exe -s yolov5m6.wts yolov5m6.engine m6
5. 推理
- 在
E:\Dev\tensorrtx\yolov5\build
路径下新建文件夹sample
; - 将
E:\Dev\yolov5\data\images
路径下的图片复制到上面sample
文件夹下; - 在
E:\Dev\tensorrtx\yolov5\build\Release
路径下,cmd
执行如下命令:
yolov5 -d yolov5m6.engine ../samples
E:\Dev\tensorrtx\yolov5\build\Release>yolov5 -d yolov5m6.engine ../samples
结果展示:
更多推荐
已为社区贡献1条内容
所有评论(0)