Conditional DETR for Fast Training Convergence论文学习

devtools/2025/2/3 3:47:03/

1. 写作背景

最近提出的 DETR 成功地将 transformer 引入到物体检测任务中,获得了很不错的性能。DETR 的重要意义在于去除了物体检测算法里需要人工设计的部分,比如 anchor 的生成和 NMS 操作。这大大简化了物体检测的设计流程。基本的结构还是沿用了以前的结构,基础的CNN提取特征,送入到encoder中后,又用decoder进行解码还原,最终通过FNN进行预测。

2. 为什么提出Conditional DETR

DETR存在以下问题

  1. 对于模型训练时间长,一是大量的Attention计算,二是模型的参数量多,这是由于decoder的query的全0初始化,导致必须要6个decoder去进行cross的信息交互
  2. 检测小物体效果不好:DETR是因为不设计多尺度特征,Attention模块每次只关注一小部分采样点,导致需要很多轮数才能学习到真实需要关注的目标。

3. Conditional DETR细节

沿用了 DETR 的整体流程,包括 CNN backbone,transformer encoder,transformer decoder, 以及 object class 和 box 位置的预测器。Encoder 和 decoder 各自由6个相同的 layer 堆叠而成。我们相对于 DETR 的改动主要在 cross-attention 部分。

在这里插入图片描述
再来对比一下detr的结构,如图:
在这里插入图片描述
encoder部分不变,decoder部分,从之前的self Attention变成了embedding过的cross attention。参考知乎大佬的一段讲解:在这里插入图片描述
在这里插入图片描述

总的来说,作者认为原始的DETR论文中的query是分为两部分:content query和spatial query。其中的spatial query是一个统一的特征(不同decoder层是一样的),没有针对图像中具体的细节信息,那么content query 需要同时学习spatial keys和content keys,这种大量的计算导致模型很难收敛。

因此,在Conditional DETR论文中,作者将为每一个query产生一个独特的spatial embedding,并且在和content融合的时候,不再使用求和的形式,而是拼接的形式。

4. 参考

  1. [ICCV 2021] Conditional DETR: 通过显式寻找物体的 extremity 区域加快 DETR 的收敛
  2. DETR系列模型(13篇论文)总结

http://www.ppmy.cn/devtools/155618.html

相关文章

Angular 2 表单深度解析

Angular 2 表单深度解析 引言 Angular 2作为现代前端开发的框架之一,以其灵活性和强大的功能赢得了众多开发者的青睐。在Angular 2中,表单处理是其中一个重要且复杂的部分。本文将深入解析Angular 2的表单,从基础知识到高级应用,旨在帮助开发者更好地理解和运用Angular 2…

电力晶体管(GTR)全控性器件

电力晶体管(Giant Transistor,GTR)是一种全控性器件,以下是关于它的详细介绍:(模电普通晶体管三极管进行对比学习) 基本概念 GTR是一种耐高电压、大电流的双极结型晶体管(BJT&am…

nth_element函数——C++快速选择函数

目录 1. 函数原型 2. 功能描述 3. 算法原理 4. 时间复杂度 5. 空间复杂度 6. 使用示例 8. 注意事项 9. 自定义比较函数 11. 总结 nth_element 是 C 标准库中提供的一个算法&#xff0c;位于 <algorithm> 头文件中&#xff0c;用于部分排序序列。它的主要功能是将…

一觉醒来全球编码能力下降100000倍,新手小白的我决定科普C语言——函数

1. 函数的概念 数学中我们其实就⻅过函数的概念&#xff0c;⽐如&#xff1a;⼀次函数 y kx b &#xff0c;k和b都是常数&#xff0c;给⼀个任意的 x&#xff0c;就得到⼀个y值。其实在C语⾔也引⼊函数&#xff08;function&#xff09;的概念&#xff0c;有些翻译为&#xf…

C# Winform制作一个登录系统

using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace 登录 {p…

android获取EditText内容,TextWatcher按条件触发

android获取EditText内容&#xff0c;TextWatcher按条件触发 背景&#xff1a;解决方案&#xff1a;效果&#xff1a; 背景&#xff1a; 最近在尝试用原生安卓实现仿element-ui表单校验功能&#xff0c;其中涉及到EditText组件内容的动态校验&#xff0c;初步实现功能后&#…

pytorch使用SVM实现文本分类

人工智能例子汇总:AI常见的算法和例子-CSDN博客 完整代码: import torch import torch.nn as nn import torch.optim as optim import jieba import numpy as np from sklearn.model_selection import train_test_split from sklearn.feature_extraction.text import Tfid…

Python | Pytorch | 什么是 Inplace Operation(就地操作)?

如是我闻&#xff1a; 在 PyTorch 中&#xff0c;Inplace Operation&#xff08;就地操作&#xff09;是指直接修改 Tensor 本身&#xff0c;而不是创建新的 Tensor 的操作。PyTorch 中的 Inplace 操作通常会在函数名后加上 _ 作为后缀&#xff0c;例如&#xff1a; tensor.ad…