DN-DETR论文学习

摘要

本文提出了一种新颖的去噪训练方法,以加快DETR(DEtection TRansformer)训练,并加深了对类DETR方法的慢收敛问题的理解。我们表明,缓慢收敛是由于二分图匹配的不稳定性导致早期训练阶段的优化目标不一致。为了解决这个问题,除了匈牙利损失之外,我们的方法还向Transformer解码器馈送了带有噪声的GT边界框,并训练模型重建原始框,从而有效地降低了二分图匹配难度,并加快了收敛速度。我们的方法是通用的,可以通过添加数十行代码轻松插入任何类似 DETR 的方法,以实现显着的改进。因此,我们的DN-DETR在相同设置下取得了显着的改进(+1.9AP),并使用ResNet-50主干网实现了46.0 AP和49.5 AP训练12和50个epoch。与相同设置下的基线相比,DN-DETR 实现了与 50% 训练周期相当的性能。我们还展示了在基于 CNN 的探测器(更快的 R-CNN)、分割模型(Mask2Former、Mask DINO)等中进行去噪训练的有效性。

1 介绍

对象检测是计算机视觉中的一项基本任务,旨在预测图像中对象的边界框和类别。虽然取得了显著的进步,但经典检测器[18],[17]主要基于卷积神经网络,直到Carion等人[1]最近将变形金刚[20]引入对象检测并提出了DETR(DEtection TRansformer)。

与以前的检测器相比,DETR 使用可学习的查询来探测变压器编码器输出的图像特征和二分图匹配,以执行基于集合的box预测。这种设计有效地消除了手工设计的锚点和非最大抑制(NMS),并使端到端的目标检测可优化。然而,与以前的探测器相比,DETR的训练收敛速度非常慢。为了获得良好的性能,通常需要在 COCO 检测数据集上进行 500 个 epoch 的训练,而原始 Faster-RCNN 训练中使用的 12 个 epoch。

许多工作[21],[15],[25],[19],[14],[6]试图确定根本原因并缓解缓慢的收敛问题。其中一些通过改进模型体系结构来解决问题。例如,Sun等人[19]将缓慢的收敛问题归因于交叉注意力的低效率,并提出了仅编码器的DETR。Dai 等人 [6] 设计了一个基于 RoI 的动态解码器,以帮助解码器专注于感兴趣的区域。

每个 DETR 查询都具有特定的空间位置,而不是多个位置,以实现更高效的特征探测 [21]、[15]、[25]、[14]。例如,Condational DETR 将每个查询分离为内容部分和位置部分,强制查询与特定空间位置具有明确的对应关系。可变形 DETR 和Anchor DETR [21] 直接将 2D 参考点视为执行交叉注意力的查询。DAB-DETR 将查询解释为 4-D 锚框,并学习逐层逐步改进它们。尽管取得了所有进展,但很少有工作关注二分图匹配部分以实现更有效的训练。在这项研究中,我们发现慢收敛问题也是由离散二分图匹配分量引起的,由于随机优化的性质,特别是在训练的早期阶段,该分图匹配分量是不稳定的。因此,对于同一图像,查询通常与不同时期的不同对象匹配,这使得优化变得模糊和不稳定。

为了解决这个问题,我们提出了一种新的训练方法,通过引入查询去噪任务来帮助稳定训练过程中的二分图匹配。由于以前的工作已经显示出将查询解释为包含位置信息的参考点,[21]或锚框[14]的有效性,因此我们遵循他们的观点并使用4D锚框作为查询。我们的解决方案是将噪声 GT 边界框作为噪声查询与可学习的锚点查询一起馈送到 Transformer 解码器中。这两种查询具有相同的输入格式 (x,y,w,h),并且可以同时馈送到转换器解码器中。对于噪声查询,我们执行去噪任务来重建其相应的 GT 框。对于其他可学习的锚点查询,我们使用与原版 DETR 中相同的训练损失和二分匹配。由于噪声边界框不需要经过二分图匹配组件,因此可以将去噪任务视为更简单的辅助任务,有助于DETR缓解不稳定的离散二分匹配并更快地学习边界框预测。同时,去噪任务还有助于降低优化难度,因为增加的随机噪声通常很小。为了最大限度地发挥此辅助任务的潜力,我们还将每个解码器查询视为一个边界框 + 一个类标签嵌入,以便我们能够同时进行框去噪和标签去噪。

