DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection论文笔记

原文链接

[2203.03605] DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection (arxiv.org)icon-default.png?t=O83Ahttps://arxiv.org/abs/2203.03605

原文笔记

What:

DINO通过使用对比方法进行去噪训练、使用混合query选择方法进行anchor初始化,和两次前向的box预测方案,提高了以前类似DETR的模型性能和效率。

Why:

DETR典型的几个问题:

1、收敛速度慢(decoder query的初始化问题导致,2也是原因之一)

2、训练时间长(query的全0初始化导致6encoder和6decoder的模型机构大,训练时间长,transformer本身的attention计算也很耗费时空资源)

3、难处理小物体(没多尺度特征图)

作者还指出类似DETR的方法摒弃了NMS但是锚框可能存在重复的问题

Challenge:

解决类似DETR模型之中存在的故有问题

Idea:

本工作主要针对于query的配置进行研究包括三个方面(初始化,训练策略,细化)在文中有详细交代

对于注意力计算本身的复杂度问题沿用了deformable transformer

对于多尺度问题,文中没有明确交代

原文翻译

Abstract.

我们提出了DINO (DETR with improved deNoising anchOr box),这是一种最先进的端到端对象检测器。DINO通过使用对比方法进行去噪训练、使用混合query选择方法进行anchor初始化,和两次前向的box预测方案,提高了以前类似DETR的模型性能和效率。DINO在COCO上使用ResNet-50骨干网和多尺度特征在12个epoch后达到了49.4AP在24个epoch达到了51.3AP,比之前的最佳类DETR模型DN-DETR分别提高了+6.0AP和+2.7AP。DINO 在模型大小和数据大小上都能很好地扩展。在没有吹嘘的情况下,在使用SwinL主干对Objects365数据集进行预训练后,DINO在COCO val2017 (63.2AP)和test-dev (63.3AP)上都获得了最好的结果。与排行榜上的其他模型相比,DINO 显着减少了其模型大小和预训练数据大小,同时取得了更好的结果。我们的代码将在 https://github.com/IDEACVR/DINO 公布。

Keywords: Object Detection; Detection Transformer; End-to-End Detector

1 Introduction

目标检测是计算机视觉中的一项基本任务。经典的基于卷积的目标检测算法已经取得了显著的进展[31,35,19,2,12].尽管这样的算法通常包括手工设计的组件,如锚生成和非极大值抑制(NMS),但它们产生了最好的检测模型,如DyHead[7]、Swin[23]和SwinV2[22]和HTC++[4],如COCO测试开发排行榜[1]所示。

与经典的检测算法相比,DETR[3]是一种新的基于Transformer的检测算法。它消除了手工设计组件的需要,并实现了与Faster RCNN[31]等优化的经典检测器相当的性能。与之前的检测器不同,DETR 将对象检测建模为集合预测任务,并通过二分图匹配分配标签。它利用可学习的查询来探索对象的存在,并结合来自图像特征图的特征,其行为类似于软ROI池[21]。

尽管 DETR 具有良好的性能,但 DETR 的训练收敛速度较慢,查询的含义尚不清楚。为了解决这些问题,人们提出了许多方法,如引入可变形注意[41]、解耦位置和内容信息[25]、提供空间先验[11,39,37]等。最近,DAB-DETR[21]提出将DETR查询表述为动态锚盒(DAB),弥合了经典的基于锚点的检测器和类detr检测器之间的差距。DN-DETR[17]通过引入去噪(DN)技术进一步解决了二部匹配的不稳定性。DAB 和 DN 的组合使得类似 DETR 的模型在训练效率和推理性能方面与经典检测器具有竞争力。

目前最好的检测模型是基于改进的经典检测器,如DyHead[8]和HTC[4]。例如,SwinV2 [22] 中提出的最佳结果使用 HTC++ [4,23] 框架进行训练。造成这种现象的两个主要原因:1)以前的类似 DETR 的模型不如改进的经典检测器。大多数经典检测器已经得到了很好的研究和高度优化的,与新开发的类似 DETR 的模型相比,具有更好的性能。例如,当今性能最好的类似 DETR 的模型在 COCO 上仍然低于 50 AP。2)类似 DETR 的模型的可扩展性尚未得到充分研究。在扩展到大型backbone和大规模数据集时,没有报告类似 DETR 的模型如何执行的结果。我们的目标是在本文中解决这两个问题。

