[深度学习 - 目标检测] 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
结果展示:

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)