WSL-Ubuntu20.04环境使用YOLOv8 TensorRT推理加速

        在阅读本章内容之前,需要把部署环境以及训练环境都安装好。

1.TensorRTX下载

        这里使用Wang-xinyu大佬维护的TensorRTX库来对YOLOv8进行推理加速的演示,顺便也验证一下前面环境配置的成果。

        github地址:GitHub - wang-xinyu/tensorrtx,下载后放到wsl的路径下,我这里放在/home路径下,并解压到/home路径下:

unzip tensorrtx-master.zip 

2.Vs-Code远程连接TensorRTX 

        首先必须先安装一个WSL插件,如下所示:

        然后连接WSL-Ubuntu2004,如下所示: 

        最后打开我们解压的tensorRTX文件,因为我们需要用到YOLOv8,所以选择YOLOv8,然后点击OK就可以了。 

         因为后面同时涉及到Python代码和C++代码,所以把这两个用到的插件也一起安装了,其中python环境需要安装Python插件,C++环境需要安装c++插件.

3.使用YOLOv8n.pt进行推理加速实验

        这里就先使用官方的YOLOv8n.pt目标检测模型进行实验,看看我们的环境是否安装成功,这里只是先走一遍流程,关于TensorRTX的具体细节后面会有专门的文章来介绍。

        第一步:当然是要把官方的YOLOv8n.pt放到/home/tensorrtx-master/yolov8路径下,然后执行gen_wts.py代码,修改pt_file路径(-w)和生成的wts_file路径(-o)就行,如下所示。这段代码是把.pt模型的参数大小及权值保存下成.wts,后面也是根据该.wts文件的保存规则解析并序列化成.engine文件。

python gen_wts.py -w /home/tensorrtx-master/yolov8/yolov8n.pt -o /home/tensorrtx-master/yolov8/yolov8n.wts -t detect 

        第二步:需要配置相关的头文件,shift+ctrl+P,搜索Edit configurations (UI),然后在Include path这里补充上以下路径,也就是我们前面安装的Cuda、OpenCV和TensorRT的头文件路径。

/usr/local/cuda-11.6/include
/usr/local/include/opencv4
/root/TensorRT-8.5.1.7/include

         同时需要修改一下CMakeLists.txt文件中关于tensorRT的include和lib路径,如下所示. 

        然后就可以在vs-code终端执行以下指令: 

mkdir build
cd build
cp /home/tensorrtx-master/yolov8/yolov8n.wts /home/tensorrtx-master/yolov8/build
cmake ..
make

        执行完之后发现在build路径下会生成可执行文件yolov8_det. 

         第三步:序列化生成.engine模型,这一步时间会稍微长一点,执行成功后会在build路径下生成yolov8n.engine文件。

./yolov8_det -s /home/tensorrtx-master/yolov8/yolov8n.wts yolov8n.engine n

         第四步:反序列化.engine模型并进行推理,推理结果也是直接保存在build路径下,

./yolov8_det -d yolov8n.engine ../images c

        我用多张图片进行测试,推理时间是很快的,只花费了1ms,如下所示。 

        至此,使用WSL-Ubuntu20.04环境对YOLOv8模型进行了推理加速的实验,但是我们发现WSL-Ubuntu20.04配置环境也还是很复杂,要手动安装那么多东西,下面我会介绍环境搭建神器Docker,来快速搭建部署及训练环境,实现Develop faster. Run anywhere.这种效果。 

 

 

 

 

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

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

相关文章

SourceTree rebase(变基)的使用

参考资料 【Sourcetree】コミットを一つにまとめる【Sourcetree】リベースする 目录 前提0.1 merge与rebase0.2 merge合并分支0.3 rebase合并分支0.4 💥超级注意事项💥 一. 代码已提交,未推送,交互式变基1.1 通过SourceTree操作1…

Richtek立锜科技可用于智能门铃的电源管理解决方案

新型的智能门铃不仅能满足呼叫、提醒的需要,还能在线监控、远程操作、闯入通知、记录过程,系统构成相对复杂,与传统门铃相比有了很大的改变。 从电源管理的角度来观察,满足这样需求的系统构成也相对复杂: 处于外置状态…

ElementUIV12相关使用方法

今日内容 零、 复习昨日 零、 复习昨日 一、Element UI Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库 官网: https://element.eleme.cn/#/zh-CN Element Plus,基于 Vue 3,面向设计师和开发者的组件库 官网: htt…

多样化数据可视化方法的全面示例:基于Python的多样化数据可视化

文章目录 前言代码效果展示 前言 本文演示了使用Python进行温度数据的多样化可视化方法。通过导入、处理和分析气象数据,我们生成了多种图表,包括直方图、核密度估计图、箱型图、小提琴图、条形图、山脊图、经验累积分布函数图和折线图。这些图表帮助我…

从产品手册用户心理学分析到程序可用性与易用性的重要区别

注:机翻,未校对。 Designing for People Who Have Better Things To Do With Their Lives 为那些生活中有更重要事情要做的人设计 When you design user interfaces, it’s a good idea to keep two principles in mind: 在设计用户界面时,…

微软Office PLUS办公插件下载安装指南

微软OfficePLUS插件下载安装指南 简介: OfficePLUS微软官方出品的Office插件 ,OfficePLUS拥有30万高质量模板素材,能帮助Word、Excel、Powerpoint、PDF等多种办公软件提升效率,具有智能化、模板质量高、运行快、稳定性强等优点。…

