DEYOv2: Rank Feature with Greedy Matchingfor End-to-End Object Detection

摘要

与前代类似, DEYOv2 采用渐进式推理方法 来加速模型训练并提高性能。该研究深入探讨了一对一匹配在优化器中的局限性,并提出了有效解决该问题的解决方案,如Rank 特征和贪婪匹配 。这种方法使DEYOv2的第三阶段能够最大限度地从第一和第二阶段获取信息,而 无需 NMS ,实现端到端优化 。通过组合密集查询、稀疏查询、一对多匹配和一对一匹配,DEYOv2 充分利用了每种方法的优势。与端到端模型DINO 相比, DEYOv2 在两个 epoch 设置中提供了 2.1AP 1.4AP 的显著性能提升。据我们所知,DEYOv2是第一个完全端到端的对象检测器,它结合了经典检测器和基于查询的检测器的各自优势。

1、介绍

经典检测器有一个共同点,它们严重依赖手工制作的组件,如非极大值抑制( NMS )。因为这些检测算法通常输出多个候选边界框,每个边界框对应于可能存在对象的区域。然而,这些候选框之间往往存在重叠或冗余,需要进行筛选和优化。
尽管 NMS 是一种有用的对象检测算法,但它确实有一些局限性。有一个问题是,他 可能会无意中删除与 得分最高的边界框明显重叠的边界框 尤其是在对象密集或大小相似的区域 。此外, NMS 的有效性可能会受到所选IoU 阈值的影响,这可能会导致检测结果的显著变化。在稀疏场景中,它可能会成为经典检测器的性能瓶颈。
检测转换器 DETR 提出了一种创新的基于转换器的对象检测器,该检测器利用了基于转换器的编码器 - 解码器框架。DETR 不依赖 NMS 的手动组件,而是使用匈牙利损失来预测一对一的对象集 ,带来端到端优化。NMS 在拥挤场景中表现不佳,因为它只根据 IoU 和类别简单信息对对象进行集群, 可能会将大小相 似的不同对象分组为一组 。相反, DETR 利用查询之间的交互来利用更复杂的信息并区分它们之间的关系。与NMS 相比,这种方法使 DETR 预测一对一对象集的策略更加合理, 从而在拥挤场景中比使用 NMS 的经典检测器具有更好的性能。
尽管 DETR 引起了研究界的极大兴趣,但它也存在许多问题。首先,应该注意的是, DETR 的收敛速度很慢,需要500 个训练 epoch 才能获得可接受的性能。然而, DEYO 算法从循序渐进的思想中获得了灵感,
为改进 DETR 提供了一个新的视角。 DEYO 使用低成本和高质量 YOLO 预测作为第二阶段 DETR-like 模型 的输入,以降低 DETR-like 模式预测一对一对象集的难度。 DEYO 结合了经典检测和基于查询的检测器各自的优势,从而提高了整体性能。同时, DEYO 也发现了一对一标签分配的局限性 。由于 DETR 使用一对一匹配,因此采用了建立分数差距的策略来抑制冗余的边界框 。这意味着 解码器需要对查询之间的关系 进行建模,并区分最佳和冗余边界框 DEYO 的实验表明,解码器在处理大量几乎相似的冗余边界框方面非常弱。随着proposal 查询的拥塞增加,性能逐渐降低,甚至在不使用 NMS 时训练崩溃。如图 3 所示,随着IoU 阈值的升高,这意味着拥塞增加的查询被输入解码器,性能也会下降,并且当不使用 NMS时,AP 会骤降至 0 。我们发现,在后处理中使用具有低 IoU 阈值的 NMS 并不能缓解这种性能下降。这表明影响最终性能的不仅仅是冗余边界框,但是丰富的bounding box 也严重阻碍了探测器在训练过程中的训练和优化。上述现象表明,基于查询的检测器的过滤能力有限,其对边界框的抑制策略不好,并且对查询初始化有严格要求,这在一定程度上限制了基于查询检测器的设计。DEYO 简单地通过使用 NMS 滤掉冗余的边界框来解决这个问题 ,但如图 9 所示,由于 NMS-IoU 阈值的降低,第一阶段的有效信息损失更大,这不仅破坏了DETR 的端到端优势,还限制了第一阶段的高效信息传输。就像经典的探测器一样,这个问题在拥挤的场景中会加剧。那么,有没有一种方法可以减少信息丢失,实现更优雅,并避免冗余边界框引起的优化?DEYOv2 通过引入 Rank 特征和贪婪匹配 来解决上述问题。 Rank 特征是指通过 置信度对边界框进行排序并通过嵌入进行编码后的 Rank 特征 。将其添加到解码器的查询中,可以使检测器更容易地学习到非极大值抑制策略,从而使检测器面临拥挤的环境。边界框仍然可以保持良好的过滤 效果。贪婪匹配可以不使用额外的标签,使用 GT 作为基准,对每个边界框进行聚类和监督,并引导模型 从每个类中选择具有最大 Rank 的边界框来保留 Rank 特征和贪婪匹配启用 DEYOv2 在从一对多标签分配到一对一标签分配的过度过程中摆脱对NMS 的依赖,它解决了 Transformer 编码器在过滤冗余边界框以实现端到端优化时遇到的优化问题。
在本文中,我们提出了一种称为 DEYOv2 的三阶段对象检测网络的新范式,据我们所知,它是第一个完全端到端的检测器,它结合了经典检测器和基于查询的对象检测器的各自优势。因此,我们的DEYOv2成为端到端目标检测器的新技术。
贡献
1 )我们 提出了第一个完全端到端的对象检测器 ,该检测器结合了经典检测器和基于查询的对象检测器各自的优点,它不仅优于目前最好的端到端检测器,而且不需要依赖手动组件NMS 来过滤掉阶段 1 的冗余边界框,因此推理速度不会延迟并保持稳定。
2 )我们深入分析了冗余 bounding boxes 对端到端优化的影响,并 提出了 Rank 特征和贪婪匹配 ,以使用更合理的策略来过滤掉大量密集的冗余bounding box

