可随意转载。Update2023.11.25

这个算法来自微软和高校的联合团队,发布于2023年7月,已经有研究者用它和GLIGEN、LLava算法做过整合。开源了训练代码。

SEEM的github.com地址

摘要

在这项工作中,我们提出了SEEM,这是一个可用提示词和支持交互式的模型,可以同时在图像中分割所有事物,如图1所示。在SEEM中,我们提出了一种新颖的解码机制,可以实现对所有类型的分割任务进行多样化提示,旨在实现类似于大型语言模型(LLMs)的通用分割界面。具体而言,SEEM设计具有四个期望:

  • 多功能性。我们引入了一个新的视觉提示,统一了不同的空间查询,包括点、框、涂鸦和蒙版,这可以进一步推广到不同的参考图像;
  • 组合性。我们学习了文本和视觉提示之间的联合视觉-语义空间,促进了两种提示类型的动态组合,以满足各种分割任务的需求;
  • 互动性。我们进一步将可学习的内存提示纳入解码器,通过从解码器到图像特征的掩膜引导的交叉注意力,保留分割历史;和
  • 语义感知。我们使用文本编码器将文本查询和蒙版标签编码为相同的语义空间,用于开放词汇分割。

我们验证了SEEM在各种分割任务中的有效性。结果是,SEEM模型在最少1%的监督下,在9个数据集上实现了在交互式分割、通用分割、参考分割和视频对象分割方面的高性能。此外,SEEM展示了显著的泛化能力,使其成为一个通用的图像分割方法。

一、前言

图像分割可以说是计算机视觉中最重要但也最具挑战性的问题之一。在过去,我们已经在一系列分割任务中取得了显著的进展,包括实例分割、语义分割和全视图分割等[1, 2, 3, 4, 5, 6, 7]。最近,我们观察到在不同方面出现了更灵活的分割模型的明显趋势:1)从封闭集到开放集。许多最新的研究提出要利用对比学习方法或预训练的多模态基础模型(例如,CLIP [8])来使分割模型更容易迁移到未见过的概念[9, 10, 11, 12];2)从通用到指代分割。除了通用分割会根据预定的一组概念对图像进行全面分割外,基于语言的指代分割提供了一种用户友好的方式,可以根据任意文本短语分割特定区域[13, 14, 15, 16, 17];以及3)从一次性到交互式分割。在实践中,分割模型不一定能在一轮内产生令人满意的掩模。因此,人们还在研究如何通过人与模型之间的紧密互动逐渐改善分割结果[18, 19, 20, 21]。

尽管已经付出了前述努力来设计更强大和可行的分割模型,但我们仍然缺乏一个能够容纳各种类型人类提示并处理研究中独立作品中不同分割任务的通用分割接口。相反,大型语言模型(LLMs)已经成为语言任务的通用交互接口,从早期的模型如GPT-3 [22]和T5 [23],到通过高级提示[25, 26, 27]和思维链[28, 29, 30]增强的对话代理[24]。在这项工作中,我们致力于创建一个用于在图像中同时分割所有东西的通用接口。在这个接口上,我们的目标是通过单一模型以可提示的方式统一所有分割任务。为了实现这一目标,我们在掩模解码器中提出了一种新的提示方案,具有四个重要属性:多功能性、组合性、互动性和语义感知性。具体来说,我们建议将点、掩模、文本、框甚至是来自另一幅图像的引用区域编码到相同的联合视觉-语义空间中。因此,我们的模型可以处理输入提示的任何组合,实现强大的组合性。为了实现互动性,我们进一步引入了内存提示,用于压缩先前的分割信息,然后与其他提示进行通信。至于语义感知性,我们的模型可以为任何输出分割提供开放式语义标签。

通过提出的提示方案,我们构建了一个称为SEEM的“分割一切,无处不在”的模型,由一个简单的Transformer编码器-解码器架构[31, 6]和一个额外的文本编码器[11, 32]组成。在SEEM中,解码过程模拟了一个生成式LLM,但具有多模态输入-多模态输出的接口。图像编码器和文本编码器被用作提示编码器,以编码所有类型的查询,然后输入解码器。具体而言,我们通过从图像编码器中汇总相应的视觉特征,将所有空间查询(即点、框、涂鸦和掩模)编码为视觉提示,并使用文本编码器将文本查询转换为文本提示。通过在多样的分割任务上进行训练,我们的模型学会处理各种提示,对齐视觉和文本提示,并通过它们之间的交叉注意力促进它们的协同作用。因此,我们的单一模型在预训练后在所有分割任务上都取得了竞争性的性能。由于所有5种不同类型的提示都映射到联合视觉-语义空间,我们可以可行地组合提示以解决模糊性,获得更好的分割结果并实现对未见用户提示的零-shot适应。此外,我们的模型可以立即推广到以示例图像段作为提示和以零-shot方式进行视频对象分割的情况。除了强大的泛化能力之外,与SimpleClick [32]等对手相比,SEEM在交互式分割方面也更加高效。由于我们将提示作为解码器的输入,在与人类进行多轮交互时,我们的模型只需要在开始时运行特征提取器一次,并在每轮轻量级解码。最终,我们构建了一个具有单一预训练模型的分割接口,该模型可以分割每个带有语义的对象(所有东西),覆盖图像中的每个像素(无处不在),并支持提示的所有可能组合(一次性)。总之,我们的贡献有三个方面:

