DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection(ICLR2023补)



很好
源代码

Abstract

我们提出了DINO(带改进去噪锚盒的DETR),一种最先进的端到端目标检测器。DINO通过使用对比方法进行去噪训练,使用混合查询选择方法进行锚点初始化,使用向前看两次方案进行框预测,在性能和效率上都比以前的类der模型有所提高。在ResNet-50骨干网和多尺度特征下,DINO在COCO上12个epoch达到49.4AP, 24个epoch达到51.3AP,与之前最好的类der模型DN-DETR相比,分别提高了+6.0AP和+2.7AP。DINO在模型大小和数据大小上都有很好的伸缩性。没有额外的功能,DINO在Objects365数据集上使用SwinL主干进行预训练后,在COCO val2017 (63.2AP)和test-dev (63.3AP)上都获得了最佳结果。与排行榜上的其他模型相比,DINO显著减小了模型大小和预训练数据大小,同时取得了更好的结果。

Introduction

目标检测是计算机视觉中的一项基本任务。经典的基于卷积的目标检测算法已经取得了显著的进展。尽管这些算法通常包括手工设计的组件,如锚点生成和非最大抑制(NMS),但它们产生了最好的检测模型,如使用HTC++[4]的DyHead[7]、Swin[23]和SwinV2[22]


作为一个类似于detr的模型,DINO包含一个主干、一个多层Transformer编码器、一个多层Transformer解码器和多个预测头。遵循DAB-DETR[21],我们将解码器中的查询表述为动态锚框,并跨解码器层逐步对其进行细化。根据DN-DETR[17],我们在Transformer解码器层中添加了地面真值标签和带有噪声的盒子,以帮助在训练过程中稳定二部匹配为了提高计算效率,我们还采用了可变形注意力[41]。
此外,我们提出了以下三种新方法
首先,为了改善一对一匹配,我们提出了一种对比去噪训练方法,即同时添加相同基础真值的正样本和负样本。将两种不同的噪声添加到同一地真值盒中后,我们将噪声较小的盒子标记为正,另一个标记为负。对比去噪训练有助于模型避免同一目标的重复输出。
其次,查询的动态an- chor盒公式将类detr模型与经典的两阶段模型联系起来。因此,我们提出了一种混合查询选择方法,该方法有助于更好地初始化查询。我们选择初始锚框作为编码器输出的位置查询,类似于[41,39]。然而,我们让内容查询像以前一样是可学习的,鼓励第一个解码器层专注于空间先验。
第三,为了利用来自后期层的精细化盒信息来帮助优化相邻早期层的参数,我们提出了一种新的向前看两次方案,使用来自后期层的梯度来校正更新后的参数

Contribution

  1. 我们设计了一种新的端到端类der目标检测器,采用了几种新技术,包括对比DN训练,混合查询选择,并对DINO模型的不同部分进行两次forward
  2. 我们进行了密集的消融研究,以验证不同设计选择在DINO中的有效性。结果表明,在ResNet-50和多尺度特征下,DINO在12个epoch下达到49.4AP,在24个epoch下达到51.3AP,明显优于之前最好的类der模型。特别是,经过12个epoch训练的DINO在小物体上表现出更明显的改进,提高了+7.5AP。
  3. 我们证明,在没有附加功能的情况下,DINO可以在公共基准测试中获得最佳性能。在使用SwinL[23]主干的Objects365[33]数据集上进行预训练后,DINO在COCO val2017 (63.2AP)和test-dev (63.3AP)基准测试上都取得了最佳结果。据我们所知,这是端到端变压器探测器首次在COCO领先板上优于最先进的(SOTA)模型[1]。

Related Work

Carion等人[3]提出了一种基于TRansformer的端到端对象检测器,命名为DETR (DEtection TRansformer),而不使用锚点设计和NMS等手工设计的组件。许多后续论文试图解决解码器交叉注意引起的DETR训练收敛缓慢的问题。例如,Sun等人[34]设计了一个只使用编码器的DETR,而不使用解码器。Dai等人[7]提出了一种动态解码器,从多个特征层次关注重要区域。

