YOLOv8 Tensorrt Python/C++部署详解

news2024/11/19 15:25:24

 按照大佬的方法进行部署,但是中间出现了很多问题,这里进行一下总结。

YOLOv8 Tensorrt Python/C++部署教程_yolo 安装tensorrt-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_45747759/article/details/130341118

Monday-Leo/Yolov5_Tensorrt_Win10: A simple implementation of tensorrt yolov5 python/c++🔥 (github.com)icon-default.png?t=N7T8https://github.com/Monday-Leo/Yolov5_Tensorrt_Win10

下载仓库

Monday-Leo/YOLOv8_Tensorrt:Tensorrt YOLOv8 的简单实现 (github.com)icon-default.png?t=N7T8https://github.com/Monday-Leo/YOLOv8_Tensorrtultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch > ONNX > OpenVINO > CoreML > TFLite (github.com)icon-default.png?t=N7T8https://github.com/ultralytics/ultralytics

安装Anaconda

2024年最新版Anaconda3的安装配置及使用教程(非常详细),从零基础入门到精通,看完这一篇就够了(附安装包)_anconda3-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/liuhyusb/article/details/135753864

Download Now | Anacondaicon-default.png?t=N7T8https://www.anaconda.com/download/success

/anaconda/archive/ 的索引 |清华大学开源软件镜像站 |清华开源镜像 (tsinghua.edu.cn)icon-default.png?t=N7T8https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=D

Pycharm创建conda环境

pycharm使用conda创建的虚拟环境时找不到python.exe_conda环境找不到python.exe-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_62392668/article/details/134115527

CUDA安装

CUDA超详细安装教程(windows版)_windows安装cuda-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/virobotics/article/details/136322017CUDA Toolkit Archive | NVIDIA Developericon-default.png?t=N7T8https://developer.nvidia.com/cuda-toolkit-archivecuDNN Archive | NVIDIA Developericon-default.png?t=N7T8https://developer.nvidia.com/rdp/cudnn-archive我是安装的11.8的版本。

我的不是默认安装,然后我就要放在这个目录下面。 

创建环境

yolov8实战第一天——yolov8部署并训练自己的数据集(保姆式教程)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_34717531/article/details/135019573?ops_request_misc=&request_id=&biz_id=102&utm_term=yolo%E7%AC%AC%E4%B8%80%E5%A4%A9&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-135019573.142%5Ev100%5Epc_search_result_base3&spm=1018.2226.3001.4187

创建Python的环境

(yolo是名字,可以任起,3.11是版本,不写默认是最新的版本)

conda create -n yolo python==3.11 

激活环境

activate yolo

安装pytorch

PyTorchicon-default.png?t=N7T8https://pytorch.org/

conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

 

 下载TensorRT

tensorrt的目录也需要记住。

yolov8实战第三天——yolov8TensorRT部署(python推理)(保姆教学)_yolov8 tensorrt python-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_34717531/article/details/135022392?ops_request_misc=&request_id=&biz_id=102&utm_term=yolov8%E7%AC%AC%E4%B8%89%E5%A4%A9&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-135022392.142%5Ev100%5Epc_search_result_base3&spm=1018.2226.3001.4187NVIDIA TensorRT 8.x Download | NVIDIA Developericon-default.png?t=N7T8https://developer.nvidia.com/nvidia-tensorrt-8x-download

 下载地址icon-default.png?t=N7T8https://developer.nvidia.com/nvidia-tensorrt-download

下载Opencv

下载地址icon-default.png?t=N7T8https://bj.bcebos.com/paddleseg/deploy/opencv-3.4.6-vc14_vc15.exe

安装visual studio 2019

链接:https://pan.baidu.com/s/1_SgGM0mb01WIRYy9JRc89A 
提取码:5sfo

安装cmake

我用的是3.17的版本,这里vs和cmake要注意版本,cmake太老的也不支持新版的vs。

Index of /files (cmake.org)icon-default.png?t=N7T8https://cmake.org/files/

模型转换

打开ultralytics-main文件到pycharm中

 安装yolov8仓库,并下载官方模型

pip install ultralytics==8.0.5
pip install onnx==1.12.0

https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pticon-default.png?t=N7T8https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pt

使用官方命令导出ONNX模型

yolo mode=export model=yolov8n.pt format=onnx dynamic=False

将YOLOv8_Tensorrt-master中的v8_transform.py文件移动到ultralytics-main中

转换onnx模型

python v8_transform.py yolov8n.onnx

将yolov8n.transd.onnx文件放到TensorRT的bin目录下

trtexec --onnx=yolov8n.transd.onnx --saveEngine=yolov8n_fp16.trt --fp16

时间稍微有点长,最后会生成trt文件。 

C++部署

