目录
2.2 Transformers and Parallel Decoding(Transformer和并行解码)
3.1 Object detection set prediction loss(对象检测集预测损失)
3.2 DETR architecture(DETR 架构)
4.1 Comparison with Faster R-CNN(与 Faster R-CNN 的比较)
4.4 DETR for panoptic segmentation
前言
在huggingFace上下载了一个模型detr-resnet-50,接下来我会带大家详细阅读此模型的论文《End-to-End Object Detection with Transformers》
Abstract
翻译
我们提出了一种新方法,将对象检测视为直接集合预测问题。我们的方法简化了检测管道,有效地消除了对许多手动设计的组件的需求,例如非极大值抑制程序或锚点生成,这些组件明确编码了我们对任务的先验知识。新框架(称为 DEtection TRansformer 或 DETR)的主要组成部分是基于集合的全局损失,它通过二分匹配强制进行唯一预测,以及 transformer 编码器-解码器架构。给定一小组固定的学习对象查询,DETR 会推断对象和全局图像上下文的关系,以直接并行输出最终的预测集。与许多其他现代探测器不同,新模型在概念上很简单,不需要专门的库。DETR 在具有挑战性的 COCO 对象检测数据集上展示了与成熟且高度优化的 Faster RCNN 基线相当的准确性和运行时性能。此外,DETR 可以很容易地泛化以统一的方式产生全景分割。我们表明,它的性能明显优于竞争对手的基线。训练代码和预训练模型可在 https://github.com/facebookresearch/detr 获取。
总结
新方法
DETR :DEtection Transformers,将目标检测视为一个直接预测的问题
主要组成
Transformer编码器解码器架构 、 二分匹配强制进行唯一预测
优点
- DETR在COCO 对象检测数据集上准确性和运行时性能与Faster RCNN 基线相当
- 容易以统一的方式产生全景分割
- 性能明显优于竞争对手的基线
- 简化了检测管道 ->消除了许多对手动设计的组件的需求,如非极大值抑制程序或锚点生成
非极大值抑制程序(non-maximum suppression procedure):帮助去除重复的检测框,只保留最准确的框。
检测到了一个物体(比如人脸),但算法可能会在图像中多次检测到同一个物体,生成多个不同的位置框。这些框可能会有很多重叠部分,这时就需要用非极大值抑制来“过滤”这些冗余框,保留最精确的一个。
锚点生成(anchor generation):在许多传统方法中,锚点是预定义的矩形框,它们的大小和比例是基于一些先验知识选择的,以匹配图像中的物体。
先验知识(prior knowledge):基于经验或领域知识,通常需要手动设计和加入的规则、假设或者约束条件
全局损失(set-based global loss) :检测到的所有物体进行整体考虑,而不是逐个独立地去处理每个物体
基线(baselines);初始的模型或方法,作为对比标准
一、Introduction
翻译
对象检测的目标是为每个感兴趣的对象预测一组边界框和类别标签。现代检测器通过在大量建议 [37\u20125]、锚点 [23] 或窗口中心 [53\u201246] 上定义代理回归和分类问题,以间接的方式解决这组预测任务。它们的性能受到以下因素的显著影响:折叠近乎重复的预测的后处理步骤、锚点集的设计以及将目标框分配给锚点的启发式方法[52]。为了简化这些管道,我们提出了一种直接设置预测方法来绕过代理任务。这种端到端的理念在复杂的结构化预测任务(如机器翻译或语音识别)方面取得了重大进展,但在对象检测方面尚未取得进展:以前的尝试[43,16,4,39]要么增加了其他形式的先验知识,要么没有被证明在具有挑战性的基准上与强大的基线相比具有竞争力。本文旨在弥合这一差距。
我们通过将对象检测视为直接集合预测问题来简化训练管道。我们采用了一种基于变压器的编码器-解码器架构[47],这是一种流行的序列预测架构。transformer 的自注意力机制显式地对序列中元素之间的所有成对交互进行建模,这使得这些架构特别适用于集合预测的特定约束,例如删除重复的预测。
我们的 DEtection TRansformer(DETR,见图 1)可以同时预测所有对象,并使用一组损失函数进行端到端训练,该函数在预测对象和真实对象之间执行二分匹配。DETR 通过删除多个手动设计的组件来简化检测管道,这些组件对先验知识进行编码,例如空间定位点或非极大值抑制。与大多数现有的检测方法不同,DETR 不需要任何自定义层,因此可以在任何包含标准 CNN 和 transformer classes.1 的框架中轻松复制。
与以前的大多数直接集合预测工作相比,DETR 的主要特点是将二分匹配损耗和变压器与(非自回归)并行解码相结合 [29,12,10,8]。相比之下,以前的工作集中在使用 RNN 的自回归解码上 [43,41,30,36,42]。我们的匹配损失函数唯一地将预测分配给 ground truth 对象,并且对预测对象的排列不变,因此我们可以并行发出它们。
我们在最流行的对象检测数据集之一 COCO [24] 上与非常有竞争力的 Faster R-CNN 基线 [37] 上评估了 DETR。Faster RCNN 经历了多次设计迭代,其性能自最初发布以来得到了极大的提高。我们的实验表明,我们的新模型实现了相当的性能。更准确地说,DETR 在大型对象上表现出明显更好的性能,这可能是由 transformer 的非本地计算实现的。但是,它在小对象上获得的性能较低。我们预计未来的工作将像 FPN [22] 的开发对 Faster R-CNN 所做的那样改进这方面。
DETR 的训练设置在许多方面与标准对象检测器不同。新模式需要超长的训练计划和优势来自变压器中的辅助解码损耗。我们彻底探讨了哪些组件对所展示的性能至关重要。DETR 的设计理念很容易扩展到更复杂的任务。在我们的实验中,我们表明,在预训练的 DETR 之上训练的简单分割头在全景分割 [19] 上优于竞争基线,这是一项最近越来越受欢迎的具有挑战性的像素级识别任务。
DETR 的设计理念很容易扩展到更复杂的任务。在我们的实验中,我们表明,在预训练的 DETR 之上训练的简单分割头在全景分割 [19] 上优于竞争基线,这是一项最近越来越受欢迎的具有挑战性的像素级识别任务。
训练设置不同:
1.训练时间长
2.引入辅助解码损失:模型不仅通过最终的输出进行优化,还通过中间解码器的输出(即预测阶段)进行优化
drawback and improvement:在小对象上获得的性能较低,未来会进行改进
what:
- DETR 省略了手动设计步骤,简化了整个检测流程,提高模型效率
- 多数现有的对象检测方法需要一些特定的自定义层,而 DETR 则使用标准的CNN 、 Transformer网络层,能在所有含标准CNN 和 Transformer框架运行,容易复制和实现
- 相较于Faster RCNN,DETR在大型对象上表现出明显较好的性能
- DETR能够通过简单的扩展应对更复杂的图像分割任务
Why : 简化检测管道。用端到端的理念在对象检测方面取得进展,缝合之前的模型的缺点
How :提出了一种直接设置预测方法来绕过代理任务
对象检测视为直接集合预测问题来简化训练管道,采用了一种基于变压器的编码器-解码器 架构。
图一:具体过程
- CNN提取特征:从图像中提取出特征(例如边缘、形状、颜色等)
- Transformer 编码器-解码器:通过编码器学习图像中不同部分之间的关系,然后通过解码器将这些信息转换成物体的检测结果。
- 预测边界框和类别:最终的输出是一个 边界框集合(即预测框的位置)和 类别预测集合(即每个框中物体的类别)
- 二分匹配损失(Bipartite Matching Loss):使用 二分匹配损失 来确保模型预测的框与实际的真实框(Ground Truth)匹配,如果某个预测框没有与真实框匹配,模型会预测它属于 “无物体” 类别(即用符号 “Ø” 来表示)。这也意味着这些框的预测结果是不相关的或空的。
建议(Proposal):可能是一些候选区域,可以是通过算法生成的。
窗口中心(Window Center):基于图像中某些中心位置进行物体预测。
代理回归(surrogate Regression):回归通常是指模型用来预测数值输出的任务,像是物体位置的坐标。
分类问题(Classification):在对象检测中,除了要确定物体的位置外,还需要判断物体是什么类型的物体(比如:是人、猫、车、还是狗)。这就是分类任务。
二、Related work(相关工作)
我们的工作建立在几个领域的先前工作之上:用于集合预测的二分匹配损失、基于 transformer 的编码器-解码器架构、并行解码和对象检测方法。
2.1 Set Prediction(设置预测)
没有直接预测集合的规范深度学习模型。基本的集合预测任务是多标签分类(参见 [40,33] 在计算机视觉上下文中的参考资料),其中基线方法,即 one-vs-rest,不适用于元素之间存在底层结构(即几乎相同的盒子)的检测等问题。这些任务的第一个困难是避免接近重复。目前的大多数探测器都使用后处理(例如非极大值抑制)来解决这个问题,但直接集合预测是无需后处理的。他们需要全局推理方案来对所有预测元素之间的交互进行建模,以避免冗余。对于恒定大小的集合预测,密集的全连接网络 [9] 就足够了,但成本很高。一种通用的方法是使用自回归序列模型,例如递归神经网络 [48]。在所有情况下,损失函数都应该因预测的排列而保持不变。通常的解决方案是基于匈牙利算法 [20] 设计一个损失,以找到真实值和预测之间的二分匹配。这将强制执行排列不变性,并保证每个目标元素都具有唯一的匹配项。我们遵循二分匹配损失方法。然而,与之前的大多数工作相比,我们摆脱了自回归模型,使用具有并行解码的 transformers,我们将在下面描述
总结
DETR面临的挑战与创新
集合预测任务
集合预测指的是预测一组元素,而不仅仅是单个元素。在目标检测(比如在图像中检测物体)中,我们不仅要预测每个物体的位置和类别,还需要考虑这些预测元素之间的关系,比如多个物体的框可能非常接近。常见的基线方法是多标签分类(例如,每个物体是一个独立的标签)。但是,这种方法并不适用于存在“元素之间的底层结构”(例如多个目标框非常接近)的任务。
避免重复预测的问题
传统的目标检测方法通常会使用后处理步骤来解决这个问题。如非极大值抑