【论文翻译】UP-DETR—Unsupervised Pre-training for Detection Transformers

在这里插入图片描述

0.论文摘要

摘要——通过Transformer model编码器——解码器架构,用于目标检测的检测Transformer model(DETR)达到了与Faster R-CNN相比具有竞争力的性能。然而,使用scratch transformers训练,DETR需要大规模的训练数据和极长的训练时间表,即使是在COCO数据集上。受预训练转换器在自然语言处理中取得巨大成功的启发,我们提出了一种新的前置任务,称为无监督预训练DETR(UP-DETR)中的随机查询图像块检测。具体来说,我们从给定的图像中随机裁剪图像块,然后将它们作为查询提供给解码器。该模型被预先训练以从输入图像中检测这些查询图像块。在预训练期间,我们解决了两个关键问题:多任务学习和多查询定位。(1)为了权衡前置任务中的分类和定位偏好,我们发现冻结CNN主干是预训练Transformer成功的先决条件。(2)为了实现多查询定位,我们开发了带有注意掩码的多查询图像块检测UP-DETR。此外,UP-DETR还为微调目标检测和一次性检测任务提供了统一的视角。在实验中,UP-DETR算法在目标检测、单次检测和全景分割方面具有更快的收敛速度和更高的平均精度,显著提高了DETR算法的性能

1.研究背景

检测Transformer model(DETR)[1]是一个最近的框架,它将目标检测视为通过Transformer model编码器——解码器的直接集合预测问题[2]。没有手工设计的样本选择[3]和非最大抑制(NMS),DETR甚至可以通过更快的RCNN达到有竞争力的性能[4]。然而,DETR带来了训练和优化的挑战,即使在COCO数据集上,也需要大规模的训练数据集和极长的训练时间表[5]。此外,发现DETR在PASCAL VOC数据集[6]中表现不佳,该数据集的训练数据不足,实例比COCO少。图1示出了DETR和我们的无监督预训练DETR(UP-DETR)的PASCAL VOC学习曲线。UP-DETR比DETR收敛得更快,AP更高。
在这里插入图片描述
图1:具有ResNet-50主干的DETR和UP-DETR的PASCAL VOC学习曲线(AP50)。在这里,他们在trainval07+12上接受训练,并在test2007上接受评估。我们绘制了短训练时间表和长训练时间表,对于这两个时间表,学习率分别在100和200个轮次降低。UPDETR比DETR收敛得更快,AP更高。

通过精心设计的前置任务,无监督预训练模型在自然语言处理(如GPT[7]、[8]和BERT[9])和计算机视觉(如MoCo[10]、[11]和SwAV[12])方面都取得了显著进展。在DETR,CNN主干(具有23.2M参数的ResNet-50[13])已经被预训练以提取良好的视觉表示,但是具有18.0M参数的Transformer model模块还没有被预训练。因此,在DETR对Transformer model进行预培训是一个简单的想法。尽管无监督视觉表征学习(如对比学习)在最近的研究中引起了很多关注[10]、[14]、[15]、[16]、[17]、[18],但现有的前置任务不能直接应用于DETR Transformer model的预训练。我们从以下角度总结了两个主要原因:

(1)不同的体系结构:最近流行的无监督学习方法被设计用于主干网络(特征提取器)预训练[10]、[14]、[15]来提取图像特征。然而,DETR由一个主干和一个Transformer model编码器——解码器组成。DETR中的Transformer model旨在将特征转化为一组检测目标,而不是提取视觉表示。

(2)不同的特征偏好:DETR中的Transformer model主要集中在空间定位学习上。具体来说,Transformer model用于将图像的实例级信息转换为坐标。至于解码器中的自我关注,它执行一种类似NMS的机制来抑制重复的边界框。然而,现有的前置任务是为基于图像实例[10]、[14]、[15]或基于聚类[16]、[17]、[18]的对比学习而设计的。这些对比学习方法主要侧重于特征识别,而不是空间定位。

如上所述,我们需要构建一个空间定位相关的任务来预训练DETR中的Transformer model。为了实现这一想法,我们提出了一种无监督预训练DETR(UP-DETR),它具有一种新的无监督前置任务,称为随机查询图像块检测,以在没有任何人工注释的情况下预训练检测器——我们从给定图像中随机裁剪多个查询图像块,并预训练用于目标检测的Transformer model,以预测给定图像中这些查询图像块的边界框。在训练前程序中,我们处理以下两个关键问题:

(1)多任务学习:目标检测是目标分类和定位的耦合。为了避免查询图像块检测破坏分类特征,我们引入了冻结预训练主干和图像块特征重建来保持Transformer model的特征区分。在我们的实验中,我们发现冻结的预训练主干网络是预训练中保持特征辨别的最重要的步骤。
(2)多查询定位:不同的目标查询关注不同的位置区域和框大小。不同的目标查询之间有一种类似NMS的机制。考虑到这一特性,我们提出了一种带有注意力掩码的多查询图像块检测任务。

此外,所提出的UP-DETR还为目标检测和单次检测提供了统一的视角。只需改变解码器的输入,我们就可以轻松地对目标检测和单次检测进行微调。在我们的实验中,我们用随机查询图像块检测任务预训练DETR。在PASCAL VOC[6]和COCO[5]目标检测数据集上使用完全相同的架构,我们的UP-DETR比DETR表现得好得多,具有更快的收敛速度和更好的平均精度。此外,UP-DETR在单次检测和全景分割方面也具有最先进的性能。

2.相关工作

2.1 目标检测

