当前位置: 首页 > news >正文

[C++][cmake]使用C++部署yolov12目标检测的tensorrt模型支持图片视频推理windows测试通过

最近悄悄出了yolov12框架,标志着目标检测又多了一个检测利器,于是尝试在windows下部署yolov12的tensorrt模型,并最终成功。

重要说明:安装环境视为最基础操作,博文不做环境具体步骤,可以百度查询对应安装步骤即可。

测试通过环境:

vs2019

windows 10 RTX2070 8G显存

cmake==3.30.1

cuda11.8.0+cudnn8.9.7

Tensorrt==8.6.1.6

opencv==4.9.0

anaconda3+python3.10

torch==2.5.1+cu124

部署过程:

部署最费时间是安装环境。首先确保自己电脑是win10或者win11并确保电脑有一块nvidia显卡。查看自己显卡就是打开任务管理器(win10是ctrl+alt+delete,win11是ctrl+shift+ESC),在性能里面查看,如下图

785b7ad428034221a4ff1a167855b167.png

如果看到GPU0和GPU1等等表示有显卡,但是需要看到NVIDIA字样才能表示有独立显卡。其他是AMD显卡或者核心显卡,这些都是不能用于cuda的,也就是电脑不支持tensorrt加速和cuda使用的。

首先需要大家安装好VS2019或者VS2022,还有如下环境,由于安装包很多需要去官方搜索下载,需要自己安装,其中版本可以有区别,但是如果快速复现这个项目,最好安装位一致版本这样更快复现出项目。

cmake==3.30.1

cuda11.8.0+cudnn8.9.7

Tensorrt==8.6.1.6

opencv==4.9.0

anaconda3+python3.10

torch==2.5.1+cu124

假设大家安装好上面的环境。下面具体怎么部署,首先去yolov12官方仓库下载yolo12模型,这样下载yolov12n.pt

然后将pt模型放进项目里面,切换自己安装好的yolov12环境里面并切换到项目目录,使用下面命令直接转换

yolo export model=yolov12n.pt format=onnx dynamic=False opset=12

得到onnx模型以后我们开始编译源码。

首先我们修改CMakeLists.txt文件,将源码里面opencv路径和tensorrt路径修改成自己路径

# Find and include OpenCV

set(OpenCV_DIR "D:\\lufiles\\opencv490\\build\\x64\\vc16\\lib")

# Set TensorRT path if not set in environment variables

set(TENSORRT_DIR "D:\\lufiles\\TensorRT-8.6.1.6")

然后执行

mkdir build

cd build

cmake ..

之后去build文件夹找到sln文件用vs打开它,然后选择x64 release,并选中ALL_BUILD右键单击选择生成

之后build\Release文件夹下面有个yolov12-tensorrt.exe生成。之后我们开始转换onnx模型到tensorrt模型,执行命令

trtexec --onnx=yolov12n.onnx --saveEngine=yolov12n.engine --fp16

稍等20多分钟后会自动生成yolov12n.engine文件.

下面我们开始测试图片

yolov12-tensorrt.exe yolov12n.engine "test.jpg"

然后测试视频

yolov12-tensorrt.exe yolov12n.engine "car.mp4"

特别注意:

  1. tensorrt模型依赖于硬件,所以不是通用的需要在电脑重新转换,否则可能无法使用;
  2. 如需要二次开发,需要读懂调用代码,需要有一定c++基础才行,否则无法进行二次开发。

相关文章:

[C++][cmake]使用C++部署yolov12目标检测的tensorrt模型支持图片视频推理windows测试通过

最近悄悄出了yolov12框架,标志着目标检测又多了一个检测利器,于是尝试在windows下部署yolov12的tensorrt模型,并最终成功。 重要说明:安装环境视为最基础操作,博文不做环境具体步骤,可以百度查询对应安装步…...

Uppy - 免费开源、功能强大的新一代 web 文件上传组件,支持集成到 Vue 项目

Uppy 这个优质的前端组件,可以解决几乎所有的文件上传问题,最近发布了 TS 重写的 4.0 新版本,实用性更强了。 Uppy 是一个 UI 外观时尚、模块化的 JavaScript 文件上传组件,这个组件可以与任何 web 技术栈集成,不仅轻…...

【游戏——BFS+分层图】

题目 分析 但凡是最优方案可能需要访问同一个点的情况,都需要应用“拆点”,或者说分层图的技巧。多出来的维度主要是区分同一个点的不同状态而用。 对于本题,访问的时机便是一个区分点。 对于类似题“AB路线”,同一个K段的位置是…...

SSL 证书是 SSL 协议实现安全通信的必要组成部分