总之,我们的方法是一种去噪训练方法。我们的损失函数由两个部分组成。一个是重建损失,另一个是匈牙利损失,与其他类似DETR的方法相同。我们的方法可以很容易地插入到任何现有的类似DETR的方法中。为了方便起见,我们使用DAB-DETR [14]来评估我们的方法,因为它们的解码器查询被显式表述为4D锚框(x,y,w,h)。对于仅支持 2D 锚点的 DETR 变体,例如Anchor DETR [21],我们可以对锚点进行去噪。对于那些不支持像原版 DETR 这样的锚点,我们可以进行线性变换,将 4D 锚框映射到与其他可学习查询相同的潜在空间。
据我们所知,这是第一个将降噪原理引入检测模型的工作。我们总结我们的贡献如下:

  • 我们设计了一种新颖的训练方法来加快 DETR 训练。实验结果表明,我们的方法不仅加速了训练收敛,而且可以产生非常好的训练结果——在 12epoch 设置的所有检测算法中取得了最佳结果。此外,我们的方法比我们的基线DAB-DETR有显着的改进(+1.9 AP),并且可以很容易地集成到其他类似DETR的方法中。
  • 我们从新颖的角度分析了DETR的缓慢收敛,并对DETR训练有了更深入的理解。我们设计了一个指标来评估二分匹配的不稳定性,并验证我们的方法能够有效降低不稳定性。
  • 我们进行了一系列消融研究,以分析模型不同组件的有效性,例如噪声、标签嵌入和注意力掩模。

本文是我们之前论文 [10] 的延伸,该论文作为口头报告被 CVPR’2022 接受。与其相,本文带来了一些新的贡献,如下所示。

  • 通过将可变形的注意力引入解码器层,我们获得了更好的结果和更快的收敛。
  • 通过将降噪训练添加到其他没有 4D 锚点设计的类似 DETR 的模型中,包括没有显式锚点的 Vanilla DETR 和只有 2D
    锚点的锚点 DETR,我们进一步证明了去噪训练的有效性。我们还表明,去噪训练可以改进分割模型,如Mask2Former 和 Mask
    DINO。
  • 我们将去噪训练整合到传统的CNN检测器Faster R-CNN中,以展示其泛化能力。

我们提供了更多的实验结果和分析,以更好地了解我们的方法。

2 相关工作

2.1 经典CNN探测器

大多数现代对象检测模型都基于卷积网络,近年来取得了重大成功。基于CNN的经典探测器可分为两类,one stage和two stage方法。像HTC [2]和Fast R-CNN [8]这样的两阶段方法首先生成一些区域建议,然后决定每个区域是否包含一个对象,并进行边界框回归以获得一个精确的框。Ren等人[18]提出了一种端到端方法,该方法利用区域提案网络来预测锚框。与两阶段方法相比,包括 YOLO900 [16] 和 YOLOv3 [17] 在内的单阶段方法直接预测实框相对于锚框的偏移。
尽管这些方法在许多数据集上实现了最佳性能,但它们对定位点的生成方式很敏感。此外,它们还需要一些手工制作的组件,如非最大抑制 (NMS) 和标签分配规则。因此,它们存在这些缺点,无法进行端到端优化。

2.2 基于 DETR 的探测器