正负样本分配是目标检测框架的重要组成部分。两阶段检测器[4]、[19]和一部分一阶段检测器[20]、[21]通过手工制作的多尺度锚构建正负样本,具有IoU阈值和模型置信度。无锚单阶段检测器[22]、[23]、[24]通过目标中心网格将正样本和负样本分配给特征图。张等证明它们之间的性能差距是由于正样本和负样本训练的选择[3]。DETR[1]是一个最近的目标检测框架,它在概念上更简单,没有通过直接集合预测[25]手工制作的过程,它自动分配正样本和负样本。

除了正负样本选择问题,分类和定位之间的权衡也是目标检测的难题。张等说明分类和定位之间存在域错位[26]。吴等[27]宋等[28]设计用于分类和定位的两种头部结构。他们指出,这两个任务可能有相反的特性偏好。对于我们的预训练模型,它具有分类和定位的共同特征。因此,在这两项任务之间进行良好的权衡是至关重要的。

2.3 无监督预训练

无监督预训练模型通常遵循两个步骤:以前置任务对大规模数据集进行预训练,并对下游任务的参数进行微调。对于无监督的预训练,前置任务总是被发明出来的,我们感兴趣的是学习到的中间表征,而不是前置任务的最终表现。为了执行无监督的预训练,有各种精心设计的前置任务。对于自然语言处理,利用离散标记之间的时间序列关系,提出了屏蔽语言模型[9]、置换语言模型[29]和自回归模型[7]、[8]来预训练用于语言表示的Transformer[2]。对于计算机视觉,无监督预训练模型最近在视觉表示学习方面也取得了显著进展,在下游任务中优于有监督的学习模型。基于实例的辨别任务[30]、[31]和基于聚类的任务[17]是最近研究中两种典型的前置任务。基于实例的辨别任务主要取决于使用非参数对比学习[32]保持不同大小的负样本[10], [14], [15]。实例区分也可以实现为参数实例分类[16]。此外,基于聚类的任务在离线[17]、[18]或在线聚类程序[12]上有所不同。我们提出的随机查询图像块检测是一种新的无监督前置任务,旨在预训练基于DETR架构的Transformer model进行目标检测。

2.3 视觉Transformer

Transformer不仅用于检测器,也应用于主干设计。开创性的工作是视觉Transformer model(ViT)[33],它对非重叠图像图像块应用Transformer model进行图像分类。与具有超大规模训练数据集的卷积神经网络相比,它实现了速度——精度的权衡。基于这项工作,有很多工作修改了ViT架构,以获得更好的图像分类性能[34]、[35]、[36]。虽然ViT和DETR都使用Transformer,但它们的设计用途不同。ViT利用Transformer捕捉图像块之间的关系进行图像分类,因此图像块之间存在自注意力。另一方面,DETR有三个不同的注意力部分。DETR编码器中的自注意力功能类似于ViT,旨在捕捉图像块之间的全局关系。然而,DETR解码器中的交叉注意力和自注意力是为边界框的集合预测而设计的。因此,现有的主干预训练任务[10]、[11]、[37]不能简单地应用于DETR。

3.UP-DETR

所提出的UP-DETR包含预训练和微调过程:(a)Transformer model在大规模数据集(例如我们实验中的ImageNet)上无监督地预训练,没有任何人工注释;(b)利用标记数据对整个模型进行微调,该标记数据与下游检测相关任务(例如,目标检测和单次检测)上的原始DETR[1]相似。

3.1 预训练

在本节中,我们主要描述如何使用随机查询图像块检测任务对Transformer model编码器和解码器进行预训练。如图2所示,随机查询图像块检测的主要思想简单而有效。

编码器。首先,给定输入图像,使用CNN主干提取具有特征 f ∈ R C × H × W f ∈ \mathbb{R}^{C×H×W} fRC×H×W的视觉表示,其中 C C C是通道尺寸, H × W H × W H×W是特征图大小。这里,图像可以被视为由CNN提取器构建的长度为 H × W H × W H×W的令牌序列。然后,特征 f f f加入二维位置编码,并传递给多层Transformer model编码器,这与DETR完全相同。

解码器。与DETR不同的是,在我们的预训练过程中,我们从输入图像中随机裁剪图像块作为查询,并记录查询的相应坐标、宽度和高度作为地面真实值。因此,我们的预训练过程可以在无监督/自我监督的范式中完成。具体来说,对于随机裁剪的查询图像块,具有全局平均池化(GAP)的CNN主干提取图像块特征 p ∈ R C p ∈ \mathbb{R}^C pRC,在将其传递到Transformer model解码器之前,将其展平并用目标查询 q ∈ R C q ∈ \mathbb{R}^C qRC补充。最后,解码器被训练来预测与输入图像中随机查询图像块的位置相对应的边界框。在预训练过程中,查询图像块的特征被添加到多个目标查询中,这些查询被馈送到解码器。请注意,查询图像块指的是从输入图像裁剪的图像块,而目标查询指的是位置嵌入。可以理解为要求模型通过这些可能的位置(作为目标查询嵌入)找到查询图像块。此外,输入图像和查询图像块的CNN参数在整个模型中是共享的。

多查询图像块。对于微调目标检测任务,每个图像中有多个目标实例(例如,COCO数据集中每个图像平均7.7个目标实例)。换句话说,解码器Transformer model中的自我关注模块在训练期间学习类似NMS的机制。为了使预训练和微调之间保持一致,UP-DETR需要在不同的目标查询之间构建一个具有可调框抑制比的竞争。幸运的是,UP-DETR可以很容易地扩展到多查询图像块检测。假设随机裁剪有M个查询图像块和N个目标查询,我们将N个目标查询分成M组,每个查询图像块分配给N/M个目标查询。在图2中,我们说明了单查询图像块检测和多查询图像块检测。在我们的预训练实验中,我们默认采用N=100和M=10。