2、动机

结合前面的讨论,我们认为 DETR 的解码器在建立每个边界框之间的关系非常成功,和拥挤的边界框相比,应该更难区分稀疏边界框,并且DEYO 在低 IoU 阈值上实现了良好的性能,这表明 DETR 可以很好的处理稀疏边界盒的聚类,因此,DETR 也应该能够很好地处理拥挤的边界框的聚类,后者的难度明显低于前者。这启发我们重新审视当前的滤波策略,分析拥挤的边界盒阻碍检测器优化的原因,并提出有效的解决方案。我们猜测,对于几乎相似的边界框,尽管检测器可以很好地对他们进行聚类,但很难学习到从聚类中选择并保留边界框的有效策略。在极端情况下,对于n 个相同的边界框,使用一对一的标签分配,DETR 不可能从原始数据中学习有效的过滤策略。同时,当边界框过于相似时,也可能导致二进制匹配的不稳定性。进一步阻碍优化,DEYO 简单地使用 NMS 来通过建立 IoU 间隙来避免优化问题。我们认为,建立分数差距也应该取得类似的效果。

3、方法

3.1 Rank 特征

如图 4 所示,当遇到几乎相同的边界框时,检测器很难学习有效的策略来选择要保留的边界框,而这正是NMS擅长的。非极大值策略可以使 NMS 从大量几乎相同的冗余边界框中选择一个边界框,而不会导致性能损失。我们尝试了几种策略,让模型直接从原始数据中学习非最大值抑制策略 ,但都以 失败 告终。为了降低模型的训练难度,受[12] 的启发,引入了 Rank 特征来解决这个问题。研究发现, 添加 Rank 特征 比直接将置信度传递给模型表现得更好 。我们认为性能更好的原因是 Rank 特征可以使模型更容易地学习 非最大值抑制策略 。这是 因为 Rank 特征可以迫使几乎相同的边界框之间存在差距 ,因为即使置信度相同,排名仍然存在顺序差距。根据这个阶差模型,很容易学会选择排名靠前的边界框来保持,这样对于n个相同的边界框,模型仍然可以根据rank 特征区分它们之间的区别,并选择保留的顶级边界框。

3.2 贪婪匹配

在处理几乎相同的冗余边界框时,由于一对一匹配的局限性,与一对一的匹配一样, 基于最小化二分匹 配矩阵的代价来确定边界框保留是不合理的 。我们 提出了一种称为贪婪匹配的标签分配方法 ,其中为每个边界框分配一个具有最小匹配损失的基本事实标签,并且成本矩阵计算方法与阶段3 的一对一匹配一致。我们根据基本事实对边界框进行聚类,并只保留每个聚类中排名最高的边界框,为保留的边界框分配标签1 ,为过滤掉的边界框指定标签 0 。由于很难用电流检测器实现置信度和 IoU 之间的严格正相关,这导致了如图5 所示的情况,其中高 rank 并不一定意味着良好的定位。仅仅靠 rank 进行选择会影响模型选择更好边界框的能力,导致选择位置不佳的高分红色边界框,最终损害模型性能。为了解决这一现象,引入了一个 \theta值来调整标签分配。具体来说,我们将rank-1 分配给 IoU 小于 y rank 小于的对象, 并且只保留rank 大于 1 的对象。这种方法允许更合理的标签分配和更高的性能。此外,通过基于边界框各自的基本事实对其进行聚类。我们的方法引导模型放弃局部对象较差的聚类,降低了任务难度大,加强了过滤策略的学习。

