摘要
CLIP和Segment Anything Model(SAM)是杰出的视觉基础模型(VFMs)。SAM在多个领域的分割任务中表现出色,而CLIP以其零样本识别能力而闻名。本文深入探索了将这两种模型整合到一个统一框架中。具体来说,我们介绍了Open-Vocabulary SAM,这是一个受SAM启发的模型,旨在同时进行交互式分割和识别,利用两个独特的知识迁移模块:SAM2CLIP和CLIP2SAM。前者通过蒸馏和可学习的变换器适配器将SAM的知识适应到CLIP中,而后者将CLIP的知识转移到SAM中,增强其识别能力。在各种数据集和检测器上的广泛实验表明,Open-Vocabulary SAM在分割和识别任务中的有效性,显著优于简单地结合SAM和CLIP的朴素基线。此外,借助图像分类数据训练,我们的方法可以分割和识别大约22,000个类别(图1中显示了示例)。
1、引言
Segment Anything Model(SAM)[27]和CLIP[23]在各种视觉任务中取得了显著进展,分别在分割和识别方面展示了卓越的泛化能力。特别是,SAM已经通过大量掩码标签数据集的训练,使其能够通过交互式提示适应广泛的下游任务。另一方面,CLIP通过数十亿文本-图像对的训练,赋予了它前所未有的零样本视觉识别能力。这导致了许多研究[17,62,69,74]探索将CLIP扩展到开放词汇任务,如检测和分割。
尽管SAM和CLIP提供了相当大的优势,但它们在原始设计中也存在固有的局限性。例如,SAM缺乏识别其所识别片段的能力。为了克服这一点,已经做出了整合分类头部的努力[29, 80],但这些解决方案仅限于特定数据集或封闭集设置。另一方面,CLIP使用图像级对比损失进行训练,面临着将其表示适应于密集预测任务的挑战。为了解决这个问题,一些研究[17,54,63,64,72]已经研究了如何对齐CLIP的表示以进行密集预测。然而,这些方法往往是特定于数据集的,并不普遍适用。例如,一些研究专注于在ADE-20k[81]数据集上进行开放词汇分割,使用COCO[41]数据集进行预训练。如图2(a)和(b)所示,以朴素的方式合并SAM和CLIP被证明是低效的。这种方法不仅会产生大量的计算开销,而且会产生次优的结果,包括对小规模物体的识别,正如我们的实验结果所证明的。
在本研究中,我们通过一个统一的编码器-解码器框架来解决这些挑战,该框架整合了CLIP编码器和SAM解码器,如图2(c)所示。为了有效地桥接这两个不同的组件,我们引入了两个新颖的模块,SAM2CLIP和CLIP2SAM,促进双重知识转移。首先,我们使用SAM2CLIP将知识从SAM编码器蒸馏到CLIP编码器。这种蒸馏过程不是直接在CLIP编码器上执行的,CLIP编码器保持冻结状态以维持其现有知识,而是在一个轻量级的类似变换器的适配器上执行的,使用逐像素蒸馏损失。适配器接收多尺度特征作为输入,目标是将CLIP特征与SAM表示对齐。在解码侧,CLIP2SAM模块将知识从冻结的CLIP编码器转移到SAM解码器。特别是,我们设计了一个具有RoIAlign操作员的特征金字塔适配器,与SAM解码器共同训练。
秉承SAM的精神,我们通过利用已建立的语义数据集的力量,包括COCO[41]、LVIS[18]和ImageNet-22k[11],来增强我们模型的识别能力。这种策略将我们的模型提升到SAM的多功能性,赋予它分割和识别任何对象的增强能力,如图1所示。由于我们的方法是对SAM的适应,它足够灵活,可以与各种检测器集成,使其适合封闭集和开放集环境。
我们在一系列数据集和场景中进行了广泛的实验,包括封闭集和开放词汇交互式分割。值得注意的是,与基本组合基线相比,我们的方法展示了优越的性能,在COCO数据集上使用各种检测器实现了超过2%的IoU和3%的mAP改进。特别是在LVIS的识别案例中,我们的方法比之前的适配器实现了超过20%的改进。此外,通过将我们的方法扩展到更多样化的数据集,我们已经开发了一个适用于实际应用的多功能、交互式工具。有关详细结果,请参见第4节和附录。
2、相关工作
视觉语言模型(VLMs)。视觉-语言预训练已经催生了具有对齐的图像和文本表示的模型[22, 23, 25, 38, 50]。最近关于对比视觉-语言预训练的研究[23, 50, 55, 76]显著提高了识别模型的泛化能力。同时,有几项工作[25, 31-33]旨在为下游多模态任务设计更好的优化目标,包括字幕和视觉问答。在这些工作中,CLIP模型[50]是在数十亿规模的图像-文本对上预训练的,已经在广泛的数据集上展示了令人印象深刻的零样本分类性能。我们的目标是在预训练的VLMs的帮助下使SAM能够执行识别任务。
开放词汇密集预测。这个方向旨在通过文本描述的任意类别识别区域视觉概念,包括目标检测[17, 61, 62, 66, 75]、语义分割[34, 35, 37, 68, 83, 84]和全景分割[67, 71, 72]。这需要在VLMs[23, 50, 55]的帮助下对齐区域和文本表示。对于开放词汇检测,一系列工作[17, 54, 63, 74]从CLIP模型中提取知识以识别新对象。与基于蒸馏的方法不同,一些工作[28, 65]直接在冻结的CLIP CNNs上构建目标检测器。对于开放词汇分割,典型的工作[12, 67, 69, 72]首先生成类别无关的掩码提议,然后使用CLIP对提议进行分类。最近,一些工作[67, 72]在冻结的扩散模型[51]和CLIP模型上构建掩码生成器。同时,一些研究[24, 45, 48, 49]专注于类别无关的分割和检测,以丰富在各个领域的泛化能力。然而,大多数方法都是在特定数据集上进行训练和测试的。我们的方法基于SAM,提供了一个通用的、交互式的工具,以支持不同的开放词汇检测器。
计算机视觉中的提示。提示,起源于自然语言处理(NLP)中的上下文学习,如Brown等人[4]和Rubin等人[52]的工作,利用大型语言模型通过上下文特定的输入-输出对推断未见任务。最近的研究[1, 3, 15, 43, 58, 59, 85]探索了视觉任务的上下文学习。常见的技术涉及掩码图像建模[2, 19, 73]用于跨任务视觉提示,如Painter[58]和Bar等人[3]所采用的方法。SAM[27]通过交互式分割展示了上下文学习,使用点、框和掩码等多样的视觉提示,尽管它仅限于类别无关的掩码预测。同时,其他研究[8, 16, 21, 36, 40]集中在视觉基础模型的高效参数调整上,通常专注于单一模型。我们的工作独特地桥接了两个模型,CLIP和SAM,探索它们结合的潜力,以增强通用分割和识别能力。
分割任何事物模型。SAM[27]提出了一个新的数据引擎和便携式模型,用于通用目标分割。随后的研究将SAM作为各种视觉任务的交互式分割工具,包括定位[42]、跟踪[10]、蒸馏[77, 82]、医学分析[6, 60]和生成[78]。虽然大多数研究使用SAM来增强下游任务,但还没有人将VLMs和SAM整合到一个统一的模型中,能够对新类别进行分割和识别。我们的工作首次尝试将VLMs的能力与SAM合并,以增强任务的多功能性。
3、方法论
我们首先在第3.1节中回顾了SAM、CLIP和组合基线。然后,我们在第3.2节详细说明了我们的开放词汇SAM。最后,我们在第3.3节介绍了模型的训练细节和应用。
3.1、预备知识和基线
SAM。SAM是一个由提示驱动的分割器。它包含一个图像编码器、一个提示编码器和一个轻量级掩码解码器。这里,我们以框提示为例。我们表示输入图像为 X ∈ R H × W × 3 X \in \mathbb{R}^{H \times W \times 3} X∈RH×W×3,输入视觉提示为 P ∈ R N × 4 P \in \mathbb{R}^{N \times 4} P∈RN×4,其中 H × W H \times W H×W是空间尺寸, N N N是框提示的数量。图像编码器是一个修改过的视觉变换器(ViT)。它将图像编码成密集特征 F S A M ∈ R H 16 × W 16 × d F_{SAM} \in \mathbb{R}^{\frac{H}{16} \times \frac{W}{16} \times d} FSAM∈R16H×16W×d。提示编码器将 P P P编码成稀疏提示 Q s p Q_{sp} Qsp。同时,为掩码解码器初始化掩码标记 Q m a s k Q_{mask} Qmask和IoU标记 Q I o U Q_{IoU} QIoU。
掩码解码器接收图像特征 F F F、稀疏提示 Q s p Q_{sp} Qsp、掩码标记 Q m a s k Q_{mask} Qmask和IoU标记 Q I o U Q_{IoU} QIoU作为输入。所有输入将被连接并用轻量级的双向变换器编码。因此,每个掩码标记被转换为动态线性分类器,能够为每个稀疏提示计算前景掩码概率。同时,IoU标记负责预测每个掩码的置信度分数。考虑到SAM的数据注释具有多粒度性质,包括实例和部分级别, Q m a s k Q_{mask} Qmask自然编码了多粒度。我们的研究专门集中在对象级别,这与流行的现实世界应用和数据集如COCO[5]和LVIS[18]更紧密对齐。
CLIP。给定输入图像 X X X和相应的标题 C C C,CLIP框架处理这些模态以产生相应的嵌入:从其图像编码器派生出的图像嵌入 E I E_{I} EI,以及从其文本编码器获得的文本嵌入 t t t。在开放词汇对象检测和分割的背景下,CLIP的能力被用来超越固定类别标签,以替代传统分类器。例如,在开放词汇检测场景中,第 c c c个对象类别的文本嵌入 t c \mathbf{t}_{\mathbf{c}} tc是通过将类别名称输入CLIP文本编码器生成的。这个过程可以使用单一模板提示,如“a photo of {category}”,或多个提示模板。随后,对于由RoIAlign[20]产生的给定区域嵌入 r r r,第 c c c个类别的分类分数计算如下:
p c = exp ( τ ⋅ < r , t c > ) ∑ i = 0 C exp ( τ ⋅ < r , t i > ) p_{c}=\frac{\exp \left(\tau \cdot<\mathbf{r}, \mathbf{t}_{\mathbf{c}}>\right)}{\sum_{i=0}^{C} \exp \left(\tau \cdot<\mathbf{r}, \mathbf{t}_{\mathbf{i}}>\right)} pc=∑i=0Cexp(τ⋅<r,ti>)exp(τ⋅<r,tc>)
其中 < ⋅ , ⋅ > <\cdot, \cdot> <⋅,⋅>表示余弦相似度, τ \tau τ是可学习的或固定的温度参数,用于重新调整值。
组合基线。我们为结合CLIP和SAM引入了两种不同的基线,如图2(a)和(b)所示。第一种方法,称为“裁剪图像基线”,使用SAM掩码解码器的输出来分割和调整原始输入图像的大小。然后,这个处理过的图像作为CLIP图像编码器的输入,并且与CLIP文本嵌入一起,使用公式(1)对掩码进行分类。第二种方法,称为“裁剪CLIP图像特征基线”,采用相同的初始CLIP特征提取步骤。然而,这种方法中,使用SAM解码器预测的掩码来裁剪CLIP图像特征。这些掩码特征的后续池化产生最终标签,类似于基线(a)。
虽然两种基线都支持图像的零样本推断,但它们在特定数据集上表现出明显的知识差距。为了解决这个问题,我们从最近在视觉提示或适配器[8, 85]中的进展中获得灵感。具体来说,我们提出将额外的可学习标记作为适配器纳入,以微调模型,以提高在下游数据集上的性能。这些零样本推断能力和微调模型构成了我们在第4.1节详细说明的各种实验条件下的主要比较基线。
3.2、开放词汇SAM
尽管两种基线模型都可以通过视觉提示或适配器得到增强,正如我们在第4节将讨论的,它们在现实世界应用中面临几个挑战。首先,组合模型中两个独立主干的要求增加了计算成本(问题1)。其次,SAM和CLIP分别通过监督学习和对比学习进行训练,对于这种多样化架构之间的知识迁移研究有限(问题2)。第三,尽管集成了适配器,但在识别小物体方面仍存在显著的性能差距(问题3)。第四,缺乏探索将开放词汇能力整合到SAM和CLIP中,特别是在特征融合和数据扩展的背景下(问题4)。我们的工作旨在一个统一而有效的框架中解决这些问题。
统一架构。我们为分割和识别设计了一个统一的架构来解决问题1。具体来说,我们采用冻结的CLIP视觉编码器作为我们的特征提取器。然后,SAM的掩码解码器和提示编码器都附加在CLIP编码器后面。开放词汇SAM的元架构如图2(c)所示,更详细的版本如图3所示。这种统一架构是通过SAM2CLIP实现的,它通过蒸馏将SAM的知识转移到CLIP,以及CLIP2SAM,它利用CLIP知识并与SAM掩码解码器结合用于识别。我们为冻结的CLIP主干选择了基于卷积的视觉主干,与之前强调其在捕获空间结构方面的优越性的研究一致[28,70]。不同CLIP主干的有效性在第4.2节中进一步探索。
SAM2CLIP。为了解决Prob.2,我们设计了SAM2CLIP模块,使用适配和蒸馏方法来弥合SAM和CLIP学习到的特征表示之间的差距。通过全面的实验,我们发现使用蒸馏损失 L distill L_{\text {distill }} Ldistill 以及基于变换器的适配器[13],可以产生有效的结果。具体来说,蒸馏过程涉及一个简单的逐像素方法,其中SAM-Huge作为教师,配备适配器的冻结CLIP扮演学生的角色。然后我们实施逐像素均方误差(MSE)损失,以使SAM特征 F sam F_{\text {sam }} Fsam 与CLIP特征 E I E_{I} EI对齐,如下所示:
L distill = MSE ( F sam , E I ) L_{\text {distill }}=\operatorname{MSE}\left(F_{\text {sam }}, E_{I}\right) Ldistill =MSE(Fsam ,EI)
我们设计了一个多尺度适配器
A
sam
2
clip
A_{\text {sam } 2 \text { clip }}
Asam 2 clip 来对齐CLIP和SAM的特征。特别是,我们采用金字塔CLIP特征
E
I
i
,
i
=
1
,
2
,
3
E_{I}^{i}, i=1,2,3
EIi,i=1,2,3作为输入。这些金字塔特征包含高分辨率和语义信息,这对于语义分割[26]至关重要。MSE损失被修改如下:
L
distill
=
MSE
(
F
sam
,
A
sam
2
c
l
i
p
(
Fusion
(
E
I
i
)
)
)
,
L_{\text {distill }}=\operatorname{MSE}\left(F_{\text {sam }}, A_{\text {sam } 2 c l i p}\left(\operatorname{Fusion}\left(E_{I}^{i}\right)\right)\right),
Ldistill =MSE(Fsam ,Asam 2clip(Fusion(EIi))),
其中
A
sam2clip
A_{\text {sam2clip }}
Asam2clip 由若干变换器层组成,融合通过双线性上采样和加法实现。有了SAM2CLIP,我们甚至可以在计算成本更低的情况下,实现与SAM-Huge相当的分割结果。如第4.2节详述,我们观察到使用特别为骨干适配设计的基于卷积的方法[8,14]会导致次优结果。这可能是因为SAM编码器的固有架构完全基于ViT。对于有效的知识转移,对称结构至关重要。通过实施SAM2CLIP,我们能够在各种检测器上实现与SAM-Huge相当的分割结果,同时显著降低计算成本。
CLIP2SAM。这个模块旨在利用CLIP的知识来增强SAM解码器的识别能力。一个直接的方法是将标签标记 Q label Q_{\text {label }} Qlabel 附加到现有的掩码标记 Q mask Q_{\text {mask }} Qmask 和IoU标记 Q IoU Q_{\text {IoU }} QIoU 上。使用 Q label Q_{\text {label }} Qlabel ,我们引入了一个专门的适配器来促进从冻结的CLIP到SAM解码器的知识转移。随后,增强的 Q label Q_{\text {label }} Qlabel ,结合提示编码器的输出和适配的CLIP特征,被送入双向变换器。在交叉注意力过程之后,改进的 Q label Q_{\text {label }} Qlabel 通过多层感知器(MLP)进一步精细化,确保与CLIP的文本嵌入更好地对齐。最终标签通过对改进后的标签标记和CLIP文本嵌入之间的距离进行计算,如公式(1)。
然而,这种设计未能识别小物体(问题3),因为适配只涉及单尺度特征,主要关注分割。我们提出了一个简单但有效的解决方案来处理这个问题,为CLIP2SAM适配引入了一个轻量级特征金字塔网络(FPN)。如图3所示,金字塔网络提取多尺度CLIP特征作为输入。然后,我们应用RoI-Align[20]操作来提取区域特征。像R-CNN框架[20]一样,我们应用一个卷积层和一个MLP来学习特征嵌入,而不在掩码解码器中引入交叉注意力。特别是,对于点提示,我们首先通过SAM解码器获得相应的掩码,并通过相应的掩码获得框。对于框提示,我们可以直接将其发送到FPN进行区域特征提取。鉴于我们的方法只包含少量卷积层,与原始SAM相比,它并没有显著增加计算成本。
开放词汇。为了应对Prob.4,开放词汇挑战,我们利用冻结的CLIP骨干中嵌入的知识,这有助于在推理过程中识别新颖和未见过的物体。与之前的研究[28,64]一致,我们通过几何平均值融合从CLIP骨干和CLIP2SAM学到的类别分数。此外,我们还研究了扩大词汇量的各种策略,如与多个数据集联合训练,详见第4.2节。我们的实验结果表明,模型可以有效地与大型数据集扩展。
3.3、训练和应用
训练和损失函数。我们首先使用SAM1B(1%)数据集[27]来训练SAM2CLIP模块,将SAM的知识转移到开放词汇SAM中,损失为
L
distill
L_{\text {distill }}
Ldistill (公式(3))。然后,我们使用COCO或LVIS的分割掩码和标签注释联合训练CLIP2SAM和掩码解码器。最终损失函数为
L
=
λ
c
l
s
L
t
−
c
l
s
+
λ
c
e
L
t
−
c
e
+
λ
dice
L
t
−
dice
L=\lambda_{c l s} L_{t_{-c l s}}+\lambda_{c e} L_{t-c e}+\lambda_{\text {dice }} L_{t-\text { dice }}
L=λclsLt−cls+λceLt−ce+λdice Lt− dice 。这里,
L
t
.
c
e
L_{t . c e}
Lt.ce是掩码分类的交叉熵(CE)损失,
L
t
−
c
e
L_{t_{-c e}}
Lt−ce和
L
t
−
dice
L_{t-\text { dice }}
Lt− dice 分别是用于分割的掩码交叉熵(CE)损失和Dice损失[46]。此外,我们还采用了与ImageNet数据集联合训练的Open-Vocabulary SAM进行演示(见图5)。
推理和演示工具。我们的模型像SAM一样执行推理,使用点和框作为视觉提示。具体来说,我们在第4节中测试框和点作为编码器的视觉提示。在我们的项目页面上,我们展示了我们模型的演示,该模型可以进行分割和识别提示。
4、实验
数据集和指标。我们主要使用COCO[41]和LVIS[18]数据集进行实验。此外,我们还使用部分SAM数据(1%)进行SAM2CLIP知识转移。对于COCO,我们报告了实例分割任务的封闭集和开放词汇设置的结果。特别是,我们遵循Zareian等人[75],将48个基础类别分为有注释的类别和没有注释的目标类别。我们使用基础类别注释进行训练。对于LVIS数据集,我们采用开放词汇设置,并报告新类别的 A P rare A P_{\text {rare }} APrare 结果。此外,我们还报告每个框或点提示的准确性作为参考,因为我们的目标是为SAM添加识别能力。同时,每个提示与其真实掩码的交集比(IoU)也被采用以验证我们方法的分割能力。与之前开放词汇分割任务不同,其中提议是由检测器本身生成的,我们称我们的设置为开放词汇交互式分割,其中框或点提示作为条件输入。
基线。如图2(a)和(b)所示,基于不同的适配器设计,我们将这些适配器附加到组合模型的不同位置。例如,使用CoOp[85]时,我们通过将可学习标记与CLIP特征结合来附加可学习标记。对于几个基于卷积的适配器[8],我们在SAM或CLIP骨干上添加额外的卷积层以进行公平比较。默认情况下,我们采用SAM-huge和CLIP R50x16。
实现细节。我们在PyTorch[47]中实现我们的模型,同时使用MMDetection框架[7]和SAM代码库[27]。我们使用8个A100 GPU进行分布式训练。每个小批量有两张图像。优化器是AdamW[44],权重衰减为0.0001。我们采用Cheng等人[9]在预训练和训练过程中采用的全图像大小进行随机裁剪。所有类别名称都转换为CLIP文本嵌入,遵循之前的作品[17]。我们为了公平比较,训练每个模型12个周期。由于计算成本的限制,我们不采用SAM数据和COCO数据的联合训练。我们首先在SAM数据上进行SAM2CLIP的训练,然后在COCO或LVIS数据上微调模型。更多细节请参阅补充材料。
4.1、主要结果
与使用真值的组合基线的比较。为了避免其他模块的影响,我们首先在Tab. 1中展示了我们模型的识别能力。与简单的组合方法相比,添加各种适配器与联合共训练可以获得更好的结果。然而,在COCO和LVIS上的识别能力仍然有限。我们的开放词汇SAM在作为视觉提示的框和点上都取得了最佳结果。我们在LVIS数据集上观察到更显著的增益。我们认为LVIS包含更多的小物体,这比COCO更具挑战性。我们的方法可以解决Prob. 2,并带来超过20%的准确率提升。尽管分割质量非常好(在COCO和LVIS上使用框提示的IoU约为80),我们的方法仍然实现了2%的IoU改进。这表明我们对掩码预测和分类的联合共训练的有效性。与作为提示的框相比,使用点作为提示更具挑战性,因为点的位置线索比框弱得多。然而,我们的方法仍然优于组合基线或带有适配器的基线。
与开放词汇检测器组合基线的比较。
在表2中,我们采用了更具挑战性的设置,使用现有的开放词汇检测器的框预测来模拟存在偏差的交互式分割过程。我们选择了代表性的Detic[86]作为开放词汇检测器。同样,我们的方法在COCO和LVIS数据集上都取得了最佳性能。特别是在COCO上,与之前的作品[85]相比,我们的方法以更低的参数成本实现了3.0个掩码mAP的改进。更多检测器的结果可以在补充材料中找到。
与不同检测器上的SAM比较。
在表3中,我们还测试了我们模型和原始SAM在两种不同检测器上的掩码预测质量。我们的方法比原始SAM表现更好,并且与在COCO上微调的SAM相当。值得注意的是,我们的开放词汇SAM比SAM有更低的计算成本和参数。可视化比较。在图4中,我们与特征裁剪基线进行了比较。我们的模型在分类小和稀有物体以及处理遮挡场景方面表现出更好的性能。
作为零样本注释工具的模型。
除了COCO和LVIS标准数据集训练外,本着SAM的精神,我们还通过用更多数据训练来扩大我们的模型规模。特别是,我们采用了更多的检测数据(V3Det[57]、Object365[53])和分类数据(ImageNet22k[11])。由于成本显著,我们没有对这个设置与其他基线进行比较。相反,我们将我们的方法适应为一个交互式注释工具,能够分割和识别超过22,000个类别。
4.2、消融研究和分析
SAM2CLIP和CLIP2SAM的有效性。
我们首先在表4中验证了我们提出的两个模块的有效性。我们采用基线的图像裁剪变体进行比较。特别是,通过共享单一主干,我们观察到参数数量和FLOPs显著减少,分割性能略有下降。这种轻微的下降是由SAM2CLIP模块在训练过程中SAM数据和COCO数据之间的域差距引起的。然而,在添加我们的CLIP2SAM模块并与掩码分类和预测联合共训后,分割和分类都观察到了显著改进,计算成本仅略有增加。
SAM2CLIP的详细设计。
在表5中,我们探索了开放词汇SAM训练第一阶段中SAM2CLIP的详细设计。结果表明,当采用多尺度特征时,蒸馏最有益,这表明高分辨率特征和高层语义对于将CLIP的特征与SAM的特征对齐都很重要。
CLIP2SAM的详细设计。
在表6中,我们对CLIP2SAM模块进行了广泛的设计。我们比较了两种设计:一个简单的分类标记与交叉注意力(Cls Token)和这个标记与掩码池化CLIP特征的组合(CLS Token & CLIP MLP fusion)。这些设计比第一行显示的组合基线效果更好。然而,由于分辨率限制,这些变体不能很好地处理小物体,如图4所示。相比之下,我们的设计包含了一个轻量级FPN,显著提高了性能。
不同CLIP主干的消融。
在表7中,我们探索了冻结CLIP视觉主干的效果。我们没有添加CLIP2SAM模块。受到最近作品[28, 64, 70, 72]的启发,基于CNN的CLIP封装了更多的结构信息,这对我们的目标是好的,因为我们有位置敏感的视觉提示作为输入。因此,我们避免了SAM2CLIP的朴素ViT设计,而是采用了基于CNN的CLIP。正如表中所示,我们发现ConvNext large实现了最佳性能。
5、结论
我们介绍了开放词汇SAM,一种受SAM启发的交互式分割和识别方法。与以前的开放词汇检测和分割方法不同,我们的方法首次探索了交互式开放词汇分割。鉴于用户的输入,如框或点,所提出的方法可以交互式地分割和标记每个视觉提示。与组合基线和各种视觉适配器相比,我们提出的CLIP2SAM和SAM2CLIP在各种设置中都高效有效。我们的开放词汇分割与不同的检测器兼容,包括开放词汇检测器和封闭集检测器。有了更多的数据,我们的模型扮演着类似SAM的角色,为分割和实例标注提供了有效的注释工具。特别是,我们的方法可以执行超过22K类的大词汇量分割和识别。我们希望我们的研究能为结合不同形式的视觉基础模型的优势提供坚实的基线。
更广泛的影响和局限性。
我们的研究通过将CLIP和SAM结合到一个框架中,推进了交互式分割和识别。这种整合在提高注释和图像编辑应用方面具有巨大的潜力。当前的局限性在于缺乏对交互式任务掩码提示的探索,我们计划在未来的工作中解决这个问题。
附录
概览。在补充材料中,我们提供了更多细节和结果来支持我们的主要论文。内容如下:我们首先在第A节中介绍我们方法的更多细节和讨论。然后,在第B节中报告更多结果。最后,我们在第C节中提供一个视频演示,用于方法介绍,并讨论未来的工作(见introduction.mp4和tools_demo.mov)。
A、方法讨论
与最近的联合SAM和CLIP模型比较。几项最近的工作[29, 56, 79]也探索了将分割和识别作为一体的系统。Recognize Anything [79]采用了基于标签的模型。然而,该工作的重点是通过自动文本语义解析构建大规模标签数据集。此外,它不能执行交互式分割。SAM-CLIP [56]集成了多任务学习、持续学习技术以及师生蒸馏,其目标是构建语义分割模型。另一方面,我们的开放词汇SAM是SAM的一个变体,可以支持交互式分割和掩码分类,具有灵活的用户输入。因此,SAM-CLIP与提出的开放词汇SAM正交。同时,Semantic-SAM [29]扩展了Mask-DINO [30],具有细粒度和交互式分割。它包含一个解耦的变换器解码器来生成实体提议,使其成为一个通用的多任务模型。相比之下,我们的模型只包含一个轻量级解码器(SAM解码器)和CLIP2SAM预测。此外,我们的主要探索是利用冻结的CLIP模型的开放词汇能力来增强SAM。因此,我们的方法只需要训练部分参数,并融合了SAM和CLIP中体现的知识。
与开放词汇方法的比较。我们的工作与以前的开放词汇方法正交。具体来说,我们的目标是构建一个类似SAM的模型,具有交互式提示,如点和框。以前的开放词汇方法需要生成区域提议或掩码提议来回忆场景中所有可能的物体。遵循与SAM相同的精神,我们的模型主要采用这些提议进行分割和识别。因此,我们可以将我们的模型部署在各种OV-detectors [64,86]上以实现实例分割,或部署在类别无关的检测器上以实现联合分割和识别。
训练和推理细节。在图6中,我们展示了我们开放词汇SAM训练和推理的更详细可视化。如图所示,训练期间只学习了三个组件,包括SAM2CLIP(129M)、CLIP2SAM(3.8M)和SAM解码器(4.0M)。其余参数被冻结。总参数为304M。在SAM2CLIP蒸馏后,在检测和分类数据集上微调我们的模型时,去掉了重的SAM编码器(637M),这加快了CLIP2SAM过程。
CLIP2SAM模块使用多种数据集的混合进行共训,包括检测、分割和分类任务。具体来说,对于分割,训练集成了掩码和分类标签,而对于检测和分类任务,重点仅在于训练分类头部。分类数据集以其广泛的类别范围而著称,再加上包括最近一些以大词汇量为特色的工作,显著增强了模型的能力。经过这种广泛的共训过程后,我们的模型展现出在单一、统一的框架内识别和分割超过两万个类别类别的显著能力。
B、更多实验结果
在更多检测器上的比较结果。在表8中,我们在各种检测器上将开放词汇SAM与原始SAM(ViT-H)进行比较。我们的方法使用相应检测器生成的分数和标签以及边界框作为掩码生成的提示。值得注意的是,使用强大的检测器ViTDet(Huge),我们的开放词汇SAM实现了与原始SAM相当或更优越的分割。使用不太强大的检测器时,开放词汇SAM的分割能力略有下降。值得注意的是,开放词汇SAM更高效,需要的参数更少,计算资源也比SAM(ViT-H)模型少。
与SAM模型的更多比较。在表9中,我们将我们的方法与几种SAM模型进行比较,重点关注开放词汇识别。我们使用COCO数据集[41]中的真值边界框生成掩码,并使用每实例IoU度量(1IoU)进行评估,如Semantic-SAM [29]。我们的开放词汇SAM在开放词汇设置中识别广泛类别的能力,以及有效的掩码生成方面脱颖而出。
通过更多数据集扩展。我们的开放词汇SAM通过大规模数据集扩展,在COCO验证集上展示了令人印象深刻的零样本分类,详见表10。使用ImageNet-21k (I-21k)[11],一个拥有19,167个类别和图像级监督的数据集,模型在零样本实例级分类中实现了44.5%的准确率。这强调了使用现成的图像级注释进行训练的有效性。此外,纳入像LVIS [18]、Objects365 [53]和V3Det [57]这样的大词汇量检测数据集,它们提供实例级注释,显著提高了分类准确率。为了更全面地了解模型的开放词汇分类能力,请读者观看我们项目页面上的演示视频https://www.mmlab-ntu.com/project/ovsam。
C、失败案例、演示和未来工作
失败案例。在图8中,我们展示了我们的开放词汇SAM不足的两个实例。左边的情况涉及难以区分的细微差别类别标签,即使对人类来说也是如此。右边的场景展示了部分遮挡,其中区分碗和花瓶变得复杂。这些例子突显了我们的模型需要对场景细节发展更细致的理解。
演示简介。除了我们的主要论文和补充文件外,我们还包括了一个介绍视频和一个演示视频。前者提供了对我们工作的简短介绍,以更好地理解,而后者展示了我们开放词汇SAM的演示工具(也请参阅图7进行说明),它可以在许多场景中分割和识别各种类别。更多细节,请参阅我们项目页面:https://www.mmlab-ntu.com/project/ovsam。
未来工作。虽然用户可以使用点选或框选技术高效地与特定对象进行交互,但未来的工作将探索使用粗略掩码或语言描述作为交互式提示。我们打算继续研究这些有前景的新方向。