【论文解读】DETR | End-to-End Object Detection with Transformers

article/2025/7/28 8:35:40

图片
论文地址:https://arxiv.org/pdf/2005.12872
代码地址:https://github.com/facebookresearch/detr

摘要

本研究提出了一种新的方法,该方法将目标检测视为一个直接的集合预测问题。本研究的方法简化了检测流程,有效地消除了对许多手工设计的组件的需求,例如非极大值抑制程序或显式编码本研究对任务的先验知识的锚框生成。新框架(称为DEtection TRansformer或DETR)的主要组成部分是:一个基于集合的全局损失,它通过二分匹配强制产生独特的预测;以及一个transformer编码器-解码器架构。给定一组固定的、小的、学习到的目标查询,DETR推理目标之间的关系和全局图像上下文,以并行方式直接输出最终的预测集合。与许多其他现代检测器不同,本研究的新模型在概念上很简单,不需要专门的库。在具有挑战性的COCO目标检测数据集上,DETR展示了与已建立且高度优化的Faster R-CNN基线相当的准确性和运行时间性能。此外,DETR可以很容易地推广以统一的方式生成全景分割。本研究表明,它显著优于有竞争力的基线
图片

引言

目标检测旨在为每个感兴趣的对象预测一组边界框和类别标签。目前的目标检测方法通过在一大堆提议区域、锚框或窗口中心上定义替代回归和分类问题来间接解决这一问题。本研究提出了一种直接集合预测方法来绕过这些替代任务,旨在简化这些流程。这种端到端的理念已经在机器翻译或语音识别等复杂的结构化预测任务中取得了显著进展,但在目标检测中尚未实现。以往的尝试或者增加了其他形式的先验知识,或者在具有挑战性的基准测试中,未能证明其竞争力。本研究旨在弥合这一差距。

本研究通过将目标检测视为一个直接的集合预测问题来简化训练流程。本研究采用了一种基于Transformer的编码器-解码器架构,Transformer是一种流行的序列预测架构。Transformer的自注意力机制能够显式地建模序列中元素之间的所有成对交互,这使得这些架构特别适合于集合预测的特定约束,例如消除重复预测。

本研究提出的DETR(DEtection TRansformer)模型可以一次性预测所有对象,并通过一个集合损失函数进行端到端训练,该损失函数在预测对象和真实对象之间执行二分匹配。DETR通过放弃多个编码先验知识的手工设计的组件,例如空间锚点或非极大值抑制,从而简化了检测流程。与大多数现有的检测方法不同,DETR不需要任何定制的层,因此可以在任何包含标准CNN和Transformer类的框架中轻松重现。

与之前关于直接集合预测的大多数工作相比,DETR的主要特点是二分匹配损失和带有(非自回归)并行解码的Transformer的结合。相比之下,之前的工作主要集中在使用RNN的自回归解码上。本研究的匹配损失函数将一个预测唯一地分配给一个真实对象,并且对于预测对象的排列是不变的,因此本研究可以并行地发出它们。DETR在COCO数据集上进行了评估,并与Faster R-CNN基线进行了比较。实验结果表明,本研究的新模型取得了可比的性能。更准确地说,DETR在大型对象上表现出明显更好的性能,这可能是由于Transformer的非局部计算实现的。然而,它在小型对象上的性能较低。本研究期望未来的工作能够改进这方面,就像FPN的开发对Faster R-CNN所做的那样。

论文创新点

本研究的核心创新点在于它将目标检测问题视为一个直接的集合预测问题,从而简化了传统目标检测的流程。具体来说,本研究的创新点体现在以下几个方面:

  1. 端到端的目标检测框架:

    • 本研究提出了一个名为DETR(DEtection TRansformer)的全新框架,该框架采用端到端的方式进行目标检测,无需像传统方法那样依赖于手工设计的组件,例如非极大值抑制(NMS)或先验框生成。
    • 这种端到端的训练方式简化了目标检测流程,减少了人为干预,并允许模型直接学习目标之间的关系。
  2. ⚙️ 基于Transformer的编码器-解码器结构: ⚙️

    • 本研究利用Transformer的编码器-解码器结构来处理目标检测任务。
    • Transformer的自注意力机制能够有效地捕捉图像中目标之间的全局关系,从而更好地进行目标检测。
    • 与传统的卷积神经网络相比,Transformer能够更好地处理长距离依赖关系,这对于检测图像中的复杂场景非常重要。
  3. 🎯 集合预测损失函数: 🎯

    • 本研究设计了一种基于二分图匹配的集合预测损失函数,该损失函数能够强制模型生成唯一的预测结果,避免重复检测。
    • 通过二分图匹配,可以将预测的目标与真实目标进行一一对应,从而优化模型的性能。
    • 这种损失函数的设计使得DETR能够直接预测目标集合,而无需像传统方法那样进行后处理。
  4. 🏆 泛化能力强: 🏆

    • 实验结果表明,DETR在具有挑战性的COCO目标检测数据集上取得了与Faster R-CNN相当甚至更好的性能。
    • 尤其是在检测大尺寸目标时,DETR的性能明显优于Faster R-CNN。
    • 此外,DETR还能够很容易地扩展到全景分割任务,并且取得了优于现有基线的性能。这表明DETR具有很强的泛化能力,可以应用于不同的视觉任务。
  5. 计算复杂度与效率的平衡:

    • 尽管DETR使用了Transformer这种计算量较大的结构,但本研究在模型设计和训练策略上进行了优化,使得DETR在保持高性能的同时,也具有较高的计算效率。
    • 这使得DETR在实际应用中具有一定的可行性。

