【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署

这篇具有很好参考价值的文章主要介绍了【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文全文参考文章为 win10下 yolov8 tensorrt模型加速部署【实战】
本文使用的代码仓库为 TensorRT-Alpha

注:其他 Yolov8 TensorRT 部署项目:YOLOv8 Tensorrt Python/C++部署教程

一、前期准备工作

安装Visual Studio 2019或者Visual Studio 2022、Nvidia驱动
安装cuda,cudnn、opencv、tensorrt并进行相应的环境配置,这里不做配置教程

二、属性表的创建

制作属性表的3个步骤:
1. 拷贝include路径
2. 拷贝lib路径,外加设置dll到系统环境变量
3. 拷贝lib文件名称

打开 VS 2019,创建新项目 Yolov8_TensorRT
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署

2.1 创建OpenCV属性表

【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
如上图将项目设置为 Debug x64 或者 Release x64 模式即可

接着切换到 属性管理器 ,这里以 Release x64 为例,右键选择 添加新项目属性表,命名为 OpenCV_ReleaseX64.props
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
接下来要对属性表进行编辑,双击建好的属性表,主要编辑内容为:
通用属性 -> VC++目录 -> 包含目录库目录 以及 链接器-> 输入 -> 附加依赖项
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
首先对 包含目录 进行编辑,这里将 OpenCV 头文件路径拷贝进去,并确定
路径如下:

path/to/opencv/build/include
path/to/opencv/build/include/opencv2

【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
接下来,对 库目录 进行编辑,将库路径拷贝进去,并确定
路径如下:

path/to/opencv/build/x64/vc15/lib

【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
然后对 链接器-> 输入 -> 附加依赖项 进行编辑,将opencv_world460.lib 添加进去
只需要文件名,不同版本文件名不一样,我OpenCV版本是4.6.0所以这里是460
该文件本地路径是 opencv/build/x64/vc15/lib/opencv_world460.lib
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
最后点击 应用确定 即可

结束完这个操作后,Release x64OpenCV 属性表 就配置完成了

实现Debug x64OpenCV 属性表,只需要将最后 链接器-> 输入 -> 附加依赖项 文件名改为 opencv_world460d.lib ,其余操作和上面流程一致

2.2 创建TensorRT属性表

同样在 Release | X64 下右键选择 添加新项目属性表,命名为 TensorRT_X64.props
OpenCV属性表 类似,需要编辑的内容为:
通用属性 -> VC++目录 -> 包含目录库目录 以及 链接器-> 输入 -> 附加依赖项

首先对 包含目录 进行编辑,这里将 TensorRT 头文件路径拷贝进去,头文件路径如下:

path/to/TensorRT-8.4.3.1/include
path/to/TensorRT-8.4.3.1/samples/common
path/to/TensorRT-8.4.3.1/samples/common/windows

【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
接下来,对 库目录 进行编辑,将库路径拷贝进去
文件路径如下:

path/to/TensorRT-8.4.3.1/lib

【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署

然后对 链接器-> 输入 -> 附加依赖项 进行编辑,文件名为:

# 文件目录 path/to/TensorRT-8.4.3.1/lib
nvinfer.lib
nvinfer_plugin.lib
nvonnxparser.lib
nvparsers.lib

【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署

最后,修改 TensorRT属性表通用属性 ->C/C++ -> 预处理器 -> 预处理器定义 -> 添加指令:_CRT_SECURE_NO_WARNINGS
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
到此,TensorRT属性表配置完成

2.3 创建CUDA属性表

CUDA属性表直接使用官方的,路径为:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\extras\visual_studio_integration\MSBuildExtensions\CUDA 11.6.props


这样,所有的属性表就配置完成了

三、YOLOv8 模型部署

3.1 导出训练权重的 onnx 文件

进入YOLOv8的项目中使用以下命令导出 onnx 文件

 yolo export model=weights/Animal/animal.pt format=onnx dynamic=True simplify=True

【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署

3.2 使用 TensorRT 编译 onnx 文件

使用以下命令对onnx文件进行编译

D:/TensorRT-8.4.3.1/bin/trtexec.exe --onnx=./weights/Animal/animal.onnx --saveEngine=./weights/Animal/animal.trt --buildOnly --minShapes=images:1x3x640x640 --optShapes=images:4x3x640x640 --maxShapes=images:8x3x640x640