在这里插入图片描述
图2:通过随机查询图像块检测的UP-DETR的预训练过程。(a)只有一个单查询图像块,我们将其添加到所有对象查询中。(b)对于多查询图像块,我们通过对象查询洗牌和注意力掩码将每个查询图像块添加到N/M个对象查询中。注意,为了整洁,CNN不是在(b)的解码器中绘制的。

匹配。该模型用对应于N个目标查询(N>M)的固定集合 y ^ = { y ^ i } i = 1 N \hat{y}= \{\hat{y}_i\}^N_{i=1} y^={y^i}i=1N推断预测。换句话说,对于这M个查询图像块,我们得到N对边界框预测。对于检测任务,结果对预测目标的排列是不变的。因此,在DETR[1]之后,我们使用匈牙利算法[25]计算预测 y ^ σ ^ ( i ) \hat{y}_{\hat{σ}(i)} y^σ^(i)和地面真实 y i y_i yi之间的相同匹配成本,其中 σ ^ ( i ) \hat{σ}(i) σ^(i)是通过最优二分匹配计算的 y i y_i yi的指数。

损失。对于损失计算,预测结果 y ^ = ( c ^ i ∈ R 2 , b ^ i ∈ R 4 , p ^ i ∈ R C ) \hat{y}= ( \hat{c}_i ∈ \mathbb{R}^2, \hat{b}_i ∈ \mathbb{R}^4, \hat{p}_i ∈ \mathbb{R}^C ) y^=(c^iR2,b^iR4,p^iRC)由三个元素组成: c ^ i \hat{c}_i c^i是每个目标查询匹配查询图像块 ( c ^ i = 1 ) (\hat{c}_i = 1) (c^i=1)或不匹配查询图像块 ( c ^ i = 0 ) (\hat{c}_i = 0) (c^i=0)的二元分类; b ^ i \hat{b}_i b^i是定义框中心坐标及其宽度和高度为 { x , y , w , h } \{x, y, w, h\} {x,y,w,h}的向量,它们相对于图像大小重新缩放;而对于ResNet-50主干网络,C=2048通常为 p ^ i \hat{p}_i p^i的重构特征。根据上述定义,所有配对的匈牙利损失定义为:

在这里插入图片描述

这里, L c l s \mathcal{L}_{cls} Lcls是两个类上的交叉熵损失(匹配查询图像块与不匹配),类平衡权重 λ { c ^ i = 1 } = 1 λ_{\{\hat{c}_i = 1\}} = 1 λ{c^i=1}=1 λ { c ^ i = 0 } = M / N λ_{\{\hat{c}_i = 0\}} = M/N λ{c^i=0}=M/N L b o x \mathcal{L}_{box} Lbox是l1损失和广义IoU损失的线性组合,具有与DETR相同的权重超参数[1]。 L r e c \mathcal{L}_{rec} Lrec是本文中提出的重建损失,仅在预训练期间使用。它旨在平衡预训练期间分类和定位的特征偏好,这将在3.1.2节中进一步讨论。

3.1.1 冻结预训练主干

在我们的实验中,我们发现CNN主干严重影响Transformer model预训练。换句话说,如果我们从头开始预训练CNN主干和Transformer model以及随机查询图像块检测,模型不能很好地收敛并且性能差。这个问题也出现在最初的DETR中.

此外,目标检测是目标分类和定位的耦合,其中这两个任务总是具有不同的特征偏好[26]、[27]、[28]。然而,我们的预训练任务只关注定位而不是特征分类。因此,在我们的实验中,我们在Transformer model预训练期间冻结了预训练CNN主干。稳定的主干参数有利于Transformer model的预训练,加快了模型的预训练过程。在4.5.2节中,我们将通过实验分析和验证它们的必要性。我们认为冻结的预训练主干是UP-DETR成功的最重要的一步。

3.1.2 技巧

在我们的初步实验中,我们用我们的先验知识尝试了一些随机查询图像块检测方面的技巧。在这里,我们讨论预训练期间的两个技巧,它们是合理的,但对UP-DETR的成功并不关键。

图像块特征重建。我们的预训练任务只关注定位,而不是特征分类。换句话说,缺少分类任务的显式分支。因此,在冻结预训练主干的情况下,我们提出了一个特征重建损失项 L r e c \mathcal{L}_{rec} Lrec,以在定位预训练期间保留分类特征。这个损失项的动机是在将特征传递给Transformer model后,保留CNN提取的特征判别信息。 L r e c \mathcal{L}_{rec} Lrec是由CNN主干提取的l2归一化图像块特征之间的均方误差,其定义如下:

在这里插入图片描述

对于冻结的CNN主干,图像块特征重建略微提高了微调性能,如第4.5.2节所示。

注意力掩码。所有查询图像块都是从图像中随机裁剪的。因此,它们是独立的,没有任何关系。例如,第一次裁剪的边界框回归与第二次裁剪无关。为了满足查询图像块的独立性,我们利用注意掩码矩阵来控制不同目标查询之间的交互。掩码矩阵 X ∈ R N × N \mathbf{X} ∈ \mathbb{R}^{N×N} XRN×N被添加到解码器中的自我关注的softmax层[2]中,作为 s o f t m a x ( Q K T / d k + X ) V softmax(\mathbf{QK}^T/\sqrt{d_k} + \mathbf{X})\mathbf{V} softmax(QKT/dk +X)V,其中 Q = K = V \mathbf{Q=K=V} Q=K=V并且它们引用解码器中的目标查询表示的相同集合。与UniLM[38]中的令牌掩码类似,注意力掩码定义为:

在这里插入图片描述
其中 X i , j X_{i,j} Xi,j确定目标查询 q i q_i qi是否参与与目标查询 q j q_j qj的交互。为了直观理解,图2b中的注意力掩码分别显示对应于(3)中的0和−∞的1和0。如第4.5.3节所示,注意力掩码也会略微导致较低的损耗。

在这里插入图片描述

3.2 微调

UP-DETR在检测相关任务方面提供了统一的视角。通过改变模型输入,可以很容易地将其微调为目标检测或一次性检测。图3示出了目标检测和单次检测的微调过程。CNN、Transformer model编码器——解码器和目标查询对于目标检测和一次性检测任务是完全相同的,它们是从预训练过程中初始化的。利用标注的数据对整个模型权重进行了微调。这两个下游任务在架构上的唯一区别是Transformer model解码器的输入。注意在微调过程中从不使用特征重建损失。

在这里插入图片描述

图3:UP-DETR对目标检测和单次检测的微调过程。唯一的区别是Transformer model解码器的输入。(a)物体探测。有多个目标查询(可学习的嵌入)被输入解码器。(b)单次检测。输入查询由共享CNN提取,该特征被添加到目标查询中,目标查询被馈送到解码器中。

3.2.1 目标检测

给定一个输入图像,模型需要预测具有边界框和相应类别的目标集。因此,UP-DETR的微调过程与DETR的训练过程完全相同。有多个目标查询(可学习的嵌入)被用作输入解码器的输入。这里,不同的目标查询学习不同的空间专门化和区域偏好。利用目标查询的设计,该模型可以并行预测多个目标。利用有监督的目标检测数据,我们计算模型预测和标注的地面真实之间的匹配代价。

3.2.2 单次检测

给定输入图像和查询图像,模型需要预测带有边界框的目标。目标应该在语义上与查询图像相似。通常,查询图像是由同一类别的不同图像拼接而成的。对于一次性检测,查询图像由CNN提取(与输入图像共享),图像块特征被添加到所有目标查询中。在一次性检测中,我们只关心边界框的匹配结果(即是否与查询匹配),而不关心目标检测中的具体类别。因此,在损失和匹配成本计算中,一次检测的分类输出是二进制的,而不是目标检测的多类别分类。

4.实验

我们使用ImageNet[39]预训练模型,并在PASCAL VOC[6]和COCO[5]上微调参数。在所有实验中,我们用ResNet-50主干、6个Transformer model编码器、6个宽度为256的解码器层和8个注意力头实现了UP-DETR模型(41.3 M参数)。参考DETR的开源代码,我们在提出的UP-DETR和我们的DETR重新实现中使用相同的超参数。我们将R50和R101注释为ResNet-50和ResNet-101的缩写。请注意,UPDETR和DETR具有完全相同的模型架构,匹配成本和损失计算。因此,它们具有完全相同的FLOPs、参数和运行FPS。

训练前设置。UP-DETR是在没有任何ImageNet标签的1.28 M ImageNet训练集上无监督预训练的。CNN主干(ResNet-50)也用SwAV策略进行无监督预训练[12],其参数在Transformer model预训练期间被冻结。由于来自ImageNet的输入图像相对较小,我们调整其大小,使最短边在[320,480]像素内,而最长边最多为600像素。对于给定的图像,我们裁剪具有随机坐标、高度和宽度的查询面片,其大小调整为128 × 128像素,并使用SimCLR风格[14]进行变换,没有水平翻转,包括随机颜色失真和高斯模糊。在我们工作的早期阶段,我们对不同的抽样策略进行了实验,即网格抽样和具有不同超参数的随机抽样。然而,我们注意到不同的采样策略之间没有显著差异。因此,我们使用随机抽样来说明我们的方法的泛化能力。此外,AdamW[40]用于优化上DETR,初始学习速率为 1 × 1 0 − 4 1 × 10^{−4} 1×104,权重衰减为 1 × 1 0 − 4 1 × 10^{−4} 1×104。我们在八个Nvidia V100 GPUs上使用256的小批量大小来训练60个epoch的模型,在40个epoch学习率乘以0.1。

微调设置。模型用预先训练的UP-DETR参数初始化,并在PASCAL、VOC和COCO上针对所有参数(包括CNN)进行微调。我们对Transformer model的微调初始学习率为 1 × 1 0 − 4 1 × 10^{−4} 1×104,CNN主干的初始学习率为 5 × 1 0 − 5 5 × 10^{−5} 5×105,其他设置与DETR[1]相同,在八个V100 GPU上,每个GPU有四个图像。对于150/300个epoch,该模型用短/长时间表进行微调,并且在100/200个epoch,学习速率分别乘以0.1。

预训练和微调之间的差距。目标级预训练可以提高目标检测任务中的微调性能[41],但这种方法通常需要目标先验知识,例如,在预训练期间使用选择性搜索算法来获得目标建议。在我们的工作中,我们在图像块级别对ImageNet数据集上的模型进行预训练,因为这是在ImageNet上进行预训练并传输到COCO或VOC数据集的常见做法[10],[37]。但是,预训练和微调之间的差距总是存在的。例如,ImageNet图像大多包含一个目标,但COCO图像总是包含多个目标。ImageNet图像的图像大小相对较小,但COCO图像的图像大小较大。此外,在这项工作中,预训练任务是在随机抽样的图像块级别进行的,但微调任务是在标记数据上监督的。虽然前面提到的预训练和微调之间的差距无法消除,但我们的方法在没有任何先验知识的情况下使用随机抽样策略具有良好的泛化能力。

