DenseCLIP: Language-Guided Dense Prediction with Context-Aware Prompting(CVPR2022 )

知识补充:

监督学习(Supervised Learning): 在监督学习中,模型接收带有标签的数据作为输入,其中每个样本都有一个对应的标签或输出。模型的目标是学习如何将输入映射到正确的输出,从而最小化预测与真实标签之间的误差。在训练过程中,模型通过调整参数来最小化损失函数,使得预测值与真实标签之间的差距最小化。监督学习适用于分类和回归等任务。

自监督学习(Self-Supervised Learning): 自监督学习是一种无监督学习的变体,其中模型从未标记的数据中自动学习有用的表示。与监督学习不同,自监督学习不需要人工标记的标签。相反,模型通过将输入数据转换为不同形式的数据或预测输入的某些部分来学习。例如,自监督学习可能要求模型通过输入的一部分来预测输入的其他部分,或者将输入的数据转换为另一种形式,然后再将其转换回来。自监督学习通常用于预训练模型,以生成有用的表示,并在监督学习任务上进行微调。

总的来说,监督学习依赖于带有标签的数据来进行训练,而自监督学习则尝试从未标记的数据中学习有用的表示。自监督学习的目标是通过最大程度地利用数据的丰富结构来自动学习表示,而无需显式标签。

摘要

最近的进展表明,使用对比图像-文本对的大规模预训练可以从自然语言监督中学习高质量的视觉表示。得益于更广泛的监督来源,这种新范式表现出令人印象深刻的下游分类任务和数据集的可转移性。然而,将从图像-文本对中学到的知识转移到更复杂的密集预测任务的问题却很少被研究。在这项工作中,我们通过隐式和显式地利用来自CLIP的预训练知识,提出了一个新的密集预测框架。具体来说,我们将CLIP中的原始图像-文本匹配问题转换为像素-文本匹配问题,并使用像素-文本得分映射来指导密集预测模型的学习。通过进一步使用图像中的上下文信息来提示语言模型,我们能够促进我们的模型更好地利用预训练的知识。我们的方法与模型无关,可以应用于任意密集预测系统和各种预训练的视觉主干,包括CLIP模型和ImageNet预训练模型。大量的实验证明了我们的方法在语义分割、对象检测和实例分割任务上的优越性能。代码可从https: //github.com/raoyongming/DenseCLIP获得。

1.引言

提出问题:最近,为了更好地将CLIP模型转移到下游的视觉分类任务,已经做出了一些努力,采用了NLP领域的提示工程[28]。提出了几种基于学习的提示方法[13,51,56,60]来修改语言模型的输出,以更好地适应新的任务。然而,他们主要关注的是通过图像-文本匹配将CLIP模型转移到分类任务中,这更接近于原始的预训练任务。将知识学习从图像-文本对转移到更复杂的密集预测任务和更通用的设置的问题很少被访问。

"prompt engineering" 指的是从自然语言处理(NLP)领域引入的提示工程方法。在NLP中,提示工程是指设计和构建提示(prompt)或查询,以便有效地利用语言模型进行特定任务的推理或分类。在这种情况下,研究人员尝试将NLP领域中的提示工程方法应用于视觉任务,以更好地将CLIP模型迁移到下游的视觉分类任务中。这种方法旨在利用语言模型的能力来指导视觉任务的执行,从而提高模型在视觉任务中的性能。

提出DenseCLIP:

在本文中,我们研究了如何微调预训练的CLIP模型来完成密集的预测任务。与传统的ImageNet预训练模型相比,一个明显的挑战是上游对比预训练任务和下游逐像素预测任务之间的差距,前者涉及图像和文本的实例级表示,而后者仅基于像素级的视觉信息。为了解决这个问题,我们提出了一个新的语言引导密集预测框架DenseCLIP。如图1 (b)所示,它通过隐式和显式地利用CLIP模型的预训练知识,设计用于各种密集预测任务。利用预训练知识的隐式方法是直接对下游数据集上的模型进行微调。

