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.hqwc.cn/news/682251.html

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

相关文章

上线了《學點笔录》,更方便翻阅笔录

大家好,我是学点,整理了一下自己笔记、摘要、记录《學點笔录》并且上线了为更方便翻阅 https://code.yellowcan.cn 欢迎来我的學點笔录网站!笔录会关于与编程有关,比如bug记录、bug解决过程、编程笔记等等,帮助回忆阅…

【前端热门框架【vue框架】】——对组件进行更加简洁合理的处理和解释(一)

👨‍💻个人主页:程序员-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

八、VUE内置指令

一、初识VUE 二、再识VUE-MVVM 三、VUE数据代理 四、VUE事件处理 五、VUE计算属性 六、Vue监视属性 七、VUE过滤器 七、VUE内置指令 九、VUE组件 v-text 向其所在的节点中渲染文本内容。 (纯文本渲染)与插值语法的区别:v-text会替换掉节点中的内容,{{x…

HashMap前世今生

概述 HashMap是我们常用的一种数据结构,他是一个key-value结构。我们来深入了解一下。 1.8之前用的数组加链表 1.8之后用的数组加链表加红黑树,当链表数量大于8时,将链表转为红黑树。当红黑书节点小于6又会转为链表。 浅析HashMap的put()方…

C语言 循环控制流程的跳转语句

本文 我们来说 控制流程的跳转语句 C语言 提供三种 控制流程的跳转语句 1. break 语句 我们之前讲 switch 时 大家已经看到过这个 break 了 作用是跳出当前 switch 在循环中 它的作用也差不多 这里 我们举个生活中的例子 例如 我们在操场上跑步 计划跑十圈 但是 还没跑完 我…

压缩和归档库-LZ4介绍

1.简介 LZ4是一种快速的压缩算法,提供压缩和解压缩的速度,而牺牲了压缩率。它被设计用于快速的数据压缩和解压缩,特别是用于数据存储和传输。LZ4通常用于需要高速数据处理的场景,如数据库、日志文件处理和实时数据传输。 LZ4的特…

【LLM 论文】Least-to-Most Prompting 让 LLM 实现复杂推理

论文:Least-to-Most Prompting Enables Complex Reasoning in Large Language Models ⭐⭐⭐ Google Research, ICLR 2023 论文速读 Chain-of-Thought(CoT) prompting 的方法通过结合 few-show prompt 的思路,让 LLM 能够挑战更具…

上位机图像处理和嵌入式模块部署(树莓派4b和c++新版本的问题)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 自己读书的时候是03年,学习c也是差不多04年开始,到现在基本上20年了。这20年过程当中,其实c的语言版本一直是在…

phpstudy(MySQL启动又立马停止)问题的解决办法

方法一:查看本地安装的MySQL有没有启动 1.鼠标右击开始按钮选择计算机管理 2.点击服务和应用程序 3.找到服务双击 4.找到MySQL服务 5.双击查看是否启动,如启动则停止他,然后确定,重新打开phpstudy,启动Mysql. 方法二&#xff…

【半夜学习MySQL】数据库概念详解探索数据库到底是如何存储的?

🏠关于专栏:半夜学习MySQL专栏用于记录MySQL数据相关内容。 🎯每天努力一点点,技术变化看得见 文章目录 什么是数据库主流数据库与数据库分类数据库的基本使用数据库的启动及关闭查看配置文件与数据库存储位置连接数据库服务器服务…

Linux网络部分——SSH远程访问及控制

目录 一、配置OpenSSH服务端【☆】 1. ssh服务端配置 vim /etc/ssh/sshd_config 2.客户端连接验证 二、使用SSH客户端程序 1.ssh 远程登录 2.scp 远程复制 3.sftp 安全FTP 三、SSH的验证方式 1. 密钥对验证【☆】 2. 如何实现免密登录 【拓展】免交互创建密钥对和免交…

配电室智能巡检机器人

近年来,生产过程高度自动化,各工矿企业关键场所需定期巡检维护。但目前巡检主要靠人工,既耗时费力效率又低,且受环境等因素影响,巡检难以全面规范,隐患或问题易被忽视。在此情况下,如何利用现有…