【论文解读】Deformable DETR | Deformable Transformers for End-to-End Object Detection
论文地址:https://arxiv.org/pdf/2010.04159
代码地址:https://github.com/fundamentalvision/Deformable-DETR
摘要
DETR最近被提出,旨在消除物体检测中许多手工设计的组件的需求,同时展示出良好的性能。然而,由于Transformer注意力模块在处理图像特征图方面的限制,它存在收敛速度慢和特征空间分辨率有限的问题。为了缓解这些问题,本研究提出了Deformable DETR,其注意力模块仅关注参考点周围的一小部分关键采样点。Deformable DETR能够以比DETR少10倍的训练周期实现更好的性能(尤其是在小物体上)。在COCO基准上的大量实验证明了本研究方法的有效性。
引言
现代目标检测器通常依赖于手工设计的组件,如anchor生成、基于规则的训练目标分配和非极大值抑制(NMS)后处理,这使得它们并非完全端到端。为了解决这个问题,DETR被提出,它通过结合卷积神经网络(CNN)和Transformer编码器-解码器,构建了第一个完全端到端的目标检测器,并在性能上具有竞争力。DETR利用Transformer强大的关系建模能力来替代手工设计的规则,并在精心设计的训练信号下工作。
尽管DETR的设计和性能引人关注,但它也存在一些问题。首先,DETR需要比现有目标检测器更长的训练周期才能收敛。例如,在COCO基准测试中,DETR需要500个epoch才能收敛,这比Faster R-CNN慢10到20倍。其次,DETR在检测小目标时的性能相对较低。现代目标检测器通常利用多尺度特征,在高分辨率特征图上检测小目标。然而,高分辨率特征图会导致DETR无法接受的复杂度。这些问题主要归因于Transformer组件在处理图像特征图方面的不足。在初始化时,注意力模块几乎对特征图中的所有像素赋予均匀的注意力权重,因此需要长时间的训练才能使注意力权重学习到聚焦于稀疏且有意义的位置。此外,Transformer编码器中注意力权重的计算相对于像素数量是二次方的,因此处理高分辨率特征图的计算和内存复杂度非常高。
为了解决上述问题,本研究提出了Deformable DETR。该方法结合了可变形卷积的稀疏空间采样和Transformer的关系建模能力。本研究提出了可变形注意力模块,该模块只关注参考点周围的一小部分关键采样点,作为从所有特征图像素中筛选出显著关键元素的一种预处理方式。该模块可以自然地扩展到聚合多尺度特征,而无需FPN的帮助。在Deformable DETR中,本研究利用多尺度可变形注意力模块来替代Transformer注意力模块,以处理特征图。
Deformable DETR的快速收敛以及计算和内存效率为本研究探索各种端到端目标检测器变体提供了可能。本研究探索了一种简单有效的迭代边界框细化机制,以提高检测性能。此外,本研究还尝试了一种两阶段Deformable DETR,其中区域提议也由Deformable DETR的变体生成,并进一步馈送到解码器以进行迭代边界框细化。
论文创新点
本研究提出了一种名为Deformable DETR的新型端到端目标检测器,旨在解决DETR在收敛速度慢和特征空间分辨率受限方面的问题。DETR在目标检测领域取得了显著进展,但其Transformer注意力模块在处理图像特征图时存在局限性,导致训练缓慢且对小目标检测性能不佳。为了克服这些限制,本研究做出了以下创新:
-
💡 可变形注意力模块(Deformable Attention Module): 💡
- 本研究设计了一种新的注意力机制,即Deformable Attention Module。
- 与传统Transformer的注意力机制不同,该模块仅关注参考点周围的一小部分关键采样点,从而显著减少了计算量和内存需求。
- 这种稀疏空间采样的方式借鉴了可变形卷积的思想,使得模型能够更有效地处理图像特征图,加速收敛过程,并提升对小目标的检测能力。
-
🔍 多尺度可变形注意力模块(Multi-scale Deformable Attention Module): 🔍
- 为了更好地适应不同尺度上的目标检测,本研究将Deformable Attention Module扩展到多尺度特征图。
- 该模块能够自然地聚合来自不同尺度特征图的信息,无需借助传统的特征金字塔网络(FPN)。
- 通过在多个尺度上进行可变形采样,模型能够更全面地捕捉目标的上下文信息,进一步提升检测性能。
-
⚙️ 可变形Transformer编码器(Deformable Transformer Encoder): ⚙️
- 本研究将DETR中的Transformer注意力模块替换为本研究提出的多尺度可变形注意力模块。
- 编码器的输入和输出均为多尺度特征图,且分辨率相同。
- 这种设计使得编码器能够有效地处理多尺度特征,并提取出更具代表性的特征表示。
-
📈 迭代边界框优化(Iterative Bounding Box Refinement): 📈
- 本研究探索了一种简单有效的迭代边界框优化机制,以进一步提高检测性能。
- 通过在解码器的每一层逐步优化边界框的预测结果,模型能够更准确地定位目标,并获得更精确的检测结果。
-
🚀 双阶段Deformable DETR(Two-Stage Deformable DETR): 🚀
- 为了进一步提升性能,本研究尝试了一种双阶段的Deformable DETR。
- 第一阶段生成区域提议,第二阶段利用解码器对提议进行迭代优化。
- 这种双阶段方法借鉴了传统目标检测器的思想,并将其与Deformable DETR相结合,从而进一步提高了检测精度。
论文实验
相关文章:

【论文解读】Deformable DETR | Deformable Transformers for End-to-End Object Detection
论文地址:https://arxiv.org/pdf/2010.04159 代码地址:https://github.com/fundamentalvision/Deformable-DETR 摘要 DETR最近被提出,旨在消除物体检测中许多手工设计的组件的需求,同时展示出良好的性能。然而,由于T…...
android 图片背景毛玻璃效果实现
图片背景毛玻璃效果实现 1 依赖 // Glide implementation("com.github.bumptech.glide:glide:4.16.0") kapt("com.github.bumptech.glide:compiler:4.16.0") implementation("jp.wasabeef:glide-transformations:4.3.0") 2 布局<com.googl…...

机器学习----决策树
一、决策树简介 from sklearn.tree import DecisionTreeClassifier from sklearn.tree import plot_tree 决策树是一种树形结构,树中每个内部节点表示一个特征上的判断,每个分支代表一个判断结果的输出,每个叶子节点代表一种分类结果。 决…...

LabVIEW输血袋字符智能检测系统
针对医疗行业输血袋字符检测需求,基于 LabVIEW 图形化开发平台与基恩士(KEYENCE)机器视觉硬件,构建高精度、高可靠性的字符在线识别系统。通过选用基恩士工业相机、光源及 NI 数据采集设备等硬件,结合 LabVIEW 强大的图…...
数据结构测试模拟题(3)
1、两个有序链表序列的合并 #include<bits/stdc.h> using namespace std;struct node{int num;node* next; };// 创建链表 node* CreatList(){int x;node *head new node(); // 创建头节点head->next NULL;node *tail head; // 尾指针初始指向头节点while…...