4.1 PASCAL VOC目标检测

设置。该模型在PASCAL VOC trainval07+12(16.5 k图像)上进行了微调,并在test2007上进行了评估。我们报告了COCO风格的指标,包括AP、AP50(默认VOC指标)和AP75。为了进行全面的比较,我们还报告了R50-C4主干的Faster R-CNN的结果[12],其性能比R50(C5阶段)好得多[42]。与R50相比,具有R50-C4的DETR显著增加了计算成本,因此我们对具有R50主干的UP-DETR进行了微调。尽管如此,UP-DETR仍然表现良好。为了强调预训练模型的有效性,我们报告了DETR(来自随机初始化的Transformer model)和UP-DETR(来自预训练的Transformer model)的150和300个时期的结果。

结果。表1显示了PASCAL VOC数据集上的目标检测结果。我们发现DETR在PASCAL VOC上表现不佳,在所有指标上都比Faster R-CNN差得多。由于VOC中相对小规模的数据,UP-DETR的预训练Transformer model显著提高了DETR在短时间表和长时间表中的性能:对于150(300)个时期,分别高达+6.2(+3.1)AP、+5.2(+2.1)AP50和+7.5(+3.7)AP75。此外,UP-DETR(R50)实现了与具有更好AP的Faster R-CNN(R50-C4)相当的结果。我们发现在AP50和AP75中,UP-DETR和DETR的表现都比Faster R-CNN稍差。这可能来自不同比例的特征图(C4用于更快的R-CNN)和没有NMS后处理(NMS降低AP但略微提高AP50)。

在这里插入图片描述

表1:在PASCAL VOC trainval07+12上训练并在test2007上评估的物体检测结果。DETR和上DETR使用R50主干,Faster R-CNN使用R50-C4主干。括号中的值是与相同训练计划下的DETR相比的差距。

图4a示出了关于VOC的AP(COCO风格)学习曲线。UP-DETR显著加快了模型的收敛速度。在学习率降低后,UP-DETR显著提高了DETR的性能,AP有了很大的改善。注意到UPDETR在150个epoch后获得56.1 AP,然而,它的对手DETR(scratch Transformer model)即使在300个epoch后也仅获得54.1 AP,并且甚至在更长的训练时间内也赶不上。它表明,在训练数据不足的情况下(即VOC上的16.5 K图像),预训练Transformer model是不可或缺的。

在这里插入图片描述

图4:PASCAL VOC和COCO数据集上DETR和UP-DETR的AP(COCO风格)学习曲线。模型用SwAV预训练ResNet-50训练150和300个epoch,学习率分别在100和200个epoch降低。

4.2 COCO目标检测

设置。该模型在COCO train2017(118 K图像)上进行微调,并在val2017上进行评估。COCO数据集中有许多小目标,DETR在这些数据集中表现不佳[1]。因此,我们报告AP、AP50、AP75、 A P S AP_S APS A P M AP_M APM A P L AP_L APL进行全面比较。此外,我们还报告了具有短(3 ×)和长(9 ×)训练时间表的特征金字塔网络(FPN)的高度优化的更快R-CNN的结果,已知其改善了性能结果[46]。为了避免受监督的CNN带来补充信息,我们使用SwAV预训练CNN作为UP-DETR的主干,没有任何人工注释。

结果。表2显示了COCO数据集上的目标检测结果。对于150个epoch的调度,UP-DETR比DETR(SwAV CNN)高0.8 AP,并且实现了与Faster R-CNN(R50-FPN)(3倍调度)相当的性能。在300epoch调度下,UP-DETR在COCO上获得43.1 AP,比DETR(SwAV CNN)好1.0 AP,比Faster R-CNN(R50-FPN)好1.1 AP(9 ×调度)。总的来说,UP-DETR在短时间和长时间训练的情况下,在探测小型、中型和大型物体方面全面优于DETR。遗憾的是,由于缺乏类似FPN的架构,UP-DETR在APS中仍然稍微落后于Faster R-CNN[43]。

在这里插入图片描述
表2:在COCO train2017上训练并在val2017上评估的物体检测结果。Faster R-CNN、DETR和UPDETR是在可比的设置下执行的。−对于在COCO test-dev上评估的值,该值始终略高于val2017。括号中的值是与相同训练计划的DETR(SwAV CNN)相比的差距。

图4b示出了COCO上的AP学习曲线。UP-DETR在150和300epoch调度方面都优于DETR,收敛速度更快。在降低学习率之前,性能的提高更加明显。在降低学习率后,UP-DETR仍然领先DETR 1.0 AP的提升。这表明,即使在足够的训练数据(即COCO上的118K图像)下,训练前Transformer model仍然是不可或缺的。

4.3 单次检测

设置。给定一个查询图像图像块,其类标签不包括在训练数据中,一次性检测旨在检测目标图像中具有相同类的所有实例。一次性检测是一个很有前途的研究方向,可以检测看不见的实例。通过向解码器提供查询图像块,UP-DETR自然兼容一次性检测任务。因此,oneshot检测也可以视为UP-DETR的下游微调任务。遵循与[50]相同的一次性检测设置,我们裁剪出地面真实边界框作为查询图像图像块。在微调过程中,对于给定的图像,我们随机采样该图像中存在的seen类的查询图像块,并根据查询图像块过滤训练场地真实值。在评估过程中,我们首先用目标图像ID的特定随机种子随机洗牌类(存在于图像中)的查询图像块,然后选取前五个查询图像块,最后平均它们的AP分数。对每个图像中的每个现有类进行评估,然后进行平均。洗牌过程确保结果在稳定的统计中进行评估。我们在具有300个epoch的VOC 2007train val和2012 Train val集上训练/微调DETR/UP-DETR,并在VOC 2007测试集上进行评估。我们遵循与李等相同的设置。[51]。

