Win10环境下yolov8快速配置与测试-详细

0.0 说明

参考黄家驹的Win10 环境下YOLO V8部署,遇到一些问题,并解决实现,记录如下:

在这里插入图片描述

斜线字体是原博客中的创作

0.1 参考链接

https://blog.csdn.net/m0_72734364/article/details/128865904

1 Windows10下yolov8 tensorrt模型加速部署

TensorRT-Alpha基于tensorrt+cuda c++实现模型end2end的gpu加速,支持win10、linux,在2023年已经更新模型:YOLOv8, YOLOv7, YOLOv6, YOLOv5, YOLOv4, YOLOv3, YOLOX, YOLOR,pphumanseg,u2net,EfficientDet。
关注仓库《TensorRT-Alpha》:https://github.com/FeiYull/TensorRT-Alpha
Linux tensorrt yolov8保姆教程: https://blog.csdn.net/m0_72734364/article/details/128758544

我成功转换后跑起来的结果

在这里插入图片描述
在这里插入图片描述

我电脑的配置

GPU1660TI
cuda driver在这里插入图片描述
cuda在这里插入图片描述
cudnncudnn8.2.1
tensorrt8.4.2.4
Visual studio2019社区版

所有版本最好保持完全一致,否则在onnx 转tensorrt时会出现问题。PS 有解决这个问题的大神欢迎交流

could not load cudnn_cnn_infer64_8.dll 

以下是参考内容

2.1 安装VS2019

问题:官网找不到 vs2019

链接:https://pan.baidu.com/s/1h4iURKyVgp6xtWB_3LBDcA?pwd=qjhi
提取码:qjhi
–来自百度网盘超级会员V1的分享

需要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?lang=cn#
依据实际情况选择,如下图是我的选择(for RTX3070):
选择:[搜索]->[下载] ->[双击默认安装] -> [重启系统] -> [进入cmd],输入如下指令

在这里插入图片描述

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 -V

CMD窗口打印如下信息表示cuda11.2安装正常
在这里插入图片描述
note: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

网站更新2023.12: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"添加到环境变量,如下图:
重启系统

在这里插入图片描述

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”

在这里插入图片描述

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& debug)
nvinfer.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的坑),在后文提到。属性表做到了一次新建,到处使用。

3 创建工程

3.1 拉取 yolov8 c++ 源代码

https://github.com/FeiYull/TensorRT-Alpha

3.1.1把utils 这几个文件放到项目utils 文件夹下

在这里插入图片描述

3.1.2把YOLO v8下面的文件放的yoloV8下面

在这里插入图片描述

3.1.3 资源文件

在TensorRT-8.4.2.4.Windows10.x86_64.cuda-11.6.cudnn8.4\TensorRT-8.4.2.4\samples\common\logger.cpp

在这里插入图片描述

3.2 生成cuda依赖项

这一步大概是将cuda 的头文件还有库文件以及链接依赖项添到项目中。
在这里插入图片描述
在这里插入图片描述

3.3 .cu 和.h文件设置NVCC编译

选中所有的.cu 文件和.h 文件 右键属性选择cuda c/c++ 编译
在这里插入图片描述
如下图,yolov8项目编译成功,从下面编译信息可以看到,exe文件所在路径为:path\yolov8\x64\Release

在这里插入图片描述

不容易啊,至此大功告成

快验证一下吧

yolov8.exe  --model=yolov8n.trt --size=640  --batch_size=1  --img=bus.jpg  --show --savePath

这是我自己转的几个.trt 文件 可测试
链接:https://pan.baidu.com/s/1dbcRjUa0qZaq8RT67jqBLA?pwd=cg93
提取码:cg93
在这里插入图片描述
在这里插入图片描述

PS

如果编译出错,请检查此处

a项目包含目录

在这里插入图片描述

b 库目录

在这里插入图片描述

c 附加依赖项

在这里插入图片描述

d 确认.h 文件和.cu 文件是 NVCC 编译的

见 3.3 .cu 和.h文件设置NVCC编译

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/607637.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

苍穹外卖Day06笔记

疯玩了一个月,效率好低,今天开始捡起来苍穹外卖~ 1. 为什么不需要单独引入HttpClient的dependency? 因为我们在sky-common的pom.xml中已经引入了aliyun-sdk-oss的依赖,而这个依赖低层就引入了httpclinet的依赖,根据依…

Centos7网络处理name or service not known

1、编辑->虚拟网络编辑器 2、查看本机的ip 3、 /etc/sysconfig/network-scripts/ 查看文件夹下面的 ifcfg-eth33 后面的33可能不一样 vi /etc/resolv.conf 编辑文件添加以下DNS nameserver 114.114.114.114 4、设置本机的网络 5、ping www.baidu.com 先重启…

linux调试

文章目录 1. 使用打印来调试1.1 重定向1.2 标准预定义宏1.3 日志代码 2. 内核异常2.1 内核打印2.1.1 打印级别2.1.2 跟踪异常2.1.3 动态打印2.1.4 RAM console 2.2 OOPS2.2.1 有源代码的情况2.2.2 没有源代码的情况 3 查看日志4 工具调试 1. 使用打印来调试 1.1 重定向 2>…

Django之创建Model以及后台管理