4DEYOv2

4.1 model概述

我们的模型使用 YOLOv5x 作为第一阶段, DINO 作为第三和第二阶段,提供了一个新的基于渐进推理的三阶段模型。YOLOv5x 是经典 YOLO 系列的探测器;它包含一个主干,一个包含 FPN+PAN 的颈部,以及一个输出三尺度预测的头部。作为一个类似DETR 的模型, DINO 包含主干、多层变换编码器、多层变换解码器和多个预测头。它使用锚边界框的静态查询和动态初始化,并涉及用于比较去噪训练的额外CDN分支。DEYOv2 DINO 最大的区别在于, DEYOv2 的第三阶段使用来自第二阶段的高质量建议查询来初 始化查询,整个DEYOv2 模型如图 6 所示。

4.2 密集查询到稀疏查询

由于变换器的计算复杂度随着查询数量的增加而二次增加,因此基于查询的数量通常为 300900 ,并以YOLOv5为例,它可以提供数以万计的查询,这比基于查询的检测器多了几个数据集,并且与基于查询的检测设备相比,维护单个查询的成本要低。我们认为,密集查询中包含的信息可以大大减轻后续稀疏查询检测的负担,从而使stage2 stage3 在密集场景中可以实现更好的性能。然而,由于转换器的计算复杂度与序列呈二次关系,这限制了第2 阶段和第 3 阶段的查询数量。因此,我们使用查询选择器来选择高质量的查询,并在有限的查询中尽可能多地保留原始密集查询中包含的信息。因此,我们使用查询选择器来选择高质量的查询,并在有限的查询中尽可能保留原始密集查询中包含的信息。第3 阶段的查询比第1 阶段少,这使得我们可以对查询之间的关系进行建模,并且我们可以像稀疏查询中注入更多信息;即使维护单个稀疏查询的成本高于密集查询的成本,该成本也可以是准确性和速度之间的良好权衡。我们使用一个简单的top-k 和适配器模块来完成从密集查询到稀疏查询的转换。我们相信适配器模块可以最大限度地保留原始密集查询的信息,并是不同输出层查询的维度与稀疏查询的维度一致。

4.3查询选择器

对于端到端优化,我们只需要使用 top-k 来完成从密集查询到稀疏查询的替换。然而,应该注意的是,NMS仍然是最大程度地保留阶段 1 信息的过渡方法。如图 7 所示,由于 stage1 中存在大量冗余边界框,因 此直接使用top-k 选择策略会导致所选查询中存在大量信息溶于。 NMS 可以解决这个问题, DEYOv2 中采用NMS 的动机与 DEYOv2 不同,只是为了尽可能地过滤掉冗余信息。由于查询过滤器的存在,我们不必担心IoU 阈值的设置不合理,这使得模型的优化变得困难。这使我们能够基于 PRE-Matching 快速调整IoU阈值参数,而不像 DEYO 那样只有在得道训练的最终结果后才能评估 IoU 阈值的质量。

4.4 查询筛选器

DEYOv2 使用查询过滤器,放弃了 NMS 对过滤冗余边界框的依赖,完全实现了端到端。查询筛选器只需要设置一个置信阈值过滤候选边界框像大多数端到端检测器一样,以完成冗余边界框的过滤。在DEYOv2中,我们将置信阈值设置为 0.1 ,我们使用贪婪匹配为查询过滤器的输出分配标签。我们使用焦点损失来监督查询过滤器对冗余边界框的过滤。通过一个简单的策略:0 表示过滤掉的, 1 表示保留的,
并将大量高置信度的类似冗余对象返回到低置信度。基于这种策略,可以将建立的分数差距传递给阶段
3 ,这便于阶段 3 进一步过滤边界框。由于过滤查询的数量不是恒定的,如图 8 所示,我们将过滤查询插入解码器的init 查询中,可以保证批量培训。

4.5一对多与一对一匹配