进入YOLOv8_Tensorrt-master文件夹打开CMakeLists.txt文件

 设置opencv和tensorrtRT的路径

算力参考如下:

CUDA GPU | NVIDIA 开发者icon-default.png?t=N7T8https://developer.nvidia.cn/cuda-gpus

 cmake打包

在YOLOv8_Tensorrt-master下新建build目录

cmake路径设置如下

点击Configure

Specify the generator for this project

选择自己的vs版本,我的是2019,这个如果cmake太老可能就不会显示新版的vs。

optional platform for generator

选择x64

如果没有报错点击Generate后点击Open Project

这个我本来都是用最新版的,结果不知道是太新了想要改配置文件还是什么原因,所以我就还是用的大佬3.17版本的cmake。

vs编译

选择release

 执行

将预测图片zidane.jpg和模型yolov8n_fp16.trt放build的Release下面(预测图片在YOLOv8_Tensorrt-master下面,模型在TensorRT-8.6.1.6\bin下面)

yolov8.exe

 会生成Result.jpg图片

Python部署

 生成.dll文件

这个第一次选这个,后面自己变成.dll了

然后再编译一下,会生成.dll文件

将YOLOv8_Tensorrt-master下的python_trt.py复制YOLOv8_Tensorrt-master\build\Release

执行

如果报错如下则选用低版本的Python

FileNotFoundError: Could not find module 'E:\code\yolo8\YOLOv8_Tensorrt-master\build\Release\yolov8.dll' (or one of its dependencies). Try using the full path with constructor syntax.

python调用dll出现错误总结如下(持续更新)_python_zsffuture-华为云开发者联盟 (csdn.net)icon-default.png?t=N7T8https://huaweicloud.csdn.net/63806d9bdacf622b8df881f7.html

我这里用的是3.5版本的python.

总结

只能说尝试了很久,不是和这个不兼容就是和那个不兼容,很多东西对于大佬来说太简单了,所以就省略了,这里把文件的位置进行了简单的说明。

大概就是要下载安装很多的文件,然后去尝试,经过了这么久好歹是出来,希望以后再接再厉。

还有就是我安装在D盘,但是CUDA给我在C盘加了一些东西,然后我就找想卸载一部分,参考的是下面这篇博客。

CUDA11.7安装-C盘杀手(含卸载和安装教程)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/Ama_tor/article/details/126868611

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

即插即用 | YOLOv8热力图可视化方法详解,揭秘AI如何「看」世界!【附完整源码】

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

TypeScript学习日志-第十七天(泛型约束)

泛型约束 当我们使用泛型时非常方便,但是在使用的过程中也会遇到很多问题,如图: 这时候就会提示错误,因为返回的是相加的值,但是不是所有的类型都能相加的,例如来个undefined类型的 就不能进行相加了&…

锂电池恒流恒压CCCV充电模型MATLAB仿真

微❤关注“电气仔推送”获得资料(专享优惠) CCCV简介 CCCV充电过程是恒流充电(CC)和恒压充电(CV)的结合。在CC阶段对电池施加恒定电流,以获得更快的充电速度,此时电池电压持续升高…

docker安装Debian:11 freeswitch1.10.5

文章目录 一、生成一个镜像二、切换一个镜像源为阿里源三、安装一些相关依赖和freeswitch3.1第一步:安装freeswitch-mod和下载所需的依赖项3.2 设置密钥3.3 安装freeswitch所需的依赖项3.4 报错3.4.1 报错13.4.2 报错23.4.3 报错3 四、运行4.1 通话三十秒自动挂断 一…

Hotcoin Research | 模块化将是大势所趋:拆解模块化区块链的现状和未来

关于模块化区块链叙事的讨论源于Celestia和其代币TIA的亮眼表现。实际上,模块化是未来区块链设计的主要发展方向和大势所趋。模块化区块链就像乐高积木一样,将区块链系统拆分为可重用的模块,通过定制组合可实现不同功能的区块链网络。这种灵活…

【半个月我拿下了软考证】软件设计师高频考点--系统化教学-网络安全

👨‍💻 收录于专栏:软件设计师考点暴击 ⭐🅰️进入狂砍分⭐ ⭐软件设计师高频考点文档, ⭐软件设计师高频考点专栏 ⭐软件设计师高频考点⭐ 🎶(A) 考点1,网络攻击 理解记忆 &#…

融知财经:期货在哪里可以交易?期货交易有哪些交易规则?

作为当前金融市场的一种投资方式,期货只适合一些投资者,比如想获得高收益的投资者,因为期货的风险系数很高。但是很多投资者还不知道期货的意思,在一个固定的交易场所,期货是买卖标准化商品或金融资产的远期合约的交易…

软件1班20240509