我们的结果表明,通过对超参数进行一些修改,CLIP模型可以优于传统的ImageNet预训练模型(参见图2中的CLIP结果)。但是直接的方法不能充分利用CLIP模型的潜力。受CLIP中原始对比学习框架的启发,我们提出将CLIP中原始的图像-文本匹配问题转化为像素-文本匹配问题,并使用像素-文本分数映射明确地指导密集预测模型的学习。通过使用Transformer[40]模块进一步使用图像中的上下文信息来提示语言模型,我们能够通过优化文本嵌入来促进我们的模型更好地利用预训练的知识

优化文本嵌入指的是调整文本的表示方式,使其更好地与图像特征相匹配,以便在密集预测任务中更好地指导模型的学习过程。

我们的方法可以是一个即插即用的模块,以改进CLIP预训练模型在现成的密集预测方法和任务上的微调。通过将我们的方法应用于具有挑战性的ADE20K[59]数据集上流行的语义分割框架语义FPN[21],与ImageNet预训练模型相比,我们展示了+4.9%,+4.7%和+2.3%的mIoU改进,与基于ResNet-50, ResNet101[18]和vitb - b[12]的CLIP模型的vanilla微调相比,我们分别显示了+3.9%,+2.4%和+1.2%的mIoU改进。我们还观察到目标检测和实例分割任务的显著改进。值得注意的是,我们展示了一个配备了我们的方法和轻量级语义FPN解码器的ResNet-101模型,在ADE20K上可以实现46.5%的mIoU,仅用1/3的计算就优于DeepLabV3+[7]和UperNet[45]等最先进的解决方案。

此外,我们的框架还可以应用于任何骨干模型,通过使用预训练的语言模型来指导密集预测任务的训练。通过将DenseCLIP应用于ImageNet预训练的ResNets[18]和最近的Swin transformer[29],我们观察到显著的改进,并且计算开销很小。我们希望我们的方法能够成为一种新的通用范式,在预训练语言模型的指导下改进密集预测模型。

图1:传统的“预训练+微调”模式与我们提出的DenseCLIP的比较。预训练+微调范式直接应用图像预训练模型作为编码器的初始化。不同的是,DenseCLIP通过引入新的像素文本匹配任务,并进一步使用图像中的上下文信息来提示预训练的语言模型,将通过图像-文本对比学习学到的知识转移到密集预测模型中。


图2:不同预训练和微调策略对语义分割任务的影响。我们报告了不同预训练的ResNet50[18]模型在ADE20K[59]上的单尺度和多尺度mIoU,包括有监督的ImageNet1K [11] (IN1K)和ImageNet21K [11,36] (IN21K),自监督的MoCoV2[9]和DenseCL[43],以及视觉语言模型CLIP。与常用的ImageNet预训练相比,配备DenseCLIP的大规模视觉语言预训练可以显著提高密集预测性能(+4.9%/+4.1%)。

2. Related Work

预训练和微调。在过去的十年里,计算机视觉的革命是由“预训练+微调”范式驱动的。具体来说,它首先以监督学习[12,18,29,34]或自监督学习[3,8,15,16]的方式在大规模数据集(例如ImageNet [11], JFT [38], Kinetics[4]等)上预训练模型,然后在各种下游任务上对模型进行微调。在NLP领域中,该框架也得到了类似的广泛使用[2],最近发展成为一种提示范式[28],其中下游任务被重新制定,以模拟原始预训练过程中解决的任务。受这些工作的启发,我们探索将大规模视觉语言预训练模型中的知识转移到下游的密集预测任务中。

视觉语言模型。在计算机视觉与自然语言处理领域的交互方面已经有了一系列的研究成果,如文本到图像检索[44]、图像标题[48]、视觉问答[1]、参考分割[19,49,50]等。在这些工作中,视觉语言预训练在过去几年受到越来越多的关注[24,32,37]。作为里程碑,Radford等人设计了一个名为CLIP的大规模预训练模型[33],该模型在大量的图像-文本对上采用了对比学习策略,并在30个分类数据集上显示出令人印象深刻的可转移能力。在这项工作的激励下,已经提出了许多后续研究来改进训练策略(例如CoOp [60], CLIPAdapter [13], Tip-adapter[56])或将其应用于其他领域(例如ActionCLIP[41])。然而,很少有人尝试通过CLIP模型执行密集预测任务。与我们最相关的工作是CPT[51],它通过对图像和文本的共同引用部分进行彩色标记,将密集预测重新表述为填空问题。不同的是,我们在本文中考虑了一个标准的密集预测设置,其中我们使用像素-文本关系来指导密集预测模型的训练,并通过上下文感知提示方法进一步优化图像上下文的语言嵌入。

