CV Method:YOLOv10 vs YOLOv8

文章目录

  • 前言
  • 一、介绍
  • 二、YOLOv8 and YOLOv10 Comparison
    • 1.模型结构
      • YOLOv8:
      • YOLOv10:
    • 2. 推理和时延
    • 3. 检测表现
    • 4. 参数利用
    • 5. 关键比较
  • 总结


前言

YOLOv10已经开源一段时间了,经过我实际使用测试,也确实性能更好一些,YOLOv10基于v8代码框架改进,so 之前v8可用的大部分trick在v10上可直接代码移植过去(我自己尝试了下,大部分code不需要改动,直接实现装备继承)。本文主要比较一下v10 和 v8之间的区别和改进。


一、介绍

yolov10最重要的point就是它的 NMS-free 检测功能,我们知道NMS是检测发展中重要的一环,yolov10通过one-to-onehead实现了不需要NFS的检测模型,这可以有效提升模型的执行速度。此外提升性能的trick还有——
Key features as follow
1) 轻量分类head
2)空间-通道解藕下采样
3)rank-guided block design

二、YOLOv8 and YOLOv10 Comparison

1.模型结构

YOLOv8:

使用C2f模块完成多尺度特征交互,需要依赖NMS完成post process
请添加图片描述

YOLOv10:

neck部分采用简单的PAN模块,head部分使用两个一致的head,分别为One-to-many, 和 One-to-One。

One-to-many:在训练期间,多个预测框被分配给一个真实物体标签。这种策略提供了丰富的监督信号,优化效果更好。(此部分仍需使用NMS,比如取top100置信度的box)

One-to-One:仅一个预测框被分配给一个真实物体标签,避免了NMS,但由于监督信号较弱,容易导致收敛速度慢和性能欠佳。(该部分code实现中只需要取top1置信度的box即可(TAA分配算法中取top1),则不需要过NMS)

双头架构:模型在训练期间使用两个预测头,一个使用一对多分配,另一个使用一对一分配。这样,模型可以在训练期间利用一对多分配的丰富监督信号,而在推理期间则使用一对一分配的预测结果,从而实现无NMS的高效推理。

请添加图片描述
请添加图片描述

一致性度量: 为了在训练期间保持两个预测头的一致性,提出了一致匹配度量。通过调整匹配度量参数,使得一对一和一对多分配的监督信号一致,减少了训练期间的监督差距,提升了模型的预测质量。

整体优化:轻量级分类头和其他架构优化减少了计算冗余(such 使用depthwise & pointwise & 结构重参数化(类似repvgg)),另外一些很多结构化策略的设计还是很值得学习的,可以看看原文。

2. 推理和时延

请添加图片描述
在相同的COCO AP下,YOLOv10-S is 1.8× faster than RT-DETR-R18.

3. 检测表现

通过国外大佬的实际评测发现,V10在小目标检测上相比V8有着更好的效果在V8中,针对小目标检测,通常需要调整box置信度阈值。V10由于one-to-one特性,只需要使用较低的阈值即可。

4. 参数利用

YOLOv10-B 相比YOLOv9-C 降低了46%的latency, 和25%的参数量,且有着相同的性能。

5. 关键比较

Speed and Efficiency: YOLOv10 由于NMS-free方法在后处理速度上优于yolov8,更适合real-time检测。

Detection Accuracy: v8和v10检测精度都很不错,但v10在小目标上有着更直观的优势。

Parameter Optimization: YOLOv10 由于更多结构优化,其参数量相比v8更少,模型更紧凑。


总结

v10有效解决了YOLO系列一直以来的限制,比如NMS,小目标检测问题,确实是很大的启发。v10是基于v8框架进行修改的,v8的框架确实很强大,同样很值得学习!

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

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

相关文章

静态IP地址在网络安全中的角色解析与实测分析

在这个网络边界日益模糊的时代,每一次点击、每一次数据传输都有着安全问题。作为网络安全体系中的基石,静态IP地址的角色显得尤为重要而复杂。今天,我们的测评团队将带您深入剖析静态IP地址在网络安全中的多重角色,并通过两家代理…

JavaScript(16)——定时器-间歇函数

开启定时器 setInterval(函数,间隔时间) 作用:每隔一段时间调用这个函数,时间单位是毫秒 例如:每一秒打印一个hello setInterval(function () { document.write(hello ) }, 1000) 注:如果是具名函数的话不能加小括号&#xf…

【图像标签转换】XML转为TXT图像数据集标签

引言 该脚本用于将包含对象标注的 XML 文件转换为 YOLO(You Only Look Once)对象检测格式的 TXT 文件。脚本读取 XML 文件,提取对象信息,规范化边界框坐标,并将数据写入相应的 TXT 文件。此外,它还生成一个…

做视频混剪都是去哪里找高清素材的?分享10个高清视频素材库

提升视频混剪质感的10个高清素材库推荐 在这个视觉体验至上的时代,视频的视觉质量对吸引观众至关重要。如果你正在寻找高清素材以提升视频混剪作品的层次,那么你来对地方了。今天,我将为你揭秘10个视频混剪达人常用的高清素材库,…

学习笔记-系统框图传递函数公式推导

目录 *待了解 现代控制理论和自动控制理论区别 自动控制系统的组成 信号流图 1、系统框图 1.1、信号线、分支点、相加点 1.2、系统各环节间的连接 1.3、 相加点和分支点的等效移动(比较点、引出点) 2、反馈连接公式推导 2.1、前向通路传递函数…

