论文阅读|DETR

End-to-End Object Detection with Transformers

论文链接:https://arxiv.org/pdf/2005.12872.pdf

代码:https://github.com/facebookresearch/detr

论文翻译:(59条消息) DETR论文笔记_等风来~~的博客-优快云博客_detr论文

目录

Abstract

Introduction

Related work

Set prediction

Transformers and Parallel Decoding

Objection detection

Set-based loss 基于集合的损失

Recurrent detectors循环检测器

The DETR model

Object detection set prediction loss

DETR architecture

Backbone

Transformer encoder

Transformer decoder

FFNs


Abstract

DETR是第一个将Transformer成功整合为检测pipeline中心构建块的目标检测框架。基于Transformers的端到端目标检测,没有NMS后处理步骤、真正的没有anchor,且对标超越Faster RCNN

Introduction

目标检测的任务是为每个感兴趣的目标提供一组bounding box和类别标签,现代检测器通过在一大组proposal、anchor或窗口中心上定义替代回归和分类问题,间接地解决了这一集合预测任务。它们的性能受到后处理步骤(合并接近或重复的预测)、锚框的设计以及将目标框分配给锚的启发式算法的显著影响。为了简化这些流程,我们提出了一种直接集预测方法来绕过代理任务。这种端到端的思想在复杂的结构化预测任务(如机器翻译或语音识别)方面取得了重大进展,但在目标检测方面还没有取得进展:以前的尝试要么添加了其他形式的先验知识,要么在具有挑战性的基准上没有被证明与强大的基线具有竞争力。本文旨在填补这一空白。 

我们将目标检测视为一个直接集预测问题来简化训练。我们采用了一种基于transformers的编解码器架构,这是一种流行的序列预测架构。transformers的自注意机制可以显式地对序列中元素之间的所有成对交互进行建模,这使得这些体系结构特别适用于集预测的特定约束,例如消除重复预测。

DETR(见图1)一次预测所有对象,并使用一个集损函数进行端到端训练,该函数在预测对象和地面真实对象之间执行二部匹配。DETR通过删除编码先验知识的多个手工设计的组件(如anchor或非最大抑制nms),简化了检测流程。与大多数现有的检测方法不同,DETR不需要任何定制的层,因此可以在任何包含标准CNN和transformer类的框架中轻松复制。

与以往大多数关于直接集预测的工作相比,DETR的主要特点是二部匹配损耗transformer(非自回归)并行译码的结合。相比之下,以前的工作主要集中在使用RNNs的自回归解码上。我们的匹配损失函数唯一地将预测分配给ground truth,并且对预测对象的排列是不变的,因此我们可以并行地发射它们。

我们在一个最流行的目标检测数据集COCO上评估了DETR,并与一个非常有竞争力的Faster R-CNN基线进行了比较。Faster R-CNN经历了多次设计迭代,自最初发布以来,其性能得到了极大的提高。我们的实验表明,我们的新模型达到了相当的性能。更准确地说,DETR在大型对象上表现出明显更好的性能,这一结果很可能是由transformer的非局部计算实现的。但是,它在小对象上的性能较低。我们期望未来的工作能改善这一方面,像FPN的发展Faster R-CNN一样。

DETR的设计理念很容易

### 关于 DETR 和其改进模型的研究 DETR (End-to-End Object Detection with Transformers)[^1] 是一种基于 Transformer 架构的目标检测方法,它摒弃了传统的手工设计组件(如 NMS 或锚框),转而采用集合预测的方式完成目标检测任务。该架构由编码器-解码器结构组成,其中编码器用于提取图像特征,解码器则负责生成最终的边界框和类别标签。 为了进一步提升 DETR 的性能并减少训练时间,后续研究提出了多种改进版本。例如,在 Deformable DETR 中引入了多尺度可变形注意力模块[^2],这一创新显著提高了计算效率,并大幅缩短了收敛所需的时间。具体而言,可变形注意力机制允许网络自适应地选择关注哪些位置以及如何聚合不同尺度的信息,从而实现更加灵活高效的特征表示学习[^3]。 此外,还有其他一些工作也在不断推动着 DETR 及其衍生模型的发展。比如 ViTDet 探讨了纯视觉 Transformer 主干网在目标检测领域内的应用潜力[^4];而 DINO 则通过优化去噪锚框策略来增强 DETR 对小物体检测的能力[^5]。 ```python import torch.nn as nn class DETR(nn.Module): def __init__(self, backbone, transformer, num_classes): super(DETR, self).__init__() self.backbone = backbone # 特征提取部分 self.transformer = transformer # 编码器-解码器结构 self.class_embed = nn.Linear(... ,num_classes+1) # 类别预测头 self.bbox_embed = MLP(...) # 边界框回归头 def forward(self, inputs): features = self.backbone(inputs) outputs = self.transformer(features) pred_logits = self.class_embed(outputs) pred_boxes = self.bbox_embed(outputs).sigmoid() return {'pred_logits': pred_logits, 'pred_boxes': pred_boxes} ``` 上述代码片段展示了简化版的 DETR 实现框架,其中包括骨干网络、Transformer 结构以及分类与定位两个分支输出层的设计思路。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值