Windows+ONNX+TensorRT+YOLOV8+C++环境搭建

需求

跑通了Python环境下的Yolov8,但是考虑到性能,想试试C++环境下的优化效果。

环境

Windows11

TensorRT8.6.1.6

CUDA 12.0

cudnn 8.9.7

opencv4.5.5

VS2019

参考目录

本次搭建主要参考以下博客和视频。第一个博客以下简称“博客1”,第二个视频简称“视频1”,第三个视频简称“视频2”。

win10下 yolov8 tensorrt模型部署_tensorrt-8.4.2.4-CSDN博客

【实战】win10下yolov8 tensorrt 部署_哔哩哔哩_bilibili

yolov8 tensorrt 部署自己训练的模型_哔哩哔哩_bilibili

步骤

之前已经安装了VS2019、CUDA12.0、cudnn 8.9.7,所以这几个模块安装略过。可参考博客1。

安装TensorRT

因为我本地安装的CUDA版本是12.0,所以我找了匹配的TensorRT的版本,装之前因为和上面博客中的版本不匹配,还担心后面是否能顺利跑起来,哈哈

解压,然后配置环境变量,根据自己实际路径,详细参考博客1,这里不再赘述。

安装OpenCV 

下载地址:Releases - OpenCV

我选择的是与博客1中相同的版本。其他解压,配置环境变量参考博客1。

创建属性表

创建一个空工程,我这里起名testYoloV8。这里遇到一个小坑,其实怪自己英语水平差。我的VS2019是英文的,这个属性管理器窗口,我一顿找,先是按照View->Other Windows->Properties Window,打开发现和博客1的界面不一样。后来才发现,应该是View->Property Manager这个窗口。

按照博客1中配置好各个属性表,然后添加到工程中,最后长下面这样:

这里在创建TensorRT的属性表的时候,我把lib下面所有的lib都加进去了,怕新版本和之前的不一样。

下载YOLOV8 onnx,并转成trt

我先下载了博客1中提供的Yolov8的onnx文件,然后用trtexec.exe转成了对应的trt文件,具体命令参考博客1。

配置C++工程

在上面的testYoloV8工程中进行配置,参考视频1。配置完成后,build出现1个链接错误,

查看对应的函数splitToStringVec定义在TensorRT-8.6.1.6/samples/common中的sampleUtils.h sampleUtils.cpp中,然后就把这两个文件也加到资源文件中。在build,成功了!撒花~~~

测试

在工程中设置编译命令,成功!

--model=C:/YOLOV8/ThirdParty/yolov8n.trt --size=640 --batch_size=1 --img=E:/Work/YOLO/data/bus.jpg --show --savePath E:/

使用自己的训练模型

1 首先,把自己的pt模型文件转为onnx,遇到错误,

ImportError: DLL load failed while importing onnx_cpp2py_export: 动态链接库(DLL)初始化例程失败。

解决:参考文章

ImportError: DLL load failed while importing onnx_cpp2py_export: 动态链接库(DLL)初始化例程失败。_dll load failed while importing onnx cpp2py export-CSDN博客

2 把上一步转的onnx转成trt,又遇到错误,

Your ONNX model has been generated with INT64 weights, while TensorRT does not natively support INT64. Attempting to cast down to INT32.

然后,按照网上说的安装onnx-simplifier,安装失败,

然后查看了下本地的onnx是1.16.2,卸载了这个版本,安装了1.16.1版本.

pip uninstall onnx
pip install onnx=1.16.1

安装成功后,重新把pt导出onnx格式。

再把onnx转成trt格式,参考博客1。

3 C++工程中使用自己的trt运行。

需要先按照视频2修改一些配置,主要是类别和颜色。重新build,然后添加debugging命令,运行就OK了。

结论

batch_size=1的时候,C++ TensorRT的环境下比Python环境下,GPU利用率降低5%左右,如果batch_size=8,GPU能降低50%。

感谢各位大佬,尤其感谢此次搭建环境主要参考的文章和视频的作者 韩师兄!

  • 23
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值