【论文精度】DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection

DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection

张浩1,3∗†,李峰1,3∗†,刘世龙2,3∗†,张磊3‡,苏航2,朱军2,倪立明1,4,沈向阳1,3 香港科技大学。 1 2 科技部清华大学人工智能研究所bnist中心。 3 .国际数字经济研究院; 4 香港科技大学(广州) {hzhangcx, fliay} @connect.ust.hk {liusl20} @mails.tsinghua.edu.cn {suhangss, dcszj} @mail.tsinghua.edu.cn {倪,hshum} @ust.hk {leizhang} @idea.edu.cn


名称:基于改进的去噪锚框端到端目标检测DETR
paper:https://arxiv.org/pdf/2203.03605
GitHub:https: //github.com/IDEACVR/DINO

DINO论文核心问题与解决方案

主要解决的问题

  1. 类DETR模型性能不足

    • 在指标上不如改进的经典检测器
    • 小物体检测效果差
    • 收敛速度慢
    • 在COCO数据集上AP值低于50
  2. 类DETR模型可扩展性差

    • 缺乏在大型骨干网络上的应用研究
    • 缺乏在大规模数据集上的性能报告
    • 限制了在实际应用中的广泛使用

解决方案

  1. 对比去噪训练(CDN)

    • 引入正负样本对比机制
    • 通过λ1和λ2控制噪声尺度
    • 提高模型对噪声的鲁棒性
    • 有效抑制重复预测
  2. 混合查询选择

    • 结合全局和局部信息
    • 仅使用top-K特征的位置信息初始化锚框
    • 保持内容查询可学习
    • 提升检测精度,特别是小物体检测
  3. 前向两次方案(Look Forward Twice)

    • 利用后期层的精炼盒信息优化早期层参数
    • 通过两次前向传播加速模型收敛
    • 减少训练时间
    • 提高模型稳定性

达到的效果

  1. 性能提升

    • 在ResNet-50骨干网下,12个epoch达到49.4AP
    • 24个epoch达到51.3AP
    • 比之前最好的类DETR模型分别提高+6.0AP和+2.7AP
  2. 可扩展性提升

    • 在Objects365数据集上预训练后
    • COCO val2017达到63.2AP
    • COCO test-dev达到63.3AP
    • 模型大小和预训练数据大小显著减小

摘要

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

关键词:目标检测;检测变压器; 端到端检测器

1. 介绍

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

与经典检测算法相比,DETR[3]是一种新颖的基于transformer的检测算法。它消除了手工设计组件的需要,并实现了与优化的经典检测器(如Faster RCNN[31])相当的性能。与以往的检测器不同,DETR将目标检测建模为一组预测任务,并通过二部图匹配来分配标签。它利用可学习的查询(learnable queries)来探测对象的存在,并结合图像特征映射中的特征,其行为类似于soft ROI pooling[21]。 尽管具有良好的性能,但DETR的训练收敛速度较慢,并且查询的含义不明确。为了解决这些问题,人们提出了许多方法,如:

  • 引入可变形注意力[41],
  • 解耦位置和内容信息[25],
  • 提供空间先验[11,39,37]等。

最近,DAB-DETR[21]提出将DETR查询表述为动态锚点盒(dynamic anchor boxes, DAB),这++弥补了传统基于锚点的检测器与类锚点盒检测器之间的差距。

DAB-DETR(Dynamic Anchor Box DETR)提出了一种方法,将DETR(Detection Transformer)中的查询形式化为动态锚框(dynamic anchor boxes)。这种方法旨在弥合传统基于锚框的检测器和类似DETR的检测器之间的差距。

具体理解

  1. DETR与传统锚框检测器的区别
    • DETR:是一种基于变换器(Transformer)的目标检测模型,它不依赖于预定义的锚框,而是通过直接预测物体的边界框和类标签来进行检测。
    • 传统锚框检测器:这些模型通常使用锚框(预定义的边界框)来进行目标检测,依赖于这些锚框来评估物体在图像中的位置和类别。
  2. 动态锚框的引入
    • DAB-DETR通过引入“动态锚框”,使得查询(用于检测的框)能够适应不同的输入数据。这种动态性可以提高模型对不同场景和物体的适应能力。
    • 这种方法试图结合传统锚框检测器的优势(如高效的边界框预测和较好的定位能力)与DETR的优势(如全局上下文理解和灵活性)。
  3. 桥接作用
    • 通过这种方法,DAB-DETR可以利用锚框的概念来提升模型的性能,同时保持DETR的优势,从而在目标检测任务中更有效地处理不同类型的输入。