Carion等人[1]提出了一种基于变形金刚[20]的端到端对象检测器,名为DETR(DEtection TRansformer),而无需使用锚点。虽然 DETR 取得了与 Faster-RCNN [18] 相当的结果,但它的训练严重受到慢收敛问题的影响——它需要 500 个时期的训练才能获得良好的性能。
最近的许多工作都试图加快DEPR的培训过程。有些人发现 DETR 中变压器解码器的交叉关注效率低下,并以不同的方式进行改进。例如,Dai 等人设计了一种动态解码器,可以以从粗到细的方式专注于感兴趣的区域并降低学习难度。Sun等人[19]放弃了变压器解码器,并提出了一种仅编码器的DETR。另一系列工作对解码器查询进行了改进。Zhu等人[25]设计了一个注意力模块,只关注参考点周围的一些采样点。Meng等人[15]将每个解码器查询解耦为内容部分和位置部分,并且仅在交叉注意力公式中使用内容到内容和位置到位置的术语。姚等。利用区域提案网络 (RPN) 提出前 K 锚点。DAB-DETR [14] 使用 4-D 框坐标作为查询,并以级联方式逐层更新框。
尽管取得了所有进展,但他们都没有将匈牙利损失中使用的二分图匹配视为收敛缓慢的主要原因。Sun等人[19]通过使用预先训练的DETR作为教师为学生模型提供GT标签分配并训练学生模型来分析匈牙利损失的影响。他们发现,标签分配只有助于训练早期的收敛,但不会显着影响最终表现。因此,他们得出结论,匈牙利的损失并不是缓慢收敛的主要原因。在这项工作中,我们给出了不同的分析,并给出了有效的解决方案,从而得出了不同的结论。
我们采用DAB-DETR作为基本的检测架构来评估我们的训练方法,其中附加了指示器的标签嵌入用于替换解码器嵌入部分以支持标签去噪。我们的方法与其他方法的区别主要在于训练方法。除了匈牙利损失之外,我们还增加了降噪损失作为更简单的辅助任务,可以加速训练并显着提高表现。Chen等人[4]用合成噪声对象来增强它们的序列,但与我们的方法完全不同。他们将噪声对象的目标设置为“噪声”类(不属于任何真实对象),以便它们可以延迟句末(EOS)令牌并改善召回。与他们的方法相反,我们将噪声框的目标设置为原始框,动机是绕过二分图匹配,直接学习近似实况框。
我们很高兴地看到,许多最近的检测模型采用了我们提出的去噪训练来加速检测和分割模型的收敛,例如DINO [24],Mask DINO [11],Group DETR [3]和SAMDETR++ [23]。DINO [24] 通过输入硬阴性样本并训练模型来拒绝它们,从而进一步发展我们的去噪训练。因此,所提出的对比降噪(CDN)进一步提高了性能。掩模DINO [11]通过从噪声盒重建掩模,将去噪扩展到三个图像分割任务(实例,全景和语义)。组 DETR [3] 和 SAMDETR+++[23] 也在他们的模型中采用去噪训练来实现更好的性能。这些模型证明了我们方法的有效性和泛化能力。

3 为什么降噪可以加速 DETR 训练?

3.1 稳定匈牙利数学

匈牙利匹配是图形匹配中流行的算法。给定一个成本矩阵,该算法输出一个运算时序匹配结果。DETR是第一个在目标检测中采用匈牙利匹配来解决预测对象与真实对象匹配问题的算法。DETR将真实分配转变为动态过程,由于其离散的二分匹配和随机训练过程,这带来了不稳定问题。有工作[7]表明匈牙利匹配不会导致稳定的匹配,因为存在阻塞对。成本矩阵的微小变化可能会导致匹配结果发生巨大变化,这将进一步导致解码器查询的优化目标不一致。
我们将类DETR模型的训练过程视为两个阶段,学习“好锚点”和学习相对偏移量。解码器查询负责学习锚点,如之前的工作[14]和[25]所示。定位点的不一致更新可能会使学习相对偏移变得困难。因此,在我们的方法中,我们利用去噪任务作为训练捷径,使相对偏移学习更容易,因为去噪任务绕过二分匹配。由于我们将每个解码器查询解释为一个 4-D 锚框,因此噪声查询可以被视为一个“好锚点”,它附近有一个相应的地面实况框。因此去噪训练有一个明确的优化目标——预测原始边界框,这基本上避免了匈牙利匹配带来的歧义。

转换器解码器在第 i 个epoch中为 Oi,其中 N 是预测对象的数量,而真实对象为 T = {T0,T1,T2,…,TM−1},其中 M 是真实对象的数量。二分匹配后,我们计算一个索引向量 Vi =
在这里插入图片描述
存储epoch i 的匹配结果如下。