具体来说,通过改进去噪训练、查询初始化和框预测,我们设计了一种新的基于DN-DETR[17]、DAB-DETR[21]和可变形DETR[41]的DETR类模型。我们将我们的模型命名为 DINO(具有改进的 deNoising achOr 框的 DETR)。如图1所示,COCO的比较显示了DINO的优越性能。特别是,DINO 表现出巨大的可扩展性,在 COCO test-dev 排行榜上设置 63.3 AP 的新记录 [1]

作为类似 DETR 的模型,DINO 包含一个backbone、一个多层 Transformer 编码器、一个多层 Transformer 解码器和多个预测头。在DAB-DETR[21]之后,我们将解码器中的查询制定为动态锚框,并在解码器层逐步细化它们。在 DN-DETR [17] 之后,我们在 Transformer 解码器层中添加了带有噪声的真实标签和框,以帮助在训练期间稳定二分匹配。我们还采用可变形注意力[41]来提高计算效率。此外,我们提出了三种新方法,如下所示。首先,为了改进一对一匹配,我们提出了一种对比去噪训练,同时添加相同ground truth的正样本和负样本。在将两个不同的噪声添加到同一个ground truth box后,我们将噪声较小的框标记为positive,另一个标记为negative。对比去噪训练有助于模型避免相同目标的重复输出。其次,查询的动态锚框公式将类似 DETR 的模型与经典的两阶段模型联系起来。因此,我们提出了一种混合查询选择方法,有助于更好地初始化查询。我们从编码器的输出中选择初始锚框作为位置查询,类似于 [41,39]。然而,我们将内容查询像以前一样可学习,鼓励第一个解码器层专注于空间先验。第三,为了利用来自后续层的精细框信息来帮助优化其相邻早期层的参数,我们提出了一种新的前瞻两次方案,以使用来自后续层的梯度来纠正更新的参数。

我们在COCO[20]检测基准上通过大量的实验验证了DINO的有效性。如图1所示,与之前最好的类似DETR的模型相比,DINO在ResNet-50和多尺度特征的24个epoch中实现了49.4AP和51.3AP,分别提高了+6.0AP和+2.7AP。此外,DINO 在模型大小和数据大小上都能很好地扩展。在使用 SwinL [23] 主干对 Objects365 [33] 数据集进行预训练后,DINO 在 COCOval2017 (63.2AP) 和 test-dev (63.3AP) 基准测试中都取得了最佳结果,如表 3 所示。与排行榜上的其他模型相比,我们将模型大小减少到 1/15,与 SwinV2-G [22] 相比。与Florence[40]相比,我们减少了预训练检测数据集到原来的1/5,减少backbone预训练数据集到原来的1/60,同时取得了更好的结果。

我们总结了我们的贡献如下。

1. 我们设计了一种新的端到端类似DETR的目标检测器,包括对比DN训练、混合查询选择,并对DINO模型的不同部分向前看两次。

2. 我们进行密集的消融研究,以验证DINO中不同设计选择的有效性。因此,DINO 在 ResNet-50 和多尺度特征的训练下 12 个 epoch 达到了 49.4AP 中在 24 个 epoch 达到了 51.3AP ,显着优于之前最好的类似 DETR 的模型。特别是,12 个 epoch 训练的 DINO 对小物体显示出更显着的改进,提高了 +7.5AP。

3.我们表明,不吹不黑,DINO可以在公共基准上实现最佳性能。在使用 SwinL [23] 主干对 Objects365 [33] 数据集进行预训练后,DINO 在 COCO val2017 (63.2AP) 和 test-dev (63.3AP) 基准测试中都取得了最佳结果。据我们所知,这是第一次端到端 Transformer 检测器在 COCO 排行榜上优于最先进的 (SOTA) 模型 [1]。

2 Related Work

2.1 Classical Object Detectors

基于手工制作的锚点或参考点,早期的基于卷积的对象检测器要么是两级模型,要么是一级模型。两阶段模型[30,13]通常使用区域建议网络(RPN)[30]提出潜在的盒子,然后在第二阶段进行细化。YOLO v2[28]和YOLO v3[29]等单阶段模型直接输出相对于预定义锚点的偏移量。最近,一些基于卷积的模型,如HTC++[4]和Dyhead[7]在COCO 2017数据集[20]上取得了最佳性能。然而,基于卷积的模型的性能依赖于它们生成锚点的方式。此外,它们需要像NMS这样的手工设计的组件来去除重复的盒子,因此无法进行端到端的优化。