结果。表3显示了与最先进的一次性检测方法的比较。UP-DETR显著提升了DETR在可见(+22.8 AP50增益)和不可见(+15.8 AP50增益)等级上的性能。此外,在单次检测的可见(最小+7.9 AP50增益)和不可见(最小+4.0 AP50增益)类别中,UP-DETR优于所有比较的方法。这进一步验证了我们的预训练前置任务的有效性。‘

在这里插入图片描述

表3:在VOC 2007 Train val和2012 Train val集上训练并在VOC 2007测试集上评估的一次性检测结果。

4.4 全景分割

原始的DETR可以很容易地扩展到全景分割[52]通过在解码器输出的顶部添加一个掩模头。遵循与DETR[1]相同的全景分割训练模式,我们使用COCO全景分割注释(额外材料注释)对UP-DETR进行微调,仅用于具有300个时期的框注释。然后,我们冻结DETR的所有权重,对面具头进行25个epoch的训练。我们发现UP-DETR也提高了全景分割的微调性能。表4显示了与使用ResNet-50主干的全景分割的最新方法的比较。如图所示,UP-DETR以+0.4 PQ、+0.5 PQth和+1.4 APseg优于DETR3。

在这里插入图片描述
表4:具有相同ResNet-50主干的COCO val2017数据集上的全景分割结果。Carion等人重新实现了PanopticFPN++、UPSNet和DETR的结果。[1]。

4.5 消融实验

在消融实验中,我们训练/预训练15个时期的DETR/上DETR模型,在第10个时期学习率乘以0.1。我们按照第4.1节中的设置,用150个epoch对PASCAL VOC上的UP-DETR模型进行了微调。因此,消融的平均精度结果相对低于第4.1节所示。

我们用单查询图像块(M=1)和多查询图像块(M=10)对UP-DETR模型进行预训练。如上所述设置其他超参数。

表5显示了单查询图像块和多查询图像块的结果。与DETR相比,无论是单查询图像块还是多查询图像块,UP-DETR在所有AP指标上都远远超过它。当用不同数量的查询图像块预训练UP-DETR时,UP-DETR(M=10)在微调任务上比UP-DETR(M=1)表现得更好,尽管在PASCAL VOC上每个图像大约有2.3个实例。因此,我们对PASCAL VOC和COCO采用相同的M=10的上DETR,而不是对不同的下游任务改变M。

在这里插入图片描述

表5 PASCAL VOC上具有单查询图像块和多查询图像块的预训练模型的消融结果。括号中的值是与相同训练计划下的DETR相比的差距。

4.5.2 冻结CNN和特征重建

为了说明冻结CNN主干和UP-DETR的图像块特征重建的重要性,我们用是否冻结CNN和是否添加特征重建的不同组合预训练了四个不同的模型。请注意,所有模型(包括DETR)都使用ImageNet上预先训练好的CNN。表6显示了DETR的AP50和具有150个时期的PASCAL VOC上的四个不同的预训练模型。如表6所示,并不是所有的预训练模型都比DETR好,但是预训练模型(b)和(d)比其他模型表现得更好。更重要的是,在没有冻结CNN的情况下,预训练模型(a)和(c)的表现甚至比DETR更差。这证实了冻结的预训练骨干对于预训练Transformer model是必不可少的。此外,进一步证实了前置任务(随机查询图像块检测)可能会削弱预训练CNN的特征辨别能力,定位和分类具有不同的特征偏好[26]、[27]、[28]。

在这里插入图片描述

表6:冻结CNN的消融研究和AP50预训练模型的特征重建。实验在150个epoch的PASCAL VOC上进行微调。

图5绘制了DETR和四个不同的预训练模型的AP50学习曲线,其中图5中的模型一对一地对应于表6中的模型。如图5所示,(d)UP-DETR模型通过特征重建在早期训练阶段实现更快的收敛速度。实验结果表明,随机查询图像块检测是对比学习的补充,可以获得更好的视觉表示。前者用于位置嵌入的空间定位,后者用于实例或聚类分类。值得注意的是,具有冻结CNN和特征重建的UP-DETR严重依赖于预先训练的CNN模型,例如SwAV CNN。因此,我们认为,将随机查询图像块检测和对比学习结合起来进一步研究UP-DETR,从头开始预训练整个DETR模型,是一个有前途的方向。

在这里插入图片描述
图5:DETR的学习曲线(AP50)和用150个时期训练的PASCAL VOC上的四个不同的预训练模型。这些模型与表6中的模型一一对应。

4.5.3 注意力掩码

在下游任务微调后,我们发现在有和没有注意力面具的情况下预训练的上DETR模型之间没有明显的差异。代替微调结果,我们在前置任务中绘制损失曲线来说明注意力面具的有效性。如图6所示,在早期训练阶段,没有注意力掩模的UP-DETR具有较低的损失。然而,随着模型的收敛,具有注意力掩模的UP-DETR以较低的损失超过了它。这些曲线乍一看似乎很奇怪,但它是合理的,因为损失是通过最优二分匹配计算的。在早期训练阶段,模型不收敛,没有注意掩模的模型需要更多的目标查询来引起注意。直观地说,由于引入了更多的目标查询,该模型更容易优化。然而,对于没有注意力掩码的模型,查询图像块和基本事实之间存在不匹配。随着模型的收敛,注意屏蔽逐渐生效,屏蔽了不相关的查询图像块,从而降低了丢失率。
在这里插入图片描述