我们将一个训练图像的epoch i的不稳定性定义为其V i和V i−1之间的差值,计算公式为:

在这里插入图片描述

其中 1(·) 是指标函数。如果 x 为真,则 1(x) = 1,否则为 0。整个数据集的epoch i的不稳定性是所有图像的不稳定性数的平均值。为了在等式(1)和等式(2)中表示法简单,我们省略了图像的索引。

图2显示了我们的DNDETR(去噪DETR)和DAB-DETR之间的IS比较。我们对COCO 2017验证集进行了评估,该验证集平均每张图像有7.36个对象。因此,最大可能的 IS 是 7.36×2 = 14.72。图2清楚地表明,我们的方法有效地缓解了匹配的不稳定性
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 使查询搜索更本地化

我们还表明,DN-DETR可以通过减少锚点和相应目标之间的距离来帮助检测。DETR [1] 从可视化中显示其位置查询具有多种操作模式,这使得查询从宽区域搜索预测框。但是,DN-DETR 在初始锚点(位置查询)和目标之间的平均距离要小得多。如图3所示。,我们计算DAB-DETR和我们的模型的最后一个解码器层中初始锚点和匹配的真实况框之间的平均l1距离。
当去噪训练训练模型从接近真实的噪声框中重建盒子时,模型将在本地搜索更多预测,这使得每个查询都集中在附近的区域,并防止查询之间潜在的预测冲突。图4(a)和(b)是DAB-DETR和DN-DETR中锚点和目标的一些例子。每个箭头从一个锚点开始,以匹配的实况地表框结束。我们使用颜色来反映箭头的长度。锚点和目标之间的距离缩短使训练过程更容易,因此收敛更快。

4 DN-DETR

4.1 概述

我们基于 DAB-DETR [14] 的架构来实现我们的训练方法。与 DAB-DETR 类似,我们将解码器查询显式表述为框坐标。我们的架构和他们的架构之间的唯一区别在于解码器嵌入,它被指定为类标签嵌入以支持标签去噪。我们的主要贡献是如图所示的训练方法。
与 DETR 类似,我们的架构包含一个Transformer编码器和一个Transformer解码器。在编码器侧,使用CNN主干提取图像特征,然后使用位置编码输入Transformer编码器,以获得精细的图像特征。在解码器端,查询被馈送到解码器中,以通过交叉注意力搜索对象。
我们将解码器查询表示为 q = {q0,q1,…,qN−1},将Transformer解码器的输出表示为 o = {o0,o1,…,oN−1}。我们还使用F和A来表示Transforme编码器之后的细化图像特征,以及基于去噪任务设计得出的注意力掩模。我们可以制定如下方法。

o = D(q,F|A)

其中 D 表示Transformer解码器。解码器查询有两个部分。一是匹配部分。这部分的输入是可学习的锚点,它们的处理方式与 DETR 中的处理方式相同。也就是说,匹配部分采用二分图匹配,并学习用匹配的解码器输出近似真实盒标签对。另一个是去噪部分。这部分的输入是噪声地面实况(GT)盒标签对,在论文的其余部分称为GT对象。去噪部分的输出旨在重建GT对象。

在下文中,我们将去噪部分表示为 q = {q0,q1,…,qK−1} ,匹配表示为 Q = {Q0,Q1,…,QL−1}。所以我们的方法的公式变成了

o = D(q,Q,F|A)

为了提高去噪效率,我们建议在去噪部分使用多个版本的噪声GT对象。此外,我们利用注意力掩码来防止信息从去噪部分泄漏到匹配部分以及同一GT对象的不同噪声版本之间。

首先,如上所述,匈牙利匹配任务的 queries 肯定不能看到 DN 任务的 queries。

