YOLOv10 | 无NMS的YOLO | 实时端到端目标检测的新突破

2024-05-25 12:52

本文主要是介绍YOLOv10 | 无NMS的YOLO | 实时端到端目标检测的新突破,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

过去几年里,YOLOs因在计算成本和检测性能之间实现有效平衡而成为实时目标检测领域的主流范式。研究人员针对YOLOs的结构设计、优化目标、数据增强策略等进行了深入探索,并取得了显著进展。然而,对非极大值抑制(NMS)的后处理依赖阻碍了YOLOs的端到端部署,并对推理延迟产生负面影响。此外,YOLOs中各种组件的设计缺乏全面和彻底的审查,导致明显的计算冗余并限制了模型的性能。这导致次优的效率,以及性能提升的巨大潜力。在这项工作中,我们旨在从后处理和模型架构两个方面进一步推进YOLOs的性能-效率边界。为此,我们首先提出了用于YOLOs无NMS训练的持续双重分配,该方法同时带来了竞争性的性能和较低的推理延迟。此外,我们为YOLOs引入了全面的效率-准确性驱动模型设计策略。我们从效率和准确性两个角度全面优化了YOLOs的各个组件,这大大降低了计算开销并增强了模型能力。我们的努力成果是新一代YOLO系列,专为实时端到端目标检测而设计,名为YOLOv10。广泛的实验表明,YOLOv10在各种模型规模下均达到了最先进的性能和效率。例如,在COCO数据集上,我们的YOLOv10-S在相似AP下比RT-DETR-R18快1.8倍,同时参数和浮点运算量(FLOPs)减少了2.8倍。与YOLOv9-C相比,YOLOv10-B在相同性能下延迟减少了46%,参数减少了25%。

论文地址YOLOv10: Real-Time End-to-End Object Detection点击即可跳转

官方代码官方代码仓库点击即可跳转

关注我后续会发布更详细的解读以及创新

目录

1. 创新点

2. 精度对比

3. 一致匹配度量(Consistent Matching Metric)

3.1 效率驱动的模型设计

3.2 基于秩的块设计(Rank-Guided Block Design)

3.3 精度驱动的模型设计

4.总结


1. 创新点

无NMS的一致双分配(consistent dual assignments):

  • YOLOv10提出了一种通过双标签分配而不用非极大值抑制NMS的策略。这种方法结合了一对多和一对一分配策略的优势,提高了效率并保持了性能。

效率-精度驱动的模型设计(Holistic Efficiency-Accuracy Driven Model Design):

  • 轻量化分类头:在不显著影响性能的情况下,减少了计算开销。

  • 空间-通道解耦下采样:解耦空间下采样和通道调整,优化计算成本。

  • 基于秩的块设计:根据各阶段的内在秩适应块设计,减少冗余,提高效率。

  • 大核卷积和部分自注意力PSA:在不显著增加计算成本的情况下,增强了感受野和全局建模能力。

图片

1. 一致双分配策略(Consistent Dual Assignments)

YOLOv10引入了一种新的双分配策略,用于在训练期间同时利用一对多(one-to-many)和一对一(one-to-one)标签分配。这种方法在保持模型高效训练的同时,摆脱了推理过程中对非极大值抑制NMS的依赖。

双标签分配(Dual Label Assignments)

  • 一对多分配:在训练期间,多个预测框被分配给一个真实物体标签。这种策略提供了丰富的监督信号,优化效果更好。

  • 一对一分配:仅一个预测框被分配给一个真实物体标签,避免了NMS,但由于监督信号较弱,容易导致收敛速度慢和性能欠佳。

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

2. 精度对比

  • 图片

    可视化结果

    图片

    消融实验和分析

    图片

    图片

图片

3. 一致匹配度量(Consistent Matching Metric)

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

整体效率-精度驱动的模型设计(Holistic Efficiency-Accuracy Driven Model Design)

YOLOv10在模型架构的各个方面进行了全面优化,旨在提升效率精度

3.1 效率驱动的模型设计

轻量化分类头(Lightweight Classification Head)

在YOLO系列中,分类头和回归头通常共享相同的架构,但分类任务的计算开销更大。为分类头采用轻量级的架构,包括两个3×3的深度可分离卷积(depthwise separable convolutions)和一个1×1卷积,以减少计算开销。

空间-通道解耦下采样(Spatial-Channel Decoupled Downsampling)

传统的下采样方法同时进行空间和通道的转换,计算成本较高。YOLOv10首先使用逐点卷积(pointwise convolution)调整通道维度,然后使用深度卷积(depthwise convolution)进行空间下采样。这样可以最大限度地保留信息,同时减少计算成本。

3.2 基于秩的块设计(Rank-Guided Block Design)

在YOLO模型中,各阶段通常使用相同的基本构建块,容易导致深层阶段的计算冗余。因此根据各阶段的内在秩(intrinsic rank)调整块设计,减少冗余,采用紧凑的反向块(Compact Inverted Block, CIB)设计,用深度卷积进行空间混合和逐点卷积进行通道混合,提高效率。

图片

3.3 精度驱动的模型设计

大核卷积(Large-Kernel Convolution)

大核卷积的感受野较大,能够更好地捕捉图像中的全局信息。然而,直接在所有阶段使用大核卷积可能会导致小物体特征的污染,并增加高分辨率阶段的I/O开销和延迟。因此,在深层阶段使用大核深度卷积(如7×7)来扩大感受野,增强模型能力,同时使用结构重参数化技术(structural reparameterization)优化训练。

对于小模型规模(如YOLOv10-N/S),大核卷积的使用能够显著提升性能,而对于大模型规模(如YOLOv10-M),其天然较大的感受野使得大核卷积的效果不明显,因此仅在小模型中使用。

