[C++]使用C++部署yolov9的tensorrt模型进行目标检测

news/2024/12/6 19:30:53/

部署YOLOv9的TensorRT模型进行目标检测是一个涉及多个步骤的过程,主要包括准备环境、模型转换、编写代码和模型推理。

首先,确保你的开发环境已安装了NVIDIA的TensorRT。TensorRT是一个用于高效推理的SDK,它能对TensorFlow、PyTorch等框架训练的模型进行优化,从而加速模型在NVIDIA GPU上的运行速度。

接下来,你需要将YOLOv9的模型转换为TensorRT模型。这一步涉及使用TensorRT的API来解析原始的YOLOv9模型,并将其转换为TensorRT可以识别的格式。转换过程中,TensorRT会进行一系列的优化,包括层融合、精度校准等,以提高推理速度。

在模型转换完成后,你可以开始编写C++代码来加载并运行TensorRT模型。你需要使用TensorRT提供的C++ API来加载模型,并创建执行上下文。然后,你可以将输入数据(例如,来自摄像头的实时视频流或图像文件)传递给模型进行推理。

在模型推理过程中,TensorRT会执行一系列的计算操作,最终输出目标检测的结果。这些结果通常包括目标物体的类别、置信度以及边界框的坐标。你可以将这些结果显示在原始图像上,或者使用其他方式进行处理,如发送到另一个系统进行后续分析。

总之,使用C++部署YOLOv9的TensorRT模型进行目标检测是一个复杂但高效的过程。通过TensorRT的优化和加速,你可以在NVIDIA GPU上实现快速、准确的目标检测。这对于实时监控系统、自动驾驶等领域具有重要的应用价值。

安装步骤

  1. 下载p yolov9 and download yolov9-c.pt 模型.
  2. 转到onnx模型:
  • 首先需要修改 utils/general.py 在yolov9官方地址 教程.
  • 导出模型
python export.py --weights yolov9-c.pt --include onnx
  1. 转换到tensorrt模型:
trtexec.exe --onnx=yolov9-c.onnx --explicitBatch --saveEngine=yolov9-c.engine --fp16
  1. 在CMakeLists.txt设置 opencv和 tensorrt 路径:
# Find and include OpenCV
set(OpenCV_DIR "your path to OpenCV")
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})# Set TensorRT path if not set in environment variables
set(TENSORRT_DIR "your path to TensorRT")
  1. 编译:
mkdir build
cd build
cmake ..
cmake --build . --config Release

7.使用:

预测图片

yolov9-tensorrt.exe yolov9-c.engine test.jpg

预测文件夹

yolov9-tensorrt.exe yolov9-c.engine data

预测视频

yolov9-tensorrt.exe yolov9-c.engine test.mp4 # the video path

测试环境

  • TensorRT 8.4.2.4
  • CUDA 11.7+cudnn8.8.0
  • Windows 10

【演示视频】

使用C++部署yolov9的tensorrt模型进行目标检测_哔哩哔哩_bilibili测试环境TensorRT 8.4.2.4CUDA 11.7+cudnn8.8.0Windows 10, 视频播放量 1、弹幕量 0、点赞数 2、投硬币枚数 0、收藏人数 0、转发人数 0, 视频作者 未来自主研究中心, 作者简介 未来自主研究中心,相关视频:又一篇王炸论文登场!目标检测之YOLO V9来了!,yolov9+bytetrack+pyqt5实现目标追踪结果演示,YOLOv9华强买瓜,Yolov9教程来了!赶快学习吧!,将yolov9封装成类几句代码实现目标检测任务,YOLOv8检测界面-PyQt5实现,【yolov8-03】五分钟学会yolov8做目标检测,C#环境下部署YOLOv8模型,目标检测,超级简单,用C#部署yolov8的tensorrt模型进行目标检测winform最快检测速度,使用C#部署openvino-yolov5s模型icon-default.png?t=N7T8https://www.bilibili.com/video/BV1Ly421B7rK/?vd_source=989ae2b903ea1b5acebbe2c4c4a635ee

【部署代码下载】 

https://download.csdn.net/download/FL1623863129/88874459


http://www.ppmy.cn/news/1362654.html

相关文章

机器学习:SVM算法(Python)

一、核函数 kernel_func.py import numpy as npdef linear():"""线性核函数:return:"""def _linear(x_i, x_j):return np.dot(x_i, x_j)return _lineardef poly(degree3, coef01.0):"""多项式核函数:param degree: 阶次:param …

程序人生:不积跬步无以致千里

程序人生 癸卯年冬月,往渭南韩城,拜访司马迁祠。入门攀爬而上,至人有困乏之时,抬头现:高山仰止。归路下山,始现三官洞,遥想西汉时三官洞,出口处刻意再拜别:高山仰止。泪…

题目 1277: Lucky Word

题目描述: 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的…

C语言KR圣经笔记 8.5样例 - fopen和getc的实现

8.5 样例 - fopen 和 getc 的实现 通过给出标准库例程 fopen 和 getc 的一个实现,我们来说明如何将前面这些内容组合起来。 回忆一下,在标准库中,文件用文件指针而不是文件描述符来描述。文件指针是包含一些文件信息的结构体指针&#xff1…

5.2 Ajax 数据爬取实战

目录 1. 实战内容 2、Ajax 分析 3、爬取内容 4、存入MySQL 数据库 4.1 创建相关表 4.2 数据插入表中 5、总代码与结果 1. 实战内容 爬取Scrape | Movie的所有电影详情页的电影名、类别、时长、上映地及时间、简介、评分,并将这些内容存入MySQL数据库中。 2、…

FL Studio All Plugins Edition2024中文完整版Win/Mac

FL Studio All Plugins Edition,常被誉为数字音频工作站(DAW)的佼佼者,是音乐制作人和声音工程师钟爱的工具。它集音频录制、编辑、混音以及MIDI制作为一体,为用户提供了从创作到最终作品输出的完整工作流程。这个版本…

数据报文转换

报文转换 &#x1f353;JSON&#x1f352;&#x1f352;JSON多字段映射成一个实体对象&#x1f352;&#x1f352;JSON反序列化为一个带有泛型的JAVA类型 &#x1f353;xml &#x1f353;JSON &#x1f352;&#x1f352;JSON多字段映射成一个实体对象 <dependency><…

电脑压缩视频文件怎么压缩?3个实用方法分享

电脑压缩视频文件怎么压缩&#xff1f;电脑压缩视频文件是我们在日常生活和工作中经常需要进行的操作。随着高清视频和4K内容的普及&#xff0c;视频文件的大小也随之增大&#xff0c;这使得存储和分享变得不那么方便。通过压缩视频文件&#xff0c;我们不仅可以节省宝贵的存储…