正如本文前面多分析的, IoU 和置信度之间的严格正相关是当前检测器的一个困难条件。在贪婪匹配中,我们用实际边界框过滤掉IoU<0.6 的所有边界框,使模型获得更好的性能。其次,贪婪匹配聚类围绕基本事实,这两者都会导致一些定位不佳的边界框进行过滤。查询过滤过滤掉一些冗余的边界框,代价是一些定位不好的边界框的召回率,这在一定程度上影响了最终的性能,所以我们使用具有一对一匹配的stage3来补偿这部分性能损失。

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

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

相关文章

Day68:WEB攻防-Java安全原生反序列化SpringBoot攻防heapdump提取CVE

目录 Java安全-反序列化-原生序列化类函数 原生序列化类函数 SnakeYaml XMLDecoder ObjectInputStream.readObject 工具利用 ysoserial Yakit SerializedPayloadGenerator Java安全-SpringBoot框架-泄漏&CVE SpringBoot Actuator-黑白盒发现 人工识别 BurpSui…

华为配置WAPI-PSK安全策略实验

配置WAPI-PSK安全策略示例 组网图形 图1 配置WAPI-PSK安全策略组网图 配置流程组网需求配置思路配置注意事项操作步骤配置文件 配置流程 WLAN不同的特性和功能需要在不同类型的模板下进行配置和维护&#xff0c;这些模板统称为WLAN模板&#xff0c;如域管理模板、射频模板、VAP…

MATLAB的使用(二)

一&#xff0c;算法需求 算法五特性(1)有穷性。有穷性是指算法需在有穷步骤、有穷时间内结束。 (2)确定性。确定性是指每个步骤都有确切的意义&#xff0c;相同的输入有相同的输出。 (3)有效性。有效性是指可通过已实现的运算在有限次完成&#xff0c;或叫可行性。 (4)输入。…

信息学奥赛一本通之MAC端VSCode C++环境配置

前提 安装 Visual Studio CodeVSCode 中安装 C/C扩展确保 Clang 已经安装&#xff08;在终端中输入命令&#xff1a;clang --version 来确认是否安装&#xff09;未安装&#xff0c;在命令行执行xcode-select --install 命令&#xff0c;会自行安装&#xff0c;安装文件有点大…

超越传统的极限:解密B树与B+树的数据结构之美!

超越传统的极限&#xff1a;解密B树与B树的数据结构之美&#xff01; B树和B树是在计算机科学中常用的平衡查找树数据结构&#xff0c;它们在处理大规模数据和磁盘存储方面具有重要的优势。本文将深入介绍B树和B树的基本概念、特点以及它们在数据库和文件系统中的应用&#xff…

AR/MR产品设计(二):如何用一双手完成与虚拟对象的自然交互

AR/MR产品设计&#xff08;二&#xff09;&#xff1a;如何用一双手完成与虚拟对象的自然交互 - 知乎 手是我们与现实世界交互最重要的方式&#xff0c;同样在虚实混合的世界中是最重要的交互方式 在AR/MR/VR的交互中&#xff0c;手势交互会作为XR的重要交互动作&#xff0c;因…

强缓存和协商缓存

前言 计算机网络模型从底到上&#xff1a;物理层&#xff08;光纤、网线&#xff09;、链路层&#xff08;MAC地址&#xff09;、网络层&#xff08;IP协议&#xff09;、传输层&#xff08;TCP\UDP&#xff09;、应用层&#xff08;HTTP\FTP\DNS&#xff09;。HTTP协议是作用…

数据结构:栈「详解」

目录 一&#xff0c;栈的定义 二&#xff0c;栈的基本操作 1&#xff0c;顺序栈 1.1顺序栈的基本概念 1.2顺序栈的基本操作 2&#xff0c;链栈 2.1链栈的基本概念 2.2链栈的种类 2.3链栈的基本操作 三&#xff0c;栈的应用 1&#xff0c;函数递归调用 2&#xff0c;…

【论文阅读笔记】Split frequency attention network for single image deraining

1.论文介绍 Split frequency attention network for single image deraining 用于单幅图像去噪的分频注意力网络 Paper Code 2023年 SIVP 2.摘要 雨纹对图像质量的影响极大&#xff0c;基于数据驱动的单图像去噪方法不断发展并取得了巨大的成功。然而&#xff0c;传统的卷积…

Go语言gin框架中加载html/css/js等静态资源

Gin框架没有内置静态文件服务&#xff0c;但可以使用gin.Static或gin.StaticFS中间件来提供静态文件服务。 效果图如下&#xff1a; 一、gin 框架加载 Html 模板文件的方法 方式1&#xff1a;加载单个或多个html文件&#xff0c;需要指明具体文件名 r.LoadHTMLFiles("vie…