2.2 DETR and Its Variants

Carion等人[3]提出了一种基于transformer的端到端对象检测器DETR (DEtection TRansformer),不使用手工设计的组件,如锚设计和NMS。许多后续论文试图解决解码器交叉注意引入的DETR训练收敛速度慢的问题。例如,Sun等人[34]设计了一个仅编码器的DETR,而不使用解码器。Dai等人[7]提出了一种动态解码器,专注于来自多个特征级别的重要区域。

另一项工作是对 DETR 中的解码器中输入的query进行更深入的理解。许多论文从不同的角度将查询与空间位置相关联。Deformable DETR [41] 预测 2D 锚点并设计了一个可变形注意模块,该模块只关注参考点周围的某些采样点。Efficient DETR[39]从编码器的密集预测中选择前K个位置来增强解码器查询。DAB-DETR [21]进一步将 2D 锚点扩展到 4D 锚框坐标,以表示每个解码器层中的查询和动态更新框。最近,DN-DETR [17] 引入了一种去噪训练方法来加速 DETR 训练。它向解码器提供噪声添加的真实标签和框,并训练模型重建原始标签。我们在本文中DINO的工作基于DAB-DETR和DN-DETR,并采用可变形注意来提高计算效率。

2.3 Large-scale Pre-training for Object Detection

大规模预训练对自然语言处理[10]和计算机视觉[27]都有很大的影响。现在的最佳性能检测器大多是在大规模数据上预训练的大型主干来实现的。例如,Swin V2 [22] 将其主干大小扩展到 3.0 亿参数,并使用 70M 私有收集的图像预训练其模型。Florence[40]首先使用900M私有策划的图像-文本对预训练其主干,然后用带有注释或伪框的9M图像预训练其检测器。相比之下,DINO仅使用公开可用的SwinL[23]主干和公共数据集Objects365[33](1.7M注释图像)实现了SOTA结果。

3 DINO: DETR with Improved DeNoising Anchor Boxes

3.1 Preliminaries

正如Conditional DETR[25]和DAB-DETR[21]所研究的,很明显DETR[3]中的查询由两部分组成:位置部分和内容部分,在本文中称为位置查询和内容查询。DAB-DETR [21] 将 DETR 中的每个位置查询显式表述为 4D 锚框 (x, y, w, h),其中 x 和 y 是框的中心坐标,w 和 h 对应于其宽度和高度。这种显式锚盒公式使得在解码器中逐层动态细化锚盒变得容易。

DN-DETR[17]引入了一种去噪(DN)训练方法来加速类DETR模型的训练收敛。结果表明,DETR中收敛速度慢的问题是由二部匹配的不稳定性引起的。为了缓解这个问题,DN-DETR 建议在 Transformer 解码器中额外输入噪声的真实 (GT) 标签和框,并训练模型重建真值标签。添加的噪声(∆x,∆y,∆w,∆h)受|∆x|<λw2,|∆y|<λh2,|∆w|<λw,|∆y|<λh的约束,其中(x,y,w,h)表示一个GT box并且λ是一个超参数用来控制噪声的尺寸.由于 DNDETR 遵循 DAB-DETR 将解码器查询视为锚点,因此噪声 GT 框可以被视为一个特殊的锚点在框附近,因为λ框通常很小。除了序数 DETR 查询之外,DN-DETR 还添加了一个 DN 部分,它将有噪声的 GT 标签和框输入解码器以提供辅助 DN 损失。DN 损失有效地稳定并加快了 DETR 训练的速度,并且可以插入任何类似 DETR 的模型。

可变形DETR[41]是加速DETR收敛的另一个早期工作。为了计算可变形注意力,它引入了参考点的概念,以便可变形注意力可以关注参考周围的一小组关键采样点。参考点概念使得开发几种技术来进一步提高 DETR 性能。第一种技术是查询选择 2,它直接从编码器中选择特征和参考框作为解码器的输入。第二种技术是迭代边界框细化,在两个解码器层之间具有仔细的梯度分离设计。我们在本文中称这种梯度分离技术“向前看一次”。

