当前位置: 首页 > news >正文

yolov11、yolov8部署的7种方法(yolov11、yolov8部署rknn的7种方法),一天一种部署方法,7天入门部署

  由于涉及量化、部署两个领域,本博文难免有不对之处,欢迎指正。

  本博客对 yolov11(yolov8)尝试了7种不同的部署方法,在最基础的模型上一步一步的去掉解码相关的操作(移到后处理种进行),直到不能再删减,保留到模型最本质的部分。

  随着解码相关的操作越来越多的移入后处理,模型的推理的时耗在减少,后处理的时耗在增加;但也随着解码操作从模型种移除,量化的效果也在逐步变好。

  对每种方法的优势进行了简单总结,不同的平台、不同的时耗或CPU占用需求,总有一种方法是适用的。当然对想了解部署的也是一个很好的参考学习资料。

  春节期间一天一种部署方法,这个春节收获满满。

  yolov11的7种部署方法代码链接

  本博客种使用的板端芯片rk3588,模型yolov11n,模型输入分辨率640x640,检测类别80类。

0 七种方法汇总

编号推理时耗ms后处理时耗ms总时耗msCPU占用相比上一种方法int8量化友好性
第1种最少最简单不友好
第2种33.754.497238.2472同1不友好
第3种32.444.497136.4971增多不友好
第4种30.784.5535.33增多较友好
第5种30.754.8435.58增多,增加到最多较友好
第6种30.247.0837.32同5较友好
第7种30.177.3437.51同5友好

  若NPU负载不是瓶颈,当然可以考虑把多的操作放在NPU上,反之将操作往CPU上挪一部分;若量化掉点较多,则可以考虑量化稍微友好的方式。

1 代码目录结构

  yolov11的 7 种部署方法

yolov11_onnx  # onnx 推理脚本、模型、测试图片、测试效果图
yolov11_rknn  # 转并推理 rknn 脚本、模型、测试图片、测试效果图
yolov11_cpp   # 部署 rk388 完整 C++ 代码、模型、测试图片、测试效果图

2 yolov11(v8)的7种部署方法

2.1 第1种部署方法

模型结构

  按照yolov11官方导出的onnx模型,模型输出直接是类别和解码后的框,模型结构如下图。
在这里插入图片描述

onnx效果

  很遗憾的是转换成rknn的int8模型,检测不到任何结果。转换rknn的int8时把模型输出结果都打印出来发现,模型输出的84这个维度,前4个坐标框值正常,后80个得分输出全为0。导致这样的原因:坐标框值取值范围是1-640,而得分输出的值取值范围0-1,使得对量化很不友好,导致模型得分输出的值基本都为0。尝试转rknn的时不进行量化结果输出正常。因此该方法对量化不友好。这种部署方式模型时耗最长,后处理操作最少。
在这里插入图片描述

板端效果

  由于该种部署方法转rknn的int8时量化效果非常差,因此不做板端部署。

2.2 第2种部署方法

模型结构

  在第1种部署方法的模型基础上,去掉了最后的把坐标框和得分concat在一起的操作。
在这里插入图片描述

onnx效果

  onnx的测试效果和第一种一样,就不再贴图了。

板端效果

  第1种部署方法由于坐标框值取和得分的取值范围差异较大,concat在一起使得量化成int8模型基本不可用。这种方法是去掉了最后的concat,量化能正常输出结果,但在板端测试效果不是很好。
在这里插入图片描述

板端时耗

在这里插入图片描述

2.3 第3种部署方法

模型结构

  在第2种部署方法的模型基础上,去掉坐标框解码到模型输入尺寸的计算。
在这里插入图片描述

onnx效果

  onnx的测试效果和第一种一样,就不再贴图了。

板端效果

在这里插入图片描述

板端时耗

在这里插入图片描述

2.4 第4种部署方法

模型结构

  在第3种部署方法的模型基础上,继续去掉坐标框的DFL,输出2个头。第2、3两种部署方法,可能是对于量化不友好,导致检测效果明显有问题。该种方法检测效果没有明显问题。
在这里插入图片描述

onnx效果

  onnx的测试效果和第一种一样,就不再贴图了。

板端效果

在这里插入图片描述

板端时耗

在这里插入图片描述

2.5 第5种部署方法

模型结构

  在第4种署方法的模型基础上,继续去掉把坐标框和得分进行分开的split,以及得分的sigmoid函数,输出1个头。到达这一种部署方法后,后处理占用cpu不会在增加。
在这里插入图片描述

