位置: IT常识 - 正文

win10下 yolov8 tensorrt模型加速部署【实战】

编辑:rootadmin
win10下 yolov8 tensorrt模型加速部署【实战】 Windows10下yolov8 tensorrt模型加速部署【实战】

推荐整理分享win10下 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

一、加速结果展示1.1 性能速览

🚀快速看看yolov8n 在移动端RTX2070m(8G)的新能表现:

modelvideo resolutionmodel input sizeGPU Memory-UsageGPU-Utilyolov8n1920x10808x3x640x6401093MiB/7982MiB14%

下图是yolov8n的运行时间开销,单位是ms:

更多TensorRT-Alpha测试录像在B站视频: B站:YOLOv8n B站:YOLOv8s

1.2精度对齐

下面是左边是python框架推理结果,右边是TensorRT-Alpha推理结果。

yolov8n : Offical( left ) vs Ours( right )

yolov7-tiny : Offical( left ) vs Ours( right )

yolov6s : Offical( left ) vs Ours( right )

yolov5s : Offical( left ) vs Ours( right )

YOLOv4 YOLOv3 YOLOR YOLOX略。

二、Windows10环境配置

三步解决win环境配置:

1、安装vs2019、Nvidia驱动、cuda,cudnn、opencv、tensorrt;2、创建属性表;3、工程设置,运行; 问题:为什么使用vs2019属性表,而不用cmake? 回答:因为属性表可以做到:一次创建,到处使用。 提示:如果您一定需要使用cmake+vs2019 or cmake + clion,请参考附录,这是一位热心观众的方法,供参考。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?lang=cn#依据实际情况选择,如下图是我的选择(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 -V

CMD窗口打印如下信息表示cuda11.2安装正常

nvcc: NVIDIA (R) Cuda compiler driverCopyright (c) 2005-2020 NVIDIA CorporationBuilt on Mon_Nov_30_19:15:10_Pacific_Standard_Time_2020Cuda compilation tools, release 11.2, V11.2.67Build cuda_11.2.r11.2/compiler.29373293_0win10下 yolov8 tensorrt模型加速部署【实战】

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进入网站: https://developer.nvidia.cn/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\includeF:\ThirdParty\TensorRT-8.4.2.4\samples\commonF:\ThirdParty\TensorRT-8.4.2.4\samples\common\windows# lib路径F:\ThirdParty\TensorRT-8.4.2.4\lib# lib文件名称(for release& debug)nvinfer.libnvinfer_plugin.libnvonnxparser.libnvparsers.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的坑),在后文提到。属性表做到了一次新建,到处使用。

三、YOLOv8模型部署

Windows10环境安装YOLOv8,参考我的另一篇《Win10环境下yolov8快速配置与测试》:https://blog.csdn.net/m0_72734364/article/details/128815530

3.1 获取YOLOv8onnx文件

直接在网盘下载 weiyun or google driver 或者使用如下命令导出onnx:

# 🔥 yolov8 官方仓库: https://github.com/ultralytics/ultralytics# 🔥 yolov8 官方教程: https://docs.ultralytics.com/quickstart/# 🚀TensorRT-Alpha will be updated synchronously as soon as possible!# 安装 yolov8conda create -n yolov8 python==3.8 -yconda activate yolov8pip install ultralytics==8.0.5pip install onnx==1.12.0# 下载官方权重(".pt" file)https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pthttps://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8s.pthttps://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8m.pthttps://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8l.pthttps://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8x.pthttps://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8x6.pt

导出 onnx:

# 640yolo mode=export model=yolov8n.pt format=onnx dynamic=True #simplify=Trueyolo mode=export model=yolov8s.pt format=onnx dynamic=True #simplify=Trueyolo mode=export model=yolov8m.pt format=onnx dynamic=True #simplify=Trueyolo mode=export model=yolov8l.pt format=onnx dynamic=True #simplify=Trueyolo mode=export model=yolov8x.pt format=onnx dynamic=True #simplify=True# 1280yolo mode=export model=yolov8x6.pt format=onnx dynamic=True #simplify=True3.2 编译 onnx# trtexec.exe在路径:F:\ThirdParty\TensorRT-8.4.2.4\bin# 640../../../../TensorRT-8.4.2.4/bin/trtexec.exe --onnx=yolov8n.onnx --saveEngine=yolov8n.trt --buildOnly --minShapes=images:1x3x640x640 --optShapes=images:4x3x640x640 --maxShapes=images:8x3x640x640../../../../TensorRT-8.4.2.4/bin/trtexec.exe --onnx=yolov8s.onnx --saveEngine=yolov8s.trt --buildOnly --minShapes=images:1x3x640x640 --optShapes=images:4x3x640x640 --maxShapes=images:8x3x640x640../../../../TensorRT-8.4.2.4/bin/trtexec.exe --onnx=yolov8m.onnx --saveEngine=yolov8m.trt --buildOnly --minShapes=images:1x3x640x640 --optShapes=images:4x3x640x640 --maxShapes=images:8x3x640x640../../../../TensorRT-8.4.2.4/bin/trtexec.exe --onnx=yolov8l.onnx --saveEngine=yolov8l.trt --buildOnly --minShapes=images:1x3x640x640 --optShapes=images:4x3x640x640 --maxShapes=images:8x3x640x640../../../../TensorRT-8.4.2.4/bin/trtexec.exe --onnx=yolov8x.onnx --saveEngine=yolov8x.trt --buildOnly --minShapes=images:1x3x640x640 --optShapes=images:4x3x640x640 --maxShapes=images:8x3x640x640# 1280../../../../TensorRT-8.4.2.4/bin/trtexec.exe --onnx=yolov8x6.onnx --saveEngine=yolov8x6.trt --buildOnly --minShapes=images:1x3x1280x1280 --optShapes=images:4x3x1280x1280 --maxShapes=images:8x3x1280x1280

你将会的到例如:yolov8n.trt、yolov8s.trt、yolov8m.trt等文件。

3.3 编译运行

3.3.1 新建、设置项目 下载TensorRT-Alpha仓库:

git clone https://github.com/FeiYull/tensorrt-alpha新建yolov8 C++项目:参考B站视频【提示:从0分34秒开始,演示如何设置NVCC编译,如何避免tensorrt在win环境的坑】: yolov8 tensorrt 实战之先导 小结: 后续创建TensorRT-Alpha中YOLOv7、 YOLOv6等工程之后,只需要将上文中的属性表添加到工程,然后按照《yolov8 tensorrt 实战之先导》提到的设置工程就OK。 这篇教程太详细了,这年头,好像很少有人愿意免费给出这么诚意的教程。

3.3.2 编译运行 上面视频在vs2019中设置命令行参数,您也可以在CMD命令行上运行程序,如下:

# 下面参数解释# --show 表示可视化结果# --savePath 表示保存,默认保存在build目录# --savePath=../ 保存在上一级目录## 640# 推理图片./app_yolov8.exe --model=../../data/yolov8/yolov8n.trt --size=640 --batch_size=1 --img=../../data/6406407.jpg --show --savePath./app_yolov8.exe --model=../../data/yolov8/yolov8n.trt --size=640 --batch_size=8 --video=../../data/people.mp4 --show --savePath# 推理视频./app_yolov8.exe --model=../../data/yolov8/yolov8n.trt --size=640 --batch_size=8 --video=../../data/people.mp4 --show --savePath=../# 在线推理相机视频./app_yolov8.exe --model=../../data/yolov8/yolov8n.trt --size=640 --batch_size=2 --cam_id=0 --show## 1280# infer camera./app_yolov8.exe --model=../../data/yolov8/yolov8x6.trt --size=1280 --batch_size=2 --cam_id=0 --show

我的B站所有视频都在WIN10环境运行,https://space.bilibili.com/2028719613

yolov8 tensorrt cuda模型推理加速部署TensorRT-Alpha《ski facility》

yolov8 tensorrt cuda模型推理加速部署TensorRT-Alpha《NewYork-Stree》

yolov7 tensorrt cuda模型推理加速部署TensorRT-Alpha《Korea-Night》

四、参考

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

附录

一位热心小伙做的,他好努力,前几天经常半夜2点、3点给我留言,太卷了,奋斗精神值得学习。