论文实验

图片
图片


http://www.hkcw.cn/article/rSWqPDdSaj.shtml

相关文章

(C++)STL:string类(三)非成员重载函数和类型转化函数解析使用

string类&#xff08;三&#xff09; 非成员重载函数relational operaters 关系运算符operatoroperator<< operator>>getline <string>头文件内的函数string转化为数字类型其他数值类型转化为string练习&#xff1a;字符串最后一个单词的长度 非成员重载函数…

[Python] Python运维:系统性能信息模块psutil和系统批量运维管理器paramiko

初次学习&#xff0c;如有错误还请指正 目录 系统性能信息模块psutil 获取系统性能信息 CPU信息 内存信息 磁盘信息 网络信息 其他信息 进程信息 实用的IP地址处理模块IPy IP地址、网段的基本处理 多网络计算方法 系统批量运维管理器paramiko paramiko 的安装 Li…

声光控灯电路Multisim仿真

5V交流源充当声音信号源&#xff0c;可调电阻充当光敏电阻。 白天&#xff0c;不管是否有声音&#xff0c;灯都不会亮。 夜晚&#xff0c;当有声音时&#xff0c;灯亮一段时间&#xff0c;然后熄灭。 仿真时遇到的问题&#xff1a; 问题1、必须按照一定的流程才能正常运行。…

Blueprints - List View Widget

一些学习笔记归档&#xff1b; 需要读取动态数据把多个条目显示在UI上的时候&#xff0c;可能用到List View组件&#xff1b;假如有Widget要使用在List View中&#xff0c;此Widget需要继承相关接口&#xff1a; 这样就能在List View控件中选择已经继承接口的Widget组件了&…

七.MySQL内置函数

1.日期函数 MySQL 日期与时间函数对照表 函数名称描述current_date()当前日期&#xff08;格式&#xff1a;YYYY-MM-DD&#xff09;current_time()当前时间&#xff08;格式&#xff1a;HH:MM:SS&#xff09;current_timestamp()当前日期和时间&#xff08;等同于 now()&#x…

神经网络与Transformer详解

1. 一个模型的典型场景 对用户咨询的法律问题做自动归类: 婚姻纠纷、劳动纠纷、合同纠纷、债权债务、房产纠纷、交通事故、医疗纠纷、版权纠纷 2. 模型就是一个数学公式 我们一般将这样的问题描述为:给定一组输入数据,经过一系列数学公式计算后,输出n个概率,分别代表该…

《Python基础》第2期:环境搭建

在开始编写 Python 代码前&#xff0c;还需要搭建 Python 的开发环境。 电脑是没办法直接读懂 Python 代码的&#xff0c;而是需要一个解释器&#xff0c;实时把代码翻译成字节码&#xff0c;字节码再转换成 0 和 1&#xff0c;电脑就能读懂了。 Python 的运行过程就是翻译一行…

多线程——定时任务ScheduledThreadPoolExecutor用法

创建 同样是用Executors工具类&#xff1a; 创建定时任务线程池 还有一个重载方法 接收一个额外的参数&#xff1a;线程工厂 创建单个定时任务执行器&#xff1a; 重载&#xff1a;也接收一个线程工厂 区别说明 singleThread&#xff1a; 这里可以new, 说明他是一个类 传…

AI 代理框架:使用正确的工具构建更智能的系统

AI 代理框架&#xff1a;使用正确的工具构建更智能的系统 探索 AI 代理框架如何支持从单代理设置到复杂的多代理编排的自主工作流。了解它们有何不同、何时使用它们以及如何开始使用实际工具。 AI 代理框架 从本质上讲&#xff0c;AI 代理是可以感知、计划和行动的程序。它们旨…