Sketch软件:重塑UI/UX设计流程的革命性工具

Sketch是一款在Mac操作系统上运行的矢量图形设计软件&#xff0c;其功能特色丰富多样&#xff0c;深受设计师们的喜爱。以下是Sketch软件的主要功能特色介绍&#xff1a; 专业矢量图形设计&#xff1a;Sketch为UI设计、移动应用设计和Web设计等领域提供了强大的支持。它支持线条…

优化选址问题 | 基于NSGAII求解考虑成本、救援时间和可靠性的海上救援选址多目标问题附matlab代码

目录 问题代码问题 NSGA-II(非支配排序遗传算法II)是一种流行的多目标优化算法,用于解决具有多个冲突目标的问题。在海上救援选址问题中,我们可能希望同时优化成本、救援时间和可靠性。以下是一个简化的示例,说明如何使用NSGA-II算法来解决这个问题,并提供相应的MATLAB代…

【数据结构】布隆过滤器

目录 前言 1. 什么是布隆过滤器&#xff1f; 2. 布隆过滤器的原理 2.1 添加元素原理 2.2 判断元素存在原理 3. 布隆过滤器使用场景 4. 使用 Java 语言实现布隆过滤器 测试用例 测试结果 注&#xff1a;手机端浏览本文章可能会出现 “目录”无法有效展示的情况&#x…

Flutter-底部弹出框(Widget层级)

需求 支持底部弹出对话框。支持手势滑动关闭。支持在widget中嵌入引用。支持底部弹出框弹出后不影响其他操作。支持弹出框中内容固定头部和下面列表时&#xff0c;支持触摸头部并在列表不在头部的时候支持滑动关闭 简述 通过上面的需求可知&#xff0c;就是在界面中可以支持…

【早鸟优惠|高录用|EI稳定检索】2024年虚拟现实、图像和信号处理国际学术会议(ICVISP 2024)诚邀投稿/参会!

【早鸟优惠|高录用|EI稳定检索】 2024年虚拟现实、图像和信号处理国际学术会议&#xff08;ICVISP 2024&#xff09;诚邀投稿/参会&#xff01; # 早鸟优惠 # 先投稿先送审 # #投稿免费参会、口头汇报及海报展示# 2024年虚拟现实、图像和信号处理国际学术会议&#xff08;I…

京津冀自动驾驶产业盛会“2024北京国际自动驾驶技术展览会”

随着科技的飞速发展&#xff0c;自动驾驶技术成为了汽车产业变革的热点和前沿。智能化、网联化已经成为推动汽车产业创新发展的重要力量&#xff0c;而自动驾驶技术则是其中的关键一环。它不仅能够提高道路安全性、缓解交通拥堵&#xff0c;还能为乘客带来更加舒适、便捷的出行…

RediSearch比Es搜索还快的搜索引擎

1、介绍 RediSearch是一个Redis模块&#xff0c;为Redis提供查询、二次索引和全文搜索。要使用RediSearch&#xff0c;首先要在Redis数据上声明索引。然后可以使用重新搜索查询语言来查询该数据。RedSearch使用压缩的反向索引进行快速索引&#xff0c;占用内存少。RedSearch索…

Qt5.14.2 深入理解Qt多线程编程,掌握线程池架构实现高效并发

在高并发的软件系统中&#xff0c;多线程编程是解决性能瓶颈和提高系统吞吐量的有效手段。作为跨平台的应用程序开发框架&#xff0c;Qt为我们提供了强大的多线程支持。本文将深入探讨Qt多线程编程的实现细节&#xff0c;并介绍线程池的设计思想&#xff0c;帮助读者彻底掌握Qt…

Flutter-数字切换动画

效果 需求 数字切换时新数字从上往下进入&#xff0c;上个数字从上往下出新数字进入时下落到位置并带有回弹效果上个数字及新输入切换时带有透明度和缩放动画 实现 主要采用AnimatedSwitcher实现需求&#xff0c;代码比较简单&#xff0c;直接撸 import dart:math;import p…

huawei 华为交换机 配置手工模式链路聚合示例

组网需求 如 图 3-21 所示&#xff0c; SwitchA 和 SwitchB 通过以太链路分别都连接 VLAN10 和 VLAN20 的网络&#xff0c;SwitchA 和 SwitchB 之间有较大的数据流量。 用户希望SwitchA 和 SwitchB 之间能够提供较大的链路带宽来使相同 VLAN 间互相通信。 同时用户也希望能够提…