总结来说,DAB-DETR的提出是为了优化目标检测的方式,使其能够更好地结合传统检测技术和创新的Transformer架构,从而提升检测效果和效率。

DN - DETR[17]通过引入去噪(DN)技术进一步解决了二部匹配的不稳定性。DAB和DN的结合使得类DETR模型在训练效率和推理性能上都能与经典检测器相媲美。 目前最好的检测模型是基于改进的经典探测器,如DyHead[8]和HTC[4]。例如,SwinV2[22]中呈现的最佳结果是使用HTC[4,23]框架进行训练的。造成这种现象的主要原因有两个:

  1. 以前的类DETR模型不如改进的经典探测器。与新开发的类DETR模型相比,大多数经典探测器已经得到了很好的研究和高度优化,从而具有更好的性能。例如,目前表现最好的类DETR模型在COCO上的AP仍然低于50(问题一)

  2. DETR模型的可扩展性尚未得到很好的研究(问题二)。在扩展到大型主干和大规模数据集时,没有关于类似DETR的模型如何执行的报告结果。

我们的目标是在本文中解决这两个问题。

具体来说,通过改进去噪训练、查询初始化和框预测,我们基于DN-DETR[17]、DAB-DETR[21]和Deformable DETR[41]设计了一个新的类DETR模型。我们将模型命名为DINO(DETR with Improved deNoising Anchor Boxes for End-to-End Object Detection,带改进去噪锚框的DETR)。如图1所示,通过与COCO的对比可以看出DINO的性能更优。特别是,DINO展示了良好的可扩展性,在COCO测试开发排行榜[1]上创下了63.3 AP的新记录。

image-20250211110754752

PAGE 3

作为一个类似于DETR的模型,DINO包含一个主干、一个多层Transformer编码器、一个多层Transformer解码器和多个预测头。遵循DAB-DETR[21],我们将解码器中的查询制定为动态锚框,并跨解码器层逐步对其进行细化。在DN-DETR[17]之后,我们在Transformer解码器层中添加了ground truth labels和带有噪声的box,以帮助在训练期间稳定二部匹配。为了提高计算效率,我们还采用了可变形注意力[41]。此外,我们提出了以下三种新方法。

  • 首先,为了改善一对一匹配,我们提出了一种对比去噪训练(CDN)方法,即同时添加相同基础真值的正样本和负样本。将两种不同的噪声添加到同一地真值盒中后,我们将噪声较小的盒子标记为正,另一个标记为负。对比去噪训练有助于模型避免同一目标的重复输出。
  • 其次,查询的动态锚盒公式将类DETR模型与经典的两阶段模型联系起来。因此,我们提出了一种混合查询选择方法,该方法有助于更好地初始化查询。我们选择初始锚框作为编码器输出的位置查询,类似于[41,39]。然而,我们让内容查询像以前一样是可学习的,鼓励第一个解码器层专注于空间先验。
  • 第三,为了利用来自后期层的精细化盒信息来帮助优化相邻早期层的参数,我们提出了一种新的前向两次方案 look forward twice,使用来自later layer的梯度来校正更新后的参数。

我们在COCO[20]检测基准上进行了大量实验,验证了DINO的有效性。如图1所示,在ResNet-50和多尺度特征下,DINO在12个epoch下达到 49.4AP,在24个epoch下达到51.3AP,与之前最好的类der模型相比,分别显著提高了+6.0AP和+2.7AP。此外,DINO在模型大小和数据大小上都具有良好的可伸缩性。在使用SwinL[23]主干的objects365[33]数据集上进行预训练后,DINO在COCO val2017 (63.2AP)和test-dev (63.3AP)基准测试上都取得了最佳结果,如表3所示。与排行榜[1]上的其他模型相比,我们将模型大小缩小到SwinV2-G[22]的1/15。与Florence[40]相比,我们将预训练检测数据集减少到1/5,骨干预训练数据集减少到1/60,同时取得了更好的结果。 我们总结我们的贡献如下。

  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)模型。