密集的预测。与传统的实例级分类问题相比,密集预测任务(如语义分割[59]、实例分割[27]、目标检测[27])更具挑战性,因为它们需要在像素级或区域级对细粒度表示进行建模。根据“预训练+微调”的模式,之前的文献已经开发了各种密集预测模型,如FCN[30]、PSPNet[57]、FPN[25]、UperNet[45]等。为了减轻以往有监督预训练设置的沉重标注成本,人们提出了许多用于密集预测的自监督预训练方法[3,43,46,47]。与这些现有技术正交,我们引入了一种新的微调策略,利用大规模视觉语言预训练模型中的知识,并使用语言信息来指导学习过程。

3. Approach

3.1. Preliminaries: Overview of CLIP

我们首先回顾对比语言-图像预训练(CLIP)[33]框架来说明我们方法的动机。CLIP由两个编码器组成,包括一个图像编码器(ResNet[18]或ViT[12])和一个文本编码器(Transformer[40])。CLIP的目标是通过对比目标在预训练期间对齐视觉和语言的嵌入空间。

为了学习更多可转移的预训练知识,CLIP收集了4亿对图像-文本对用于模型训练。将CLIP知识转移到下游分类任务中,一种简单而有效的方法[33]是基于“一张[CLS]的照片”等模板构建一组文本提示。,其中[CLS]可以用实际的类名代替。然后给定一个图像,可以使用CLIP计算图像与嵌入空间中的文本提示之间的相似度,并将得分最高的类视为最终预测。近年来,一些研究[13,60]表明CLIP可以在很少的例子下获得较强的分类性能。因此,它提出了一个有趣的问题:CLIP令人印象深刻的能力是否可以转移到更复杂的视觉任务,如密集预测?

在密集预测任务中利用视觉-语言预训练模型的挑战。如何在密集预测任务中利用视觉-语言预训练模型是一个鲜为人知的问题。尽管一种简单的解决方案是只使用图像编码器作为预训练的2D骨干,但文本编码器中包含的语言先验也非常重要。其次,与[13, 60]中讨论的分类任务不同,将CLIP中的知识转移到密集预测任务中更加困难,因为前者涉及到图像和文本的实例级表示,而后者仅基于视觉信息,但期望像素级的输出。

语言先验指的是在文本编码器中包含的关于语言的先验知识,这些知识可以帮助模型更好地理解和处理与语言相关的任务。在这种情况下,作者认为在密集预测任务中利用这些语言先验是至关重要的。

3.2. Language-Guided Dense Prediction 

为了解决上述问题,我们提出了语言引导的密集预测框架,该框架可以更好地利用CLIP预训练模型中的语言先验。我们框架的管道如图3所示。我们的一个重要发现是,除了全局图像特征,我们还可以从CLIP图像编码器的最后一层提取语言兼容的特征映射。为了说明这一点,我们首先详细描述CLIP图像编码器的体系结构。

  • 以ResNet[18]编码器为例,共四个阶段,{Xi}_{i=1}^{4}为四个feature maps
  • CLIP做了一个小的修改[33],增加了一个注意力池层,CLIP首先对x4 \epsilon\mathbb{R}^{H_{4}W_{4}\times C}执行全局平均池化,得到一个全局特征{\bar{X}_{4}}\epsilon\mathbb{R}^{1\times C} ,H4;W4;C为来自主干第4阶段的特征图的高度、宽度和通道数
  • 连接的特征[{\bar{X}_{4}};X_{4}]然后被送入多头自注意层[40](MHSA):

在CLIP的标准训练过程中,使用全局特征\bar{Z}作为图像编码器的输出,而其他输出z通常被忽略。然而,我们发现z有两个有趣的性质:(1)z仍然保留了足够的空间信息,因此可以作为特征映射。(2)MHSA对每个输入元素都是对称的,z的表现可能类似于\bar{z},这与语言特性非常一致。

基于上述观察,我们可以使用z作为语言兼容的特征映射。同样值得注意的是,对于像ViT[12]这样的架构,可以通过排除输出的class token来获得z

  • 为了获得文本特征,我们可以从模板“a photo of a [CLS]”中构造文本提示。CLS为k个类别的名字
  • CLIP文本编码器提取的特征为t\epsilon\mathbb{R}^{K\times C}
  • 我们使用语言兼容的特征图z和文本特征t来计算像素-文本分数图:

\hat{z}\hat{t}是在通道维度上进行了“L2归一化”的z和t的版本。这些得分图表征了像素-文本匹配的结果,是我们框架中最关键的组成部分之一。首先,这些得分图可以被视为具有较低分辨率的分割结果,因此我们可以使用它们来计算辅助分割损失。其次,我们可以将这些得分图与最后一个特征图连接起来,以明确地融入语言先验,即x_{4}^{'}=[x4,s]\epsilon \mathbb{R}^{H_{4}W_{4}\times (C+K)}。我们的框架是模型无关的,因为修改后的特征图可以像在分割或检测中一样直接使用,只需要进行一些微小的修改(例如,FPN [25]的输入维度)。

L2 normalized version是指在通道维度上对特征进行标准化,使得每个通道的均值为0,方差为1。这种标准化可以使得不同通道的特征具有相似的尺度,有助于提高模型的稳定性和泛化能力。

图3:DenseCLIP的总体框架。DenseCLIP首先提取图像嵌入和k类文本嵌入,然后计算像素-文本得分映射,将CLIP中原始的图像-文本匹配问题转化为像素-文本匹配进行密集预测。这些分数图被输入到解码器中,并使用真值标签进行监督。为了更好地利用预先训练的知识,DenseCLIP使用图像中的上下文信息来用Transformer模块提示语言模型。

 在DenseCLIP中,提取图像嵌入是指将输入的图像通过一个预训练的视觉模型(如ResNet、ViT等)进行前向传播,得到一个固定维度的向量表示,这个向量表示被称为图像嵌入。这个过程可以看作是将图像转换为一个向量,这个向量可以被用于后续的像素-文本匹配和任务损失计算。 而k类文本嵌入是指对于给定的k个类别,我们使用一个预训练的语言模型(如BERT、GPT等)对每个类别的文本描述进行编码,得到一个固定维度的向量表示,这个向量表示被称为文本嵌入。这些文本嵌入将被用于后续的像素-文本匹配,以指导模型学习如何将图像中的像素与相应的文本描述进行匹配。

3.3. Context-Aware Prompting 

Language-domain prompting.与原来的CLIP使用“一张“cls”照片”等人为设计的模板不同,作为文本提示,CoOp[60]引入了可学习的文本上下文,通过使用反向传播直接优化上下文,在下游分类任务中实现更好的可转移性。受CoOp[60]的启发,我们还在框架中使用可学习的文本上下文作为基线,其中仅包括语言域提示。然后文本编码器的输入变成:

其中p\epsilon\mathbb{R}^{N\times C}是可学习的文本上下文,e_{k}\epsilon \mathbb{R}^{C}是第k个类的名称的嵌入。

Vision-to-language prompting. 包括视觉上下文的描述可以使文本更准确。例如,“一张猫在草地上的照片。比“一张猫的照片”更准确。因此,我们研究了如何使用视觉上下文来优化文本特征。一般来说,我们可以使用Transformer decoder中的交叉注意机制[40]来模拟视觉和语言之间的交互。

我们提出了两种不同的上下文感知提示策略,如图4所示。我们考虑的第一个策略是预语言模型提示,简称预模型提示。我们传递特征[\bar{z};z]到Transformer解码器来编码视觉上下文:

  • q\epsilon\mathbb{R}^{N\times C}是一组可学习的查询,v_{pre}\epsilon\mathbb{R}^{N\times C}是提取的视觉上下文。将式(3)中的p替换为视觉上下文v,(p为可学习的文本,这里的v是通过图像特征学习到的内容,通过这种学习的方式,不断完善文本描述),以形成文本编码器的输入。

预语言模型提示是指在DenseCLIP中使用文本描述来指导图像密集预测任务的过程。具体来说,我们使用预训练的语言模型(如BERT、GPT等)对每个类别的文本描述进行编码,得到一个固定维度的向量表示,这个向量表示被称为文本嵌入。然后,我们将这些文本嵌入与图像嵌入进行匹配,得到像素-文本得分图,用于指导后续的密集预测任务,如语义分割或目标检测。这个过程可以看作是将文本描述转换为一个向量表示,然后将这个向量表示与图像嵌入进行匹配,以指导模型学习如何将图像中的像素与相应的文本描述进行匹配。预语言模型提示可以提高模型的泛化能力和准确性,特别是在数据较少的情况下。

在DenseCLIP中,可学习查询是通过在训练过程中使用反向传播来优化一个可学习的查询向量得到的。这个查询向量可以被看作是一个特定任务的文本描述的表示,它会随着任务损失的最小化而不断调整,以最大化任务的性能。这个查询向量可以被用于指导图像密集预测任务,如语义分割或目标检测。 具体来说,可学习查询发挥作用的过程如下:

1. 初始化查询向量:在训练开始时,可学习查询向量会被初始化为一个随机的向量。

2. 反向传播优化:在每一轮训练中,可学习查询向量会通过反向传播来优化,以最大化任务损失。这意味着查询向量会根据任务的性能而不断调整,以适应当前的任务和数据。

3. 匹配图像嵌入:优化后的可学习查询向量会与图像嵌入进行匹配,得到像素-文本得分图。 4. 指导密集预测任务:像素-文本得分图会被用于指导后续的密集预测任务,如语义分割或目标检测,以提高模型的泛化能力和准确性。 通过这个过程,可学习查询可以根据任务的需求自适应地调整,从而提高模型在不同任务和数据上的性能。

 另一种选择是在文本编码器之后细化文本特征,即后模型提示。在这个变体中,我们使用CoOp[60]来生成文本特征,并直接将它们用作Transformer解码器的查询:

这种实现鼓励文本功能找到最相关的视觉线索。然后,我们通过残差连接更新文本特征:

  •  \gamma \epsilon\mathbb{R} ^{C}是一个可学习的参数,用于控制残差的缩放。
  • \gamma初始化为非常小的值(例如,10−4),以最大限度地保留文本特征中的语言先验。

虽然这两种变体的目标相同,但我们更喜欢模型后提示,主要有两个原因:(1)模型后提示是有效的。预模型提示需要文本编码器在推理期间进行额外的前向传递,因为它的输入依赖于图像。在模型后提示的情况下,我们可以在训练后存储提取的文本特征,从而减少文本编码器在推理过程中带来的开销。(2)实证结果表明,模型后提示比模型前提示效果更好。

图4:两种不同的情境感知提示策略。:模型前提示直接使用图像上下文来生成所需的文本输入,而模型后提示则改进类嵌入。

3.4. Instantiations

Semantic segmentation. 正如第3.2节所讨论的,我们的框架是模型不可知的,可以应用于任何密集的预测管道。此外,我们建议使用一个辅助目标来更好地利用我们的像素文本分数图在分割中。由于分数映射s\epsilon\mathbb{R}^{H_{4}W_{4}\times K} 可以被视为较小的分割结果,因此我们计算其分割损失:

  • τ = 0.07 是一个温度系数,它是根据参考文献 [16] 中的方法得到的。
  • y ∈ {1, . . . , K}^H4W4 是地面真实标签,其中 K 是类别数,H4W4 是特征图的空间维度。
  • 辅助分割损失的作用是帮助特征图更快地恢复其局部性,这对于密集预测任务(如语义分割和目标检测)是有益的。

Object detection & instance segmentation.  在这种情况下,我们没有基础真值分割标签。为了构造与分割中类似的辅助损失,我们使用边界框和标签来构建一个二进制目标\tilde{y}\epsilon{0,1}^H4W4×K。辅助目标可以定义为二值交叉熵损失:

Applications to any backbone models. 我们框架的另一个有趣的用法是,我们可以用任何骨干(例如,ImageNet预训练模型和自监督模型)替换CLIP的图像编码器。虽然视觉主干的输出与文本编码器之间可能没有很强的关系,但在语言指导下主干可以更好更快地学习。换句话说,我们可以利用预训练文本编码器的语言先验来提高任何预训练图像主干的性能,这使得DenseCLIP成为一个更通用的框架,可以利用从大规模预训练中学习到的自然语言先验来改进密集预测。

4. Experiments

为了评估我们的DenseCLIP的有效性,我们在密集预测任务上进行了大量的实验,包括语义分割、对象检测和实例分割。下面的小节描述了实验、结果和分析的细节。

4.1. Semantic Segmentation

Setups. 我们首先在ADE20K[59]上评估我们的DenseCLIP, ADE20K是一个具有挑战性的大规模语义分割数据集,涵盖了150个类别。ADE20K包含用于训练的20K图像和用于验证的2K图像。按照惯例[20,45],我们报告验证集上的mIoU。为了公平比较,我们还包括flops和参数数量。

Implementation details.我们使用流行的语义FPN[21]框架进行实验,以评估我们的DenseCLIP。具体来说,我们采用CLIP的预训练图像编码器作为分割主干,直接使用语义FPN[21]作为解码器。我们考虑三种图像主干,分别是ResNet-50[18]、ResNet-101[18]和vitb[12]。对于语言域提示,我们使用上下文长度为8。用于提取视觉上下文的Transformer解码器由6层组成,我们将头的数量设置为4。我们在训练过程中固定了文本编码器,以保留从大规模预训练中学习到的自然语言知识。为了减少计算成本,在Transformer模块之前,将图像嵌入(image embeddings)和文本嵌入(text embeddings)投影到较低的维度(256维)。直接使用默认的训练策略在密集预测任务上的表现不佳,只有21.9%的mIoU,比ImageNet预训练模型低15.6%。因此,我们进行了两个关键的修改:(1)使用AdamW优化器代替默认的SGD优化器,这是受到最近在视觉Transformer中的进展的启发;(2)为了更好地保留预训练权重,将图像编码器的学习率设置为其他参数的1/10。在消融实验中对基线模型采用了相同的训练策略,以进行公平比较。这些修改和训练策略的使用可以提高模型的性能和泛化能力,从而在密集预测任务中获得更好的结果。

Main results.我们在表1中报告了我们的DenseCLIP在ADE20K上使用三种不同主干的语义分割结果。我们在单尺度(SS)和多尺度(MS)测试中包括FLOPs、参数数量和mIoU。实验结果表明,对于相同的主干,我们的带有简单语义FPN的DenseCLIP可以在很大程度上优于使用更复杂解码器的最先进方法。与之前使用扩展骨干网的作品(ResNetD8[20,53,54,57])不同,DenseCLIP中的ResNet编码器更接近标准ResNet,因此我们的DenseCLIP具有更少的FLOPs。此外,我们的DenseCLIP在ResNet-50、ResNet-101和ViT-B主干上比原始ImageNet预训练基线高+4.9%、+4.7%和+2.3% mIoU (SS),并且可以接受额外的计算成本。DenseCLIP也比vanilla微调策略(CLIP + Semantic FPN)高出3.9%、2.4%和1.2% mIoU。

表1:在ADE20K上的语义分割结果。我们比较了DenseCLIP和现有方法在使用相同主干时的性能。我们报告了单尺度和多尺度测试的mIoU, FLOPs和参数数量。使用fvcore库以1024 × 1024输入测量FLOPs。结果表明,我们的DenseCLIP以更低的复杂度大大优于其他方法。我们的模型和使用相同设置训练的基线用灰色突出显示。

Ablation studies. 为了进一步证明DenseCLIP不同成分的作用,我们对ResNet-50[18]骨干网进行了详细的消融研究,结果见表2。首先,我们通过采用上述更好的训练策略表明,我们实现的ResNet-50基线具有比[10]更高的mIoU (38.6% vs。37.5%)。其次,我们发现CLIP预训练的ResNet-50比ImageNet预训练的ResNet-50高出1%,这表明大规模视觉语言预训练模型可以更好地转移到下游视觉任务中。更好地利用语言先验,我们采用语言引导的语言域提示,并见证了显著的性能提升(+2.5% mIoU)。最后,我们比较了两种方法来执行视觉语言提示以结合视觉上下文。我们发现模型前提示和模型后提示都可以提高性能,而模型后提示效果更好,计算效率更高。因此,在其余的实验中,我们都选择模型后提示作为默认配置。

表2:消融实验。我们证明,使用更少的额外flop和参数,执行 post model视觉到语言提示可以产生更好的性能。

Effects of language-guided pre-training and fine-tuning.

我们比较了不同预训练和微调策略在ADE20K上的性能,以更好地揭示语言引导范式的潜力,如图2所示。我们考虑在ImageNet1K[11]和ImageNet21K[11,36]上进行监督预训练,通过MoCoV2[16]和DenseCL[43]进行自监督预训练,以及视觉语言预训练。我们证明了视觉语言预训练模型(CLIP)可以通过 vanilla fine-tuning优于ImageNet1K预训练模型。此外,通过语言引导的上下文提示微调,我们的DenseCLIP甚至超过了ImageNet21K预训练模型。这些有希望的结果表明语言先验可以在很大程度上促进视觉模型在下游密集预测任务中的应用。

4.2. Object Detection and Instance Segmentation

Setups. 我们还进行了实验,将我们的DenseCLIP应用于COCO上的对象检测和实例分割任务[27],COCO包含118K张训练图像和5K张验证图像。我们采用了两个广泛使用的框架,RetinaNet[26]和Mask R-CNN[17]。接下来[17],我们报告了标准AP、IoU=0.5/0.75时的AP和跨尺度AP。对于Mask R-CNN,我们报告了用于对象检测和实例分割的mAPs,因为这两个任务是同时执行的。

Implementation details. 对于目标检测,我们采用ResNet-50和ResNet-101作为主干。我们使用AdamW优化器训练所有模型12个epoch,批大小为16,如[5]所示。特别是对于RetinaNet,我们在训练开始时看到了一个超大的损失,这使得模型难以收敛。因此,我们使用最大2范数为0.1的梯度裁剪来保护预训练的权重。

Results analysis.使用retanet[26]和Mask R-CNN[17]的结果分别总结于表3和表4。对于retanet的目标检测,我们比较了DenseCLIP与ImageNet1K预训练模型和vanilla CLIP微调对检测任务的影响。我们可以观察到,DenseCLIP比ImageNet1K预训练模型的性能高出+1.5%和+2.6% AP。同时,它也在ResNet-50和ResNet-101主干上提高了+0.9%和+0.6% AP的vanilla微调策略。

对于Mask R-CNN,我们观察到DenseCLIP在可承受的计算预算内实现了对象检测和实例分割任务的一致改进。特别是在实例分割方面,我们的DenseCLIP在ResNet50和ResNet101骨干网上以+2.9%和+2.5%的掩码AP优于ImageNet1K预训练模型,并且还以+0.8%和+0.7%的掩码AP优于vanilla微调策略。DenseCLIP在实例分割任务上的显著改进表明我们的像素文本匹配在概念上适合于分割

表3:基于retanet框架的COCO val2017目标检测[26]。我们将DenseCLIP框架与ImageNet/CLIP预训练模型的vanilla fine-tuning进行比较。我们发现,DenseCLIP可以更好地利用语言先验,以便更好地进行培训。

 4.3. DenseCLIP for Any Visual Backbone

先前的实验已经证明了我们的DenseCLIP框架的有效性。然而,由于DenseCLIP是专门为利用预训练CLIP模型中包含的视觉语言关系而设计的,因此DenseCLIP的泛化能力可能会受到某种程度的质疑:DenseCLIP是否只适用于CLIP图像编码器?为了回答这个问题,我们进行了实验来验证我们的DenseCLIP是否也可以很好地与其他主干配合使用。

扩展实际上很简单:我们可以简单地用任何给定的2D预训练图像模型替换CLIP图像编码器。尽管新主干的特征映射与CLIP文本编码器输出的文本特征之间没有很强的相关性,但我们假设,如果我们像以前一样冻结文本编码器来保留语言先验,那么文本编码器将引导主干更好地适应下游任务。

为了验证上述假设,我们选择了两个具有代表性的2D模型,分别是使用最广泛的CNN模型ResNet[18]和最新的视觉变压器Swin[29]。根据[21]和[29]中的标准设置,我们对ResNet模型使用Semantic FPN[21]框架,对Swin模型使用UperNet[45]框架。实验结果如表5所示,我们报告了单尺度和多尺度测试的ADE20K的mIoU。我们证明了我们的DenseCLIP可以持续改进所有基线模型。

具体来说,DenseCLIP可以为带有语义FPN的ResNet-50/101带来约2:5%的单尺度mIoU改进[21],为带有UperNet的swing - t /S带来约0:8%的改进[45]。这些结果清楚地表明,我们的DenseCLIP可以通过语言先验成功地引导任何预训练的2D骨干,从而提高性能。由于文本编码器可以在训练后被移除,我们的方法提供了一种低成本的解决方案来改进任意密集的预测模型。尽管这些性能仍然落后于我们使用CLIP图像编码器的模型,但本节的研究结果提供了一种解决方案,可以将从大规模视觉语言预训练中学到的人类知识推广到更广泛的模型中。我们期待这将成为未来视觉和语言研究的一个有趣的方向。

表4:基于Mask R-CNN框架的COCO val2017目标检测与实例分割结果[17]。我们的DenseCLIP优于ImageNet/CLIP预训练的基线模型,特别是在实例分割任务上。

表5:应用DenseCLIP到任何骨干。配备我们的DenseCLIP的图像主干(如ImageNet预训练的ResNet[18]和Swin[29])受益于语言先验,并享受显着的性能提升。我们报告了ADE20K数据集上的mIoU,用于单尺度(SS)和多尺度(MS)测试。

4.4. Visualization

为了更好地展示DenseCLIP的优越性,我们在图5中提供了几个定性结果。我们比较了我们的方法和基线的分割图,发现DenseCLIP在识别整体对象方面更好

图5:ADE20K的定性结果。我们将基于ResNet-101和两个基线模型的DenseCLIP的ADE20K验证集上的分割结果可视化。

5. Conclusion and Discussion

在本文中,我们提出了一个新的框架,DenseCLIP,将知识从视觉语言预训练模型(CLIP)转移到下游的密集预测模型,DenseCLIP是一个与模型无关的框架,用于将预训练的视觉语言知识与上下文提示策略一起使用。该框架可以应用于各种密集预测任务,包括语义分割、对象检测和实例分割。我们进行了大量的实验来证明我们方法的优越性能。

限制和社会影响。虽然我们的方法在分割方面取得了很大的进步,但是我们发现在检测方面的进步并不明显。我们推测这是因为预训练的CLIP图像编码器缺乏局部性,在CLIP预训练过程中不存在局部性约束,而以对象为中心的任务只能提供较不密集的监督。我们认为通过在预训练时引入密集监督,或者在预训练后更好地恢复局部性,可以进一步改进DenseCLIP。本文提出了一种通用的密度预测方法。由于我们的方法不是针对特定的应用,所以它不直接涉及社会问题。

总结:

1.本文提出的问题:

如何将预训练的CLIP模型fine-tune到密集预测任务中。相比传统的ImageNet预训练模型,CLIP模型的一个独特挑战是上游对比性预训练任务和下游的像素级预测任务之间存在差距,前者涉及到图像和文本的实例级表示,而后者仅基于像素级别的视觉信息。

2.创新点

  • 提出了一种新的语言引导的密集预测框架DenseCLIP,旨在将预训练的CLIP模型应用于密集预测任务,如语义分割、目标检测和实例分割。
  • 引入了可学习的查询向量,通过在训练过程中使用反向传播来优化可学习的查询向量,以指导图像密集预测任务,从而提高模型的泛化能力和准确性。
  • 使用了辅助分割损失来帮助特征图更快地恢复其局部性,这有助于密集预测任务的性能提升。
  • 对CLIP模型进行了修改和训练策略的调整,以适应密集预测任务,包括使用AdamW优化器、调整学习率等。
  • 在语义分割、目标检测和实例分割任务上进行了广泛的实验证明了DenseCLIP方法的优越性能。

辅助分割损失是在密集预测任务(如语义分割)中使用的一种损失函数。在DenseCLIP中,辅助分割损失的作用是帮助特征图更快地恢复其局部性,这对于密集预测任务是非常有益的。具体来说,辅助分割损失是通过对像素-文本得分图进行处理,以帮助模型更好地学习特征图的局部信息。在训练过程中,通过最小化辅助分割损失,模型可以更好地理解像素级别的语义信息,从而提高密集预测任务的性能和准确性。

具体来说,对于像素-文本得分图,可以采用一些技巧来处理,例如使用softmax函数将得分图转换为概率分布,然后计算交叉熵损失。另外,可能还会引入一些参数,如温度系数,用于调节得分图的分布。这些处理方式可以帮助模型更好地学习像素级别的语义信息,从而提高密集预测任务的性能和准确性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值