在DAB-DETR和DN-DETR之后,DINO将位置查询表述为动态锚框,并使用额外的DN损失进行训练。请注意,DNDETR 还采用了 Deformable DETR 的几种技术来实现更好的性能,包括其可变形注意机制和“向前看一次”应用在层参数更新。DINO进一步采用可变形DETR的查询选择思想来更好地初始化位置查询。基于这个强大的基线,DINO 引入了三种新方法来进一步提高检测性能,这将在第 3.3、第 3.4 节和第 3.5 节中描述。

3.2 Model Overview

作为类似 DETR 的模型,DINO 是一个端到端的架构,包含一个主干、一个多层 Transformer [36] 编码器、一个多层 Transformer 解码器和多个预测头。整体流程如图 2 所示。给定图像,我们使用 ResNet [14] 或 Swin Transformer [23] 等主干提取多尺度特征,然后将它们输入具有相应位置嵌入的 Transformer 编码器。在使用编码器层进行特征增强后,我们提出了一种新的混合查询选择策略,将锚点初始化为解码器的位置查询。请注意,这种策略不初始化内容查询,而是使它们可学习。混合查询选择的更多细节见第3.4节。使用初始化的锚点和可学习的内容查询,我们使用可变形注意[41]来组合编码器输出的特征,逐层更新查询。最终输出由细化的内容特征预测的细化锚框和分类结果形成。与DN-DETR[17]一样,我们有一个额外的DN分支来执行去噪训练。除了标准的DN方法之外,我们还提出了一种新的对比去噪训练方法,该方法考虑了硬负样本,这将在第3.3节中介绍。为了充分利用后面层的细化框信息来帮助优化其相邻早期层的参数,提出了一种新的向前看两次方法,通过相邻层之间的梯度,这将在第3.5节中描述。

3.3 Contrastive DeNoising Training

DN-DETR 在稳定训练和加速收敛方面非常有效。在 DN 查询的帮助下,它学习基于附近有 GT 框的锚点进行预测。然而,它缺乏预测附近没有对象的锚点的“无对象”的能力。为了解决这个问题,我们提出了一种对比去噪 (CDN) 方法来拒绝无用的锚点。

Implementation:DN-DETR 具有超参数 λ 来控制噪声尺度。生成的噪声不大于 λ,因为 DN-DETR 希望模型从中等噪声的查询重建真值框 (GT)。在我们的方法中,我们有两个超参数 λ1 和 λ2,其中 λ1 < λ2。如图 3 中的同心方块所示,我们生成了两种类型的 CDN 查询:正查询和负查询。内部正方形内的正查询的噪声尺度小于λ1,希望重建它们对应的地面真值框。内部和外部方块之间的负查询的噪声尺度大于λ1,小于λ2。它们被希望预测“无对象”。我们通常采用小的λ2,因为要求更高的负样本更接近真值框对于提升模型的表现更有帮助,如图3所示,每个CDN组都有一组正查询和负查询。如果图像有 nGT 框,每个CDN 组将具有 2 × n 个查询,每个 GT 框生成正查询和负查询。与 DN-DETR 类似,我们还使用多个 CDN 组来提高我们方法的有效性。重建损失为l1和box回归损失为GIOU,分类损失为focal loss[19]。将负样本分类为背景的损失也是focal loss。

Analysis:我们的方法工作的原因是它可以抑制混淆并选择高质量的锚点(查询)来预测边界框。当多个锚点靠近一个对象时,就会发生混淆。在这种情况下,模型很难决定选择哪个锚点。混淆可能会导致两个问题。第一个是重复预测。尽管类似 DETR 的模型可以在基于集合的损失和自注意力 [3] 的帮助下抑制重复框,但这种能力是有限的。如图 8 左图所示,当用 DN 查询替换我们的 CDN 查询时,箭头指向的男孩有 3 个重复预测。使用CDN查询,我们的模型可以区分锚点之间的微小差异,避免重复预测,如图8右侧图所示。第二个问题是,可以选择离GT框较远的不需要锚点。尽管去噪训练[17]改进了模型选择附近锚点的模型,但CDN通过教模型拒绝更远的锚点来进一步提高这种能力。

Effectiveness:为了证明 CDN 的有效性,我们定义了一个称为平均 Top-K 距离 (ATD(k)) 的度量,并使用它来评估锚点与其目标 GT 框在匹配部分的距离。与 DETR 一样,每个锚点对应一个可能与 GT 框或背景匹配的预测。我们在这里只考虑那些与 GT 框匹配的框。假设我们有 N 个 GT 边界框 b0, b2,。.., bN -1 在验证集上,其中 bi = (xi, yi, wi, hi)。对于每个bi,我们可以找到其对应的锚点,并将其表示为ai=(x‘i,y’i,w‘i,h’i)。ai是解码器的初始锚盒,在匹配过程中,在最后一个解码器层之后精化的盒子被分配给bi。然后我们有