【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署

3.3 编译运行

先下载 TensorRT-Alpha

git clone https://github.com/FeiYull/TensorRT-Alpha.git
3.3.1设置项目文件

TensorRT-Alpha/yolov8 中选中的文件拷贝到项目的 源文件
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
TensorRT-Alpha/utils 中选中的文件拷贝到项目的 头文件
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
最后将TensorRT-8.4.3.1/samples/common 下的 logger.cpp、sampleOptions.cpp 文件拷贝到项目的 资源文件【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
接下来设置 生成依赖项,选择 CUDA 11.6(若没有,见下文 遇到的问题 中有解决方案)
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
然后设置 NVCC 编译 .cu及其对应头文件
选择下图中框选的文件右键 属性->项类型 更改为 CUDA C/C++ ,然后点击应用、确定即可
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
最后,右键 Yolov8_TensorRT -> 属性 -> 配置属性 -> 高级 -> 字符集,设置为 未设置
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
接着点击 生成 -> 生成解决方案,直到成功
(这里可能会出现问题: 由于找不到 opencv_world460d.dll, 无法执行代码,重新安装程序可能会解决此问题,见下文 遇到的问题 中有解决方案)
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
上述所有步骤都成功完成后,即可设置命令行参数,编译运行啦

3.3.2 编译运行

运行前先修改为自己的 类别数和类别名
类别数app_yolov8.cpp 中修改
类别名utils.h 中修改
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
使用如下命令进行图像的推理

--model=E:/Git_Projects/ultralytics/weights/Animal/animal.trt --size=640 --batch_size=1  --img=E:/Data/Animal/27.jpg  --savePath=E:/Data/Animal/Animal_27 # --show

右键项目 -> 属性 -> 属性配置 -> 调试 -> 命令参数,将上述命令添加进去
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
最后,点击 本地Windows调试器 即可
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
命令行推理

# 推理图片
./Yolov8_TensorRT.exe --model=path/to/xxx.trt --size=640 --batch_size=1 --img=path/to/xxx.jpg --show --savePath=path/to/xxx
./Yolov8_TensorRT.exe --model=path/to/xxx.trt --size=640 --batch_size=8 --img=path/to/xxx.jpg --show --savePath=path/to/xxx

# 推理视频
./Yolov8_TensorRT.exe --model=path/to/xxx.trt --size=640 --batch_size=8 --video=path/to/xxx.mp4 --show --savePath=../

# 在线推理相机视频
./Yolov8_TensorRT.exe --model=path/to/xxx.trt --size=640 --batch_size=2 --cam_id=0  --show

## 1280
# infer camera
./Yolov8_TensorRT.exe --model=path/to/xxx.trt --size=1280 --batch_size=2 --cam_id=0  --show

四、推理效果

【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署

五、可能遇到的问题

5.1 在对项目设置 生成依赖项,未出现 CUDA 版本选项

【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
解决方法:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\extras\visual_studio_integration\MSBuildExtensions 下的4个文件全部复制到
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations 即可解决问题
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署

5.2 由于找不到 opencv_world460d.dll,无法执行代码,重新安装程序可能会解决此问题

解决方法:
将 opencv 安装路径 path/to/opencv/build/x64/vc15/bin 中所有后缀是 .dll 的应用程序扩展复制到 C:/Windows/System32 中,即可解决
【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署
文章来源地址https://www.toymoban.com/news/detail-515101.html