部分自注意力(Partial Self-Attention, PSA)

部分自注意力模块通过引入全局建模能力来提升模型性能,同时保持较低的计算开销。

自注意力(self-attention)在视觉任务中因其出色的全局建模能力而被广泛使用,但其计算复杂度和内存占用较高。本文引入PSA模块,通过将特征按通道分成两部分,仅对一部分应用多头自注意力(Multi-Head Self-Attention, MHSA),然后进行融合,增强全局建模能力,降低计算复杂度。

3.4 YOLOv10的base版本yaml文件

# Parameters
nc: 80 # number of classes
scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'# [depth, width, max_channels]b: [0.67, 1.00, 512] # YOLOv8.0n backbone
backbone:# [from, repeats, module, args]- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4- [-1, 3, C2f, [128, True]]- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8- [-1, 6, C2f, [256, True]]- [-1, 1, SCDown, [512, 3, 2]] # 5-P4/16- [-1, 6, C2f, [512, True]]- [-1, 1, SCDown, [1024, 3, 2]] # 7-P5/32- [-1, 3, C2fCIB, [1024, True]]- [-1, 1, SPPF, [1024, 5]] # 9- [-1, 1, PSA, [1024]] # 10# YOLOv8.0n head
head:- [-1, 1, nn.Upsample, [None, 2, "nearest"]]- [[-1, 6], 1, Concat, [1]] # cat backbone P4- [-1, 3, C2fCIB, [512, True]] # 13- [-1, 1, nn.Upsample, [None, 2, "nearest"]]- [[-1, 4], 1, Concat, [1]] # cat backbone P3- [-1, 3, C2f, [256]] # 16 (P3/8-small)- [-1, 1, Conv, [256, 3, 2]]- [[-1, 13], 1, Concat, [1]] # cat head P4- [-1, 3, C2fCIB, [512, True]] # 19 (P4/16-medium)- [-1, 1, SCDown, [512, 3, 2]]- [[-1, 10], 1, Concat, [1]] # cat head P5- [-1, 3, C2fCIB, [1024, True]] # 22 (P5/32-large)- [[16, 19, 22], 1, v10Detect, [nc]] # Detect(P3, P4, P5)

4.总结

YOLOv10引入了额外的one-to-one头部,通过双分配策略,在训练时提供更丰富的监督信息,而在推理时则利用one-to-one头部进行高效预测,从而无需NMS后处理。此外,YOLOv10从效率和准确性两个方面全面优化了YOLO的各个组件,包括轻量级分类头部、空间-通道解耦的下采样层、基于秩的模块设计等,以降低计算冗余并提升模型性能。 

YOLOv10检测器的提出不仅为实时目标检测领域带来了新的突破,也展示了通过后处理和模型设计的联合优化,同时提升效率和精度的有效思路。YOLOv10检测器有望在自动驾驶、机器人导航、物体跟踪等实际应用中得到广泛应用,为实时目标检测任务带来更高的效率。

对于后处理,我们提出了用于NMS-free训练的一致双分配策略,实现了高效的端到端检测。在模型架构方面,我们引入了全面的效率和准确性驱动的模型设计策略,改善了性能和效率之间的权衡。这些创新带来了我们的YOLOv10,这是一个全新的实时端到端目标检测器。大量的实验结果表明,YOLOv10与其他先进检测器相比,在性能和延迟方面都取得了state-of-the-art的成果,充分展示了其优越性。

这篇关于YOLOv10 | 无NMS的YOLO | 实时端到端目标检测的新突破的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1001561

相关文章

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

黑神话,XSKY 星飞全闪单卷性能突破310万

当下,云计算仍然是企业主要的基础架构,随着关键业务的逐步虚拟化和云化,对于块存储的性能要求也日益提高。企业对于低延迟、高稳定性的存储解决方案的需求日益迫切。为了满足这些日益增长的 IO 密集型应用场景,众多云服务提供商正在不断推陈出新,推出具有更低时延和更高 IOPS 性能的云硬盘产品。 8 月 22 日 2024 DTCC 大会上(第十五届中国数据库技术大会),XSKY星辰天合正式公布了基于星

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

[数据集][目标检测]血细胞检测数据集VOC+YOLO格式2757张4类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2757 标注数量(xml文件个数):2757 标注数量(txt文件个数):2757 标注类别数:4 标注类别名称:["Platelets","RBC","WBC","sickle cell"] 每个类别标注的框数:

Temu官方宣导务必将所有的点位材料进行检测-RSL资质检测

关于饰品类产品合规问题宣导: 产品法规RSL要求 RSL测试是根据REACH法规及附录17的要求进行测试。REACH法规是欧洲一项重要的法规,其中包含许多对化学物质进行限制的规定和高度关注物质。 为了确保珠宝首饰的安全性,欧盟REACH法规规定,珠宝首饰上架各大电商平台前必须进行RSLReport(欧盟禁限用化学物质检测报告)资质认证,以确保产品不含对人体有害的化学物质。 RSL-铅,

YOLOv8/v10+DeepSORT多目标车辆跟踪(车辆检测/跟踪/车辆计数/测速/禁停区域/绘制进出线/绘制禁停区域/车道车辆统计)

01:YOLOv8 + DeepSort 车辆跟踪 该项目利用YOLOv8作为目标检测模型,DeepSort用于多目标跟踪。YOLOv8负责从视频帧中检测出车辆的位置,而DeepSort则负责关联这些检测结果,从而实现车辆的持续跟踪。这种组合使得系统能够在视频流中准确地识别并跟随特定车辆。 02:YOLOv8 + DeepSort 车辆跟踪 + 任意绘制进出线 在此基础上增加了用户