Windows:批处理脚本学习

目录 一、第一个批处理文件 1. &&和 | | 2. | 和 & 二、变量 1.传参变量%name 2.初始化变量set命令 3.变量的使用 4.局部变量与全局变量 5.使用环境变量 6.扩充变量语法 三、注释REM和 :: 四:函数 1.定义函数 2.…

js 习题 1

文章目录 前言T1T2T3T4T5T6T7T8T9结语 前言 『最孤独的人最亲切,受过伤的人总是笑的最灿烂。』—— 「素媛」 T1 let buf""; process.stdin.on("readable",function(){let chunkprocess.stdin.read();if(chunk){bufchunk.toString();} });pr…

Python3网络爬虫开发实战(2)爬虫基础库

文章目录 一、urllib1. urlparse 实现 URL 的识别和分段2. urlunparse 用于构造 URL3. urljoin 用于两个链接的拼接4. urlencode 将 params 字典序列化为 params 字符串5. parse_qs 和 parse_qsl 用于将 params 字符串反序列化为 params 字典或列表6. quote 和 unquote 对 URL的…

GIS前沿技术

无论是初步接触到GIS的学生,还是对GIS已经有一定的了解的从业者,肯定都非常关心两个问题:GIS有没有发展前景,GIS有哪些应用价值? 关于这两个问题,笔者的答案是GIS作为一门融合了空间数据采集、存储、处理、…

【数据结构】堆,优先级队列

目录 堆堆的性质大根堆的模拟实现接口实现构造方法建堆入堆判满删除判空获取堆顶元素 Java中的PriorityQueue实现的接口构造方法常用方法PriorityQueue注意事项 练习 堆 如果有一个集合K {k0,k1, k2,…,kn-1},把它的…

Listen(sockfd,backlog)监听函数的第二个参数到底是什么?深度解释

listen队列剖析 int listen(int sockfd,int backlog) backlog : 监听套接字队列 对于一个调用监听的套接字,系统会维护给这个套接字两个队列 1. 未完成连接队列 //当客户端发生三次握手的第一次syn包给服务器的时候,服务器就会再未完成队列中创建…

2024第29届郑州全国商品交易会

第29届郑州全国商品交易会 2024第四届餐饮与供应链专题展 邀 请 函郑州全国商品交易会(简称郑交会)是全国大型性经贸活动,一直秉承“政府指导,市场化运作”的模式,自1995年以来已成功举办了二十八届,是国内…

安装caffe-CPU版本并进行训练

目录 前言 0、安装Ubuntu 18.04 版本 输入ls没有反应 ubuntu换源 换源出现的问题 1、安装caffe出现E:Unable to locate package caffe-cpu问题 2、把 code 文件夹下载到 ubuntu 3、在本地使用caffe-CPU,并部署数据标注工具 ATool 问题1 问题2 问题3 命令行…

leedcode-数组-15 最接近的三数之和

原理 1、对数组进行升序排列; 2、定义变量_min,初始值是升序后数组的前3个元素之和,默认当前3个数之和离目标值最近; 3、遍历数组; 4、定义首指针为start,表示当前遍历元素的下一个元素,即i…

URL过滤、DNS过滤和内容过滤的总结

目录 URL过滤 URL和URI URL -- 统一资源定位符 URI --- 统一资源的标识符 URL和URI之间的区别 URL过滤的方式 HTTP协议获取URL的方式 HTTP协议做控制管理的流程 HTTPS协议做控制管理的流程 1,配置SSL的解密功能 2,直接针对加密流量进行过滤 例…

解决 Shiro 重复调用 doGetAuthenticationInfo 导致异常处理错误的问题

遇到一个 Shiro 中反复调用 doGetAuthenticationInfo 导致异常没有被成功处理的问题,经过一些源码调试,发现了问题的所在,只需在继承 BasicHttpAuthenticationFilter 的类中重写 onAccessDenied 方法即可。 文章目录 1.问题环境2.问题描述3.问…

2024-07-23 Unity AI行为树2 —— 项目介绍

文章目录 1 项目介绍2 AI 代码介绍2.1 BTBaseNode / BTControlNode2.2 动作/条件节点2.3 选择 / 顺序节点 3 怪物实现4 其他功能5 UML 类图 项目借鉴 B 站唐老狮 2023年直播内容。 点击前往唐老狮 B 站主页。 1 项目介绍 ​ 本项目使用 Unity 2022.3.32f1c1,实现基…

25.x86游戏实战-理解发包流程

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 工具下载: 链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

【iOS】——Block循环引用

循环引用原因 如果在Block中使用附有_ _strong修饰符的对象类型自动变量,那么当Block从栈复制到堆时,该对象为Block所持有,这样容易引起循环引用。 HPPerson *person [[HPPerson alloc] init];person.block ^{NSLog("person.age--- …

服务韧性工程(SRE)论坛演讲实录 | 雅菲奥朗: 人工智能的未来之路引领智能运维新纪元

2024年5月24日,第二届服务韧性工程(SRE)论坛在杭州成功举办。本次会议由中关村人才协会作为指导单位,中国移动通信集团浙江有限公司和SRE创新联合体(中关村人才协会SRE专委会)联合主办,中移动信息技术有限公…