文章目录 1.JDBC本质2.增3.改4.删5.查6.JDBC标准写法 1.JDBC本质 重写 接口的 方法 idea 报错 – 不动脑 alt enter 知道没有重写方法 CTRL o 重写 方法 快捷键 package com.yanyu;/*** Author yanyu666_508200729qq.com* Date 2024/5/9 14:42* description:*/ public interf…

使用QLoRA在自定义数据集上finetuning 大模型 LLAMA3 的数据比对分析

概述: 大型语言模型(LLM)展示了先进的功能和复杂的解决方案,使自然语言处理领域发生了革命性的变化。这些模型经过广泛的文本数据集训练,在文本生成、翻译、摘要和问答等任务中表现出色。尽管LLM具有强大的功能,但它可能并不总是与特定的任务或领域保持一致。 什么是LL…

oracle 数据库找到UDUMP的文件名称

oracle 数据库找到UDUMP的文件名称 select p.value||\||i.instance_name||_ora_||spid||.trc as "trace_file_name" from v$parameter p ,v$process pro, v$session s, (select sid from v$mystat where rownum1) m, v$instance i where lower(p.name)user_dump_…

红米Turbo3小米平板6SPro澎湃OS系统强解BL锁-跳小米社区绑定-刷ROOT权限

红米Turbo3小米平板6SPro这2款设备都出厂为澎湃OS系统,官方提供都是小米社区申请解锁权限,然后自己答题解锁,门槛非常高,想要玩机root的用户,都在堵在门外。还在这目前这两款机型官方并没有加入强制验证,在…

Python turtle绘制图形详解

Python 的 Turtle 模块是一个简单而直观的绘图工具,可以帮助初学者理解基本的图形绘制概念。 1.导入 Turtle 模块: import turtle 2.创建 Turtle 对象: t turtle.Turtle() 3.绘制图形: 4.移动Turtle对象:t.forward(di…

基于Spring Boot的酒店管理系统设计与实现

基于Spring Boot的酒店管理系统设计与实现 开发语言:Java 框架:springboot JDK版本:JDK1.8 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea 系统部分展示 系统首页界面图,在系统首页可以查看首页…

pgsql查看指定模式的存储过程

pgsql查看指定模式的存储过程 在 PostgreSQL 中,如果你想要查看指定模式的存储过程(也称为函数),你可以使用 \df 或 \df 命令在 psql 命令行工具中,或者使用 SQL 查询来从 pg_catalog 系统模式中查询。 \df命令行查询…

容器集群管理系统Kubernetes(K8S)

目录 一、前言 1.1什么是云原生? 1.2云要素的四要素? 1.2.1微服务 1.2.2容器化 1.2.3DevOps 1.2.4持续交付 1.3云平台有哪些? 1.4SRE 二、Kubernetes 概述 2.1K8S 是什么 2.2K8S作用 2.3K8S版本 2.4为什么要用 K8S 2.5K8S 的特…

从零开始打造个性化生鲜微信商城小程序

随着移动互联网的普及,小程序商城已经成为越来越多商家的选择。本文将通过实战案例分享,教您如何在五分钟内快速搭建个性化生鲜小程序商城。 步骤一:登录乔拓云网后台,进入商城管理页面 打开乔拓云官网,点击右上角的“…

unaipp推荐算法的汽车租赁系统zaxzu 微信小程序hbuiderx

随着现代汽车租赁管理的快速发展,可以说汽车租赁管理已经逐渐成为现代汽车租赁管理过程中最为重要的部分之一。但是一直以来我国传统的汽车租赁管理并没有建立一套完善的行之有效的汽车租赁管理系统,传统的汽车租赁管理已经无法适应高速发展,…

自动驾驶中常见坐标系极其转换

各个传感器坐标系 相机坐标系统 摄像头的作用是把三维世界中的形状、颜色信息,压缩到一张二维图像上。基于摄像头的感知算法则是从二维图像中提取并还原三维世界中的元素和信息,如车道线,车辆、行人等,并计算他们与自己的相对位置。 感知算法和相机相关的坐标系有图像坐…

GaussianBody:基于3D高斯散射的服装人体重建

GaussianBody: Clothed Human Reconstruction via 3d Gaussian Splatting GaussianBody:基于3D高斯散射的服装人体重建 Mengtian Li1,2,3, Shengxiang Yao1, Zhifeng Xie1,3,2, Keyu Chen4,2, Yu-Gang Jiang2 李梦田 1,2,3 、姚胜祥 1 、谢志峰 1,3, 2 、陈科宇 4, …

一文了解CloudXR优势及应用原理

CloudXR是一种新颖而先进的技术,旨在将虚拟现实和增强现实体验从本地设备转移到云端,主要功能也包括了远程渲染、流媒体传输、低延迟、高带宽和高质量的音视频传输。CloudXR(云化XR)可以将高保真度的虚拟现实或增强现实场景实时传…