4.6 可视化

4.6.1 预训练

为了进一步说明预训练模型的能力,我们将给定图像块查询的无监督定位结果可视化。具体来说,对于给定的图像,我们手动裁剪几个目标图像块,并对它们应用数据增强。然后,我们将这些图像块作为查询提供给模型。最后,我们用分类置信度大于0.9的边界框来可视化模型输出。该过程可以被视为无监督的一次性检测或基于深度学习的模板匹配。如图7所示,通过随机查询图像块检测进行预训练,UP-DETR成功地学习定位给定查询图像块的边界框并抑制重复的边界框。结果表明,采用随机查询图像块检测的UP-DETR算法可以有效地学习目标定位能力。

在这里插入图片描述

图7:具有UP-DETR的图像块查询的无监督定位。第一行是带有预测边界框的原始图像。第二行是通过数据增强(色彩抖动和大小调整)从原始图像裁剪的查询图像块。边界框左上角的值是模型置信度。如图所示,在没有任何注释的情况下,UP-DETR学习以无监督的方式检测给定查询的图像块。

4.6.2 微调

图8示出了目标检测和单次检测的微调模型的可视化结果。我们的微调模型在这两项任务上表现良好。对于目标检测任务,该模型被微调以检测具有边界框和类的目标。这些类(例如,图8a中的大象、鸟、人)必须存在于训练集中。不同的是,对于一次性检测,给定输入图像和查询图像,模型只预测具有边界框和0/1标签(匹配与否)的相似目标。通过改变Transformer model解码器的输入,这两个任务可以统一在我们的UP-DETR框架中。

在这里插入图片描述

图8:目标检测和一次性检测微调实验的可视化结果。这两个模型用相同的UP-DETR模型进行了微调。(a)利用输入图像,目标检测模型检测具有边界框的目标,其类存在于训练集中。(b)给定输入图像和查询图像,一次性检测模型检测与查询图像语义相似的目标(具有匹配的标签而不是类名)。

5.总结

我们提出了一种新的前置任务,称为随机查询图像块检测,以无监督地预训练DETR中的Transformer model。在无监督预训练的情况下,UP-DETR在PASCAL VOC上以更高的精度和更快的收敛速度显著优于DETR。对于具有足够训练数据的挑战性COCO数据集,即使训练时间表很长,UP-DETR仍然超过DETR。这表明预训练Transformer model对于目标检测中不同规模的训练数据是不可或缺的。此外,UP-DETR还为一次性检测提供了统一的视角。它显著提高了一次性检测任务的性能。从无监督预训练模型的角度来看,预训练CNN主干和预训练Transformer model现在是分开的。最近对无监督预训练的研究主要集中在对比学习的特征辨别上,而不是空间定位的专门模块。但是在UP-DETR预训练中,前置任务主要是通过位置编码和可学习目标查询来设计图像块定位的。我们希望一种先进的方法可以将CNN和Transformer model预训练集成到一个统一的端到端框架中,并将UP-DETR应用于更多的下游任务(例如,少数样本目标检测和目标跟踪)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/460218.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

android seekbar thumb 上添加进度值并居中

环境:android studio 、java 项目需要在进度条的滑块上显示进度值并居中, UI设计图: 代码实现效果图: 浅色模式: 深色模式: 由于一开始没有自定义seekbar, 使用源码Seekar, 滑块要…

【四 (4)数据可视化之 Ploty Express常用图表及代码实现 】

目录 文章导航一、介绍二、安装Plotly Express三、导入Plotly Express四、占比类图表1、饼图2、环形图3、堆叠条形图4、百分比堆叠条形图 五、比较排序类1、条形图2、漏斗图3、面积漏斗图 六、趋势类图表1、折线图2、多图例折线图3、分列折线图4、面积图5、多图例面积图 七、频…

【回归预测】基于DBO-RF(蜣螂优化算法优化随机森林)的回归预测 多输入单输出【Matlab代码#67】

文章目录 【可更换其他算法,获取资源请见文章第6节:资源获取】1. 随机森林RF算法2. 蜣螂优化算法3. 实验模型4. 部分代码展示5. 仿真结果展示6. 资源获取 【可更换其他算法,获取资源请见文章第6节:资源获取】 1. 随机森林RF算法 …

MM1: Methods, Analysis Insights from Multimodal LLM Pre-training

MM1: Methods, Analysis & Insights from Multimodal LLM Pre-training 相关链接:arxiv 关键字:多模态学习、大型语言模型、预训练、视觉语言连接、混合专家模型 摘要 本文讨论了构建高性能的多模态大型语言模型(MLLMs)。特别…

[SAP ABAP] 异常处理

异常 是在程序执行期间出现的问题 当异常发生时,程序的正常流程被中断,应用程序将会异常终止 例1 执行上述代码出现以下错误 我们可以使用TRY和CATCH关键字的组合捕获异常 执行上述代码出现以下结果 例2 执行上述代码出现以下错误 我们可以使用TRY和CAT…

springboot+poi-tl根据模板导出word(含动态表格和图片),并将导出的文档压缩zip导出

springbootpoi-tl根据模板导出word&#xff08;含动态表格和图片&#xff09; 官网&#xff1a;http://deepoove.com/poi-tl/ 参考网站&#xff1a;https://blog.csdn.net/M625387195/article/details/124855854 pom导入的maven依赖 <dependency><groupId>com.dee…

Soft Robotics 变结构手掌和变刚度手指的仿人软体手的人机交互操作-武科大ESIR课题组师兄成果