https://www.bilibili.com/video/BV1SM411i7km/?spm_id_from=333.999.0.0&vd_source=a96c9c3f099f4167807291a34fd50fd5

本文链接地址:https://www.jiuchutong.com/zhishi/298412.html 转载请保留说明!

上一篇:vue项目关于:Error Cannot find module ‘xxx\bin\vue-cli-service.js‘的解决方案(vue.$el)

下一篇:Python 基础(十二):字典(python基础100例)

  • 苹果充电器是几伏几安(苹果充电器是几伏几安的)

    苹果充电器是几伏几安(苹果充电器是几伏几安的)

  • 荣耀x10可以放内存卡吗(荣耀x10可以装内存卡吗)

    荣耀x10可以放内存卡吗(荣耀x10可以装内存卡吗)

  • 微信群收款功能在哪(微信群收款功能没有了)

    微信群收款功能在哪(微信群收款功能没有了)

  • 固态硬盘qvo和evo的区别(固态硬盘qvo和evo有什么差别)

    固态硬盘qvo和evo的区别(固态硬盘qvo和evo有什么差别)

  • 笔记本可以装几个硬盘(笔记本可以装几条固态)

    笔记本可以装几个硬盘(笔记本可以装几条固态)

  • 抖音直播允许卖货吗(抖音直播允许卖东西吗)

    抖音直播允许卖货吗(抖音直播允许卖东西吗)

  • 微信授权管理好多没有显示(微信授权管理是怎么回事)

    微信授权管理好多没有显示(微信授权管理是怎么回事)

  • qq群作业可以提交文档吗(qq群作业可以提交语音吗)

    qq群作业可以提交文档吗(qq群作业可以提交语音吗)

  • 华为Nova5定时关机怎么设置(华为nova5pro怎么定时开关机)

    华为Nova5定时关机怎么设置(华为nova5pro怎么定时开关机)

  • 超感光镜头是什么意思(什么是超感光摄像头)

    超感光镜头是什么意思(什么是超感光摄像头)

  • 苹果x搜不到wifi怎么回事(苹果x搜不到wifi或无法连接网络)

    苹果x搜不到wifi怎么回事(苹果x搜不到wifi或无法连接网络)

  • 程序存储和程序控制对巨型机和大型机适用吗(程序存储和程序控制)

    程序存储和程序控制对巨型机和大型机适用吗(程序存储和程序控制)

  • 视频会员可以同时几个人用

    视频会员可以同时几个人用

  • 路由器要不要每天关

    路由器要不要每天关

  • 苹果5下载不了微信怎么办(苹果5下载不了微信说版本太低)

    苹果5下载不了微信怎么办(苹果5下载不了微信说版本太低)

  • bkl一al10是什么型号(bkk-al10是什么型号)

    bkl一al10是什么型号(bkk-al10是什么型号)

  • 内存容量8g和16g区别(内存容量8g和12g区别)

    内存容量8g和16g区别(内存容量8g和12g区别)

  • 微信号登录不上显示频繁(微信号登录不上去了手机号码也不用了怎么办)

    微信号登录不上显示频繁(微信号登录不上去了手机号码也不用了怎么办)

  • soul聊天框删了对方还有吗(soul上删掉的聊天框)

    soul聊天框删了对方还有吗(soul上删掉的聊天框)

  • 拼多多绑定支付宝怎么解(拼多多绑定支付宝吗)

    拼多多绑定支付宝怎么解(拼多多绑定支付宝吗)

  • word怎么加尾注(word怎么加尾注文字)

    word怎么加尾注(word怎么加尾注文字)

  • qq上有群发吗(扣扣有群发助手吗)

    qq上有群发吗(扣扣有群发助手吗)

  • 抖音怎么加购物车橱窗(抖音怎么加购物团灯牌呢)

    抖音怎么加购物车橱窗(抖音怎么加购物团灯牌呢)

  • 加绝对引用的快捷键(如何快速加绝对引用符号)

    加绝对引用的快捷键(如何快速加绝对引用符号)

  • 华为p30怎样繁体字变简化字(华为p30怎么设置字体为繁体字)

    华为p30怎样繁体字变简化字(华为p30怎么设置字体为繁体字)

  • 小米高清通话怎么开启(小米高清通话怎么开启redmi)

    小米高清通话怎么开启(小米高清通话怎么开启redmi)

  • QQ号怎样解冻(qq号怎样解冻账号)

    QQ号怎样解冻(qq号怎样解冻账号)

  • 为什么word字上部不显示(word上面的字显示不全怎么办)

    为什么word字上部不显示(word上面的字显示不全怎么办)

  • Windows 10如何设置默认照片查看器(windows10如何设置输入法)

    Windows 10如何设置默认照片查看器(windows10如何设置输入法)

  • HTML+CSS简单漫画网页设计成品 蜡笔小新3页 大学生个人HTML网页制作作品(html动画教程)

    HTML+CSS简单漫画网页设计成品 蜡笔小新3页 大学生个人HTML网页制作作品(html动画教程)

  • 留抵退税手续
  • 企业所得税怎么做账
  • 报关金额必须跟收汇金额一致吗?
  • 清包工取费标准
  • 政府补助需要交哪些税
  • 施工企业收到工程款交付税款的时间
  • 申请开红字发票,原蓝字发票要退回来吗
  • 股东实物分红账务怎么做
  • 房地产开发结转成本条件
  • 技术转让费怎么定价
  • 住房公积金部分业务暂停办理
  • 出口企业收入分录
  • 防洪费计税基础
  • 支付房屋租金计入什么会计科目
  • 外购烟叶税进项税额的扣除率
  • 个人独资企业可以不开公户吗
  • 为什么债务利息不计入资本预算的范畴
  • 专票开票银行一定要对吗
  • 工资可以一次性计提全年的吗
  • 企业核销应收账款需要什么资料
  • 加计抵减10%政策文件
  • mac怎么设置不自动开机
  • 发票金额与实际金额不一致违法吗
  • 不动产投资包括哪些
  • php timestamp
  • _system~.ini 病毒
  • php foreach()
  • PHP:pg_num_rows()的用法_PostgreSQL函数
  • 债券到期收回本息计算单
  • 自建房买卖需要缴哪些费用
  • PHP:imagecreatefromgd()的用法_GD库图像处理函数
  • 北极光下的众神图片
  • 阿尔卑斯山百度百科
  • php面向过程
  • react reducer详解
  • Ubuntu18.04安装cuda10.2
  • vue3路由守卫 微信授权登陆
  • 内部结算属于什么科目类别
  • 小微企业所得税如何填报
  • 厂房推倒重建和改扩建的税务处理
  • 织梦添加文章如何修改高级参数
  • 浅谈一下新冠的好处
  • 分配人工费的会计分录
  • 汽修修理厂
  • 在建工程结束后怎么处理
  • 什么是公允价值变动收益
  • 支付金额小于发票怎么办
  • 购买金税盘的费用会计分录
  • 自产自销农产品免税备案取消
  • 如何避免电子发票重复报销的情况
  • 施工单位索赔应满足哪些条件?
  • mac下mysql密码忘记了怎么办
  • svchost一直在下载什么
  • win7的系统在哪里打开
  • microsoft window vista
  • Windows Update XP SP3官方下载地址
  • win10开始菜单磁贴颜色
  • win7网上邻居怎么共享文件数据
  • dos到windows
  • android skia opengl
  • dos echo命令
  • html用法
  • ReactNative之FlatList的具体使用方法
  • javaScript事件机制兼容【详细整理】
  • 非递归快速排序python
  • jquery判断值是否为空
  • javascript零基础入门
  • 全面解析李可破格救心汤
  • jquery入口
  • 税收征管法规定税务机关在税款征收中可以采取哪些措施
  • 上海烟草集团董事长是谁
  • 车辆购置税怎样交
  • 广西地方税务网站官网
  • 环保税征税范围44项
  • 电动车验车流程及注意事项
  • 在电脑上怎样做word的文档
  • 财税公司工资怎么样
  • 税务行业微信缴税项目是什么消费
  • 税务培训主题
  • 大班直播课怎么上
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设