2.相关工作

2.1经典目标探测器

PAGE 4

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

2.2 DETR及其变体

Carion et al.[3]提出了一种基于Transformer的端到端对象检测器,命名为DETR (DEtection TRansformer),而不使用锚设计和NMS等手工设计的组件。许多后续论文试图解决解码器交叉注意引起的DETR训练收敛缓慢的问题。例如,

  • Sun等人设计了一个只使用编码器的DETR,而不使用解码器。

  • Dai等人提出了一种动态解码器,从多个特征级别关注重要区域。 另一项工作是更深入地理解DETR中的解码器查询。

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

2.3大规模的目标检测预训练

PAGE 5

大规模的预训练对自然语言处理[10]和计算机视觉[27]都有很大的影响。目前,性能最好的检测器大多是通过对大规模数据进行预训练的大型骨干来实现的。例如,

  • Swin V2[22]将其主干大小扩展到30亿个参数,并使用70M私人采集的图像对其模型进行预训练。
  • Florence[40]首先用900M个私人策划的图像-文本对来预训练它的主干,然后用9M个带注释或伪框的图像来预训练它的检测器
  • 相比之下,DINO仅使用公开可用的SwinL[23]主干和公共数据集objects365 [33] (1.7M注释图像)来实现SOTA结果

3. DINO: DETR与改进的去噪锚盒

3.1 预赛 Preliminaries

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

DN- DETR[17]引入了一种去噪(DN)训练方法来加速类DETR模型的训练收敛。结果表明,DETR算法的缓慢收敛问题是由二部匹配的不稳定性引起的。为了缓解这个问题,DN-DETR提出在Transformer解码器中额外馈送带噪声的ground-truth (GT)标签和框,并训练模型重建ground-truth标签和框。增加的噪声(∆x,∆y,∆w,∆h)受|∆x| < λ w/2、|∆y| < λh/2、|∆w| < λ w, |∆y| < λ h 约束,其中

  • (x, y, w, h)为GT盒,
  • λ 为控制噪声尺度的超参数。

由于DNDETR遵循DAB-DETR将解码器查询视为锚点,因此由于λ通常很小,因此噪声GT盒可以视为附近有GT盒的特殊锚点。除了原始的DETR查询之外,DN-DETR添加了一个DN部分,该部分将带噪的GT标签和框馈送到解码器中,以提供辅助DN损失。DN损失有效地稳定和加速了DETR训练,并且可以插入任何类似DETR的模型中。 可变形的DETR[41]是另一项加快DETR收敛的早期工作。为了计算可变形注意力,引入了参考点的概念,使可变形注意力关注参考点周围的一小组关键采样点。参考点概念使得开发几种技术来进一步提高DETR性能成为可能。

  • 第一种技术是查询选择2,它直接从编码器中选择特征和参考框作为解码器的输入。

  • 第二种技术是迭代边界盒细化,在两个解码器层之间采用谨慎的梯度分离设计。

  • 在我们的论文中,我们称这种梯度脱离技术为“向前看一次 (look forward once)。 继db - DETRDN- DETR之后,DINO将位置查询表述为动态锚框,并使用额外的DN损失进行训练。需要注意的是,DNDETR还采用了Deformable DETR的一些技术来实现更好的性能,包括其可变形的注意机制和在层参数更新中的“向前看一次”实现。DINO进一步采用了Deformable DETR中的查询选择思想来更好地初始化位置查询。在此强基线的基础上,DINO引入了三种新方法来进一步提高检测性能,将分别在3.3节,3.4节和3.5节中进行描述。

3.2 模型概述

PAGE 7

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

image-20250211111201259

