YOLOv8 Tensorrt Python/C++部署详解

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

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.mzph.cn/news/834681.shtml

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

相关文章

Kafka从0到消费者开发

安装ZK Index of /zookeeper/zookeeper-3.9.2 下载安装包 一定要下载-bin的,不带bin的是源码,没有编译的,无法执行。-bin的才可以执行。 解压 tar -zxvf apache-zookeeper-3.9.2-bin.tar.gz 备份配置 cp zoo_sample.cfg zoo_sample.cfg-b…

物流集成商巨头-员工薪酬PK:今天国际、音飞存储,诺力股份

语 大家好,我是智能仓储物流技术研习社的社长,老K。专注分享智能仓储物流技术、智能制造等内容。 新书《智能物流系统构成与技术实践》 以下内容为根据上市财报和公开数据整理,若有偏差,请联系小编修改。注意:各公司员…

ZYNQ实验--裸机程序固化

参考资料 正点原子《领航者 ZYNQ 之嵌入式 SDK 开发指南》详细的配置资料中都有介绍,本文只针对个人实验需求进行简要说明 固化流程 调试阶段是通过 JTAG 接口将 FPGA 配置文件和应用程序下载到 ZYNQ 器件中。但在实际应用中需要程序在上电或者复位时让程序自动运…

Adversarial Synthesis of Human Pose From Text # 论文阅读

URL https://arxiv.org/pdf/2005.00340 TD;DR 20 年 5 月来自高校的一篇论文,任务是用 GAN 生成 pose,目前 7 引用。 Model & Method 输入的是描述动作的 text,通过 text encoder(本文用的是叫做 fastText 的方法&#…

迷宫中离入口最近的出口

题目链接 迷宫中离入口最近的出口 题目描述 注意点 maze[i][j] 要么是 ‘.’ ,要么是 ‘’entrance.length 2entrance 一定是空格子出口的含义是 maze 边界上的空格子entrance格子不算出口 解答思路 广度优先遍历找到走i步时所能到达的所有节点位置&#xff0…

认识 Pixel 8a:这款 Google AI 手机拥有无与伦比的价值。

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

html+css-Day1(盒子模型)

一、常用属性 1、字体设置font "line-height" 是 CSS 中的一个属性,用于设置文本行之间的距离,也就是行间距。它影响着段落、行内元素或者任何包含文本的元素的可读性。"line-height" 可以设置为数字、长度单位(如 px、e…

数据结构——希尔排序

基本思想: 希尔排序法又称缩小增量法。希尔排序法的基本思想是:先选定一个整数,把待排序文件中所有记录分成个组,所有距离为的记录分在同一组内,并对每一组内的记录进行排序。然后,取,重复上述…

【图文教程】PyCharm安装配置PyQt5+QtDesigner+PyUic+PyRcc

这里写目录标题 PyQt5、Qt Designer、PyUic、PyRcc简介(1)下载安装PyQt5(2)打开designer.exe所在位置(3)在PyCharm中配置QtDesigner(4)验证QtDesigner是否配置成功(5&…

通过编写dockerfile部署python项目

docker命令总览 docker通过dockerfile构建镜像常用命令 # 创建镜像(进入dockerfile所在的路径) docker build -t my_image:1.0 .# 查看镜像 docker images# 创建容器 docker run -dit --restartalways -p 9700:9700 --name my_container my_image:1.0 #…

阿里发布通义千问2.5:一文带你读懂通义千问!

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,所以创建了“AI信息Gap”这个公众号,专注于分享AI全维度知识…

就业班 第三阶段(zabbix) 2401--5.9 day1 普通集zabbix 5.0部署 nginx部署+agent部署

文章目录 环境一、zabbix 5.0 部署1、安装yum源2、安装相关软件3、数据库安装和配置mariaDB数据库mysql57数据库 安装mysql万能卸载mysql代码:启动mysql并初始化4、数据表导入5、修改配置,启动服务6、配置 web GUI7、浏览器访问注意数据加密的选项不要勾…

分享四种免费获取SSL的方式

SSL证书目前需要部署安装的网站很多,主要还是基于国内目前对证书的需求度在不断的升高,网站多了、服务器多了之后。网络安全问题就成为了大家不得不面对的一个重要的问题了。SSL证书的作用有很多,这里就不一一详述了,本期作品主要…

RSAC 2024现场:谷歌展望大模型在网络安全领域的前景

人类距离将网络安全的控制权交给生成式AI还有多远? 前情回顾RSAC2024动态 伪造内容鉴别厂商Reality Defender斩获2024 RSAC创新沙盒冠军 RSAC 2024上值得关注的10款网络安全产品 RSAC 2024创新沙盒十强出炉,谁能夺冠? 安全内参5月8日消息…

table表格 如何加卡片 实现?

实现非常简单 代码 const columnsinsu [{dataIndex: nowdate,key: nowdate,render: (text, record) ><Cardhoverablestyle{{width: 97%,height: 90,}}// cover{<img alt"example" src"https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png&…

浅析安全用电监控系统在工厂的研究与应用论述

摘 要&#xff1a;随着社会时代的发展&#xff0c;人们的安全意识越来越强烈&#xff0c;在人们生活和工作中离不开各种用电设备&#xff0c;用电设备的安全使用是保障人们生命安全的重要内容。工厂因自身厂内工作环境的特殊性&#xff0c;用电设备的种类多且复杂&#xff0c;如…

指针的奥秘(二):指针与数组的联系+字符指针+二级指针+指针数组+《剑指offer》笔试题

指针 一.指针与数组的联系1.数组名的理解2.使用指针访问数组3.一维数组传参的本质 二.字符指针1.字符指针隐藏秘密2.常量字符串3.《剑指offer》笔试题 三.二级指针四.指针数组1.指针数组模拟二维数组 一.指针与数组的联系 1.数组名的理解 也许大部分人认为数组名就是一个名称&…

TL-WN826N无线网卡连接电脑蓝屏,提示rtl8188gu.sys

TL-WN826N无线网卡插电脑就蓝屏&#xff0c;提示rtl8188gu.sys 处理方法&#xff1a; 设备管理器中卸载其他的2.0无线网卡程序和功能中卸载网卡驱动TPlink官网下载 TL-WN826N V1.0_1.0.0&#xff08;https://www.tp-link.com.cn/product_572.html?vdownload&#xff09;&…

【Linux】项目自动化构建工具make/makefile

&#x1f389;博主首页&#xff1a; 有趣的中国人 &#x1f389;专栏首页&#xff1a; Linux &#x1f389;其它专栏&#xff1a; C初阶 | C进阶 | 初阶数据结构 小伙伴们大家好&#xff0c;本片文章将会讲解Linux中项目自动化构建工具make/makefile的相关内容。 如果看到最后…

【知识碎片】2024_05_09

本篇记录了关于C语言的一些题目&#xff08;puts&#xff0c;printf函数的返回值&#xff0c;getchar&#xff0c;跳出多重循环&#xff09;&#xff0c;和一道关于位运算的代码&#xff3b;整数转换&#xff3d;。 C语言碎片知识 如下程序的功能是&#xff08; &#xff09; #…