onnx效果

  onnx的测试效果和第一种一样,就不再贴图了。

板端效果

在这里插入图片描述

板端时耗在这里插入图片描述

2.6 第6种部署方法

模型结构

  在第5种署方法的模型基础上,继续把三个检测头concat在一起的操起去掉,输出3个头。

在这里插入图片描述

onnx效果

  onnx的测试效果和第一种一样,就不再贴图了。

板端效果

在这里插入图片描述

板端时耗

在这里插入图片描述

2.7 第7种部署方法

模型结构

  在第6种署方法的模型基础上,继续把三个检测头的坐标框和得分concat在一起的操起去掉,输出6个头。到这一步模型内封装的操作能去的都去了,模型的速度达到了最快,量化友好性达到了最好。

在这里插入图片描述

onnx效果

  onnx的测试效果和第一种一样,就不再贴图了。

板端效果

在这里插入图片描述

板端时耗

在这里插入图片描述

相关文章:

yolov11、yolov8部署的7种方法(yolov11、yolov8部署rknn的7种方法),一天一种部署方法,7天入门部署

由于涉及量化、部署两个领域,本博文难免有不对之处,欢迎指正。 本博客对 yolov11(yolov8)尝试了7种不同的部署方法,在最基础的模型上一步一步的去掉解码相关的操作(移到后处理种进行)&#xff0…...

【ArcGIS遇上Python】批量提取多波段影像至单个波段

本案例基于ArcGIS python,将landsat影像的7个波段影像数据,批量提取至单个波段。 相关阅读:【ArcGIS微课1000例】0141:提取多波段影像中的单个波段 文章目录 一、数据准备二、效果比对二、python批处理1. 编写python代码2. 运行代码一、数据准备 实验数据及完整的python位…...

Node.js MySQL:深度解析与最佳实践

Node.js MySQL:深度解析与最佳实践 引言 Node.js作为一种流行的JavaScript运行时环境,以其轻量级、高性能和事件驱动模型受到开发者的青睐。MySQL则是一款功能强大的关系型数据库管理系统,广泛应用于各种规模的应用程序中。本文将深入探讨Node.js与MySQL的集成,分析其优势…...

wordpress外贸独立站常用询盘软件

LiveChat LiveChat是一家提供实时聊天软件的公司,帮助企业通过其平台与客户进行即时通讯,提高客户满意度和忠诚度。他们的产品允许企业在网站、应用程序或电子邮件等多个渠道与客户互动,从而提升客户体验并促进销售增长。 LiveChat的软件特…...

Kotlin 委托详解

Kotlin 委托详解 引言 Kotlin 作为一种现代化的编程语言,在 Android 开发等领域得到了广泛的应用。在 Kotlin 中,委托(Delegation)是一种强大的特性,它可以让我们以更简洁的方式实现代码的复用和扩展。本文将详细解析…...

Cursor 简介:AI 如何改变编程体验

在软件开发领域,效率和质量始终是开发者们追求的目标。随着人工智能技术的飞速发展,编程工具也在不断进化,Cursor 便是这一趋势下的产物。它不仅仅是一个代码编辑器,更是一个集成了 AI 能力的智能编程助手,旨在通过 AI…...

Fiddler(一) - Fiddler简介_fiddler软件

文章目录 一、为什么选择Fiddler作为抓包工具? 二、什么是Fiddler?三、Fiddler使用界面简介四、延伸阅读 一、为什么选择Fiddler作为抓包工具? 抓包工具有很多,小到最常用的web调试工具firebug,大到通用性强大的抓包工具wireshark。为什么使用fid…...

实测数据处理(Wk算法处理)——SAR成像算法系列(十二)

系列文章目录 《SAR学习笔记-SAR成像算法系列(一)》 《wk算法-SAR成像算法系列(五)》 文章目录 前言 一、算法流程 1.1、回波信号生成 2.2 Stolt插值 2.3 距离脉冲压缩 2.4 方位脉冲压缩 2.5 SAR成像 二、仿真实验 2.1、仿真参数…...

P1775 石子合并(弱化版)