最近,DN-DETR[17]引入了一种去噪训练方法来加速DETR的训练。它将添加了噪声的标签和框输入解码器,并训练模型重构原始的真值标签和框。本文的DINO工作是在DAB-DETR和DN-DETR的基础上进行的,为了提高计算效率,还采用了可变形注意

DINO: DETR with Improved DeNoising Anchor Boxes

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)训练方法来加速类der模型的训练收敛。结果表明,DETR算法的缓慢收敛问题是由二部匹配的不稳定性引起的。为了缓解这个问题,DN-DETR提出在Transformer解码器中额外馈送带噪声的ground-truth (GT)标签和框,并训练模型重建ground-truth标签和框。增加的噪声(∆x,∆y,∆w,∆h)由|∆x| < λw 2约束, |∆y| < λ h2, |∆w| <λw, |∆y| < λh,式中(x,y,w,h)表示GT盒,λ 1是控制噪声尺度的超参数。由于DN- DETR遵循DAB-DETR将解码器查询视为锚点,因此由于λ通常很小,因此噪声GT盒可以视为附近有GT盒的特殊锚点。除了原始的DETR查询之外,DN-DETR添加了一个DN部分,该部分将带噪的GT标签和框馈送到解码器中,以提供辅助DN损失。DN损失有效地稳定和加速了DETR训练,并且可以插入任何类似DETR的模型中。

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

继 DAB-detr和DN- detr之后,DINO将位置查询表述为动态锚框,并使用额外的DN损失进行训练。需要注意的是,DN-DETR还采用了Deformable DETR的一些技术来达到更好的性能,包括其可变形的注意机制和在层参数更新中的“向前看一次”实现。DINO进一步采用了Deformable DETR中的查询选择思想来更好地初始化位置查询。在此强基线的基础上,DINO引入了三种新方法来进一步提高检测性能

Model Overview

作为一个类似于detr的模型,DINO是一个端到端架构,它包含一个主干、一个多层Transformer[36]编码器、一个多层Transformer解码器和多个预测头。整体管道如图2所示。

我们的改进主要是在变压器编码器和解码器。最后一层的top-K编码器特征被选择来初始化Transformer解码器的位置查询,而内容查询被保留为可学习的参数。我们的解码器还包含一个对比去噪(CDN)部分有正样本和负样本。

给定图像,我们提取具有ResNet[14]或Swin Transformer[23]等主干的多尺度特征,然后将其通过相应的位置嵌入馈送到Transformer编码器中。在对编码器层进行特征增强之后,我们提出了一种新的混合查询选择策略,将锚点初始化为解码器的位置查询。请注意,此策略不会初始化内容查询,而是使其可学习。关于混合查询选择的更多细节,请参见第3.4节。对于初始化的锚点和可学习的内容查询,我们使用可变形注意力[41]来组合编码器输出的特征并逐层更新查询。最终输出由精细化的锚盒和由精细化的内容特征预测的分类结果组成。与DN- detr[17]一样,我们有一个额外的DN分支来进行去噪训练。在标准DN方法之外,我们提出了一种考虑硬负样本的新的对比去噪训练方法,将在第3.3节中介绍。为了充分利用来自后期层的精炼盒信息来帮助优化相邻早期层的参数,提出了一种新的向前看两次方法来传递相邻层之间的梯度,这将在第3.5节中描述。

Contrastive DeNoising Training

DN-DETR在稳定训练和加速收敛方面非常有效。在DN查询的帮助下,它学习基于附近有GT盒子的锚进行预测。但是,对于附近没有物体的锚点,缺乏“无物体”的预测能力。为了解决这个问题,我们提出了一种对比去噪(CDN)方法来拒绝无用的锚点。
DN-DETR有一个超参数λ来控制噪声尺度。生成的噪声不大于λ,因为DN-DETR希望模型从中等噪声查询中重建ground truth (GT)。在我们的方法中,我们有两个超参数λ 1和λ 2,其中λ 1 < λ 2。如图3中的同心圆所示,我们生成了两种类型的CDN查询:正查询和负查询。内方框内的正查询具有小于λ 1的噪声尺度,并且有望重建其相应的地面真值框。内外方之间的负查询具有大于λ 1且小于λ 2的噪声尺度。他们被期望预测“没有对象”。我们通常采用较小的λ 2,因为更接近GT盒的硬负样本更有助于提高性能。如图3所示,每个CDN组都有一组正查询和反查询。如果图像有n个GT框,CDN组将有2×n查询,每个GT框生成一个正查询和一个负查询。与DN-DETR类似,我们也使用多个CDN组来提高我们方法的有效性。重建损失为l1,盒回归损失为GIOU,分类损失为focal loss[19]。将阴性样本分类为背景的损失也是焦点损失