一、引言 在当今的机器人技术领域&#xff0c;人类对机器人的需求日益增长&#xff0c;涉及到工业生产、医疗护理、服务业等各个领域。然而&#xff0c;由于任务的多样性和复杂性&#xff0c;单独依靠自主机器人操作往往难以满足实际需求。为了解决这一问题&#xff0c;人机协作…

白话微机:9.解释SoC和Linux

一. 前言&#xff08;回顾世界观&#xff09; 在“微机世界”&#xff0c;普通的城市(单片机)里&#xff0c;人又有一个别的名字叫做“数据”&#xff0c;人有0有1&#xff1b;人们也有住房&#xff0c;这些住房在这个世界叫做“存储器”&#xff1b;地上有路&#xff0c;这些路…

鸿蒙开发实战:【音频组件】

简介 音频组件用于实现音频相关的功能&#xff0c;包括音频播放&#xff0c;录制&#xff0c;音量管理和设备管理。 图 1 音频组件架构图 基本概念 采样 采样是指将连续时域上的模拟信号按照一定的时间间隔采样&#xff0c;获取到离散时域上离散信号的过程。 采样率 采样…

数据仓库的设计开发应用(一)

目录 一、数据仓库设计的特点二、数据仓库系统开发过程三、数据仓库系统的规划 一、数据仓库设计的特点 1、“数据驱动” 的设计 数据仓库是从已有数据出发的设计方法&#xff0c;即从数据源抽取数据&#xff0c;经转换形成面向主题&#xff0c;支持决策的数据集合。 以全面了…

MapReduce的原理分析

1.概述 MapReduce的思想核心是“分而治之,先分再合”&#xff0c;适用于大量复杂任务处理场景(大规模数据处理场景)。 MapReduce分两个阶段: map阶段(分)&#xff1a;如果任何可以拆分并且没有依赖&#xff0c;那么就把复杂的任务拆分成小任务&#xff0c;拆分成小任务之后&a…

【云原生-kubernetes系列】--kubernetes日志收集

1、ELK架构 1.1、部署ES集群 https://mirrors.tuna.tsinghua.edu.cn/elasticstack/apt/7.x/pool/main/e/elasticsearch/ 1、下载软件包 rootes-server1:~# wget https://mirrors.tuna.tsinghua.edu.cn/elasticstack/apt/7.x/pool/main/e/elasticsearch/elasticsearch-7.12.0-…

QMI8658芯片I2C驱动开发指南

这个芯片纯国产挺好用的&#xff0c;电路很好设计&#xff0c;我这垃圾焊功&#xff0c;纯手焊&#xff0c;&#xff0c;居然能用。 第一部分 硬件连接 画的很简陋&#xff0c;看看就可以了&#xff0c;这里I2C总线需要接10K上拉没有画出来&#xff0c;这个需要注意一下。 …

【XR806开发板试用】基于WEBSOCKET实现人机交互(控制开关灯)以及开发问题记录

一、开发板编译、功能介绍 根据官方文档编译烧录成功后&#xff0c;我们修改下官方例子&#xff0c;进行开发来实现websocket。 整体流程&#xff1a;开发板先自动寻找指定的wifi并且连接&#xff0c;连接成功后&#xff0c;通过websocket来与服务端连接&#xff0c;连接成功后…

idea项目mapper.xml中的SQL语句黄色下划线去除

问题描述 当我们使用idea开发java项目时&#xff0c;经常会与数据库打交道&#xff0c;一般在使用mybatis的时候需要写一大堆的mapper.xml以及SQL语句&#xff0c;每当写完SQL语句的时候总是有黄色下划线&#xff0c;看着很不舒服。 解决方案&#xff1a; 修改idea的配置 Edi…

实验01 ASP.NET网站的建立及运行

【实验目的】 &#xff08;1&#xff09;能熟悉ASP.NET的开发环境Visual Studio Community 2019&#xff08;VSC 2019&#xff09;。 &#xff08;2&#xff09;能通过解决方案管理网站&#xff0c;会在解决方案中创建网站。 &#xff08;3&#xff09;会设置IIS 10中的网站…

Node.js(1)

跨平台的node.js运行环境&#xff0c;使开发者可以搭建服务器端的js应用程序 它可以编写服务器端程序&#xff1b; 编写数据接口&#xff1b;提供网页资源浏览功能 前端工程化&#xff1a;开发集成的所有工具和技术 与浏览器环境的区别 node.js环境中没有DOM和BOM fs模块-读…

Linux下安装多个nodejs并映射Jenkins

背景 需要Jenkins中切换多个Node&#xff0c;比如nodejs16和nodesjs18,所以在宿主机按照好这两个版本&#xff0c;然后再映射到Jenkins容器中 步骤 1.下载地址 https://nodejs.org/dist/ 放到 cd /opt/soft/2.解压 tar -xzvf node-v16.20.0-linux-x64.tar.gz tar -xzvf n…

SSM SpringBoot vue智能手机参数分析平台

SSM SpringBoot vue智能手机参数分析平台 系统功能 首页 图片轮播 新闻资讯 手机信息 手机百科 登录注册 个人中心 后台管理 登录注册 个人中心 手机百科管理 用户管理 手机对比管理 配置管理 新闻资讯管理 手机信息管理 对比信息管理 我的收藏管理 开发环境和技术 开发语言…

Kafka配置SASL_PLAINTEXT权限。常用操作命令,创建用户,topic授权

查看已经创建的topic ./bin/kafka-topics.sh --bootstrap-server localhost:9092 --list 创建topic 创建分区和副本数为1的topic ./bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --topic acltest --partitions 1 --replication-factor 1 创建kafka用户 …