SSL证书和SSL/TLS协议有着密切的关系,但它们本质上是不同的概念。下面是两者的区别和它们之间的关系的表格: 属性SSL/TLS 协议SSL证书英文全称SSL(Secure Sockets Layer),TLS(Transport Layer Security&am…...

Spring 源码硬核解析系列专题(七):Spring Boot 与 Spring Cloud 的微服务源码解析

在前几期中,我们从 Spring 核心的 IoC、AOP、事务管理,到 Spring Boot 的自动装配,逐步揭示了 Spring 生态的底层原理。随着微服务架构的流行,Spring Boot 结合 Spring Cloud 成为了构建分布式系统的主流选择。本篇将深入 Spring Cloud 的核心组件,以服务注册与发现(Eure…...

嵌入式开发:傅里叶变换(5):STM32和Matlab联调验证FFT

目录 1. MATLAB获取 STM32 的原始数据 2. 将数据上传到电脑 3. MATLAB 接收数据并验证 STM32进行傅里叶代码 结果分析 STM32 和 MATLAB 联调是嵌入式开发中常见的工作流程,通常目的是将 STM32 采集的数据或控制信号传输到 MATLAB 中进行实时处理、分析和可视化…...

C# 根据Ollama+DeepSeekR1开发本地AI辅助办公助手

在上一篇《访问DeepSeekR1本地部署API服务搭建自己的AI办公助手》中,我们通过通过Ollama提供的本地API接口用Python实现了一个简易的AI办公助手,但是需要运行Py脚本,还比较麻烦,下面我们用C#依据Ollama提供的API接口开发一个本地A…...

洛谷 P8705:[蓝桥杯 2020 省 B1] 填空题之“试题 E :矩阵” ← 卡特兰数

【题目来源】 https://www.luogu.com.cn/problem/P8705 【题目描述】 把 1∼2020 放在 21010 的矩阵里。要求同一行中右边的比左边大,同一列中下边的比上边的大。一共有多少种方案? 答案很大,你只需要给出方案数除以 2020 的余数即可。 【答案提交】 …...

我的AI工具箱Tauri版-FluxCharacterGeneration参考图像生成人像手办(Flux 版)

本教程基于自研的AI工具箱Tauri版进行ComfyUI工作流FluxCharacterGeneration参考图像生成人像手办(Flux 版)。 我的AI工具箱Tauri版 - FluxCharacterGeneration参考图像生成人像手办(Flux版) 基于先进的FLUX模型,通过…...

DeepSeek开源周Day2:DeepEP - 专为 MoE 模型设计的超高效 GPU 通信库

项目地址:https://github.com/deepseek-ai/DeepEP 开源日历:2025-02-24起 每日9AM(北京时间)更新,持续五天 (2/5)! ​ ​ 引言 在大模型训练中,混合专家模型(Mixture-of-Experts, MoE)因其动…...

51单片机-串口通信编程

串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制盒中断控制。具体步骤如下: 确定T1的工作方式(编程TMOD寄存器)计算T1的初值,装载TH1\TL1启动T1(编程TCON中的TR1位…...

python实现基于文心一言大模型的sql小工具

一、准备工作 注册与登录: 登录百度智能云千帆控制台,注册并登录您的账号。 创建千帆应用: 根据实际需求创建千帆应用。创建成功后,获取AppID、API Key、Secret Key等信息。如果已有千帆应用,可以直接查看已有应用的AP…...

deepseek 导出导入模型(docker)

前言 实现导出导入deepseek 模型。deepseek 安装docker下参考 docker 导出模型 实际生产环境建议使用docker-compose.yml进行布局,然后持久化ollama模型数据到本地参考 echo "start ollama" docker start ollama#压缩容器内文件夹,然后拷贝…...

前言:什么是大模型微调

一、大模型微调的基础知识 1. 什么是大模型微调? 大模型微调(Fine-tuning)是指在预训练模型的基础上,针对特定的任务或数据集进行进一步训练的过程。预训练模型通常在大规模的通用数据上训练,具备广泛的语言理解和生…...

TCPDF 任意文件读取漏洞:隐藏在 PDF 生成背后的危险

在网络安全的世界里,漏洞就像隐藏在黑暗中的“定时炸弹”,稍有不慎就会引发灾难性的后果。今天,我们要聊的是一个与 PDF 生成相关的漏洞——TCPDF 任意文件读取漏洞。这个漏洞可能让攻击者轻松读取服务器上的敏感文件,甚至获取整个…...

unity学习53:UI的子容器:面板panel

目录 1 UI的最底层容器:canvas 1.1 UI的最底层容器:canvas 1.2 UI的合理结构 2 UI的子容器:面板panel 2.1 创建panel 2.2 面板的本质: image ,就是一个透明的图片,1个空容器 3 面板的属性 4 面板的…...

水环境水质在线监测系统解决方案

在当今社会,水资源作为人类生存和发展的基础性资源,其质量的优劣直接关系到生态平衡、人类健康以及社会经济的可持续发展。然而,随着工业化、城市化的快速推进,各类污染物不断排入水体,导致水环境面临严峻挑战。水环境…...

HBuilder X中,uni-app、js的延时操作及定时器

完整源码下载 https://download.csdn.net/download/luckyext/90430165 在HBuilder X中,uni-app、js的延时操作及定时器可以用setTimeout和setInterval这两个函数来实现。 1.setTimeout函数用于在指定的毫秒数后执行一次函数。 例如, 2秒后弹出一个提…...

BigDecimal线上异常解决方案:避免科学计数法输出的坑

文章目录 问题背景为什么BigDecimal会输出科学计数法?线上异常场景场景1:数据传递异常场景2:日志记录异常场景3:数据存储异常 解决方案1. 使用toPlainString()方法2. 设置格式化输出3. 自定义工具类 代码示例总结 在Java开发中&am…...

【C语言】指针笔试题

前言:上期我们介绍了sizeof与strlen的辨析以及sizeof,strlen相关的一些笔试题,这期我们主要来讲指针运算相关的一些笔试题,以此来巩固我们之前所学的指针运算! 文章目录 一,指针笔试题1,题目一…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

OpenLayers 可视化之热力图

注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...