到了这里,关于【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Jetson AGX Xavier实现TensorRT加速YOLOv5进行实时检测

    link 上一篇:Jetson AGX Xavier安装torch、torchvision且成功运行yolov5算法 下一篇:Jetson AGX Xavier测试YOLOv4         由于YOLOv5在Xavier上对实时画面的检测速度较慢,需要采用TensorRT对其进行推理加速。接下来记录一下我的实现过程。  如果还没有搭建YOLOv5的python环境,按照下文步骤

    2024年02月10日
    浏览(27)
  • 【YOLO系列】YOLOv8算法(尖端SOTA模型)

    在这里粗略回顾一下YOLOv5,这里直接提供YOLOv5的整理的结构图吧 Backbone:CSPDarkNet结构,主要结构思想的体现在C3模块,这里也是梯度分流的主要思想所在的地方; PAN-FPN:双流的FPN,必须香,也必须快,但是量化还是有些需要图优化才可以达到最优的性能,比如cat前后的scal

    2024年02月02日
    浏览(27)
  • 【jetson nano】jetson nano环境配置+yolov5部署+tensorRT加速模型

    断断续续地前后花了一个多星期配置环境以及部署模型,期间也报了无数错误,参考了很多文档,求助了身边的朋友,因此尽可能详细的记录一下这个过程。 此处感谢Xnhyacinth在配置过程中对我的帮助哈哈哈꒰ঌ( ⌯’ \\\'⌯)໒꒱ 我主机上的环境是python3.9,cuda11.6 jetson nano环境

    2023年04月12日
    浏览(39)
  • windows使用YOLOv8训练自己的模型(0基础保姆级教学)

    目录 前言 一、使用labelimg制作数据集 1.1、下载labelimg 1.2、安装库并启动labelimg 1.4、制作YOLO数据集 二、使用YOLOv8训练模型 2.1、下载库——ultralytics (记得换源) 2.2、数据模板下载 2.3、开始训练 1、启动train.py,进行训练 2、我们可以直接使用命令进行训练 三、其他问题 1、训

    2023年04月16日
    浏览(38)
  • 【YOLO】YOLOv8实操:环境配置/自定义数据集准备/模型训练/预测

    源码链接:https://github.com/ultralytics/ultralytics yolov8和yolov5是同一作者,相比yolov5,yolov8的集成性更好了,更加面向用户了 YOLO命令行界面(command line interface, CLI) 方便在各种任务和版本上训练、验证或推断模型。CLI不需要定制或代码,可以使用yolo命令从终端运行所有任务。 如果

    2023年04月24日
    浏览(38)
  • Ubuntu环境下C++使用onnxruntime和Opencv进行YOLOv8模型部署

    目录 环境配置 系统环境 项目文件路径  文件环境  config.txt  CMakeLists.txt type.names  读取config.txt配置文件 修改图片尺寸格式 读取缺陷标志文件 生成缺陷随机颜色标识 模型推理 推理结果获取 缺陷信息还原并显示 总代码 Ubuntu18.04 onnxruntime-linux-x64 1.12.1:https://github.com/microsof

    2024年01月17日
    浏览(31)
  • yolov8n 瑞芯微RKNN、地平线Horizon芯片部署、TensorRT部署,部署工程难度小、模型推理速度快

      特别说明:参考官方开源的yolov8代码、瑞芯微官方文档、地平线的官方文档,如有侵权告知删,谢谢。   模型和完整仿真测试代码,放在github上参考链接 模型和代码。   因为之前写了几篇yolov8模型部署的博文,存在两个问题:部署难度大、模型推理速度慢。该篇解

    2024年01月16日
    浏览(47)
  • 【YOLOv8】实战三:基于LabVIEW TensorRT部署YOLOv8

    ‍‍🏡博客主页: virobotics的CSDN博客:LabVIEW深度学习、人工智能博主 🎄所属专栏:『LabVIEW深度学习实战』 🍻上期文章: 【YOLOv8】实战二:YOLOv8 OpenVINO2022版 windows部署实战 📰如觉得博主文章写的不错或对你有所帮助的话,还望大家多多支持呀! 欢迎大家✌关注、👍点赞

    2024年02月07日
    浏览(30)
  • YOLOv8改进 | 主干篇 | 低照度增强网络PE-YOLO改进主干(改进暗光条件下的物体检测模型)

    本文给大家带来的改进机制是低照度图像增强网络 PE-YOLO 中的PENet,PENet通过 拉普拉斯金字塔 将图像分解成多个分辨率的组件,增强图像细节和低频信息。它包括一个 细节处理模块(DPM) ,用于通过上下文分支和边缘分支增强图像细节,以及一个 低频增强滤波器(LEF) ,以

    2024年01月19日
    浏览(34)
  • 【目标检测】YOLOv5推理加速实验:TensorRT加速

    前两篇博文分别讨论了YOLOv5检测算法的两种加速思路:采用多进程或批量检测,不过效果均收效甚微。本问将讨论使用TensorRT加速以及半精度推理/模型量化等优化策略对检测加速的实际影响。 测试图片分辨率:13400x9528 GPU:RTX4090 Cuda:11.7 YOLOv5版本:最新版(v7.0+) 检测策略:将

    2024年02月05日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包