其次,不同 dn group 的 queries 也不能相互看到。为何?因为综合所有组来看,gt -> query 是 one-to-many 的,每个 gt 在每组都会有 1 个 query 拥有自己的信息。于是,对于每个 query 来说,在其它各组中都势必存在 1 个 query 拥有自己负责预测的那个 gt 的信息。
接着,同一个 dn group 的 queries 呢?没关系!尽情看吧 。因为在每组内,gt -> query 是 one-to-one 的关系,对于每个 query 来说,其它 queries 都不会有自己 gt 的信息。 最后,DN 任务的 queries 可以去看匈牙利匹配任务的 queries 吗?Em… 大方点,看吧!毕竟前者才拥有 gt 信息,而后者是“凭空构造”的(主要是先验,需要自己去学习)。 总的来说,attention mask 的设计归纳为:

  • 匈牙利匹配任务的 queries 不能看到 DN任务的 queries;

  • DN 任务中,不同组的 queries 不能相互看到;

  • 其它情况均可见

4.2 DAB-DETR简介

许多最近的工作将DETR查询与不同的位置信息相关联。DAB-DETR 遵循此分析,并将每个查询显式表述为 4D 锚点坐标。如图5(a)所示。,查询被指定为元组 (x,y,w,h),其中 x,y 是中心坐标,是每个解码器层的输出包含元组 (∆x,∆y,∆w,∆h),锚点更新为 (x + ∆x,y + ∆y,w + ∆w,h + ∆h)。请注意,我们提出的方法主要是一种可以集成到任何类似 DETR 的模型中的训练方法。为了在DAB-DETR上进行测试,我们只添加最少的修改:将解码器嵌入指定为标签嵌入,如图5(b)所示。
在这里插入图片描述

4.3 降噪

对于每张图像,我们收集所有 GT 对象,并向其边界框和类标签添加随机噪声。为了最大限度地提高去噪学习的效用,我们对每个GT对象使用了多个噪声版本。

我们考虑以两种方式为盒子添加噪点:中心移动和盒子缩放。我们将 λ1 和 λ2 定义为这 2 个噪声的噪声标度。1)中心偏移:我们在盒子中心添加一个随机噪声(∆x,∆y),并确保|∆x|<,其中λ1∈(0,1),以便噪声框的中心仍将位于原始边界框内。2)盒子缩放:我们设置了一个超参数 λ2 ∈ (0,1)。盒子的宽度和高度是随机抽样的分别在 [(1 − λ2)w,(1 + λ2)w] 和 [(1 − λ2)h,(1 + λ2)h] 中。

对于标签噪音,我们采用标签翻转,这意味着我们将一些 GT 标签随机翻转到其他标签。标签翻转强制模型根据噪声框预测 GT 标签,以更好地捕获标签-框关系。我们有一个超参数γ来控制标签翻转的比例。重建损失是盒子的l1损失和GIOU损失,以及DAB-DETR中类别标签的焦点损失[12]。我们使用函数 δ(·) 来表示噪声的 GT 对象。因此,去噪部分中的每个查询都可以表示为 qk = δ(tm),其中 tm 是第 m 个 GT 对象。
请注意,降噪仅在训练中考虑,在推理过程中,去噪部分被删除,只留下匹配的部分。

4.4 Attention mask

Attention mask在我们的模型中是一个非常重要的组成部分。如果没有注意力掩码,降噪训练将影响性能,而不是提高性能,如公式 5 所示。
要引入注意力掩码,我们首先需要将噪声的 GT 对象分成几组。每个组都是所有 GT 对象的噪声版本。降噪部分变为
在这里插入图片描述
其中 GP 定义为第 p 个去噪组。每个去噪组包含 M 个查询,其中 M 是图像中 GT 对象的数量。所以我们有
在这里插入图片描述
其中 qmp = δ(tm)。
注意力掩码的目的是防止信息泄露。有两种类型的潜在信息泄漏。一是匹配部分可以看到噪声的GT物体,并轻松预测GT物体。另一个是GT对象的一个噪声版本可能会看到另一个版本。因此,我们的注意力掩模是为了确保匹配部分看不到去噪部分,并且去噪组看不到彼此,如图6所示。
在这里插入图片描述

我们使用 A = [aij]W×W 来表示注意力掩码,其中 W = P ×M +N。P 和 M 是组和 GT 对象的数量。N 是匹配部分中的查询数。我们让前 P ×M 行和列表示去噪部分,后者表示匹配部分。 aij = 1 表示第 i 个查询看不到第 j 个查询,否则 aij = 0。我们设计了如下注意力掩膜。
在这里插入图片描述
请注意,去噪部分是否可以看到匹配部分不会影响性能,因为匹配部分是学习的查询,不包含有关 GT 对象的信息。
多个去噪组引入的额外计算可以忽略不计——当引入 5 个去噪组时,对于具有 ResNet-50 主干网的 DAB-DETR,用于训练的 GFLOP 仅从 94.4 增加到 94.6,并且没有用于测试的计算开销。

