- 基础
参考:[深度学习] yolov5 环境配置
- 安装TensorRT
自用版本:TensorRT-7.2.3.4
https://developer.nvidia.com/tensorrt
- 安装Opencv
自用版本:4.5.2
https://opencv.org/opencv-4-5-2/
2. 源码下载
- yolov5
路径E:/dev/yolov5
https://github.com/ultralytics/yolov5
- tensorrtx
路径:E:/dev/tensorrtx
https://github.com/wang-xinyu/tensorrtx
- 下载文件dirent.h
放置到 tensorrtx/include文件夹下,文件夹需新建.
下载地址 https://github.com/tronkko/dirent
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:Devyolov5路径下,执行如下代码:
python gen_wts.py -w weights/yolov5s.pt -o weights/yolov5s.wts4. 生成 .engine 文件
- 打开E:/Dev/tensorrtx/yolov5路径下的CMakeList.txt文件,配置OpenCV、TensorRT的安装路径;我自己操作时,使用官方默认的CMakeList.txt,build程序后,运行报错:
xxxx CUDA 11.1.targets(785,9): error MSB3721: 命令““C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.1binnvcc.exe” -gencode=arch=compute_52,code=“sm_52,compute_52” xxxx yolov5yololayer.cu"”已退出,返回代码为 1。
详细参考:编译yolov5出错:error MSB3721
解决方案:替换了官方CMakeList.txt文件:
使用CMake工具,编译程序:
CMake出现 Generating done之后,进入到E:Devtensorrtxyolov5build文件下, 用Visual Studio(个人用的2017版)打开yolov5.sln程序,并将运行环境设置为:Release 、x64;选择菜单栏生成 -- > 重新生成解决方案,编译成功后,即可在buildRelease路径下得到yolov5.exe文件;
. 使用cmd ,进入到tensorrtxyolov5buildRelease>路径下,运行一下yolov5.exe,会提示缺少opencv_world452.dll、nvinfer.dll,用Everything软件扫描本机找到相应的文件,拷贝到该目录下即可,同时也可将yolov5m6.wts文件拷贝到此处,在此路径下直接运行命令,生成最终的.engine文件。
E:Devtensorrtxyolov5buildRelease> yolov5.exe -s yolov5m6.wts yolov5m6.engine m65. 推理
- 在E:Devtensorrtxyolov5build路径下新建文件夹sample;将E:Devyolov5dataimages路径下的图片复制到上面sample文件夹下;在E:Devtensorrtxyolov5buildRelease路径下,cmd执行如下命令:
yolov5 -d yolov5m6.engine ../samples
E:Devtensorrtxyolov5buildRelease>yolov5 -d yolov5m6.engine ../samples
结果展示:


![[深度学习] yolov5的TensorRT模型加速 [深度学习] yolov5的TensorRT模型加速](http://www.mshxw.com/aiimages/31/769427.png)