探索Facebook:数字社交的魔力源泉

在当今信息爆炸和全球互联的时代,社交媒体平台成为了人们生活中不可或缺的一部分。而在这些平台中,Facebook无疑是最具影响力和创新性的代表之一。自2004年成立以来,Facebook不仅改变了人们的沟通方式,更通过不断的技术创新和用户…

Pycharm与Gitlab交互

环境准备 1、下载配置好本地Git 2、配置Pycharm上的Git 3、gitlab账号 Gitlab配置 Gitlab配置中文 账号》设置》偏好设置》简体中文 创建项目 命令行操作 打开项目会展示以下步骤 在pycharm克隆gitlab的项目 通过菜单栏 1、在PyCharm的顶部菜单栏中,选择“V…

探索智能合约在金融科技中的前沿应用与挑战

随着区块链技术的发展和普及,智能合约作为其核心应用之一,在金融科技(FinTech)领域中展现出了巨大的潜力和挑战。本文将深入探讨智能合约的基本概念、前沿应用案例,以及面临的技术挑战和发展趋势,旨在帮助读…

R语言进行集成学习算法:随机森林

# 10.4 集成学习及随机森林 # 导入car数据集 car <- read.table("data/car.data",sep ",") # 对变量重命名 colnames(car) <- c("buy","main","doors","capacity","lug_boot","safety"…

昇思25天学习打卡营第11天|RNN实现情感分类

概述 情感分类是自然语言处理中的经典任务&#xff0c;是典型的分类问题。本节使用MindSpore实现一个基于RNN网络的情感分类模型&#xff0c;实现如下的效果&#xff1a; 输入: This film is terrible 正确标签: Negative 预测标签: Negative输入: This film is great 正确标…

SpringBoot之健康监控(Actuator)

1&#xff0c;基本介绍 Spring Actuator 是 Spring Boot 提供的一个扩展模块&#xff0c;用于监控和管理应用程序的生产环境。它通过 HTTP 端点暴露了大量的监控和管理功能&#xff0c;使得开发者可以在运行时查看应用程序的运行状况、配置信息、性能指标等。 主要功能&#…

【Qt】探索Qt框架:开发经典贪吃蛇游戏的全过程与实践

文章目录 引言项目链接&#xff1a;1. Qt框架的使用简介2. 贪吃蛇游戏设计2.1 游戏规则和玩法介绍2.2 游戏界面设计概述 3. 核心代码解析3.1 主界面&#xff08;GameHall&#xff09;3.1.1 布局和功能介绍3.1.2 代码实现分析 3.2 游戏选择界面&#xff08;GameSelect&#xff0…

WPF+MvvmLight 项目入门完整教程(一)

WPF+MvvmLight入门完整教程一 创建项目MvvmLight框架安装完善整个项目的目录结构创建自定义的字体资源下载更新和使用字体资源创建项目 打开VS2022,点击创建新项目,选择**WPF应用(.NET Framework)** 创建一个名称为 CommonProject_DeskTop 的项目,如下图所示:MvvmLight框架…

redis原理之底层数据结构(二)-压缩列表

1.绪论 压缩列表是redis最底层的结构之一&#xff0c;比如redis中的hash&#xff0c;list在某些场景下使用的都是压缩列表。接下来就让我们看看压缩列表结构究竟是怎样的。 2.ziplist 2.1 ziplist的组成 在低版本中压缩列表是由ziplist实现的&#xff0c;我们来看看他的结构…

uniapp 微信小程序根据后端返回的文件链接打开并保存到手机文件夹中【支持doc、docx、txt、xlsx等类型的文件】

项目场景&#xff1a; 我们在使用uniapp官方提供的uni.downloadFile以及uni.saveFile时&#xff0c;会发现这个文件下载的默认保存位置和我们预想的不太一样&#xff0c;容易找不到&#xff0c;而且没有提示&#xff0c;那么我们就需要把文件打开自己保存并且有提示保存到哪个…

fastadmin导入vue

前台 require-frontend.js或frontend-init.js 后台 require-backend.js或backend-init.js 后台 方法一 require-backend.js 在 paths 中加入’vue’:‘…/libs/vue/vue.min’, 在shim 中加入 paths: {............vue:../libs/vue/vue.min, } shim: {............vue: {ex…

acrobat 中 PDF 复制时不能精确选中所选内容所在行的一种解决方法

现象&#xff1a;划取行的时候&#xff0c;自动扩展为多行 如果整段选中复制&#xff0c;粘贴后是乱码 解决步骤 识别完&#xff0c;保存 验证 可以按行复制了。 如果遇到仅使用 acrobat OCR 不能彻底解决的&#xff0c;更换其他自己熟悉的进行 OCR。

小程序-模板与配置

一、WXML模板语法 1.数据绑定 2.事件绑定 什么是事件 小程序中常用的事件 事件对象的属性列表 target和currentTarget的区别 bindtap的语法格式 在事件处理函数中为data中的数据赋值 事件传参 &#xff08;以下为错误示例&#xff09; 3.事件传参与数据同步 4.条件渲染 …

three.js创建基础模型

场景是一个三维空间&#xff0c;是所有物品的容器。可以将其想象成一个空房间&#xff0c;里面可以放置要呈现的物体、相机、光源等。 通过new THREE.Scene()来创建一个新的场景。 /**1. 创建场景 -- 放置物体对象的环境*/ const scene new THREE.Scene();场景只是一个三维的…