论文基础信息如下
Abstract
我们介绍Segment Anything(SA)项目:这是一个全新的任务、模型和图像分割数据集。通过在数据收集循环中使用我们高效的模型,我们建立了迄今为止最大的分割数据集(远远超过其他数据集),包含超过10亿个掩码和1100万张获得许可且尊重隐私的图像。该模型被设计和训练为可提示性,因此它可以将零样本迁移到新的图像分布和任务上。我们对其在多个任务上的能力进行评估,并发现其零样本性能令人印象深刻,通常与或甚至优于以前的完全监督结果相竞争。我们正在发布Segment Anything Model (SAM)和对应的数据集(SA-1B),其中包含10亿个掩码和1100万张图像,旨在促进计算机视觉基础模型的研究。您可以在segment-anything.com 获取这些资源。
1. Introduction
大规模预训练于网络规模数据集的大型语言模型正在以强大的零样本和少样本泛化能力革新自然语言处理。这些“基础模型”能够在训练时没有见过的任务和数据分布上进行泛化。这种能力通常通过提示工程来实现,即使用手工创建的文本提示语激励语言模型生成适用于当前任务的有效文本回应。当使用网络上丰富的文本语料库进行规模化训练时,这些模型的零样本和少样本表现与微调模型相比表现出惊人的相似甚至匹配(在某些情况下)。实证趋势显示,这种性能随着模型规模、数据集大小和总的训练计算能力的增加而改善。
基础模型在计算机视觉领域也得到了一定程度的探索,尽管规模较小。最明显的例子是通过对网络上的文本和图像进行对齐来训练模型。例如,CLIP和ALIGN使用对比学习来训练文本和图像编码器,使其对齐两种模态。训练完成后,经过工程处理的文本提示使得模型可以零样本泛化到新的视觉概念和数据分布。这样的编码器还能有效地与其他模块组合,实现下游任务,例如图像生成(例如DALL·E [83])。虽然在视觉和语言编码器方面取得了很多进展,但计算机视觉涵盖的问题范围远远超出这个范围,并且对于许多问题,缺乏充足的训练数据。
在这项工作中,我们的目标是构建一个用于图像分割的基础模型。也就是说,我们希望开发一个可预训练的模型,并在广泛的数据集上进行预训练,使用一种能够实现强大泛化的任务。通过这个模型,我们旨在利用提示工程来解决各种新数据分布下的下游分割问题。
这个计划的成功取决于三个要素:任务、模型和数据。为了开发它们,我们对图像分割提出以下问题:
- 什么任务能够实现零样本泛化?
- 对应的模型架构是什么?
- 哪些数据可以支持这个任务和模型?
这些问题是相互交织在一起的,需要一个综合性的解决方案。我们首先定义一个可以提供强大的预训练目标并支持各种下游应用的分割任务。这个任务需要一个能够灵活提示并且可以实时输出分割掩膜的模型,以支持交互使用。为了训练我们的模型,我们需要一个多样化、大规模的数据来源。不幸的是,目前没有一个适用于分割任务的大规模网络数据源;为了解决这个问题,我们建立了一个”数据引擎”,即我们通过使用高效的模型来辅助数据收集,并利用新收集到的数据来改进模型。接下来,我们将介绍每个相互连接的组件,然后介绍我们创建的数据集以及实验证明我们方法的有效性的实验。
任务(2) 在自然语言处理(NLP)和最近的计算机视觉领域中,基础模型是一种有前途的发展,可以通过使用“提示”技术来为新数据集和任务执行零样本和少样本学习。受到这一工作的启发,我们提出了可提示分割任务,其目标是在给定任何分割提示的情况下返回一个有效的分割掩码(见图1a)。提示简单地指定在图像中进行分割的内容,例如,提示可以包括空间或文本信息来识别一个对象。“有效输出掩码”的要求意味着,即使提示可能存在歧义并可能指代多个对象(例如,衬衫上的一个点既可能表示衬衫本身,也可能表示穿着衬衫的人),输出应该至少对其中一个对象生成一个合理的掩码。我们将可提示分割任务用作预训练目标,并通过提示工程来解决一般的下游分割任务。
模型(3) “可提示分割任务和现实世界使用的目标对模型架构施加了约束。特别是,模型必须支持灵活的提示,需要在摊销的实时计算掩码以允许交互使用,并且必须具有歧义感知能力。令人惊讶的是,我们发现一个简单的设计满足了所有三个约束条件:一个强大的图像编码器计算图像嵌入,一个提示编码器嵌入提示,然后两个信息源在一个轻量级的掩码解码器中结合,预测分割掩码。我们将这个模型称为“Segment Anything Model”,或者SAM(参见图1b)。通过将SAM分成图像编码器和快速提示编码器/掩码解码器,相同的图像嵌入可以在不同的提示中复用(并且其成本可以摊销)。给定一个图像嵌入,提示编码器和掩码解码器可以在Web浏览器中从提示中预测出一个掩码,时间为约50毫秒。我们关注点、框和掩码提示,并且还展示了对自由文本提示的初始结果。为了使SAM具有歧义感知能力,我们设计它可以为单个提示预测出多个掩码,从而使SAM能够自然地处理歧义,例如衬衫与人的示例。
数据引擎(4) 。为了实现对新数据分布的强大泛化能力,我们发现有必要在一个大而多样的掩码集上训练SAM,超过任何已经存在的分割数据集。尽管对于基础模型来说,通常的方法是在线获取数据,但掩码并不是自然丰富的,因此我们需要一种替代策略。我们的解决方案是构建一个“数据引擎”,即我们与模型一起开发,并进行模型内循环的数据集注释(见图1c)。我们的数据引擎有三个阶段:辅助手动、半自动和全自动。在第一阶段,SAM协助注释员进行掩码注释,类似于经典的交互式分割设置。在第二阶段中,SAM可以通过提示可能的物体位置,自动生成部分物体的掩码,而注释员则专注于注释剩余的物体,从而增加了掩码的多样性。在最后阶段,我们使用一个规则的前景点网格来提示SAM,从而平均每张图像生成大约100个高质量的掩码。
数据集(5) 。我们的最终数据集SA-1B包含了超过11M个经过许可和隐私保护的图像的1B个掩码(参见图2)。SA-1B是完全自动收集的,使用我们数据引擎的最后阶段,比任何现有的分割数据集[66, 44, 117, 60]多出了400倍的掩码数量,并且经过了广泛的验证,掩码质量和多样性都很高。除了用于训练SAM具有强大和通用性之外,我们希望SA-1B成为构建新基础模型的研究的宝贵资源。
负责任的人工智能(6) 。我们研究并报告了在使用SA-1B和SAM时可能存在的公平性关注和偏见。SA-1B中的图像涵盖了地理和经济多样化的一组国家,我们发现SAM在不同人群之间的表现相似。我们希望这些研究结果使我们的工作在现实世界的应用中更加公平。附录中提供了模型和数据集的详细信息。
实验结果(7) 。我们对SAM进行了广泛的评估。首先,我们使用一个多样化的新套件包含23个分割数据集,发现SAM可以从一个前景点产生高质量的掩码,通常只略低于手动注释的真实标记。其次,我们在使用提示工程的零样本迁移协议下,对各种下游任务进行了一致强大的定量和定性结果评估,包括边缘检测、目标提议生成、实例分割以及对文本到掩码预测的初步探索。这些结果表明,通过提示工程,SAM可以直接应用于解决涉及对象和图像分布的各种任务,而不仅限于SAM的训练数据。然而,我们讨论了第8节中仍有改进空间的问题。
发行。 我们将发布SA-1B数据集,供研究目的使用,并以宽松的开放许可(Apache 2.0)提供SAM。您可以在segment-anything.com上获得SAM的使用权限。此外,我们还提供了一个在线演示展示SAM的功能。
2. Segment Anything Task
我们借鉴了自然语言处理(NLP)中的思想,其中下一个标记预测任务被用于构建基础模型的预训练,并通过提示工程来解决各种下游任务[10]。为了构建一个用于分割的基础模型,我们的目标是定义一个具有类似功能的任务。
任务。 我们首先将自然语言处理(NLP)中的提示概念转化为分割任务中的提示,其中提示可以是一组前景/背景点、一个粗略的框或遮罩、自由形式的文本,或者一般情况下,指示在图像中进行分割的任何信息。因此,可提示的分割任务是在给定任何提示的情况下返回一个有效的分割遮罩。所谓“有效”的遮罩要求即使提示有歧义并且可能涉及多个对象(例如,回想一下衬衫与人的例子,参见图3),输出也应该是至少一个对象的合理遮罩。这个要求类似于期望一个语言模型对一个有歧义的提示输出一个连贯的回答。我们选择这个任务是因为它可以导致一种自然的预训练算法,并且通过提示的方式可以实现对下游分割任务的零-shot迁移的通用方法。
预训练。 可提示的分割任务提出了一种自然的预训练算法,该算法对每个训练样本模拟了一系列提示(例如,点、框、遮罩),并将模型的遮罩预测与真实值进行比较。我们从交互式分割 [109, 70] 中改进了这种方法,尽管与交互式分割不同,交互式分割的目标是在足够的用户输入后最终预测出有效的遮罩,而我们的目标是始终预测出任何提示的有效遮罩,即使提示是有歧义的。这样可以确保预训练模型在涉及歧义的使用案例中有效,包括我们的数据引擎第4节所需的自动标注。我们注意到,在这个任务上表现良好是具有挑战性的,并且需要专门的建模和训练损失选择,我们将在第3节中进行讨论。
零射线传输。 直观地说,我们的预训练任务赋予模型在推理时对任何提示作出适当回应的能力,因此可以通过设计适当的提示来解决下游任务。例如,如果有一个用于检测猫的边界框的模型,可以通过将检测器的边界框输出作为提示提供给我们的模型,从而解决猫的实例分割问题。总的来说,许多实际的分割任务都可以被设计成提示问题。除了自动数据集标注之外,在我们的实验中,我们还探索了其他五个不同的示例任务(第7节)。
相关任务。 分割是一个广泛的领域:有交互式分割,边缘检测,超像素化,物体提案生成,前景分割,语义分割,实例分割,全景分割等等。我们的可提示分割任务的目标是产生一个广泛能够适应许多(尽管不是全部)已有和新的分割任务的模型,通过提示工程来实现。这种能力是一种任务泛化的形式。注意,这与以前的多任务分割系统有所不同。在多任务系统中,一个单一的模型执行一组固定的任务,例如联合语义、实例和全景分割[114, 19, 54],但训练和测试任务是相同的。我们工作中的一个重要区别是,一个经过训练的可提示分割模型可以在推理时通过作为一个更大系统的组成部分来执行一个新的、不同的任务,例如执行实例分割,可提示分割模型与现有的物体检测器结合在一起。
讨论。 提示和组合是强大的工具,使单个模型能够以可扩展的方式使用,潜在地可以完成在模型设计时未知的任务。这种方法类似于其他基础模型的使用方式,例如,CLIP是DALL·E图像生成系统中的文本-图像对齐组件。我们预计,通过prompt工程等技术支持的可组合系统设计将比专门针对一组固定任务进行训练的系统能够实现更多样化的应用。通过组合的角度来比较可提示和交互式分割也很有趣:虽然交互式分割模型是为人类用户设计的,但训练为可提示分割的模型也可以组合到更大的算法系统中,如我们将演示的那样。
3. Segment Anything Model
下面我们将介绍可提示分割模型SAM(Segment Anything Model)。SAM由三个组件组成,如图4所示:图像编码器、灵活的提示编码器和快速的掩码解码器。我们基于Transformer视觉模型[14, 33, 20, 62]进行构建,以在(分摊的)实时性能上具有特定的权衡。在这里,我们对这些组件进行高级介绍,详细信息请参见§A。
图像编码器。受可扩展性和强大的预训练方法的激励,我们使用了一个经过MAE [47]预训练的Vision Transformer(ViT)[33],并对其进行了最小程度的适应以处理高分辨率输入[62]。图像编码器每个图像只运行一次,可以在提示模型之前应用。
提示编码器。我们考虑了两种类型的提示:稀疏(点、框、文本)和密集(遮罩)。我们使用位置编码[95]表示点和框,与每种提示类型的学习嵌入相加,并使用来自CLIP [82]的现成文本编码器表示自由文本。密集提示(即遮罩)使用卷积进行嵌入,并与图像嵌入逐元素求和。
掩码解码器。遮罩解码器高效地将图像嵌入、提示嵌入和输出令牌映射为遮罩。这种设计受到[14, 20]的启发,使用了修改后的Transformer解码器块[103],后面跟着一个动态遮罩预测头。我们修改后的解码器块在两个方向上(提示嵌入到图像嵌入和反之亦然)使用了提示自注意力和交叉注意力来更新所有嵌入。运行两个块后,我们将图像嵌入上采样,并使用一个多层感知机将输出令牌映射到一个动态线性分类器,该分类器在每个图像位置计算遮罩前景的概率。
解决歧义。为了解决这个问题,我们修改了模型,使其能够对单个提示预测多个输出遮罩(参见图3)。我们发现,预测3个遮罩输出足以解决大多数常见情况(嵌套遮罩通常最多有三层:整体、部分和子部分)。在训练过程中,我们只反向传播对遮罩的最小损失[15, 45, 64]。为了对遮罩进行排序,模型预测了每个遮罩的置信度分数(即估计的IoU)。
效率。整体模型设计主要受效率的驱动。在给定预先计算的图像嵌入的情况下,提示编码器和遮罩解码器在Web浏览器上运行,在CPU上运行时间约为50毫秒。这种运行时性能能够实现我们模型的无缝、实时的交互提示。
损失和训练。我们使用在[14]中使用的焦点损失[65]和Dice损失[73]的线性组合来监督遮罩预测。我们使用混合几何提示(有关文本提示,请参见§7.5)来训练可提示的分割任务。根据[92, 37]的方法,我们通过在每个遮罩中随机采样11轮提示来模拟交互设置,使得SAM能够无缝地集成到我们的数据引擎中。
4. Segment Anything Data Engine
由于互联网上缺乏大量的分割遮罩,我们建立了一个数据引擎来收集我们的11亿个遮罩数据集SA-1B。数据引擎有三个阶段:(1)模型辅助手动标注阶段,(2)半自动阶段,其中包含自动预测的遮罩和模型辅助标注的混合,并且(3)完全自动化阶段,其中我们的模型在没有标注者输入的情况下生成遮罩。我们将逐个详细介绍每个阶段的细节。
辅助手动阶段。在第一阶段,类似经典的交互分割,一个由专业标注员组成的团队使用基于浏览器的交互分割工具(SAM提供支持)通过点击前景/背景对象点来标注遮罩。遮罩可以使用像素精确的“刷子”和“橡皮擦”工具进行优化。我们的模型辅助标注可以实时在浏览器内进行(使用预先计算的图像嵌入),实现真正的交互体验。我们没有对标注对象施加语义约束,标注者自由标注了“物品”和“事物”[1]。我们建议标注者标注他们能够命名或描述的对象,但没有收集这些名称或描述。要求标注者按重要性顺序标注对象,并鼓励他们在标注一个遮罩的时间超过30秒时进行下一张图像的标注。
在该阶段的开始时,使用通用公开的分割数据集对SAM进行了训练。经过足够的数据标注后,SAM仅使用新标注的遮罩进行了重新训练。随着收集到更多的遮罩,图像编码器从ViT-B扩展到了ViT-H,同时其他架构细节也有所演变;总共我们重新训练了6次模型。随着模型的改进,每个遮罩的平均注释时间从34秒减少到了14秒。值得注意的是,14秒的注释时间比COCO的遮罩注释快了6.5倍,只比极端点边界框标注慢2倍。随着SAM的改进,每张图片的平均遮罩数量从20个增加到了44个遮罩。总体而言,在这个阶段我们收集了12万张图片中的430万个遮罩。
半自动阶段。在这个阶段,我们的目标是增加遮罩的多样性,以提高我们模型的分割能力。为了让标注者关注不太显眼的对象,我们首先自动检测到有信心的遮罩。然后我们向标注者呈现带有这些遮罩的图像,并要求他们标注任何未标注的对象。为了检测有信心的遮罩,我们使用一个通用的“对象”类别对所有第一阶段的遮罩训练了一个边界框检测器。在这个阶段,我们收集了额外的180,000张图片中的5.9M个遮罩(总共达到10.2M个遮罩)。与第一阶段类似,我们定期根据新收集的数据重新训练我们的模型(5次)。每个遮罩的平均注释时间回升到了34秒(不包括自动遮罩),因为这些对象更具挑战性。每张图片的平均遮罩数量从44个增加到了72个(包括自动遮罩)。
全自动阶段。在最后阶段,注释是完全自动进行的。这是由于我们的模型进行了两个重要改进的原因。首先,在这个阶段开始时,我们已经收集了足够多的遮罩,大大改善了模型,包括来自前一阶段的各种遮罩。其次,在这个阶段,我们已经开发了具有歧义感知的模型,可以在模糊情况下预测有效的遮罩。具体来说,我们用一个32×32的规则网格点启动模型,并为每个点预测一个可能对应于有效对象的一组遮罩。通过歧义感知模型,如果一个点位于一个部分或子部分上,我们的模型将返回子部分、部分和整个对象。我们的模型的IoU预测模块用于选择自信的遮罩;此外,我们还确定并选择了稳定的遮罩(我们认为如果将概率图在0.5 – δ和0.5 + δ处进行阈值处理结果相似,则该遮罩是稳定的)。最后,在选择自信的和稳定的遮罩后,我们应用了非最大抑制(NMS)来过滤重复的遮罩。为了进一步提高较小遮罩的质量,我们还处理了多个重叠的放大图像区域。有关此阶段的更多详细信息,请参见§B。我们对数据集中的所有11M图像应用了完全自动的遮罩生成,共产生了1.1B个高质量的遮罩。接下来,我们将描述和分析所得到的数据集SA-1B。
5. Segment Anything Dataset
我们的数据集SA-1B由1100万多样化、高分辨率、经过许可并保护隐私的图像和11亿个高质量的分割遮罩组成,这些数据是通过我们的数据引擎收集的。我们将SA-1B与现有的数据集进行比较,并分析遮罩的质量和属性。我们将发布SA-1B以促进未来计算机视觉基础模型的发展。我们注意到,SA-1B将根据有利的许可协议发布,用于特定研究用途,并为研究人员提供保护。
比喻。我们从与摄影师直接合作的供应商那里获得了一套新的1100万张图像的许可。这些图像具有高分辨率(平均为3300×4950像素),由此产生的数据规模可能会带来访问和存储方面的挑战。因此,我们发布了缩小尺寸的图像,最短边设为1500像素。即使在缩小尺寸后,我们的图像分辨率仍比许多现有的视觉数据集要高得多(例如,COCO[66]图像大约为480×640像素)。请注意,大多数模型今天使用的输入分辨率要低得多。发布的图像中的人脸和车牌已经模糊处理。
面具。我们的数据引擎生成了11亿个掩膜,其中99.1%是完全自动生成的。因此,自动掩膜的质量至关重要。我们直接将它们与专业注释进行比较,并观察各种掩膜属性与著名分割数据集的对比情况。正如下面的分析和第7节的实验所证明的那样,我们的自动掩膜具有高质量和有效性,可以用于训练模型。在这些发现的推动下,SA-1B只包括自动生成的掩膜。
面具的质量。为了评估掩膜质量,我们随机选取了500张图片(约50k个掩膜),并要求我们的专业注释员改进这些图片中所有掩膜的质量。注释员使用我们的模型和像素精确的“刷子”和“橡皮擦”编辑工具进行了改进。这个过程得到了自动预测和专业修正的掩膜对。我们计算了每对掩膜的IoU,并发现94%的对中IoU大于90%(97%的对中IoU大于75%)。相比之下,之前的研究估计注释者之间的一致性为85-91%的IoU。我们在第7节的实验中通过人工评分证实,掩膜的质量相对较高,与各种数据集相比,使用自动生成的掩膜训练我们的模型几乎与使用数据引擎生成的所有掩膜一样好。
掩码属性。在图5中,我们绘制了SA-1B中物体中心的空间分布与现有最大分割数据集进行比较。所有数据集中都存在普遍的摄影师偏见。我们观察到,与LVIS v1 [44]和ADE20K [117]这两个分布最相似的数据集相比,SA-1B在图像角落的覆盖范围更大,而COCO [66]和Open Images V5 [60]则更加倾向于中心偏向。在图6(图例)中,我们通过大小比较了这些数据集。与第二大的Open Images相比,SA-1B拥有11倍的图像和400倍的掩膜。平均而言,它比Open Images每张图像有36倍的掩膜。在这方面,最接近的数据集ADE20K每张图像的掩模数量仍然少3.5倍。图6(左侧)绘制了每张图像的掩模分布。接下来,我们在图6(中间)中查看了与图像相关的掩模尺寸(掩模面积除以图像面积的平方根)。由于我们的数据集每张图像有更多的掩模,它也倾向于包含更多小型和中型相对尺寸的掩模。最后,为了分析形状复杂性,我们在图6(右侧)中查看了掩模的凹度(1减去掩模面积除以掩模凸包面积)。由于形状复杂性与掩模尺寸相关,我们通过从分层掩模尺寸中进行分层抽样来控制数据集的掩模尺寸分布。我们观察到,我们的掩模的凹度分布与其他数据集的凹度分布基本相似。
6. Segment Anything RAI Analysis
我们接下来通过对SA-1B和SAM使用中潜在的公平性问题和偏见进行负责任的AI(RAI)分析。我们关注SA-1B的地理和收入分布情况,以及SAM在人们的受保护属性上的公平性。我们还在§F中提供了数据集、数据注释和模型卡。
地理代表和收入代表。我们使用标准方法推断了SA-1B中的国家图像是使用摄影技术拍摄的(参见§C)。在图7中,我们可视化了SA-1B中每个国家的图像数量(左侧)以及数量最多的50个国家(右侧)。我们注意到前三个国家来自世界不同地区。接下来,在表1中,我们将SA-1B、COCO [66]和Open Images [60]的地理和收入分布情况进行了比较。在欧洲和亚洲及大洋洲以及中等收入国家,SA-1B的图像比例明显更高。所有数据集都未能充分代表非洲和低收入国家。我们注意到在SA-1B中,包括非洲在内的所有地区至少有2800万个掩码,是任何以前数据集的掩码总数的10倍。最后,我们观察到每个图像上的掩码平均数量(未显示)在地区和收入上都相当一致(94-108个掩码)。
在对人们进行分割中的公平性。 我们通过测量SAM在群体之间的表现差异,调查了与外貌上的性别呈现、年龄组别和肤色呈现相关的潜在公平问题。我们使用了More Inclusive Annotations for People (MIAP) [87]数据集来进行性别呈现和年龄的评估,并使用私有数据集来进行肤色的评估(参见§C)。我们的评估使用了1个和3个点的随机采样的模拟交互式分割(参见§D)。表2(左上方)显示了性别呈现的结果。我们注意到在检测和分割数据集中,女性被证明在数量上是不足的[115],但观察到SAM在各个群体中的表现相似。我们在表2(左下方)中重复了对年龄的感知分析,注意到在大规模数据集中,那些被认为更年轻和更年长的人被证明是不足的[110]。SAM在那些被认为更年长的人身上表现最好(尽管置信区间很大)。最后,我们在表2(右侧)针对感知肤色重复了分析,注意到在大规模数据集中,那些肤色较浅的人被证明是过度代表,而肤色较深的人则是不足代表[110]。由于MIAP中不含有感知肤色的标注,我们使用了一个包含了感知Fitzpatrick肤色类型标注的专有数据集[36],该标注从1(最浅肤色)到6(最深肤色)进行分类。虽然均值有些差异,但我们并未发现不同群体之间存在显著差异。我们认为我们的发现要归因于任务的性质,并承认在SAM作为更大系统的组成部分时可能会出现偏见。最后,在§C中,我们将分析扩展到了服装分割,并发现在感知性别呈现方面存在偏见的迹象。
7. Zero-Shot Transfer Experiments
在本节中,我们展示了使用Segment Anything Model(SAM)进行零样本迁移实验。我们考虑了五个任务,其中四个与训练SAM的可提示分割任务有明显差异。这些实验评估了SAM在训练过程中未见过的数据集和任务上的表现(我们对“零样本迁移”的使用遵循CLIP的用法[82])。这些数据集可能包括新颖的图像分布,例如水下或自我中心的图像(例如图8),据我们所知,在SA-1B中不存在这些图像。
我们的实验从测试可提示分割的核心目标开始:从任何提示生成有效的掩码。我们强调单个前景点提示的挑战性情景,因为相对于其他更具体的提示,它更容易产生歧义。接下来,我们进行一系列实验,涵盖了低、中、高级图像理解,并大致与该领域的历史发展相平行。具体而言,我们提示SAM执行以下任务:(1)进行边缘检测,(2)分割所有内容,即对象提案生成,(3)分割检测到的对象,即实例分割,以及(4)作为一个概念验证,从自由文本中分割对象。这四个任务与SAM接受训练的可提示分割任务有显著差异,并通过提示工程实施。我们的实验以消融研究结束。
实施。 除非另有规定:(1) SAM使用了一个预训练的MAE [47] ViT-H [33]图像编码器,(2) SAM在SA-1B上进行了训练,该数据集仅包含来自我们数据引擎最后阶段的自动生成的掩码。有关其他模型和训练细节,如超参数,请参阅§A。
7.1. Zero-Shot Single Point Valid Mask Evaluation
任务。 我们评估从单个前景点分割对象。这个任务是不适合的,因为一个点可以指代多个对象。在大多数数据集中,真实的掩码并没有列举出所有可能的掩码,这可能会使自动衡量指标不可靠。因此,我们将标准的mIoU指标(即预测掩码和真实掩码之间所有IoU的平均值)与一个人类研究相结合,其中注释者将掩码质量从1(无意义)到10(像素完美)进行评分。有关详细信息,请参见§D.1,§E和§G。
默认情况下,我们从真实掩码的“中心”采样点(在掩码的内部距离变换的最大值处),按照交互式分割的标准评估协议进行。由于SAM能够预测多个掩码,我们默认只评估模型最自信的掩码。基线都是单掩码方法。我们主要与RITM [92]进行比较,这是一个强大的交互式分割器,在我们的基准测试中表现最好,与其他强大的基线方法相比[67, 18]。
数据集。 我们使用一个新编译的包含23个数据集的套件,这些数据集具有多样化的图像分布。图8列出了这些数据集,并展示了每个数据集的样本(更多细节请参见附录表7)。我们使用这23个数据集进行mIoU评估。对于人类研究,我们使用图9b中列出的子集(由于此类研究的资源需求)。这个子集包括自动指标下SAM优于和不及RITM的数据集。
结果。 首先,我们对包含23个数据集的完整套件使用mIoU进行自动评估。我们在图9a中将每个数据集的结果与RITM进行比较。SAM在其中16个数据集上的结果较高,最高可达约47个IoU。我们还提供了一个“oracle”结果,即通过将SAM的3个掩膜与基准数据进行比较,而不是选择最可信的掩膜来选择最相关的掩膜。这揭示了模糊性对自动评估的影响。特别是,通过使用oracle来执行模糊性解决,SAM在所有数据集上都优于RITM。
人类研究的结果显示在图9b中。误差条表示平均掩膜评分的95%置信区间(所有差异都是显著的;详见§E)。我们观察到,注释者一致地将SAM的掩膜质量评分明显高于最强的基准线RITM。一个削减了“模糊感知”的SAM版本,只有一个输出掩膜,评分始终较低,但仍高于RITM。SAM的平均评分在7到9之间,这对应于定性评分指导方针:“高分(7-9):物体可识别,错误很小且很少(例如,缺失了一个小的、严重遮挡的非连接组件,…)。 ”这些结果表明SAM已经学会从单一点分割有效的掩膜。注意,对于像DRAM和IBD这样的数据集,SAM在自动评估指标上表现较差,但在人类研究中获得了一致较高的评分。
图9c展示了额外的基准线,SimpleClick [67]和FocalClick [18],它们的单点性能低于RITM和SAM。随着点的数量从1增加到9,我们观察到方法之间的差距减小。这是预期的,因为任务变得更容易;另外,SAM并没有针对非常高的IoU进行优化。最后,在图9d中,我们将默认的中心点采样替换为随机点采样。我们观察到,SAM与基准线之间的差距增大,并且SAM能够在任意采样方法下获得可比较的结果。
7.2. Zero-Shot Edge Detection
方法。 我们使用BSDS500 [72, 3]数据集对SAM进行了评估,该数据集是用于边缘检测的经典低级任务。我们使用了一个简化版的自动掩模生成流程。具体而言,我们使用一个16×16的前景点规则网格作为SAM的输入,从而生成了768个预测掩模(每个点3个)。通过非极大值抑制(NMS)来去除多余的掩模。然后,我们使用Sobel滤波对未经阈值处理的掩模概率图计算边缘图,并进行标准的轻量级后处理,包括边缘非极大值抑制(详见§D.2)。
结果。 我们在图10中展示了代表性的边缘图(更多请参见图15)。从定性上看,我们观察到,即使SAM没有经过边缘检测的训练,它也能产生合理的边缘图。与基准结果相比,SAM预测了更多的边缘,包括在BSDS500中没有注释的合理边缘。这种偏差在表3中得到了定量体现:在50%精度下的召回率(R50)很高,但精度较低。SAM自然落后于学习了BSDS500偏差的先进方法,即哪些边缘应该被抑制。然而,与先前的深度学习方法(如HED [108],也是在BSDS500上训练的)相比,SAM表现良好,并且比先前的零样本迁移方法要好得多,尽管这些方法可能已经过时。
7.3. Zero-Shot Object Proposals
方法。接下来,我们对SAM在目标提议生成中进行评估[2, 102]。这个任务在目标检测研究中扮演了重要角色,作为先驱系统(例如[102, 41, 84])的中间步骤。为了生成目标提议,我们运行了一个略微修改的自动掩码生成流程,并将掩码作为提议输出(详见第D.3节)。
我们在LVIS v1 [44]上计算了标准的平均召回(AR)指标。我们专注于LVIS,因为它的大量类别提供了一个具有挑战性的测试。我们与一个强大的基线进行比较,该基线是一个基于ViTDet [62]检测器(使用级联Mask R-CNN [48, 11] ViT-H)实现的。我们注意到,这个“基线”对应于“伪装为提议生成器的检测器”(DMP)方法[16],该方法被证明能够操纵AR,因此是一个真正具有挑战性的比较。
结果。 在表4中,我们可以看到并不令人意外的是,使用ViTDet-H的检测结果作为目标提议(即DMP方法[16])在整体上表现最好。然而,SAM在几个指标上表现出色。值得注意的是,它在中等和大型物体上表现优于ViTDet-H,还在罕见和常见物体上表现出色。事实上,SAM只在小型物体和频繁物体上表现不如ViTDet-H,因为ViTDet-H可以轻松学习到LVIS特定的注释偏差,而SAM不是。我们还将SAM的一个消除了模糊性感知的版本(”single out.”)进行了比较,结果显示在所有的AR指标上都明显比SAM差。
7.4. Zero-Shot Instance Segmentation
方法。 转向更高级的视觉问题,我们将SAM作为实例分割器的分割模块。实现方法很简单:我们运行一个物体检测器(之前使用的是ViTDet),然后将其输出框作为输入传递给SAM。这样可以将SAM嵌入到更大的系统中。
结果。 我们在COCO和LVIS数据集上比较了SAM和ViTDet预测的掩码,在表格5中展示了结果。从掩码AP指标来看,我们发现在两个数据集上都存在差距,SAM的表现相对较好,但明显落后于ViTDet。通过可视化输出,我们观察到SAM的掩码通常在质量上优于ViTDet,边界更清晰(参见§D.4和图16)。为了进一步研究这一观察结果,我们进行了一项额外的人类研究,要求注释员在之前使用的1到10的质量评分标准上评价ViTDet的掩码和SAM的掩码。从图11中我们可以看到,SAM在人类研究中持续表现优于ViTDet。
我们假设在COCO数据集上,掩码AP差距更大且真实质量相对较低(人类研究证实),ViTDet学习到了COCO掩码的特定偏差。SAM作为一种零样本方法,无法利用这些(通常不希望出现的)偏差。LVIS数据集具有更高质量的真实标注,但仍存在特定的特征(例如,掩码不包含空洞,它们是简单的多边形构造),以及模态与非模态掩码之间的偏差。同样,SAM没有被训练去学习这些偏差,而ViTDet可以利用它们。
7.5. Zero-Shot Text-to-Mask
方法。 最后,我们考虑了一个更高级的任务:从自由形式文本中分割对象。这个实验证明了SAM处理文本提示的能力。虽然我们在之前的所有实验中使用了完全相同的SAM,但是在这个实验中,SAM的训练程序被修改为能够识别文本,但不需要新的文本注释。具体而言,对于每个面积大于1002的手动收集的掩码,我们提取CLIP图像嵌入。然后,在训练过程中,我们用提取的CLIP图像嵌入作为SAM的第一个交互。这里的关键观察是,因为CLIP的图像嵌入经过训练与其文本嵌入对齐,所以我们可以使用图像嵌入进行训练,但在推理时使用文本嵌入。也就是说,在推理时,我们通过CLIP的文本编码器运行文本,然后将得到的文本嵌入作为提示输入SAM(详见§D.5)。
结果。 我们在图12中展示了定性结果。SAM可以根据简单的文本提示(如“一个轮子”)以及诸如“海狸牙格栅”之类的短语来分割对象。当SAM仅通过文本提示无法选择正确的对象时,通常可以通过添加额外的指示点来修正预测结果,这与参考文献[31]类似。
7.6. Ablations
我们在我们的23个数据集套件上进行了几项割除实验,采用了单个中心点提示的协议。需要注意的是,单个点可能存在歧义,并且这种歧义可能在地面真值中没有被表示出来,地面真值中只包含每个点的一个掩码。由于SAM在零样本迁移设置中运行,因此SAM的最高排名掩码与数据注释准则产生的掩码之间可能存在系统性偏差。因此,我们还额外报告了相对于地面真实值的最佳掩码(“oracle”)。
图13(左侧)显示了SAM在使用数据引擎阶段的累积数据进行训练时的性能。我们观察到每个阶段都会增加mIoU。当使用三个阶段的训练时,自动掩码远远超过手动和半自动掩码。为了解决这个问题,我们发现在训练过程中对手动和半自动掩码进行10倍过采样可以得到最好的结果。这种设置使训练变得复杂。因此,我们还测试了第四个设置,只使用自动生成的掩码。在使用这些数据时,SAM的性能仅略低于使用所有数据(约0.5 mIoU)。因此,默认情况下我们只使用自动生成的掩码来简化训练设置。
在图13的中间部分,我们研究了数据量的影响。完整的SA-1B包含1100万张图像,我们在这个消融实验中均匀地对其进行了1百万和10万倍的子采样。在10万张图像的情况下,我们观察到在所有设置下都出现了显著的mIoU下降。然而,使用1百万张图像,相当于完整数据集的10%,我们观察到了与使用完整数据集相媲美的结果。这种数据规模仍然包括大约1亿个掩码,可能适用于许多使用场景。
最后,图13(右)展示了使用ViT-B、ViT-L和ViT-H图像编码器的结果。ViT-H相比ViT-B有了显著的改进,但与ViT-L相比仅有微小的提升。目前看来,进一步扩大图像编码器的规模似乎并不具备明显的好处。
8. Discussion
基础模型。 预训练模型自从机器学习的早期就被应用于下游任务[99]。随着对规模的重视不断增长,这种范式在近年来变得越来越重要,并且这些模型最近被重新定义为“基础模型”,即“在大规模的广泛数据上训练,并可适应广泛的下游任务”[8]。我们的工作与这个定义十分吻合,尽管我们注意到图像分割的基础模型在范围上具有固有的局限性,因为它只代表了计算机视觉中重要但是分数化的子集。我们还将我们的方法与[8]中的一个方面进行了对比,后者强调了自监督学习在基础模型中的作用。虽然我们的模型是用自监督技术(MAE [47])初始化的,但它绝大部分的能力来自大规模的监督训练。在像我们这样的数据引擎可以扩大可用注释的情况下,监督训练提供了一种有效的解决方案。
组合性。 预训练模型可以为新的功能提供动力,甚至超越在训练过程中所想象的。一个显著的例子是CLIP [82]如何被用作更大系统(如DALL·E [83])的组成部分。我们的目标是通过SAM使这种组合变得简单明了。我们通过要求SAM对各种分割提示预测有效的掩码来实现这一目标。这样做的效果是在SAM和其他组件之间建立一个可靠的接口。例如,MCC [106]可以轻松地使用SAM对感兴趣的物体进行分割,并且在从单个RGB-D图像进行三维重建时对未见过的物体具有很强的泛化能力。在另一个例子中,SAM可以通过可穿戴设备检测到的凝视点提示,实现新的应用。由于SAM能够对新领域(如自我中心图像)进行泛化,这些系统可以在不需要额外训练的情况下工作。
限制。 虽然SAM在一般情况下表现良好,但并不完美。它可能会错过一些细微的结构,有时会幻觉出一些小的不相连的组件,并且在产生边界时不如更复杂的方法那样清晰,比如[18]中的“放大”方法。通常情况下,我们预计专门的互动分割方法在提供了许多点的情况下会优于SAM,比如[67]。与这些方法不同,SAM旨在通用性和广泛使用,而不是高IoU互动分割。此外,SAM可以实时处理提示信息,但是当使用重型图像编码器时,SAM的整体性能并不是实时的。我们对文本到掩码任务的尝试是初步的,并不完全稳健,尽管我们相信通过更多的努力可以改进。虽然SAM可以执行许多任务,但如何设计简单的提示来实现语义和全景分割尚不清楚。最后,还有一些领域特定的工具,比如[7],我们预计它们在各自的领域中会胜过SAM 。
结论。“ Segment Anything”项目试图将图像分割提升到基础模型时代。我们的主要贡献是一个新的任务(可提示的分割)、模型(SAM)和数据集(SA-1B),这使得这一飞跃成为可能。SAM能否成为基础模型的地位,取决于社区如何使用它,但无论如何,我们预计这项工作的观点、超过10亿个掩码的发布以及我们的可提示分割模型将帮助为前进的道路铺平道路。
致谢。 我们要感谢Aaron Adcock和Jitendra Malik的有益讨论。我们感谢Vaibhav Aggarwal和Yanghao Li帮助我们扩展模型。我们感谢Cheng-Yang Fu、Jiabo Hu和Robert Kuo在数据注释平台方面的帮助。我们还要感谢Allen Goodman和Bram Wasti在优化我们模型的网页版本方面的帮助。最后,我们感谢Morteza Behrooz、Ashley Gabriel、Ahuva Goldstand、Sumanth Gurram、Somya Jain、Devansh Kukreja、Joshua Lane、Lilian Luong、Mallika Malhotra、William Ngan、Omkar Parkhi、Nikhil Raina、Dirk Rowe、Neil Sejoor、Vanessa Stark、Bala Varadarajan和Zachary Winstrom在制作演示、数据集查看器和其他资产和工具方面的帮助。