3.3 对比去噪训练(Contrastive DeNoising ,CDN

DN-DETR在稳定训练和加速收敛方面非常有效。在DN query的帮助下,它学习基于附近有GTbox 的锚进行预测。但是,对于附近没有物体的锚点,缺乏“无物体”的预测能力。为了解决这个问题,我们提出了一种对比去噪(Contrastive DeNoising , 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组来提高我们方法的有效性。box 回归的重建损失为 L1和GIOU损失,分类为焦点损失 focal loss 。将负样本分类为背景的损失也使用焦点损失 focal loss。

image-20250211141419986

PAGE 8

分析:我们的方法有效的原因是它可以抑制混淆并选择高质量的锚(查询)来预测边界框。当多个锚点靠近一个对象时,就会发生混淆。在这种情况下,模型很难决定选择哪个锚。这种混乱可能会导致两个问题。

  1. 首先是重复预测。尽管类 DETR 模型可以借助基于集合的损失和自关注[3]来抑制重复盒,但这种能力是有限的。如图8左图所示,当用DN查询替换我们的CDN查询时,箭头所指的男孩有3个重复的预测。通过CDN查询,我们的模型可以区分锚点之间的细微差异,避免重复预测,如图8右图所示。

  2. 第二个问题是,可能会选择远离GT盒子的不需要的锚。虽然去噪训练[17]提高了模型选择附近锚点的能力,但CDN通过教会模型拒绝更远的锚点进一步提高了这一能力。

    有效性:为了证明CDN的有效性,我们定义了一个称为 Average Top-K Distance (ATD(k)) 的度量,并使用它来评估匹配部分中锚点与目标GT盒的距离。与DETR一样,每个锚点对应一个预测,该预测可能与GT框或背景相匹配。我们这里只考虑与GT盒子匹配的。假设我们有N个GT边界框b0, b2,…, b N−1,其中bi = (xi, yi, wi, hi)。对于每一个bi,我们可以找到它对应的锚点,记作ai = (x'i, y'i, w'i, h'i)。Ai 为解码器的初始锚盒,匹配时将最后一层解码器后的细化盒分配给bi。 然后我们有:

    image-20250211143941573

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

3.4 混合查询选择

PAGE 9

DETR[3]和DN-DETR[17]中,解码器查询是静态嵌入(static embeddings ),不从单个图像中获取任何编码器特征,

  1. 如图5 (a)所示。它们直接从训练数据中学习锚点(在DN-DETR和DAB-DETR中)或位置查询(在DETR中),并将内容查询设置为所有0向量。可变形的DETR[41]学习位置查询和内容查询,这是静态查询初始化的另一种实现。为了进一步提高性能,Deformable DETR[41]有一个查询选择变体(在[41]中称为“two stage”),它从最后一个编码器层中选择前K个编码器特征作为优先选项,以增强解码器查询。
  2. 如图5 (b)所示,位置查询和内容查询都是通过所选特征的线性变换生成的。此外,将这些选择的特征馈送到辅助检测头以获得预测盒,该预测盒用于初始化参考盒。同样,Efficient DETR[39]也根据每个编码器特征的客观性(类)得分选择前K个特征。 模型中查询的动态4D锚盒公式使其与解码器位置查询密切相关,可以通过查询选择来改进。我们遵循上述实践并提出一种混合查询选择方法。
  3. 如图5 © 所示,我们只使用与所选top-K特征相关联的位置信息初始化锚框,而内容查询与之前一样保持静态。注意,Deformable DETR[41]利用top-K特性不仅增强了位置查询,还增强了内容查询。由于所选特征是未经进一步细化的初步内容特征,因此它们可能是含糊不清的,并且会误导解码器。例如,选定的特征可能包含多个对象,也可能只是对象的一部分。相比之下,我们的混合查询选择方法仅增强具有top-K选择特征的位置查询,并保持内容查询像以前一样可学习。它有助于模型使用更好的位置信息,从编码器中汇集更全面的内容特征。

image-20250211150427499

3.5 look forard twice

PAGE 11

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

image-20250211151838016

4 实验

4.1 设置

Dataset and Backbone :我们对COCO 2017目标检测数据集[20]进行评估,该数据集分为train2017和val2017(也称为minival)。我们报告了两种不同主干的结果:在ImageNet-1k[9]上预训练的ResNet-50[14]和在ImageNet-22k[9]上预训练的Swin L[23]。使用ResNet-50的DINO在train2017上进行训练,没有额外的数据,而使用Swin L的DINO首先在Object365[33]上进行预训练,然后在train2017上进行微调。我们报告了不同IoU阈值和对象尺度下val2017的标准平均精度(AP)结果。我们还报告了使用Swin L进行DINO的测试开发结果。

实现细节:DINO由主干、变压器编码器、变压器解码器和多个预测头组成。在附录D中,我们提供了更多的实现细节,包括我们的模型中使用的所有超参数和工程技术,供那些想要重现我们的结果的人使用。我们将在盲审后发布代码。

4.2 主要结果

PAGE 12

image-20250211152629288

12-epoch setting :我们改进的锚盒去噪和训练损失,可以显著加快训练过程。如表1 所示,我们将我们的方法与强基线进行了比较,包括基于卷积的方法[30,4,7]和类DETR方法[3,41,8,21,17]。为了公平比较,我们报告了在表1中列出的所有型号的相同A100 NVIDIA GPU上测试的GFLOPS和FPS。除DETR和DAB-DETR外,其他方法均使用多尺度特征。对于那些没有多尺度特征的,我们使用ResNet-DC5报告了他们的结果,ResNet-DC5由于使用了扩展的大分辨率特征图而具有更好的性能。由于有些方法采用5个尺度的特征图,有些方法采用4个尺度的特征图,所以我们同时报告了4个和5个尺度的特征图结果。

如表1所示,在相同的设置下,我们的方法使用ResNet-50与4-scale特征图和+6.0 AP与5-scale特征图分别提高了5.6 AP和6.0 AP。我们的4-scale模型在计算和参数数量上没有引入太多的开销。此外,我们的方法在小物体上表现得特别好,在4-scale上获得+7.2 AP,在5-scale上获得+7.5 AP。请注意,由于工程技术的原因,我们使用ResNet-50骨干网的模型的结果高于本文第一版的结果。与具有ResNet-50骨干网的最佳模型的比较:为了验证我们的方法在提高收敛速度和性能方面的有效性,我们将我们的方法与使用相同ResNet-50骨干网的几个强基线进行了比较。尽管最常见的 50 epoch设置,但我们采用了24 (2 ×)和36 (3 ×) epoch设置,因为我们的方法收敛得更快,并且在50 epoch训练中只产生较小的额外增益。表2 的结果表明,我们的方法仅使用24个epoch,在4个和5-scale下分别实现了+1.8 AP和+2.7 AP的改进。此外,在3 ×设置中使用36个epoch,在4和5-scale下,改善分别增加到+2.3和+2.6 AP。详细的收敛曲线对比如图7所示。

4.3 与SOTA模型的比较

PAGE 14

image-20250211153554033

为了与SOTA结果进行比较,我们使用了在ImageNet-22K上预训练的公开可用的SwinL[23]主干。我们首先在objects365[33]数据集上预训练DINO,然后在COCO上对其进行微调。如表3所示,DINO在COCO val2017和test-dev上分别获得了63.2AP和63.3AP的最佳结果,这表明DINO对更大的模型规模和数据规模具有很强的可扩展性。请注意,表3中所有以前的SOTA型号都不使用基于Transformer解码器的检测头(HTC++[4]和DyHead[7])。这是第一次将端到端变压器检测器作为SOTA模型建立在排行榜[1]上。与以前的SOTA模型相比,我们使用了更小的模型大小(与SwinV2-G[22]相比,参数为1/15)、骨干预训练数据大小(与Florence相比,图像为1/60)和检测预训练数据大小(与Florence相比,图像为1/5),同时取得了更好的效果。此外,我们报告的没有测试时间增加(TTA)的性能是一个整洁的结果,没有花哨的东西。这些结果有效地证明了DINO与传统检测器相比具有优越的检测性能。

4.4 消融

新算法组件的有效性:为了验证我们提出的方法的有效性,我们使用优化的DN-DETR和纯查询选择构建了一个强基线,如第3.1节所述。我们将所有管道优化和工程技术(参见4.1节和附录D)包括在强基线中。强基线的结果见表4第3行。我们还在表4第2行中展示了没有从transformable DETR[41]中选择纯查询的优化DN-DETR的结果。虽然我们的强基线优于所有以前的模型,但我们在DINO中的三种新方法进一步显著提高了性能。

5 结论

PAGE 15

本文提出了一种基于对比去噪训练、混合查询选择和前视两次的强端到端变压器检测器DINO,显著提高了训练效率和最终检测性能。结果表明,DINO在多尺度特征的12 epoch和36epoch setting都优于之前基于resnet -50的COCO val2017模型。在改进的激励下,我们进一步探索在更大的数据集上训练具有更强主干的DINO,并在COCO 2017测试开发上实现了63.3 AP 的新水平。该结果确立了类DETR模型作为主流检测框架,不仅因为其新颖的端到端检测优化,而且还因为其优越的性能。

附录

A 测试时间增量(Test Time Augmentations , TTA)

PAGE 19

我们的目标是构建一个不需要手工制作组件的端到端检测器。然而,为了与传统的检测模型进行比较,我们还探索了TTA在类DETR模型中的使用。我们只在带有SwinL主干的大型模型中使用它。与传统探测器相比,我们的TTA并没有获得令人鼓舞的收获,但我们希望我们的探索可以为未来的研究提供一些见解。

我们采用多尺度试验和水平翻转作为TTA。但是,本文方法中不同增广量的集成方式与传统方法中输出重复框的方法有所不同。在传统方法中,集成是通过首先收集所有增强的预测并根据置信度评分进行排序来完成的。然后,通过NMS或盒子投票来发现和消除重复的盒子。首先收集来自所有增强的预测的原因是,重复的框不仅出现在不同的增强中,而且出现在一个增强中。这种集成方法降低了我们方法的性能,因为类似DETR的方法不容易输出重复的盒子,因为它们基于集合的预测损失抑制了重复的预测,并且集成可能错误地删除真正预测[3]。为了解决这个问题,我们设计了一个一对一的集成方法。image-20250211160025405

B 训练效率

我们在表5中提供了基本模型的GPU内存和训练时间。所有结果都是在8个Nvidia A100 gpu和ResNet-50[14]上报告的。结果表明,我们的模型不仅是有效的,而且是高效的训练。

image-20250211160332503

C 对模型组件的附加分析

PAGE 20

Analysis on the Number of Encoder and Decoder Layers 编码器和解码器层数的分析:我们还研究了不同编码器和解码器层数的影响。如表6所示,减少解码器层的数量对性能的影响更大。例如,使用相同的6个编码器层,同时将解码器层的数量从6层减少到2层,导致3.0 AP下降。这种性能下降是预料之中的,因为盒子在每个解码器层中都是动态更新和改进的,以获得最终结果。此外,我们还观察到,当解码器层数减少到2层时,与其他类似DETR的模型(如Dynamic DETR[7])性能下降13.8AP (29.1 vs 42.9)相比,DINO的性能下降要小得多。这是因为我们的混合查询选择方法从编码器提供所选框,以增强解码器查询。因此,解码器查询被很好地初始化,并且没有与解码器层细化深度耦合。

image-20250211160639724

Analysis on Query Denoising 查询去噪分析:我们通过改变去噪查询的数量继续研究查询去噪的影响。我们使用优化的动态去噪组(详见附录D.1)。如表7所示,当我们使用少于100个去噪查询时,增加查询数量可以显著提高性能。但是,在100之后继续增加DN数只会产生很小的额外性能改进,甚至更差。我们还在附录C中分析了编码器和解码器层数的影响。

image-20250211160832074

D 更多实现细节

D.1动态DN组

PAGE 21

在DN-DETR中,将一幅图像中的所有GT对象(标签+框)集合为一个GT组进行去噪。为了提高DN的训练效率,在训练过程中使用了图像中GT组的多个带噪版本。在DN-DETR中,根据不同的模型大小将组数设置为5个或10个。由于类DETR模型采用mini-batch训练,因此一个batch中每个图像的DN查询总数被填充为该batch中最大的一个。考虑到COCO数据集中一张图像中的对象数量在1到80之间,这种设计效率低下,并且会导致内存消耗过大。为了解决这个问题,我们建议固定DN查询的数量,并根据每个图像的对象数量动态调整组的数量

D.2 大模型预训练

objects365[33]是一个大规模的检测数据集,有超过1.7M的带注释的图像用于训练,8万张带注释的图像用于验证。为了更有效地使用数据,我们从80,000个验证图像中选择前5000个作为我们的验证集,并将其他图像添加到训练中。我们使用64个Nvidia A100 gpu在objects365上预训练DINO 26个epoch,并使用16个Nvidia A100 gpu在COCO上微调模型18个epoch。每个GPU的本地批处理大小仅为1个图像。在微调阶段,我们将图像尺寸放大到1.5倍(即最大尺寸为1200 × 2000)。这将使最终结果增加大约0.5个AP。为了减少GPU内存的使用,我们在训练期间利用检查点[6]和混合精度[26]。此外,我们对这个大型模型使用了1000个DN查询。

D.3 其他实现细节

Basic hyper-parameters 基础超参数。对于超参数,如在DN-DETR中,我们使用一个6层Transformer编码器和一个6层Transformer解码器,并将256作为隐藏特征维度。我们将初始学习率(lr)设置为 1 × 10−4,并采用一个简单的lr调度器,在第11、20和30个epoch分别乘以0.1的12、24和36 epoch设置与RestNet50降低 lr。我们使用权值衰减为1 ×10−4的AdamW[16,24]优化器,并在批处理大小为16的Nvidia A100 gpu上训练我们的模型。由于DN-DETR[17]采用300个解码器查询和3个模式[37],因此我们使用300 ×3 = 900个解码器查询,计算成本相同。我们的DINO与SwinL的学习时间表见附录。

损失函数。我们使用L1损失和GIOU[32]损失进行箱形回归,并使用α = 0.25, γ = 2的焦点损失[19]进行分类。与DETR[3]一样,我们在每个解码器层之后添加辅助损耗。与Deformable DETR[41]类似,我们在查询选择模块之后添加了额外的中间损耗,每个解码器层都有相同的组件。我们使用与DAB-DETR[21]和DN-DETR[17]相同的损耗系数,即分类损耗为1.0,L1损耗为5.0,GIOU损耗为2.0。

详细的模型组件。我们还对DAB-DETR[21]和DN-DETR[17]中使用的检测管道进行了优化。在DN-Deformable-DETR[17]之后,我们使用与Deformable DETR[41]相同的多尺度方法,并采用可变形注意。DN-DETR在不同的解码器层中使用具有非共享参数的不同预测头。此外,我们引入了动态去噪组,以提高去噪训练效率,减轻内存开销(见附录D.1)。在这项工作中,我们发现使用共享预测头将增加额外的性能改进。这也导致了大约一百万个参数的减少。此外,我们发现db - DETR中使用的条件查询[25]不适合我们的模型,因此我们没有将它们包含在最终模型中。

训练增强。在训练过程中,我们使用相同的随机裁剪和规模递增。例如,我们随机调整输入图像的大小,其短边在480到800像素之间,其长边最多为1333像素。对于带有SwinL的DINO,我们使用默认设置预训练模型,但使用1.5倍更大的尺度(短边在720到1200像素之间,长边最多2000像素)进行微调,以与排行榜[1]上的模型进行比较。在不使用任何其他技巧的情况下,我们在val2017上获得了63.1的结果,在没有测试时间增加(TTA)的情况下在test-dev上获得了63.2的结果(参见附录A),用一个更简洁的解决方案胜过了SwinV2[22]之前获得的最先进的结果63.1。

多尺度设置。对于我们的4 scale模型,我们从主干的第2、3和4阶段提取特征,并通过对第4阶段的输出进行下采样来添加额外的特征。主干阶段1的附加特征图用于我们的5比例尺模型。对于超参数,我们设置λ 1 = 1.0和λ 2 = 2.0,并使用100个CDN对,其中包含100个正查询和100个负查询。

D.4 超参数细节 Detailed Hyper-parameters

image-20250211163540910

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钱多多先森

你的鼓励,是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值