首页/新闻资讯/正文详情

win10下yolov6 tensorrt模型部署

发布时间:2026/9/25 6:14:49 来源:云帆数科 栏目:资讯中心
win10下yolov6 tensorrt模型部署
TensorRT系列之 Win10下yolov8 tensorrt模型加速部署TensorRT系列之 Linux下 yolov8 tensorrt模型加速部署TensorRT系列之 Linux下 yolov7 tensorrt模型加速部署TensorRT系列之 Linux下 yolov6 tensorrt模型加速部署TensorRT系列之 Linux下 yolov5 tensorrt模型加速部署TensorRT系列之 Linux下 yolox tensorrt模型加速部署TensorRT系列之 Linux下 u2net tensorrt模型加速部署更多点我进去…文章目录一、YOLOv6简介二、Win10 TensorRT环境配置2.1 安装VS20192.2 安装库2.2.1 安装Nvidia显卡驱动2.2.2 安装 cuda11.22.2.3 安装 cudnn8.2.12.2.4 下载 tensorrt8.4.2.42.2.5 OpenCV4.5.5安装2.3 创建属性表2.3.1 创建OpenCV属性表2.3.2 创建TensorRT属性表2.3.3 创建CUDA属性表2.3.4 新建工程与设置2.3.4.1 新建vs工程2.3.4.2 vs2019工程设置三、从yolov6源码中导出onnx文件四、利用tensorrt编译onnx模型五、编译执行yolov6-tensorrt工程六、结束语yolov6 tensorrt cuda模型推理加速部署TensorRT-Alpha《YunNan-Stree》一、YOLOv6简介YOLOv6是美团发布的检测算法在最新版本中YOLOv6主要更新了如下几个方面发布了移动端轻量级模型YOLOv6Lite这个模型更适用于移动端的应用场景同时保持了较高的精度和速度平衡。发布了新的模型YOLOv6-Face这是专门为人脸检测任务设计的模型能够更准确地检测和识别人脸。优化了模型的性能和准确度提高了模型的稳定性和鲁棒性。修复了一些已知的问题提升了用户体验。此外根据官方发布的信息新版本的YOLOv6在各个模型大小nano, tiny, small, medium, large上都取得了较高的目标检测精度。例如YOLOv6-nano在COCO val2017数据集上达到了35.0 mAPYOLOv6-s在同样的数据集上达到了43.1 mAP。这些改进都大大增强了YOLOv6在各种应用场景中的实用性。本文提供深度学习CV领域模型加速部署案例仓库实现的cuda c支持多batch图像预处理、推理、decode、NMS。大部分模型转换流程为torch-onnx-tensorrt。下图左边是yolov6-python源码推理结果右边是本文基于tensorrt实现yolov6模型部署的推理结果。yolov6s : Offical( left ) vs Ours( right 有源码有源码有源码不要慌哈哈哈。二、Win10 TensorRT环境配置三步解决win环境配置1、安装vs2019、Nvidia驱动、cudacudnn、opencv、tensorrt2、创建属性表3、工程设置运行注一定是先安装vs2019再安装cuda顺序不能颠倒因为cuda会自动给vs2019安装插件。问题windows环境下为什么使用vs2019属性表而不用cmake回答因为属性表可以做到一次创建到处使用。2.1 安装VS2019需要Microsoft账号如果您有别的途径下载安装也可以。进入https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/选择[2019] - [下载]在新页面选择 Visual Studio Community 2019 (version 16.11)下载完成之后安装过程选择如下图重启系统2.2 安装库注Nvidia相关网站需要注册账号。2.2.1 安装Nvidia显卡驱动进入 https://www.nvidia.cn/Download/index.aspx?langcn#依据实际情况选择如下图是我的选择(for RTX3070)选择[搜索]-[下载] -[双击默认安装] - [重启系统] - [进入cmd]输入如下指令nvidia-smi看到如下信息表明驱动正常2.2.2 安装 cuda11.2进入: https://developer.nvidia.com/cuda-toolkit-archive选择CUDA Toolkit 11.2.0 (December 2020)选择[Windows] - [x86_64] - [10] - [exe(local)] - [Download(2.9GB)]双击安装重启在cmd窗口输入如下指令nvcc-VCMD窗口打印如下信息表示cuda11.2安装正常nvcc: NVIDIA(R)Cuda compiler driver Copyright(c)2005-2020 NVIDIA Corporation Built on Mon_Nov_30_19:15:10_Pacific_Standard_Time_2020 Cuda compilation tools, release11.2, V11.2.67 Build cuda_11.2.r11.2/compiler.29373293_0note:cuda11.2 不需要手动设置环境变量如下图环境变量都是自动设置的。2.2.3 安装 cudnn8.2.1进入网站https://developer.nvidia.com/rdp/cudnn-archive选择 Download cuDNN v8.2.1 (June 7th, 2021), for CUDA 11.x选择 cuDNN Library for Windows (x86)你将会下载这个压缩包: “cudnn-11.3-windows-x64-v8.2.1.32_2.zip”解压之后cudnn的头文件、库文件都要拷贝到cuda安装目录。如下图进入cudnn解压所在文件夹中include拷贝所有头文件粘贴到CUDA/v11.2/include中lib、bin中的文件也拷贝到对应cuda目录中重启系统2.2.4 下载 tensorrt8.4.2.4进入网站 https://developer.nvidia.com/nvidia-tensorrt-8x-download把这个打勾 I Agree To the Terms of the NVIDIA TensorRT License Agreement选择: TensorRT 8.4 GA Update 1选择: TensorRT 8.4 GA Update 1 for Windows 10 and CUDA 11.0, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6 and 11.7 ZIP Package你将会下载这个压缩包: “TensorRT-8.4.2.4.Windows10.x86_64.cuda-11.6.cudnn8.4.zip”解压到F:\ThirdParty并重命名为TensorRT-8.4.2.4并将路径F:\ThirdParty\TensorRT-8.4.2.4\lib添加到环境变量如下图重启系统2.2.5 OpenCV4.5.5安装进入https://opencv.org/releases/选择[OpenCV – 4.5.5] - [Windows]下载完成之后是一个exe的自解压格式解压到D:\ThirdParty并将路径“D:\ThirdParty\opencv4.5.5\build\bin” 和 D:\ThirdParty\opencv4.5.5\build\x64\vc15\bin添加到环境变量如下图重启系统note我的opencv在D盘tensorrt在E盘根据实际情况修改就行了。2.3 创建属性表一般地Visual Studio 2019一个库对应两个属性表文件分别对应vs2019的debug模式和release模式例如本文中OpenCV创建了这两种。而TensorRT和CUDA只需要创建一种属性表(适用以上两种模式)。2.3.1 创建OpenCV属性表创建opencv库debug属性表step1基于VS2019随便新建一个C项目如下图项目设置为Debug、X64模式step2如下图选择[属性窗口] - [右击Debug|x64] - [添加新项目属性表]step3文件命名为OpenCV4.5.5_DebugX64.props - [添加]编辑属性表[如下图双击属性表]step4如下图选择[通用属性] - [VC目录] - [包含目录] - [编辑]step5如下图将两个OpenCV两个头文件目录拷贝进去 - [确认]step6选择[通用属性] - [VC目录] - [库目录] - [编辑] - 将路径D:\ThirdParty\opencv4.5.5\build\x64\vc15\lib拷贝进去 - [确认]step7选择[通用属性] - [链接器] - [输入] - [附加依赖项] - 将文件名opencv_world455d.lib拷贝进去-[确认]小结到这里opencv库debug属性表制作完成release属性表和上述流程一样唯一区别在于如下图项目切换到Release x64模式新建OpenCV4.5.5_ReleaseX64属性表然后在step7中将文件名修改为“opencv_world455.lib”请记住制作属性表就3个步骤拷贝include路径拷贝lib路径外加设置dll到系统环境变量拷贝lib文件名称2.3.2 创建TensorRT属性表右击Debug|x64 or 右击Release|x64新建属性表重命名为TensorRT8.4.2.4_X64# include路径F:\ThirdParty\TensorRT-8.4.2.4\include F:\ThirdParty\TensorRT-8.4.2.4\samples\common# F:\ThirdParty\TensorRT-8.4.2.4\samples\common\windows # 这个路径文件不需要包含# lib路径F:\ThirdParty\TensorRT-8.4.2.4\lib# lib文件名称for release debugnvinfer.lib nvinfer_plugin.lib nvonnxparser.lib nvparsers.lib依照上一节3个步骤step1选择[通用属性] - [VC目录] - [包含目录] - [编辑] - 把上述3个include路径拷贝进去step2选择[通用属性] - [VC目录] - [库目录] - [编辑] - 把上述lib路径拷贝进去step3选择[通用属性] - [链接器] - [输入] - [附加依赖项] - [编辑] - 将上述lib文件名称拷贝进去-[确认]最后修改tensorrt属性表[通用属性] - [C/C] - [预处理器] - [预处理器定义] - 添加指令_CRT_SECURE_NO_WARNINGS - [确认]2.3.3 创建CUDA属性表CUDA属性表直接白嫖官方在路径C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\extras\visual_studio_integration\MSBuildExtensions\CUDA 11.2.props最后我们应该有了如下属性表文件其中cuda 和tensorrt的属性表同时兼容release x64 和debug x64你再新建TensorRT-Alpha中yolov8 yolov7 yolov6 等项目后只需要把上述提前做好的属性表引入到工程就行了当然项目还需要进行简单设置(设置NVCC避免tensorrt的坑)在后文提到。属性表做到了一次新建到处使用。2.3.4 新建工程与设置这一节演示如何新建vs工程如何设置工程是通用方法。适用于仓库所有模型源码。2.3.4.1 新建vs工程如下图打开vs2019点击文件 - 新建- 项目。选择空项目 - 下一步。选择创建。如下图现在将工程设置为Release X64。2.3.4.2 vs2019工程设置如下图选择属性管理器 - Release | x64 - 添加现有属性表把上一节生成的三个RleaseX64属性表添加进来。添加进来后样子如下图TensorRT项目包含c和cuda c代码通俗讲c代码文件格式为.h头文件.cpp文件由c编译器编译而cuda代码头文件格式为.h头文件.cu文件由NVCC编译器编译例如我们添加如下图5个文件在工程中。添加CUDA依赖右击项目 - 生成依赖项 - 生成自定义将如下图CUDA11.2打钩 - 确认右击项目 - 属性将会打开如下界面将字符集设置为未设置点击确认。最后在项目中同时选中所有.cu文件和对应的.h文件注意是所有。我这里就是a.h 和 a.cu文件了。然后右击 - 点属性。【注】在tensorrt-alpha开源项目中例如yolov8会添加多个.cu .cpp .h格式文件其中.cu和对应的.h文件都是这样设置目的就是让NVCC编译器来编译cuda代码。得到如下界面我们把项类型设置为CUDA C/C点击确认。然后编译一下编译成功如下图三、从yolov6源码中导出onnx文件可以直接从网盘下载onnx文件[weiyun]:weiyun or google driver 你也可以自己下载仓库然后按照下面指令手动导出onnx文件下载yolov6源码# 下载yolov6源码gitclone https://github.com/meituan/YOLOv6# 切换版本为6.3.0gitcheckout0.3.0安装 yolov6环境pipinstall-rrequirements.txt命令行进入yolov6源码根目录用以下指令导出onnx模型文件# 640python ./deploy/ONNX/export_onnx.py--weightsyolov6n.pt--img640--dynamic-batch--simplifypython ./deploy/ONNX/export_onnx.py--weightsyolov6s.pt--img640--dynamic-batch--simplifypython ./deploy/ONNX/export_onnx.py--weightsyolov6m.pt--img640--dynamic-batch--simplifypython ./deploy/ONNX/export_onnx.py--weightsyolov6l.pt--img640--dynamic-batch--simplify# 1280python ./deploy/ONNX/export_onnx.py--weightsyolov6n6.pt--img1280--dynamic-batch--simplifypython ./deploy/ONNX/export_onnx.py--weightsyolov6s6.pt--img1280--dynamic-batch--simplifypython ./deploy/ONNX/export_onnx.py--weightsyolov6m6.pt--img1280--dynamic-batch--simplifypython ./deploy/ONNX/export_onnx.py--weightsyolov6l6.pt--img1280--dynamic-batch--simplify四、利用tensorrt编译onnx模型将上一个章节中导出onnx模型放到任意路径。进入到tensorrt根目录下bin文件里里面有个tensorrt官方提供的模型编译工具即trtexec.exe 如下图然后使用以下指令编译onnx模型需要注意参数 --onnx 和 --saveEngine 可以设置为自定义路径例如--onnxd:/Data/xxx.onnx--saveEngined:/Data/xxx.trt# 640./trtexec.exe--onnxyolov6n.onnx--saveEngineyolov6n.trt--buildOnly--minShapesimages:1x3x640x640--optShapesimages:4x3x640x640--maxShapesimages:8x3x640x640 ./trtexec.exe--onnxyolov6s.onnx--saveEngineyolov6s.trt--buildOnly--minShapesimages:1x3x640x640--optShapesimages:4x3x640x640--maxShapesimages:8x3x640x640 ./trtexec.exe--onnxyolov6m.onnx--saveEngineyolov6m.trt--buildOnly--minShapesimages:1x3x640x640--optShapesimages:4x3x640x640--maxShapesimages:8x3x640x640 ./trtexec.exe--onnxyolov6l.onnx--saveEngineyolov6l.trt--buildOnly--minShapesimages:1x3x640x640--optShapesimages:4x3x640x640--maxShapesimages:8x3x640x640# 1280./trtexec.exe--onnxyolov6n6.onnx--saveEngineyolov6n6.trt--buildOnly--minShapesimages:1x3x1280x1280--optShapesimages:4x3x1280x1280--maxShapesimages:8x3x1280x1280 ./trtexec.exe--onnxyolov6s6.onnx--saveEngineyolov6s6.trt--buildOnly--minShapesimages:1x3x1280x1280--optShapesimages:4x3x1280x1280--maxShapesimages:8x3x1280x1280 ./trtexec.exe--onnxyolov6m6.onnx--saveEngineyolov6m6.trt--buildOnly--minShapesimages:1x3x1280x1280--optShapesimages:4x3x1280x1280--maxShapesimages:8x3x1280x1280 ./trtexec.exe--onnxyolov6l6.onnx--saveEngineyolov6l6.trt--buildOnly--minShapesimages:1x3x1280x1280--optShapesimages:4x3x1280x1280--maxShapesimages:8x3x1280x1280注如果报错Error Code 1: Cuda Runtime (an illegal memory access was encountered “bool context m_context-executeV2((void**)bindings)” returns false可能是爆显存了降低batch-size就行了五、编译执行yolov6-tensorrt工程下载源码并编译gitclone https://github.com/FeiYull/tensorrt-alphagitfetch origingitcheckout legacy仿造2.3.4 新建工程与设置中新建、设置vs2019工程其中yolov6需要将如下图多个文件添加到工程中红色框内文件来自TensorRT-Alpha/utils/蓝色框内文件来自TensorRT-Alpha/yolov6/绿色框内文件来自TensorrRT安装路径下TensorRT-8.4.2.4.Windows10.x86_64.cuda-11.6.cudnn8.4\TensorRT-8.4.2.4\samples\common\logger.cpp如下图yolov6项目编译成功从下面编译信息可以看到exe文件所在路径为D:\my_code_trt\TensorRT-Alpha-VS2019\TensorRT-Alpha\x64\Release\yolov6.exe已启动生成…1------ 已启动生成: 项目: yolov6, 配置: Release x64 ------1正在生成代码10of1033functions(0.0%)were compiled, the rest were copied from previous compilation.10functions were newincurrent compilation10functions had inline decision re-evaluated but remain unchanged1已完成代码的生成1yolov6.vcxproj -D:\my_code_trt\TensorRT-Alpha-VS2019\TensorRT-Alpha\x64\Release\yolov6.exe生成: 成功1个失败0个最新0个跳过0个以下是命令行执行指令需要说明的是执行推理任务支持图片、视频、摄像头## 640# infer image./app_yolov6.exe--model../../data/yolov6/yolov6n.trt--size640--batch_size1--img../../data/6406401.jpg--show--savePath../# infer video./app_yolov6.exe--model../../data/yolov6/yolov6n.trt--size640--batch_size2--video../../data/people.mp4--show# infer camera./app_yolov6.exe--model../../data/yolov6/yolov6n.trt--size640--batch_size2--cam_id0--show## 1280# infer video./app_yolov6.exe--model../../data/yolov6/yolov6s6.trt--size1280--batch_size2--video../../data/people.mp4--savePath../这里给个示范例如我要在命令行使用yolov6推理一张图.\yolov6.exe--modelD:/ThirdParty/TensorRT-8.4.2.4/bin/yolov6s.trt--size640--batch_size1--imgd:/Data/2.jpg--show--savePathd:/效果如下图下面是yolov6推理视频效果可以自己玩一玩yolov6 tensorrt cuda模型推理加速部署TensorRT-Alpha《YunNan-Stree》六、结束语都看到这里了觉得可以请点赞收藏有条件的去仓库点个star仓库https://github.com/FeiYull/TensorRT-Alpha/tree/legacy

相关推荐

win10下yolov7 tensorrt模型部署
win10下yolov7 tensorrt模型部署

TensorRT系列之 Win10下yolov8 tensorrt模型加速部署 TensorRT系列之 Linux下 yolov8 tensorrt模型加速部署 TensorRT系列之 Linux下 yolov7 tensorrt模型加速部署 TensorRT系列之 Linux下 yolov6 tensorrt模型加速部署 TensorRT系列之 Linux下 yolov5 tensorrt模型加速部署… · 2026/9/25 6:14:49

OpenCore Legacy Patcher:老Mac macOS续命技术全解析
OpenCore Legacy Patcher:老Mac macOS续命技术全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 6:14:43

RL-赵-(四)-基于模型01:值迭代算法(其中的值不是State Value,通过一步求出)【v₀(随机初始化)➞策略更新/PU➞π₁➞值更新/PE➞v₁➞PU➞π₂➞...】
RL-赵-(四)-基于模型01:值迭代算法(其中的值不是State Value,通过一步求出)【v₀(随机初始化)➞策略更新/PU➞π₁➞值更新/PE➞v₁➞PU➞π₂➞...】

一、值迭代算法(Value iteration algorithm) 如下,如何求解 贝尔曼最优公式(Bellman Optimality Equation)? v=f(v)=max⁡π(rπ+γPπv) \color{red}{v=f(v)=\max_{\pi}\left(r_\pi\right.+\gamma P_\pi v)} v=f(v)=πmax​(rπ​+γPπ​v) 根据之前的内容,我们知道可… · 2026/9/25 6:14:43

Kata Containers Tracing 全解析:基于 OpenTelemetry 实现 Runtime 与 Guest Agent 的全链路追踪
Kata Containers Tracing 全解析:基于 OpenTelemetry 实现 Runtime 与 Guest Agent 的全链路追踪

云原生容器运行时 【免费下载链接】kata-containers Kata Containers is an open source project and community working to build a standard implementation of lightweight Virtual Machines (VMs) that feel and perform like containers, but provide the workload isolat… · 2026/9/25 6:51:36

IDURAR 开源 ERP CRM 软件技术解析:基于 MERN 技术栈的功能全景与实现原理
IDURAR 开源 ERP CRM 软件技术解析:基于 MERN 技术栈的功能全景与实现原理

后端前端企业应用CRM 【免费下载链接】idurar-erp-crm Free Open Source ERP CRM Software Accounting Invoicing | Node.Js React 项目地址: https://gitcode.com/gh_mirrors/id/idurar-erp-crm 点击查看 免费下载 IDURAR 是一款免费开源的 ERP / CRM / 会计 / 发… · 2026/9/25 6:51:36

buildah 中的 go-ansiterm:跨平台 ANSI 终端模拟库的解析器与事件处理机制
buildah 中的 go-ansiterm:跨平台 ANSI 终端模拟库的解析器与事件处理机制

云原生 【免费下载链接】buildah A tool that facilitates building OCI images. 项目地址: https://gitcode.com/gh_mirrors/bu/buildah 点击查看 免费下载 导读 go-ansiterm(github.com/Azure/go-ansiterm)是一个跨平台的 ANSI 终端模拟&… · 2026/9/25 6:51:36

BAML Rust CLI:从安装、本地构建到 baml-cli 命令行入口的源码剖析
BAML Rust CLI:从安装、本地构建到 baml-cli 命令行入口的源码剖析

编程语言AI Agent编译器CLI人工智能 【免费下载链接】baml The programming language for agents 项目地址: https://gitcode.com/gh_mirrors/ba/baml 点击查看 免费下载 本文以 languages/rust/baml-cli/README.md 为蓝本,完整覆盖 BAML v0 Rust CLI 的… · 2026/9/25 6:51:30

AI Short 离线部署实战:企业内网无后端纯静态提示词库的搭建、迁移与运维
AI Short 离线部署实战:企业内网无后端纯静态提示词库的搭建、迁移与运维

AI 应用提示工程人工智能前端 【免费下载链接】ChatGPT-Shortcut Stop writing prompts from scratch — a searchable prompt library for ChatGPT, Claude, Gemini and Cursor Русский 한국어 العربية हिन्दी ไทย | 别再从头写提示词&… · 2026/9/25 6:51:30

网页视频嗅探:把猫抓扩展用起来的完整流程
网页视频嗅探:把猫抓扩展用起来的完整流程

网页视频嗅探:把猫抓扩展用起来的完整流程 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你正在看一节网课视频,页面只给在… · 2026/9/25 6:51:30

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码