其中∥bi−ai∥1是bi和ai之间的l1距离,topK(x,k)是返回x中k个最大元素集合的函数。我们选择 top-K 元素的原因是当 GT 框与更远的锚点匹配时,混淆问题更有可能发生。如图 4 的 (a) 和 (b) 所示,DN 足以总体上选择一个好的锚点。然而,CDN 为小对象找到了更好的锚点。图 4 (c) 显示,使用 ResNet-50 和多尺度特征,CDN 查询导致 12 个 epoch 中小对象的 DN 查询比 DN 查询提高了 +1.3 AP。

3.4 Mixed Query Selection

在 DETR [3] 和 DN-DETR [17] 中,解码器查询是静态嵌入,而不从单个图像中获取任何编码器特征,如图 5 (a) 所示。他们直接从训练数据中学习锚点(在 DN-DETR 和 DAB-DETR 中)或位置查询(在 DETR 中),并将内容查询全设置为0向量。可变形 DETR [41] 学习位置和内容查询,这是静态查询初始化的另一个实现。为了进一步提高性能,Deformable DETR [41] 有一个查询选择变体(在 [41] 中称为“两阶段”),它从最后一个编码器层中选择前 K 个编码器特征作为先验来增强解码器查询。如图 5 (b) 所示,位置和内容查询都是通过所选特征的线性变换生成的。此外,这些选定的特征被馈送到辅助检测头以获得预测框,用于初始化参考框。同样,Efficient DETR [39] 还根据每个编码器特征的客观(类)分数选择前 K 个特征。

我们模型中的查询的动态 4D 锚框公式使其与解码器位置查询密切相关,可以通过查询选择来改进。我们遵循上述实践并提出了一种混合查询选择方法。如图 5 (c) 所示,我们只使用与所选 top-K 特征相关的位置信息来初始化锚框,但将内容查询保持静态,和以前一样。请注意,可变形 DETR [41] 利用 top-K 特征不仅增强了位置查询,还增强了内容查询。由于所选特征是没有进一步细化的初步内容特征,因此它们可能对解码器模棱两可和误导。例如,所选特征可能包含多个对象,或者仅包含对象的一部分。相比之下,我们的混合查询选择方法仅使用 top-K 选择的特征来增强位置查询,并保持内容查询可学习,如前所述。它有助于模型使用更好的位置信息从编码器汇集更全面的内容特征。

3.5 Look Forward Twice

在本节,我们提出了一个box预测的新方法

在本节中,我们提出了一种框预测的新方法。Deformable DETR [41] 中的迭代框细化阻止了梯度反向传播来稳定训练。我们将该方法命名为向前看一次,因为第 i 层的参数基于框 bi 的辅助损失进行更新,如图 6 (a) 所示。然而,我们推测来自后续层的改进框信息可能有助于纠正其相邻早期层中的框预测。因此,我们提出了另一种方法,称为两次向前看来执行框更新,其中层i的参数受层i和层(i+1)的损失的影响,如图6(B)所示。对于每个预测的偏移量 Δbi,它将用于两次更新框,一个用于 b′i,另一个用于 b(pred)i+1 ,因此我们将我们的方法命名为两次向前看。

预测框 b(pred)i 的最终精度由两个因素决定:初始框 bi-1 的质量和框 Δbi 的预测偏移量。向前看一次方案只优化后者,因为梯度信息从层i到层(i−1)分离。相比之下,我们改进了初始框 bi-1 和预测框偏移 Δbi。提高质量的简单方法是用下一层∆bi+1的输出监督第i层的最终框b 'i。因此,我们使用b 'i和∆bi+1之和作为层(i + 1)的预测框。

更具体地说,给定第 i 层的输入框 bi-1,通过以下方式获得最终预测框 b(pred)i:

(他的这段其实我没怎么理解,因为“因为第 i 层的参数基于框 bi 的辅助损失进行更新,”这个字我没找出在DETR中的原文中是怎么体现的,DETR中是如果采用aux_loss则总损失为各层损失的加权和,而且我觉得即使他说的对,这个技术也不太能称之为一个创新)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值