【详细版】DETR网络学习笔记(2020 ECCV)
论文标题 | End-to-End Object Detection with Transformers |
---|---|
论文作者 | Nicolas Carion;Francisco Massa;Gabriel Synnaeve;Nicolas Usunier;Alexander Kirillov and Sergey Zagoruyko |
发表日期 | 2020年11月03日 |
GB引用 | > Nicolas Carion, Francisco Massa, Gabriel Synnaeve, et al. End-to-End Object Detection with Transformers[J]. Lecture Notes in Computer Science, 2020, 12346: 213-229. > [1]Nicolas Carion, Francisco Massa, Gabriel Synnaeve, et al. End-to-End Object Detection with Transformers[J]. Lecture Notes in Computer Science, 2020, 12346: 213-229. |
DOI | https://doi.org/10.1007/978-3-030-58452-8_13 |
摘要
本文提出了一种新的目标检测方法DETR(Detection Transformer),它将目标检测视为直接集合预测问题。DETR采用了一种端到端的模型,通过结合基于集合的全局损失函数和Transformer编码器-解码器架构,直接并行输出最终的预测结果。与传统方法相比,DETR简化了检测流程,去除了许多手工设计的组件,如非极大值抑制或锚点生成。实验表明,在COCO数据集上,DETR的表现与Faster R-CNN相当,并且在大物体检测上表现更优。此外,DETR可以轻松扩展用于全景分割任务,性能显著优于现有方法。
全文概述
这篇论文提出了一种名为DETR(DEtection TRansformer)的新方法,用于端到端的目标检测。
DETR的核心思想是将目标检测任务视为一个直接的集合预测问题,通过使用Transformer架构的编码器-解码器模型来实现。以下是论文的主要内容概述:
- 问题背景:传统的目标检测方法依赖于区域提议网络(RPN)或区域感兴趣(RoI)池化等组件,这些方法需要后处理步骤如非极大值抑制(NMS)。DETR旨在简化这一流程,通过直接预测目标的集合来提高检测效率。
- DETR架构:DETR采用了一个基于Transformer的编码器-解码器架构。编码器使用CNN提取图像特征,而解码器则通过自注意力机制并行处理目标。DETR还引入了一组固定的对象查询(object queries),用于在解码过程中生成预测。
- 匹配损失:DETR使用一种称为匹配损失的全局损失函数,该函数通过匈牙利算法实现预测与真实目标之间的最佳匹配。这种损失函数确保了每个预测都有一个唯一的真实目标对应,从而避免了重复预测。
- 实验结果:DETR在COCO目标检测数据集上展示了与Faster R-CNN相当的性能,尤其是在大型目标上。DETR还展示了其在全景分割任务上的泛化能力,通过添加分割头,DETR能够同时进行目标检测和分割。
- 消融研究:论文通过消融实验分析了DETR中各个组件的重要性,包括编码器层数、解码器层数、前馈神经网络(FFN)以及位置编码。这些实验有助于理解DETR的工作原理和性能。
- 代码和模型:论文提供了DETR的训练代码和预训练模型,以便研究者可以复现实验结果并进一步探索DETR的潜力。
总的来说,DETR通过其创新的架构和损失函数,为目标检测领域提供了一种新的视角,特别是在处理复杂场景和大型目标时。尽管DETR在小目标检测和训练效率方面仍有改进空间,但其端到端的训练能力和对全景分割的扩展性展示了其在目标检测任务中的潜力。
研究问题
如何将目标检测视为直接集合预测问题,并通过变换器架构实现端到端的训练,同时保持与现有强基准模型如Faster R-CNN相当的性能?
研究方法
实验研究: 通过训练DETR模型,并在COCO数据集上进行性能评估,验证其检测准确性和运行时间表现。
比较研究: 将DETR模型与Faster R-CNN基线模型进行对比,评估其在大型物体检测上的优越性能。
混合方法研究: 结合了Transformer编码器-解码器架构以及非自回归并行解码技术,共同实现目标检测任务。
现象学研究: 通过观察DETR模型在处理复杂结构预测任务(如机器翻译或语音识别)中的表现,探索其在目标检测领域的应用潜力。
系统分析: 全面探索哪些组件对于DETR模型的性能至关重要,并分析其设计原理如何易于扩展到更复杂的任务。
研究思路
论文提出了DETR(DEtection TRansformer)模型来解决目标检测问题,主要通过以下几个关键步骤和创新点:
- 直接集合预测:DETR将目标检测任务视为一个直接的集合预测问题,而不是通过间接的回归和分类任务。这意味着DETR直接预测目标的边界框和类别,而不是依赖于区域提议或锚点。
- 编码器-解码器架构:DETR采用了基于Transformer的编码器-解码器架构。编码器部分使用CNN提取图像特征,而解码器部分则利用这些特征和一组固定的对象查询(object queries)来生成预测。这种架构允许模型并行处理所有目标,而不是逐个生成。
- 自注意力机制:DETR利用Transformer的自注意力机制来捕捉图像中不同目标之间的全局关系。这使得模型能够在没有显式锚点的情况下,理解目标之间的相对位置和上下文信息。
- 固定对象查询:DETR在训练过程中学习一组固定的对象查询(object queries),这些查询在解码器中作为输入,帮助模型关注图像的不同部分。这些查询在训练后保持不变,用于在推理阶段生成预测。
- 匹配损失:DETR使用一种称为匹配损失(Matching Loss)的损失函数,该损失函数通过匈牙利算法(Hungarian algorithm)实现预测和真实目标之间的最佳匹配。这种损失函数确保了每个预测都有一个与之匹配的真实目标,从而避免了重复预测。
- 端到端训练:DETR可以端到端地训练,不需要额外的后处理步骤,如非极大值抑制(NMS)。这简化了训练流程,并允许模型直接学习如何生成准确的预测。
- 全景分割扩展:DETR的架构可以轻松扩展到全景分割任务,通过在解码器输出上添加一个分割头(mask head),DETR能够同时进行目标检测和分割,实现对图像中的对象和背景的统一处理。
综上,DETR在COCO目标检测数据集上展示了与Faster R-CNN相当的性能,特别是在大型目标上。同时,DETR的设计也为未来的目标检测研究提供了新的思路,尤其是在处理小目标和提高模型泛化能力方面。
DETR模型
检测中直接设置预测的两个关键要素是:(1) 一种集合预测损失,该损失强制执行预测框与真实框之间的唯一匹配;(2) 一个架构,用于预测(单次遍历)一组对象并模拟它们之间的关系。我们在图2中详细描述了我们的架构。
目标检测集合预测损失
DETR通过单次解码就能推断出一组固定大小的 N N N个预测,其中 N N N被设定为显著大于图像中典型对象数量的值。训练的主要困难之一是根据真值对预测对象(类别、位置、大小)进行评分。我们的损失函数在预测对象和真实对象之间产生了一个最优二分匹配,然后优化了特定对象(边界框)的损失。
让我们用 y y y表示真实对象的集合,用 y ^ = { y ^ i } i = 1 N \hat{y}=\{\hat{y}_i\}_{i=1}^N y^={ y^i}i=1N表示包含 N N N个预测的集合。假设 N N N大于图像中的物体数量,我们将 y y y也视为一个大小为 N N N的集合,并用 Ø \mathrm{Ø} Ø(无物体)进行填充。为了在这两个集合之间找到一个二分匹配,我们寻找一个 N N N元素的排列 σ ∈ S N \sigma\in\mathfrak{S}_N σ∈SN,其成本最低:
σ ^ = arg min σ ∈ S N ∑ i N L m a t c h ( y i , y ^ σ ( i ) ) , ( 1 ) \hat{\sigma}=\underset{\sigma\in\mathfrak{S}_N}{\operatorname*{\operatorname*{\arg\min}}}\sum_i^N\mathcal{L}_{\mathrm{match}}(y_i,\hat{y}_{\sigma(i)}),\ \ \ \ \ \ \ \quad(1) σ^=σ∈SNargmin∑iNLmatch(yi,y^σ(i)), (1)
其中, L m a t c h ( y i , y ^ σ ( i ) ) \mathcal{L}_{\mathrm{match}}(y_i,\hat{y}_{\sigma(i)}) Lmatch(yi,y^σ(i))是真实标签 y i y_i yi和索引为 σ ( i ) \sigma(i) σ(i)的预测之间的成对匹配成本。这个最优分配可以通过匈牙利算法高效计算,遵循先前的工作(例如[43])。
匹配成本考虑了类别预测以及预测框和真实框的相似性。真实集中的每个元素 i i i可以看作是 y i = ( c i , b i ) y_i=(c_i,b_i) yi