• 我们设计了一种新的提示方案,可以将各种用户意图编码成在联合视觉-语义空间中的提示,为各种分割任务提供强大的灵活性,并具有对未见提示或其组合的泛化能力。
• 我们构建了SEEM,一种通用且互动的分割界面,将新设计的提示机制整合到轻量级解码器中,适用于所有分割任务,使模型具备通用性、组合性、互动性和语义感知的特性。
• 我们进行了广泛的实验证明和可视化,展示了我们的模型在许多分割任务上的强大性能,包括开放词汇通用分割、互动分割、指代分割以及带有组合提示的分割任务。

二、相关工作

交互式分割 交互式分割是通过与用户输入互动完成对象分割任务。这是一个长期存在的问题,并已取得相当大的进展[33, 34, 35, 20, 21, 36]。一般而言,交互式分割类型有点击、框、多边形和涂鸦,其中点击方式最为普遍。与我们同期的研究成果SAM [36]提出了一个在1100万张图像和11亿个蒙版上训练的基于提示词的分割模型。它将提示词作为通用分割的交互方式。尽管SAM展示了强大的零样本性能,但它只能做分割,缺乏分割块的语义理解能力。此外,它的提示类型仅限于点、框和文本,而我们的模型还可以引用另一张图像的指定区域作为提示词。

通用分割 在计算机视觉领域,对视觉概念进行分割一直是一个持久的挑战,如其广泛的文献[37, 38, 39, 40]所证明。通用分割技术包括几个子任务,包括实例分割、语义分割和全景分割[4, 2, 3],每个子任务专注于不同的语义级别。例如,语义分割旨在基于其相应的语义类别识别和标记图像中的每个像素[41, 6, 42]。另一方面,实例分割涉及将属于相同语义类别的像素分组为单独的对象实例[4, 43, 7]。最近,基于Transformer [44]架构的检测变换器(DETR)[31]在分割任务[45, 6, 7, 46, 47]方面取得了显著的进展。然而,这些方法不能识别训练集中不存在的对象,这限制了模型的有限词汇大小。

统一的视觉模型 统一的视觉模型[11, 48, 49, 36, 50]最近引起了很多关注,因为它们在概括到各种任务和灵活性方面具有优势。这些模型可以处理多个视觉任务或数据分布。其中,一些[11, 48, 49]仅使用一个模型同时训练多个任务,因此可以处理所有训练任务而无需在每个目标任务上微调。另一方面,SAM [36]和SegGPT [50]提出了培训策略,使其模型能够以零样本方式处理新任务和数据分布。第二种方法更为有利,因为在训练过程中无需解决任务之间的冲突。

三、研究内容

3.1 模型设计

SEEM采用通用的编码器-解码器架构,同时还采用复杂的查询和提示之间的交互方案,如图2(a)所示。给定输入图像I ∈ RH×W×3,首先使用图像编码器提取图像特征Z。然后,SEEM解码器基于查询输出Omh(蒙版嵌入)和Och(类嵌入)预测蒙版M和语义概念C,这些与文本、视觉和记忆提示⟨Pt、Pv、Pm⟩发生交互。

图 3:训练和评估过程中的查询和提示词交互。 (a) 可学习的查询被复制为对象、定位和视觉查询,并为每个任务使用相同的权重集。 (b) 任何两种令牌之间的注意力掩码(在算法中表示为 qpm)。 “暂定” 表示交互未经训练,但能够在不进行任何修改的情况下进行推理。

在这里,Qh表示可学习的查询,而Pt、Pv、Pm分别表示文本提示、视觉提示和记忆提示。在训练过程中,Qh被复制用于通用、指代和交互分割,如图3所示。相应的提示通过自注意力机制与它们的查询进行交互。在推断时,可学习的查询可以自由地与所有提示进行交互,从而实现零-shot组合。我们的设计受到了X-Decoder [11]中成功实践的启发。然而,我们强调了在等式(1)中用红色标记的差异,这些差异允许实现具有以下特性的图像分割的通用模型:

全能 在SEEM中,我们引入了视觉提示 Pv 来处理所有非文本输入,例如点、框、涂鸦以及来自另一张图像的引用区域。当仅靠文本提示无法确定正确部分时,这些非文本查询对于消除用户意图的歧义是有益的。对于交互式分割,先前的研究要么将空间查询转换为掩模并馈送到图像主干[20],要么为每种输入类型(点、框)使用不同的提示编码器[36]。第一种方法在应用中可能过于繁重,因为每次交互都要通过特征提取器处理图像。第二种方法很难推广到未见过的提示。为了解决这些限制,我们提出了一个视觉采样器(图2(a)),将所有类型的非文本查询转换为位于相同视觉嵌入空间的视觉提示:

在这段文本中,”Zˆ” 是从目标图像(即,Zˆ = Z)或参考图像提取的特征映射,而 “s ∈ {points, box, scribbles, polygons}” 是由用户指定的采样位置。我们首先通过点采样从图像特征中汇聚相应区域 [6]。对于所有视觉提示,我们在由提示指定的区域中均匀插值至多 512 个点特征向量。我们提出的方法的一个显著优点是,视觉提示与文本提示自然地对齐,因为我们的模型通过全景和引用分割不断学习一个共同的视觉-语义空间。

多模态 在实际操作中,用户可能会使用不同或组合的提示类型来表达他们的意图。因此,对于现实世界的应用来说,一种组成性的提示方法是至关重要的。然而,在模型训练过程中,我们面临两个问题。首先,训练数据通常只涵盖单一类型的交互(例如,无、文本、视觉)。其次,尽管我们使用视觉提示来统一所有非文本提示,并将它们与文本提示对齐,但它们的嵌入空间仍然存在本质上的差异。为了缓解这个问题,我们提出使用不同类型的提示与不同的输出相匹配。考虑到视觉提示 Pv 来自图像特征,而文本提示 Pt 来自文本编码器,我们通过将它们与相应的掩码嵌入 Omh 或类别嵌入 Och 相匹配来选择视觉和文本提示的匹配输出索引:

其中,IoUmask 是真实掩码和预测掩码之间的交并比。所提出的独立匹配方法在所有提示类型上均优于仅与 Omh 或 Och 匹配的方法。训练后,我们的模型熟悉所有提示类型,并支持各种组合,如无提示、一种提示类型或同时使用相同模型和权重的视觉和文本提示。特别是,即使SEEM-Decoder从未以这种方式进行过训练,视觉和文本提示可以简单地连接并输入SEEM-Decoder。

交互性 交互式分割通常无法在一次操作中完成,需要多轮交互进行细化,类似于ChatGPT这样的对话代理。在SEEM中,我们提出了一种称为内存提示 Pm 的新类型提示,并使用它们将上一迭代的掩码知识传递到当前迭代。与以前使用网络编码先前掩码的方法不同[20, 36],我们没有引入额外的模块,而只是简单地使用了几个内存提示。这些内存提示通过使用掩码引导的交叉注意力层[6]编码历史信息:

其中,Mp 是先前的掩码,Z 是图像特征图。通过这种方式,交叉注意力仅在先前掩码指定的区域内生效。然后,更新后的内存提示 Plm 通过自注意力与其他提示进行交互,以传递当前轮的历史信息。

专注分割 与以往的类别不可知交互分割方法(例如Simple Click [20]和同时进行的工作SAM [36])不同,我们的模型以零样本方式为所有种类的提示组合生成语义标签到蒙版,因为我们的视觉提示特征与文本特征在联合视觉语义空间中对齐。如图3所示,语义标签是直接使用Och(视觉查询的输出)和文本嵌入来计算的。尽管我们在交互分割中没有使用任何语义标签进行训练,但计算得到的logits在联合视觉语义空间中很好地对齐,从而受益良多。

3.2 模型流水线和损失函数

我们在算法1中使用类似PyTorch伪代码的方式总结了所提方法的训练和评估流程。SEEM使用全景分割、指代分割和交互式分割的损失的线性组合进行训练。

其中α = 2, β = γ = 5, a = 0.2, b = c = 2,CE=cross-entropy,BCE=binary cross entropy,DICE=dice loss

四. 实验

五、结论

我们提出了SEEM,它能够一次性(所有可能的提示组合)在任何地方(所有像素)对所有语义进行分割。除了执行通用的开放词汇分割外,SEEM还可以与用户交互,接受来自用户的不同类型的视觉提示,包括点击、框、多边形、涂鸦、文本以及来自另一图像的参考区域。这些视觉提示通过提示编码器映射到一个联合的视觉-语义空间中,使我们的模型适用于各种提示,并能够灵活组合不同的提示。大量实验证明我们的模型在几个开放式词汇和交互式分割基准上表现出竞争力。进一步的研究揭示了我们的模型在基于多样化用户意图准确分割图像方面的强大泛化能力。我们希望我们的工作能够成为通向图像分割及更多领域的通用交互界面的基石。