4.5 标签嵌入

解码器嵌入在我们的模型中被指定为标签嵌入,以支持盒去噪和标签去噪。除了 COCO 2017 中的 80 个类外,我们还认为匹配部分中使用的未知类嵌入在语义上与去噪部分一致。我们还附加了一个指标来标记嵌入。如果查询属于去噪部分,则指示器为 1,否则为 0。

4.6 与可变形注意力设计的兼容性

DN-Deformable-DETR:为了显示在其他注意力设计中应用的去噪训练的有效性,我们还将去噪训练集成到Deformable-DETR中,作为DN-Deformable-DETR。我们遵循与Deformable- DETR 相同的设置,但将其查询指定为 4D 框,就像在 DAB-DETR 中一样,以更好地使用去噪训练。请注意,这是我们在会议版本中的原始可变形模型,其中我们只对变压器编码器添加了可变形的关注。
在标准的 50 epoch 设置中进行比较时,为了消除锚框的显式查询公式可能导致 DN-Deformable-DETR 性能改进的任何误导性信息,我们还实现了强大的基线 DAB-Defromable-DETR 进行比较。它将可变形 DETR 的查询表述为锚框,而不使用去噪训练,而所有其他设置都相同。
DN-Deformable-DETR++:我们进一步将可变形注意力纳入我们的解码器中,并优化我们的模型以构建DN-Deformable-DETR++,其收敛速度更快并改善最终结果。我们还遵循DAB-Defromable-DETR来建立一个强大的基线DABDefromable-DETR++,以显示我们在消融方面的性能改进。

4.7 将DN引入其他具有不同锚定公式的类DETR模型

在上述部分中,我们使用明确的 4D 锚框公式在 DAB-DETR 上构建 DN-DETR。如图6所示。去噪只是一种训练方法,可以插入其他检测模型加速训练。在本节中,我们将把去噪训练扩展到其他类似 DETR 的模型。
在这里插入图片描述

4.7.1 使用 2D 锚点将 DN 引入锚点 DETR

我们首先通过将其添加到锚点 DETR 来证明其有效性,后者将位置查询表述为 2D 锚点。对于 DN-Anchor-DETR,虽然可以很容易地将其修改为 4D 锚点以获得更好的结果,但我们严格遵循锚点 DETR 仅向 2D 锚点添加噪声。2D 锚点对应于框的中心点。因此,我们只使用中心移位噪声(在第4.3节中描述)。通过这种方式,我们插入锚点的去噪训练任务,而无需引入其他修改。
在这里插入图片描述
对于 DN-Vanilla-DETR,我们可以简单地使用线性盒嵌入将噪声盒嵌入到与 DETR 查询相同的维度中。内容查询部分与 DAB-DETR 相同,我们使用标签嵌入将标签嵌入到内容查询中。在获取内容和位置查询后,按照 Vanilla DETR,我们可以将标签嵌入和框嵌入一起添加为 DETR 查询。

5 实验

5.1 设置

数据集:我们展示了DN-DETR在具有挑战性的MS-COCO 2017 [13]检测任务上的有效性。MS-COCO由80个类别的160K图像组成。这些图像分为具有118K图像的train2017,具有5K图像的val2017和具有41K图像的test2017。在我们所有的实验中,我们在train2017上训练模型,并在val2017上进行测试。按照惯例,我们在不同的IoU阈值和对象尺度下报告COCO验证数据集上的标准平均平均精度(AP)结果。