P1775 石子合并(弱化版) 题目描述 设有 N ( N ≤ 300 ) N(N \le 300) N(N≤300) 堆石子排成一排,其编号为 1 , 2 , 3 , ⋯ , N 1,2,3,\cdots,N 1,2,3,⋯,N。每堆石子有一定的质量 m i ( m i ≤ 1000 ) m_i\ (m_i \le 1000) mi​ (mi​≤…...

一文回顾讲解Java中的集合框架

这篇文章以提问的方式总结回顾下Java中常见的集合框架 Java中的集合框架可以分为两条大的支线:Collection和Map Collection,主要由List、Set、Queue组成; List是有序,可重复的集合,典型代表有封装了动态数组的ArrayList和封装了链…...

多模态论文笔记——NaViT

大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细解读多模态论文NaViT(Native Resolution ViT),将来自不同图像的多个patches打包成一个单一序列——称为Patch n’ Pack—…...

智能小区物业管理系统推动数字化转型与提升用户居住体验

内容概要 在当今快速发展的社会中,智能小区物业管理系统的出现正在改变传统的物业管理方式。这种系统不仅仅是一种工具,更是一种推动数字化转型的重要力量。它通过高效的技术手段,将物业管理与用户居住体验紧密结合,无疑为社区带…...

I2C基础知识

引言 这里祝大家新年快乐!前面我们介绍了串口通讯协议,现在我们继续来介绍另一种常见的简单的串行通讯方式——I2C通讯协议。 一、什么是I2C I2C 通讯协议(Inter-Integrated Circuit)是由Phiilps公司在上个世纪80年代开发的&#…...

护眼好帮手:Windows显示器调节工具

在长时间使用电脑的过程中,显示器的亮度和色温对眼睛的舒适度有着重要影响。传统的显示器调节方式不仅操作繁琐,而且在低亮度下容易导致色彩失真。因此,今天我想为大家介绍一款适用于Windows系统的护眼工具,它可以帮助你轻松调节显…...

MongoDb user自定义 role 添加 action(collStats, EstimateDocumentCount)

使用 mongosh cd mongsh_bin_path mongosh “mongodb://user:passip:port/db”这样就直接进入了对应的db 直接输入: 这样 role “read_only_role" 就获得了3个 action, 分别是 查询,列举集合,集合元数据查询 P.S: 如果没有 …...

mysql学习笔记-数据库其他调优策略

1、如何定位调优问题 用户的反馈(主要) 日志分析(主要) 服务器资源使用监控 数据库内部状况监控 2、调优的维度和步骤 第1步:选择适合的 DBMS 第2步:优化表设计 第3步:优化逻辑查询 第4步&am…...

Office / WPS 公式、Mathtype 公式输入花体字、空心字

注:引文主要看注意事项。 1、Office / WPS 公式中字体转换 花体字 字体选择 “Eulid Math One” 空心字 字体选择 “Eulid Math Two” 使用空心字时,一般不用斜体,取消勾选 “斜体”。 2、Mathtype 公式输入花体字、空心字 2.1 直接输…...

(done) MIT6.S081 2023 学习笔记 (Day6: LAB5 COW Fork)

网页:https://pdos.csail.mit.edu/6.S081/2023/labs/cow.html 任务1:Implement copy-on-write fork(hard) (完成) 现实中的问题如下: xv6中的fork()系统调用会将父进程的用户空间内存全部复制到子进程中。如果父进程很大,复制过程…...

SYN Flooding的攻击原理

SYN Flooding是一种常见的网络攻击方式,属于拒绝服务攻击(DoS)的一种,其攻击原理主要是利用了TCP协议的三次握手过程,以下是具体介绍: TCP三次握手正常流程 第一次握手:客户端向服务器发送一个…...

MYSQL--一条SQL执行的流程,分析MYSQL的架构

文章目录 第一步建立连接第二部解析 SQL第三步执行 sql预处理优化阶段执行阶段索引下推 执行一条select 语句中间会发生什么? 这个是对 mysql 架构的深入理解。 select * from product where id 1;对于mysql的架构分层: mysql 架构分成了 Server 层和存储引擎层&a…...

线程同步:确保多线程程序的安全与高效!

全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录&#xff0c;不允许匿名访问&#xff0c;kefu只能访问/data/kefu目录&#xff0c;不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发&#xff0c;其初衷是为了满足他自己的一个项目需求&#xff0c;即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源&#xff0c;Redis凭借其简单易用、…...

LabVIEW双光子成像系统技术

双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制&#xff0c;展现出显著的技术优势&#xff1a; 深层组织穿透能力&#xff1a;适用于活体组织深度成像 高分辨率观测性能&#xff1a;满足微观结构的精细研究需求 低光毒性特点&#xff1a;减少对样本的损伤…...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文通过代码驱动的方式&#xff0c;系统讲解PyTorch核心概念和实战技巧&#xff0c;涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...