计算机网络 TCP篇常见面试题总结

目录 TCP 的三次握手与四次挥手详解 1. 三次握手&#xff08;Three-Way Handshake&#xff09; 2. 四次挥手&#xff08;Four-Way Handshake&#xff09; TCP 为什么可靠&#xff1f; 1. 序列号与确认应答&#xff08;ACK&#xff09; 2. 超时重传&#xff08;Retransmis…

系统架构设计师(一):计算机系统基础知识

系统架构设计师&#xff08;一&#xff09;&#xff1a;计算机系统基础知识 引言计算机系统概述计算机硬件处理器处理器指令集常见处理器 存储器总线总线性能指标总线分类按照总线在计算机中所处的位置划分按照连接方式分类按照功能分类 接口接口分类 计算机软件文件系统文件类…

软件无线电关键技术之正交调制技术

与传统调制方式相比&#xff0c;IQ 调制不直接对相位或频率调制&#xff0c;而是简单的对载波及其正交量进行线性调制&#xff0c;进而达到相位或频率调制的效果。IQ 调制具有较高的数据传输速率&#xff0c;高频带利用率&#xff0c;可有效抑制镜频边带以及易于实现等优势&…

comfyui利用 SkyReels-V2直接生成长视频本地部署问题总结 1

在通过桌面版comfyUI 安装ComfyUI-WanVideoWrapper 进行SkyReels-V2 生成长视频的过程中&#xff0c;出现了&#xff0c;很多错误。 总结一下&#xff0c;让大家少走点弯路 下面是基于搜索结果的 ComfyUI 本地部署 SkyReels-V2 实现长视频生成的完整指南&#xff0c;涵盖环境配…

性能优化 - 案例篇:缓存

文章目录 Pre引言1. 缓存基本概念2. Guava 的 LoadingCache2.1 引入依赖与初始化2.2 手动 put 与自动加载&#xff08;CacheLoader&#xff09;2.2.1 示例代码 2.3 缓存移除与监听&#xff08;invalidate removalListener&#xff09; 3. 缓存回收策略3.1 基于容量的回收&…

高速串行通信解惑说明

什么是逗号检测&#xff1f; 逗号检测&#xff0c;就是gt在发送数据的时候&#xff0c;一直在发送。这个时候使用一个标识符将数据隔开&#xff0c;用来对齐数据。&#xff08;类似人说明的停顿或者写文章中的标点符号&#xff09;逗号的两个作用&#xff0c;一个是将数据包隔…

724.寻找数组的中心下标前缀和

题目链接&#xff1a; https://leetcode.cn/problems/find-pivot-index/ 这道题目我们可以使用暴力解法&#xff0c;就一个下标前数组之和&#xff0c;再求一个下标后数组之和&#xff0c;时间复杂度达到n方&#xff0c;我们来写一下&#xff1a; int pivotIndex(vector<in…

Python----目标检测(《SSD: Single Shot MultiBox Detector》论文和SSD的原理与网络结构)

一、SSD&#xff1a;单次多框检测器 1.1、基本信息 标题&#xff1a;SSD: Single Shot MultiBox Detector 作者&#xff1a;Wei Liu (UNC Chapel Hill), Dragomir Anguelov (Zoox Inc.), Dumitru Erhan, Christian Szegedy (Google Inc.), Scott Reed (University of Michiga…

[Windows]在Win上安装bash和zsh - 一个脚本搞定

目录 前言安装步骤配置要求下载安装脚本启动程序 前言 Windows是一个很流行的系统, 但是在Windows上安装bash和zsh一直是一个让人头疼的问题. 本蛙特意打包了一个程序, 用于一站式解决这一类的问题. 安装步骤 配置要求 系统: Windows软件: Powershell 5.1或以上 下载安装…

从0开始学习R语言--Day13--混合效应与生存分析

混合效应模型&#xff08;Mixed Effects Model&#xff09; 对于数据来说&#xff0c;我们通常把所有样本共有的影响因素&#xff08;性别&#xff0c;实验处理&#xff0c;实验方法&#xff09;&#xff0c;这种可以推广到总体的叫做固有效应&#xff0c;而仅适用于特定分组的…

【前端】javascript和Vue面试八股

面试暂时没有遇到过考这么深的&#xff0c;一般还是问一些生命周期和性能相关。 Q&#xff1a;什么情况下“ a 1 && a 2 && a 3 ”同时成立 A&#xff1a;对象的valueOf与toString方法&#xff1a;当一个对象与一个原始值&#xff08;如数字&#xff09;进…