实现细节:我们测试了DAB-DEPR上去噪训练的有效性,DAB-DEPR由CNN主干网,多个Transformer编码器层和解码器层组成。我们还表明,去噪训练可以插入其他类似 DETR 的模型中以提高性能。例如,我们的 DN-可变形 DETR 建立在多尺度设置中的可变形 DETR 之上。
我们采用几个在ImageNet上预先训练的ResNet模型作为我们的骨干,并在4个ResNet设置上报告我们的结果:ResNet-50(R50),ResNet-101(R101)及其16×分辨率扩展ResNet-50-DC5(DC5-R50)和ResNet-101-DC5(DC5-R101)。对于超参数,我们遵循 DAB-DETR 使用 6 层变压器编码器和6层变压器解码器和256作为隐藏维度。我们在盒子上添加均匀噪声,并将与噪声相关的超参数设置为 λ1 = 0.4、λ2 = 0.4 和 γ = 0.2。对于学习率调度器,我们使用初始学习率 (lr) 1 × 10−4,并在第 40 个纪元处通过乘以 0.1 来降低 lr(对于 50 个纪元设置),在第 11 个纪元乘以 0.1 对于 12 个epoch设置。我们使用权重衰减为 1 × 10−4 的 AdamW 优化器,并在 8 个 Nvidia A100 GPU 上训练我们的模型。批大小为 16。除非另有说明,否则我们使用 5 个降噪组。
我们进行了一系列实验来演示性能改进,如表 1 所示,我们遵循 DAB-DETR 中的基本设置,在训练中没有任何花里胡哨的东西。为了与表 2 和 4 中的 12 个纪元设置(Detectron2 中所谓的 1× 设置)和标准 50 个纪元设置(在类似 DETR 的模型中最广泛使用)中的心脏状态性能进行比较,我们遵循 DAB-DETR 使用 3 个模式嵌入,如在锚点 DETR [21] 中。我们与DAB-DETR及其变体的所有比较都在完全相同的设置下。
DN-可变形-DETR 和 DN-可变形-DETR++:对于仅具有可变形编码器的 DN-可变形-DETR,我们使用 10 个去噪组。对于在编码器和解码器中都具有可变形注意的DN-可变形-DETR++,我们使用5个去噪组。请注意,我们严格遵循可变形 DETR 来使用没有 FPN 的多尺度(4 尺度)特征。动态 DETR [6] 增加了 FPN 和更多规模(5 个尺度),可以进一步提高性能,但我们的性能仍然超过他们。
更快的 R-CNN 和 Anchor DETR:我们分别使用 10 个和 5 个去噪组。
DINO:为了测试DINO中去噪训练的有效性,我们只使用我们提议的DN,而不使用其建议的对比DN,并将所有其他组件保留在DINO中。我们使用 5 个降噪组。
Mask DINO:面膜恐龙结合了盒式降噪和面具降噪。为了显示与分割任务相比的性能改进,我们保留了盒子去噪部分,只去除掩码去噪以研究其有效性。在此设置下,我们使用 5 个去噪组。Mask2Former:Mask2Former 仅用于分割任务。因此,我们只在实验中添加了mask去噪训练。在此设置下,我们使用 5 个去噪组。
我们提议的降噪培训已被纳入许多后续工作,并在detrex(https://github.com/IDEA-Research/detrex)中实施。

5.2 去噪训练提高性能

为了展示与DAB-DETR和其他单尺度DETR模型相比的绝对性能改进,我们在基本的单尺度设置下使用不同的主干进行了一系列实验。结果总结在表1中。
结果表明,我们在具有所有四个常用骨干的单尺度模型中取得了最好的结果。例如,与完全相同设置下的基线DAB-DETR相比,我们使用ResNet-50实现了+1.9 AP的绝对改善。该表还显示,去噪训练添加的参数和计算可以忽略不计。

5.3 1× 设置

例如,我们在 12 个 epoch 设置下将类似 DETR 的检测模型显着改进了 1.2 − 2.6 AP。结果还表明,
降噪训练与其他位置查询公式兼容,例如,具有高维向量的 Vallina DETR、具有 2D 锚点的锚点 DETR 和具有 4D 锚框的 DAB-DETR。
我们的方法只是一种训练方法,也与其他方法兼容,例如可变形注意力[25],语义对齐[23]和查询选择[24]等。

5.4 将DN扩展到其他检测和分割模型

为了进一步验证去噪训练的有效性,我们将该方法扩展到其他检测和分割模型,如表3所示。实验结果表明,去噪训练是一种提高性能的通用训练方法。
例如,我们在 12 个 epoch 设置下将类似 DETR 的检测模型显着改进了 1.2 − 2.6 AP。结果还表明,降噪训练与其他位置查询公式兼容,例如,具有高维向量的 Vallina DETR、具有 2D 锚点的锚点 DETR 和具有 4D 锚框的 DAB-DETR。
我们的方法只是一种训练方法,也与其他方法兼容,例如可变形注意力,语义对齐[23]和查询选择[24]等。

5.5 与最先进的探测器相比

我们还进行实验,将我们的方法与多尺度模型进行比较。结果总结在表4中。我们提出的DN-可变形-DETR在ResNet-50主干网下实现了48.6 AP的最佳结果。为了消除将可变形 DETR 的查询表述为锚框的性能改进,我们进一步使用强基线 DAB-可变形-DETR 而不去噪。
在这里插入图片描述

5.6 消融研究

5.6.1 各组成部分的有效性

我们使用训练了50个epoch的ResNet-50骨干进行了一系列消融研究,以验证每个组件的有效性,并在表5和表6中报告结果。表 5 中的结果表明,去噪训练中的每个组件都有助于提高性能。
值得注意的是,没有注意力面罩来防止信息。
在这里插入图片描述
在这里插入图片描述

6 结论

本文分析了DETR训练收敛缓慢的原因在于不稳定的二分匹配,并提出了一种新的去噪训练方法来解决这个问题。基于这一分析,我们通过将去噪训练集成到DAB-DETR中来测试其有效性,从而提出了DN-DETR。DN-DETR 将解码器嵌入指定为标签嵌入,并为盒子和标签引入去噪训练。我们还在可变形 DETR 中添加了去噪训练,以显示其通用性。结果表明,去噪训练可显著加速收敛并提高性能,从而在以 ResNet-50 和 ResNet-101 为主干的 1x(12 个 epoch)设置中获得最佳结果。本研究表明,去噪训练可以很容易地集成到类似DETR的模型中,作为一种通用的训练方法,只有很小的训练成本开销,并且在训练收敛性和检测性能方面都有显著的提高。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BM3D是指基于块匹配和3D过滤的图像去噪算法。Matlab提供了BM3D的标准代码实现,以下是BM3D去噪Matlab代码的介绍: 首先,需要加入BM3D的Matlab路径,并确定输入参数,如图像、噪声水平、block_size等等;其次,将图像分块,并对每个块执行BM3D波形去噪操作;最后,对每个块的结果进行合并和去块伪影,得到最终的去噪图像。 Matlab代码如下: 1. 加入BM3D路径 addpath ('BM3D_path'); %将BM3D路径添加到Matlab路径中 2. 输入参数 输入图像和噪声水平sigma等参数,并将图像分块: img = imread('image_path'); sigma = 25; block_size = [8 8]; [num_block_row,num_block_col] = size(img ./ block_size); 3. BM3D波形去噪 对每个块执行BM3D波形去噪操作,得到去噪结果: for i = 1:num_block_row for j = 1:num_block_col block = img((i-1)*block_size(1)+1:i*block_size(1), (j-1)*block_size(2)+1:j*block_size(2)); [Dn_1, ~] = BM3D(uint8(block), sigma); %BM3D的第1阶段 [Dn_2, ~] = BM3D((block-Dn_1), sigma); %BM3D的第2阶段 img_denoised_block((i-1)*block_size(1)+1:i*block_size(1), (j-1)*block_size(2)+1:j*block_size(2)) = Dn_1 + Dn_2; end end 4. 去块伪影 对每个块的结果进行合并和去块伪影,得到最终去噪图像: img_denoised = bd_fusion_superresolution(img_denoised_block, img, sigma); %这一步是去块伪影 至此,BM3D算法去噪的Matlab代码就可以运行。需要注意的是,BM3D算法是一种计算量较大的算法,所以在运行时可能需要较长时间。另外,BM3D算法在处理图像时需要谨慎选择参数,否则可能会出现一些效果不佳的情况,所以建议在具体应用时进行参数调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值