CDN群的结构及正反两个例子的论证。虽然正反例都是可以表示为四维空间中的点的四维锚,但为了简单起见,我们将它们表示为二维空间中同心正方形上的点。假设正方形中心为GT盒子,将内正方形内部的点视为正例,将内正方形与外正方形之间的点视为负例。

Analysis

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

Effectiveness

为了证明CDN的有效性,我们定义了一个称为平均顶k距离(ATD(k))的度量,并用它来评估匹配部分中锚点与目标GT盒的距离。与DETR一样,每个锚点对应一个预测,该预测可能与GT框或背景相匹配。我们这里只考虑与GT盒子匹配的。假设我们有N个GT边界框b0, b2,…,b N−1,其中b i = (x i,y i,w i,h i)。对于每个bi,我们可以找到它对应的锚点,并表示为I = (x ’ I,y ’ I,w ’ I,h ’ I)。A I为解码器的初始锚盒,匹配时将最后一层解码器后的细化盒分配给bi。然后我们有
其中∥b i−a i∥1是b i与a i之间的l1距离,topK(x,k)是返回x中k个最大元素集合的函数。我们选择top-K元素的原因是,当GT盒与更远的锚点匹配时,更容易出现混淆问题。如图4 (a)和(b)所示,DN总体上足以选择一个好的锚点。然而,CDN为小对象找到更好的锚。图4 ©显示,在ResNet-50和多尺度特征的12个epoch中,CDN查询在小对象上比DN查询提高了+1.3 AP。

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 ©所示,我们只使用与所选top-K特征相关联的位置信息初始化锚框,而内容查询与之前一样保持静态。注意,Deformable DETR[41]利用top-K特征不仅增强了位置查询,还增强了内容查询。由于所选特征是未经进一步细化的初步内容特征,因此它们可能是含糊不清的,并且会误导解码器。例如,选定的特征可能包含多个对象,也可能只是对象的一部分。相比之下,我们的混合查询选择方法仅增强具有top-K选择特征的位置查询,并保持内容查询像以前一样可学习。它有助于模型使用更好的位置信息,从编码器中汇集更全面的内容特征。

Look Forward Twice

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

预测框b (pred) i的最终精度由两个因素决定:初始框b的质量i−1和框的预测偏移量∆b i。forward once方案只优化后者,因为梯度信息从第i层分离到第i - 1层。相反,我们改进了初始盒b1 - 1和预测盒偏移量∆b1。提高质量的一个简单方法是用下一层的输出∆b i+1来监督第i层的最后一个盒子b i。因此,我们使用b ’ i和∆b i+1的和作为层-(i +1)的预测框。
更具体地说,给定第i层的输入框b i−1,我们通过以下方式得到最终的预测框b (pred) i:
其中b ’ I是b I的未分离版本。术语Update(·,·)是一个函数,它通过预测框偏移量∆b i来细化框b i−1。对于box update 3,我们采用与Deformable DETR[41]相同的方法。

Experiment

Main results



Ablation

对所提出算法的各部分进行消融性比较。我们分别使用术语“QS”、“CDN”和“LFT”来表示“查询选择”、“对比去噪训练”和“向前看两次”。

Conclusion

本文提出了一种基于对比去噪训练、混合查询选择和前视两次的强端到端变压器检测器DINO,显著提高了训练效率和最终检测性能

结果表明,DINO在多尺度特征的12epoch和36epoch设置下都优于之前基于ResNet-50的COCO val2017模型。在改进的激励下,我们进一步探索在更大的数据集上训练具有更强主干的DINO,并在COCO 2017测试开发上实现了63.3 AP的新水平。该结果确立了类detr模型作为主流检测框架,不仅因为其新颖的端到端检测优化,而且还因为其优越的性能。

  • 27
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值