一,创建项目App python manage.py startapp App 二,在App.models.py中创建类,以下是示例 class UserModel(models.Model):uid models.AutoField(primary_keyTrue, auto_createdTrue)name models.CharField(max_length10, uniqueTrue, db…

【C++11新特性】lambda表达式和应用场景

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

Jenkins--自动化构建和部署SpringBoot项目

一、实现目标 通过在Jenkins中创建流水线任务&#xff0c;编写流水线脚本以实现自动化构建和部署SpringBoot项目。流水线脚本主要实现以下几个步骤&#xff1a; Preparation&#xff1a;从gitee上拉取远程仓库的SpringBoot项目代码。Build&#xff1a;使用Maven对拉取的代码进…

【2024全国青少年信息素养大赛初赛时间以及模拟题】

2024全国青少年信息素养大赛时间已经出来了 目录 全国青少年信息素养大赛智能算法挑战赛初中模拟卷 全国青少年信息素养大赛智能算法挑战赛初中模拟卷 1、比赛时间和考试内容&#xff1a; 算法创意实践挑战赛初中组于5月19日举行&#xff0c;检录时间为10:30-11:00&#xf…

男士内裤什么材质的好?五款材质舒适的男士内裤品牌

男士内裤目前已经有非常多的选择&#xff0c;三角/平角、传统面料/功能面料、设计版型等等都五花八门&#xff0c;所以不少男性朋友在挑选内裤时都觉得选择过多&#xff0c;另人难以选择&#xff0c;同时还担心选到一些质量不好的内裤&#xff0c;舒适性不仅差而且对健康有影响…

C语言洛谷题目分享(11)回文质数

目录 1.前言 2.题目&#xff1a;回文质数 1.题目描述 2.输入格式 3.输出格式 4.输入输出样例 5.题解 3.小结 1.前言 哈喽大家好&#xff0c;今儿继续为大家分享一道蛮有价值的一道题&#xff0c;希望大家多多支持喔~ 2.题目&#xff1a;回文质数 1.题目描述 因为 151 …

ESP8266-01s刷入固件报SP8266 Chip efuse check error esp_check_mac_and_efuse

一、遇到的问题 使用ESP8266 固件烧录工具flash_download_tools_v3.6.8 烧录固件报错&#xff1a; 二、解决方法 使用espressif推出发基于python的底层烧写工具&#xff1a;esptool 安装方法&#xff1a;详见https://docs.espressif.com/projects/esptool/en/latest/esp32/ …

【Linux】进程间通信方式之管道

&#x1f916;个人主页&#xff1a;晚风相伴-CSDN博客 &#x1f496;如果觉得内容对你有帮助的话&#xff0c;还请给博主一键三连&#xff08;点赞&#x1f49c;、收藏&#x1f9e1;、关注&#x1f49a;&#xff09;吧 &#x1f64f;如果内容有误的话&#xff0c;还望指出&…

最新:Lodash 严重安全漏洞背后你不得不知道的 JavaScript 知识

可能有信息敏感的同学已经了解到&#xff1a;Lodash 库爆出严重安全漏洞&#xff0c;波及 400万 项目。这个漏洞使得 lodash “连夜”发版以解决潜在问题&#xff0c;并强烈建议开发者升级版本。 我们在忙着“看热闹”或者“”升级版本”的同时&#xff0c;静下心来想&#xf…

人工智能|推荐系统——工业界的推荐系统之冷启动

UGC的物品冷启有哪些 ⼩红书上⽤户新发布的笔记。 B站上⽤户新上传的视频。 今⽇头条上作者新发布的⽂章。 为什么要特殊对待新笔记&#xff1f; 新笔记缺少与⽤户的交互&#xff0c;导致推荐的难度⼤、效果差。 扶持新发布、低曝光的笔记&#xff0c;可以增强作者发布意愿…

在Ubuntu安装RPM文件

Ubuntu软件源包含数千个deb软件包&#xff0c;可以从Ubuntu软件中心或使用apt命令行安装。 Deb是所有基于Debian的Linux发行版&#xff0c;例如包括Ubuntu&#xff0c;Linux mint等发行版使用的安装包格式。 如果某些软件在Ubuntu软件源中不可用&#xff0c;可以通过启用适当的…

NOIP,CSP-J,CSP-S——函数

一、函数概念 /*函数返回类型 函数名(参数){语句 } */ int add(int x,int y){return x+y; } 调用这个函数add int main(){int x,y,z;scanf("%d%d",&x,&y);z=add(x,y);printf("%d",z); } 二、变量作用域 main函数的z只作用于第二个for语句…

Day3 | Java基础 | 4常见类

Day3 | Java基础 | 4 常见类 基础版Object类equalshashCode&#xff08;散列码&#xff09;hashCode和equals clone方法String类 问题回答版Object类Object类的常见方法有哪些&#xff1f;和equals()的区别是什么&#xff1f;为什么要有hashCode&#xff1f;hashCode和equals的…

【C++】适配器模式

文章目录 前言 1. 适配器的介绍2. 仿函数2.1 sort函数的模板参数2.2 priority_queue类的模板参数 3. priority_queue模拟实现3. stack & queue 模拟实现3.1 deque的介绍3.2 deque的优点与缺陷3.3 STL标准库中对于stack和queue的模拟实现 前言 C中的适配器是一种设计模式&am…

【强训笔记】day16

NO.1 代码实现&#xff1a; class StringFormat { public:string formatString(string A, int n, vector<char> arg, int m) {string ret;int j0;for(int i0;i<n;i){if(A[i]%){if(i1<n&&A[i1]s){retarg[j];i;}else {retA[i];}}else {retA[i];}}while(j&l…

wlan二层旁挂组网实验

实验拓扑图 代码&#xff1a; SW1 <Huawei>sys Enter system view, return user view with CtrlZ. [Huawei]sysn sw1 [sw1]undo info-center enable Info: Information center is disabled. [sw1]vlan batch 10 20 30 Info: This operation may take a few seconds. …

基于Springboot的校园悬赏任务平台(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的校园悬赏任务平台&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…
最新文章