理解频域滤波
1 频域滤波基础 对一幅数字图像,基本的频率滤波操作包括: 1)将图像变换到频率域; 2)根据需要修改频率域数值; 3)反变换到图像域。 使用公式表达为 , H(u,v) 为滤波器(滤…...

Telerik生态整合:Kendo UI for Angular组件在WinForms应用中的深度嵌入(一)
Telerik DevCraft包含一个完整的产品栈来构建您下一个Web、移动和桌面应用程序。它使用HTML和每个.NET平台的UI库,加快开发速度。Telerik DevCraft提供完整的工具箱,用于构建现代和面向未来的业务应用程序,目前提供UI for ASP.NET MVC、Kendo…...

古老的传说(Player、Stage)是否还能在蓝桥云课ROS中重现-250601(失败)
古老的传说是否还能在蓝桥云课ROS中重现-250601 经典复现何其难,百分之二就凉凉! 古老的传说 那是很久很久以前的故事……上个世纪的一个机器人项目 Player、Stage这个项目最早起源于1999年,由美国南加州大学机器人研究实验室开发࿰…...

InfluxQL 数据分析实战:聚合、过滤与关联查询全解析
InfluxQL 作为时序数据库的专用查询语言,在处理时间序列数据时展现出独特优势。本文深入探讨 聚合计算、数据过滤和跨测量关联 三大核心操作,通过真实代码示例展示如何从海量时序数据中提取关键洞察。文中涵盖从基础平均值计算到复杂多维度分析的完整流程…...

Qt font + ToolTip + focusPolicy + styleSheet属性(5)
文章目录 font属性API接口直接在Qt Designer编辑图形化界面通过纯代码的方式修改文字属性 ToolTip属性API接口代码演示 focusPolicy属性概念理解API接口通过编辑图形化界面演示 styleSheet属性概念理解通过编辑图形化界面展示代码 图形化界面的方式展示(夜间/日间模…...
APM32主控键盘全功能开发实战教程:软件部分
APM32主控键盘全功能开发实战教程:从零基础到RGB矩阵高级玩法 🔥 前言:随着机械键盘DIY风潮兴起,国产APM32芯片因其高性价比和与STM32的完美兼容性,正逐渐成为键盘开发主控的新宠。本文将手把手带你从最基础的环境搭建…...
docker 部署 gin
编译与执行 ✅「静态编译语言 生成原生二进制文件 操作系统直接执行」 Go 语言之所以在工程部署场景中大受欢迎的核心优势:它直接编译成原生二进制可执行文件(binary executable)。 🔧 Go 是“静态编译语言”(编译型…...

十三: 神经网络的学习
这里所说的“学习”是指从训练数据中自动获取最优权重参数的过程。为了使神经网络能进行学习,将导入损失函数这一指标。而学习的目的就是以该损失函数为基准,找出能使它的值达到最小的权重参数。为了找出尽可能小的损失函数的值,我们将介绍利…...
Qt OpenGL编程常用类
Qt提供了丰富的类来支持OpenGL编程,以下是常用的Qt OpenGL相关类: 一、QOpenGLWidget 功能:用于在 Qt 应用程序中嵌入 OpenGL 渲染的窗口部件。替代了旧版的QGLWidget。提供了OpenGL上下文和渲染表面。 继承关系:QWidget → QOpenGLWidget 属性与方法: QOpenGLWidget 属…...
数据结构 --- 顺序表
顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储,在数组上完成数据的增删查改 顺序表分为:静态顺序表、动态顺序表 一.静态顺序表 #define N 7 typedef int SLDataType;typedef struct Seqlist {…...
MySQL高级查询技巧:分组、聚合、子查询与分页【MySQL系列】
本文将深入探讨 MySQL 高级查询技巧,重点讲解 GROUP BY、HAVING、各种聚合函数、子查询以及分页查询(LIMIT 语法)的使用。文章内容涵盖实际应用中最常见的报表需求和分页实现技巧,适合有一定 SQL 基础的开发者进一步提升技能。 一…...
无人机多旋翼倾转动力测试系统-适用于(eVTOL开发、缩比模型测试、科研教育)
在倾转旋翼无人机、垂直起降(VTOL)及混合动力飞行器的研发中,动力系统在垂直-水平模式切换时的动态性能至关重要。LY-QZ-F4多旋翼倾转动力测试系统是全球首款专为倾转四旋翼设计的多自由度动力测试平台,融合高精度传感、动态倾转模…...
.NET8入门:14.ASP.NET Core MVC进阶——Model
上一篇文章我们了解了一下MVC在ASP.NET8中的一些基础概念,接下来深入了解一下ASP.NET Core MVC中Model的一些特性和用法。 Model 职责 Model 代表应用程序的核心数据和业务逻辑部分。它负责: 封装业务数据:表示应用程序中的实体,…...
latex figure Missing number, treated as zero. <to be read again>
\begin{figure}[h] \centering \includegraphics[width\linewidth]{pictures/architecture.pdf} \caption{Typical architecture.} \label{fig:architecture} \end{figure}, 我在编译latex,这段代码报错, Missing number, treated …...
java CompletableFuture创建异步任务(Completable异步+ExecutorService线程池)
文章目录 前置自定义线程池使用 CompletableFuture 创建异步任务 前置 来自 import java.util.concurrent.CompletableFuture; 自定义线程池 推荐根据业务需求配置 ExecutorService pool new ThreadPoolExecutor(10, // 核心线程数20, // 最大线程数60L, TimeUnit.SECONDS…...

LeetCode 高频 SQL 50 题(基础版)之 【聚合函数】部分
题目:620. 有趣的电影 题解: select * from cinema where description !boring and id%21 order by rating desc题目:1251. 平均售价 题解: select p.product_id product_id,round(ifnull(sum(p.price*u.units)/sum(u.units),0)…...

【AI学习】检索增强生成(Retrieval Augmented Generation,RAG)
1,介绍 出自论文《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》,RAG是权宜之计,通过RAG将问题简单化、精简化、剔除噪声,让LLM更容易理解、生成内容。RAG:检索增强技术检索生成(重…...

低成本高效图像生成:GPUGeek和ComfyUI的强强联合
一、时代背景 在如今的数字化时代,图像生成技术正不断发展和演变,尤其是在人工智能领域。无论是游戏开发、虚拟现实,还是设计创意,图像生成已成为许多应用的核心技术之一。然而,随着图像质量需求的提升,生成…...
基于Matlab实现卫星轨道模拟仿真
在IT行业中,卫星轨道模拟和仿真程序是航空航天领域的重要工具,用于预测和分析人造卫星的运动轨迹。 我们需要理解卫星轨道的基本原理。地球引力使得卫星围绕地球运动,形成特定的椭圆或圆形轨道。牛顿的万有引力定律和开普勒的行星运动定律为…...
前端使用 spark-md5 实现大文件切片上传
需要计算文件MD5和、分片MD5: 封装公共方法代码如下: import SparkMD5 from "spark-md5"/*** 计算文件MD5* param file* returns*/ export function calculateFileMD5(file) {return new Promise((resolve) > {const reader new FileRea…...

《操作系统真相还原》——进入内核
ELF 按书上的操作来,在现代操作平台编译链接默认生成elf64 格式的文件, 很显然程序头位置发生变化,因为定义elf 结构的类型中有64位,所以我们需要将编译链接出32位格式的 gcc -m32 -c -o main.o main.c ld -m elf_i386 main.o …...

【QQ音乐】sign签名| data参数 | AES-GCM加密 | webpack(上)
1.目标 网址:https://y.qq.com/n/ryqq/toplist/26 切换榜单出现请求,可以看到sign和data是加密的 2.逆向分析 搜索sign: 可以看到sign P(n.data),而n.data就是请求的加密data参数 data {"comm":{"cv":4747474,&qu…...

【STM32】按键控制LED 光敏传感器控制蜂鸣器
🔎【博主简介】🔎 🏅CSDN博客专家 🏅2021年博客之星物联网与嵌入式开发TOP5 🏅2022年博客之星物联网与嵌入式开发TOP4 🏅2021年2022年C站百大博主 🏅华为云开发…...

M-OFDM模糊函数原理及仿真
文章目录 前言一、M序列二、M-OFDM 信号1、OFDM 信号表达式2、模糊函数表达式 三、MATLAB 仿真1、MATLAB 核心源码2、仿真结果①、m-OFDM 模糊函数②、m-OFDM 距离分辨率③、m-OFDM 速度分辨率④、m-OFDM 等高线图 四、资源自取 前言 本文进行 M-OFDM 的原理讲解及仿真&#x…...

【MySQL】MVCC与Read View
目录 一、数据库并发的三种场景 二、读写场景的MVCC (一)表中的三个隐藏字段 (二)undo 日志 (三)模拟MVCC (四)Read View (五)当前读和快照读 三、RC和…...