Ubuntu系统+x86架构+配置编译安装使用yolov5-6.0+带有TensorRT硬件加速+封装动态库+C++部署+Qt
学习本篇文章后你会:部署yolov5-6.0版本、模型转换(.pt->.wts->.engine)、将yolov5-6.0封装动态库并得到深度学习推理结果,最后在qt或其他项目中调用使用。
一、准备文件
1.yolov5-6.0.zip
官网下载
网址:
https://github.com/ultralytics/yolov5/tree/v6.0
操作:
点击"Code"下的"Download ZIP"
下载得到yolov5-6.0.zip压缩文件
2.tensorrtx-yolov5-v6.0.zip
官网下载
网址:
https://github.com/wang-xinyu/tensorrtx/tree/yolov5-v6.0
操作:
点击"Code"下的"Download ZIP"
下载得到tensorrtx-yolov5-v6.0.zip压缩文件
3.yolov5s.pt
官网下载
网址:
https://github.com/ultralytics/yolov5/tree/v6.0
向页面查找"YOLOv5s"
YOLOv5n 640 28.4 46.0 45 6.3 0.6 1.9 4.5
YOLOv5s 640 37.2 56.0 98 6.4 0.9 7.2 16.5
YOLOv5m 640 45.2 63.9 224 8.2 1.7 21.2 49.0
YOLOv5l 640 48.8 67.2 430 10.1 2.7 46.5 109.1
YOLOv5x 640 50.7 68.9 766 12.1 4.8 86.7 205.7
YOLOv5n6 1280 34.0 50.7 153 8.1 2.1 3.2 4.6
YOLOv5s6 1280 44.5 63.0 385 8.2 3.6 16.8 12.6
YOLOv5m6 1280 51.0 69.0 887 11.1 6.8 35.7 50.0
YOLOv5l6 1280 53.6 71.6 1784 15.8 10.5 76.8 111.4
操作:
点击"YOLOv5s"即可下载yolov5s.pt文件
4.将文件按以下顺序存放
新建"TensorRT"目录
mkdir TensorRT
"yolov5-6.0.zip"放入TensorRT目录
"tensorrtx-yolov5-v6.0.zip"放入TensorRT目录
"yolov5s.pt"放入TensorRT目录
存放好后将压缩文件解压即可
二、更新、安装基础依赖
sudo apt update && \
sudo apt upgrade -y && \
sudo apt install -y build-essential cmake
三、安装依赖
1.nvidia驱动、cuda、cudnn、tensorRT
参考我的博客: 『heqingchun-ubuntu系统下安装nvidia显卡驱动3种方法』
参考我的博客: 『heqingchun-ubuntu系统下安装cuda与cudnn』
参考我的博客: 『heqingchun-ubuntu使用TensorRT配置』
2.pytorch
参考我的博客: ubuntu开发环境配置(cuda、cudnn、ffmpeg、opencv、darknet-master、TensorRT、python、pytorch、MySql、qt(armv8交叉编译))
第"九"项
3.requirements.txt
解压下载的“yolov5-6.0.zip”压缩文件,进入目录
unzip yolov5-6.0.zip
cd yolov5-6.0
执行:
pip3 install -r requirements.txt
如果遇到问题:ERROR: pandas 2.0.3 has requirement python-dateutil>=2.8.2, but you’ll have python-dateutil 2.7.3 which is incompatible.则执行:
pip3 install --upgrade python-dateutil
四、开始模型转换
1.yolov5.pt转换为yolov5.wts
将yolov5.pt文件与tensorrtx-yolov5-v6.0/yolov5目录下的gen_wts.py文件放置到yolov5-6.0目录下
cd TensorRT
cp yolov5s.pt tensorrtx-yolov5-v6.0/yolov5/gen_wts.py yolov5-6.0
转换
python3 yolov5-6.0/gen_wts.py --w yolov5-6.0/yolov5s.pt --o yolov5s.wts
在TensorRT目录生成yolov5s.wts文件
2.yolov5s.wts转换为yolov5s.engine
修改cmake文件
cd TensorRT
gedit tensorrtx-yolov5-v6.0/yolov5/CMakeLists.txt
修改tensorrt头文件与库文件目录为当前正确目录
原:
# tensorrt
include_directories(/usr/include/x86_64-linux-gnu/)
link_directories(/usr/lib/x86_64-linux-gnu/)
新:
# tensorrt
include_directories(/home/heqingchun/soft/TensorRT/TensorRT-8.4.3.1/include)
link_directories(/home/heqingchun/s