Segment Anything Model

news2024/12/23 4:35:35

 论文翻译:

 

图1:我们旨在通过引入三个相互关联的组件来构建分割的基础模型:即时分割任务、支持数据注释并通过即时工程将零样本传输到一系列任务的分割模型(SAM),以及用于收集SA-1B的数据引擎,SA-1B是我们拥有超过10亿个掩码的数据集。

Abstract

我们介绍了Segment Anything(SA)项目:一个用于图像分割的新任务、模型和数据集。在数据收集循环中使用我们的高效模型,我们建立了迄今为止最大的分割数据集(到目前为止),在1100万张许可和尊重隐私的图像上有超过10亿个任务。该模型被设计和训练为可提示的,因此它可以将零样本转换为新的图像分布和任务。我们评估了其在许多任务上的能力,发现其零样本性能令人印象深刻,通常与之前的完全监督结果相竞争,甚至优于这些结果。我们将在https://segment-anything.com促进对计算机视觉基础模型的研究。

1. Introduction

大规模预训练于网络数据集的语言模型正在通过强大的零/少样本泛化能力[10]来改革自然语言处理。这些“基础模型”[8]可以在任务和远超训练任务所涵盖数据分布的数据上实现泛化。这种能力通常通过prompt engineering实现,即使用手工编写的文本来提示语言模型根据当前任务生成有效的文本响应。当这些模型使用来自网络的丰富文本语料库进行扩展和训练时,它们的零样本和少样本性能与(在某些情况下甚至匹敌)微调模型相比出人意料地优秀[10, 21]。实证趋势表明,这种行为随着模型规模、数据集大小和总训练运算量的增加而不断改进[56, 10, 21, 51]。

虽然相对较少,但基础模型在计算机视觉中也得到了研究。或许最突出的实现例子就是将来自网络的文本和图像进行配对。例如,CLIP[82] 和ALIGN[55]使用对比学习来训练文本和图像编码器以对齐这两种模态。一旦训练完成,通过工程化的文本提示,就可以在新的视觉概念和数据分布上实现零样本泛化。这种编码器还可以与其他模块有效组合,以实现下游任务,如图像生成(例如,DALL-E[83])。尽管在视觉和语言编码器方面取得了很大进展,但计算机视觉涉及的问题范围远远超出了这个范畴,对于其中许多问题,缺乏丰富的训练数据。

在这项工作中,我们的目标是构建一个针对图像分割的基础模型。也就是说,我们希望开发一个可以使用提示方式进行训练的模型,并在广泛的数据集上进行预训练,以实现强大的泛化功能。通过这个模型,我们的目标是使用提示方式解决一系列新数据分发的下游分割问题。

这个计划的成功取决于三个组成部分:任务、模型和数据。为了开发它们,我们需要回答关于图像分割的以下问题:

  1. 哪个任务能够实现零样本泛化?
  2. 对应的模型架构是什么?
  3. 哪些数据可以为这个任务和模型提供支持?

这些问题非常复杂,需要一种综合性解决方案。我们首先定义了一个通用的可提示分割任务,以提供强大的预训练目标,并能够支持广泛的下游应用。该任务要求模型支持灵活的提示,并能够在提示时实时输出分割掩模以实现交互式使用。为了训练我们的模型,我们需要一个多样化、大规模的数据源。可惜的是,目前没有适合分割的大型网络数据源;为了解决这个问题,我们构建了一个“数据引擎”,即我们通过使用高效的模型协助数据收集和利用新收集的数据来改进模型的迭代过程。我们接下来介绍每个相互关联的组件,然后介绍我们创建的数据集和证明我们方法有效性的实验。

任务 (第二部分)。在自然语言处理,以及最近的计算机视觉领域,基础模型是一种有前途的发展,通常通过使用“提示技术”可以在新的数据集和任务上执行零样本和少样本学习。在这一工作线上,我们提出了可提示的分割任务,其目标是在给定任何分割提示的情况下返回有效的分割掩模 (见图1a)。提示简单指定需要在图像中进行分割的部分,例如,一个提示可能包括指定物体的空间或文本信息。有效输出掩模的要求是即使当提示存在歧义,可能指代多个物体时(例如,衬衫上的一个点可能指示衬衫本身或穿着它的人),输出也应该至少合理地分割出其中一个物体的掩模。我们使用可提示分割任务作为预训练目标,并通过提示工程来解决一般的下游分割任务。

模型 (第三部分)。可提示的分割任务和实际世界的使用目标对模型架构施加了约束。特别是,模型必须支持灵活的提示,需要计算出分割掩模以支持实时交互,而且还必须具有歧义感知能力。令人惊讶的是,我们发现一个简单的设计满足了所有三个约束:一个强大的图像编码器用于计算图像嵌入,一个提示编码器嵌入提示,然后两个信息来源在一个轻量级的掩模解码器中被合并以预测分割掩模。我们称这个模型为“任何段模型”(Segment Anything Model,SAM,见图1b)。通过将SAM分为一个图像编码器和一个快速的提示编码器/掩模解码器,相同的图像嵌入可以在不同的提示下重复使用(并且其成本是摊销的)。给定一个图像嵌入,提示编码器和掩模解码器可以在Web浏览器中在约50ms内从提示中预测出一个掩模。我们专注于点、框和掩模提示,并且还提供了使用自由形式文本提示的初步结果。为了使SAM具有歧义感知能力,我们设计它来为单个提示预测多个掩模,使SAM能够自然地处理歧义,如衬衫与人的例子。

数据引擎 (第四部分)。为了实现对新数据分布的强大泛化能力,我们发现需要在大量且多样化的掩模上训练SAM,超出了任何已有的分割数据集。虽然基础模型的典型方法是在线获取数据(83),但掩模并不是自然丰富的,因此我们需要另一种策略。我们的解决方案是构建一个“数据引擎”,即我们与模型循环作用的数据集注释共同开发(见图1c)。我们的数据引擎有三个阶段:辅助-手动、半自动和全自动。在第一阶段中,SAM协助注释者进行掩模注释,类似于经典的交互式分割设置。在第二阶段中,SAM可以通过提示可能的对象位置自动生成一部分对象的掩模,注释者则专注于注释其余对象,帮助增加掩模多样性。在最后一个阶段,我们使用正则网格前景点提示SAM,平均每张图像可以产生约100个高质量的掩模。

数据集 (第五部分)。我们的最终数据集 SA-1B 包括了1100多万经过许可和保护隐私的图像,其掩模数量超过10亿个(见图2)。使用我们的数据引擎的最终阶段全自动地收集了 SA-1B,其掩模数量比任何现有的分割数据集 [66, 44, 117, 60] 多400倍,并且经过广泛验证,这些掩模质量和多样性都很高。除了用于训练 SAM 以获得稳健性和泛化性之外,我们希望 SA-1B 成为一种为旨在构建新的基础模型的研究提供有价值资源的工具。

负责任的 AI (第六部分)。我们对使用 SA-1B 和 SAM 可能存在的公正性关切和偏见进行研究和报告。SA-1B 中的图像涵盖了各种地理和经济条件下的不同国家,我们发现 SAM 在不同人群中的表现类似。我们希望这能使我们的工作在实际应用情况下更加公平。我们在附录中提供了模型和数据集卡片。

实验 (第七部分)。我们对 SAM 进行了广泛的评估。首先,使用一个多样化的新的23个分割数据集套件,我们发现 SAM 可以从一个单一的前景点产生高质量的掩模,往往仅略低于手动注释的真实掩模。其次,在零样本转移协议下使用提示工程,在各种下游任务中我们得到了一致强大的定量和定性结果,包括边缘检测、物体提取、实例分割以及初步探索文本到掩模的预测等。这些结果表明,SAM 可以在提示工程的帮助下,用于解决超出 SAM 的训练数据范围之外的物体和图像分布的各种任务。然而,仍有改进的空间,我们在第八部分中进行了讨论。

发布。我们将 SA-1B 数据集以研究目的进行发布,并在 https://segment-anything.com 上使用宽松的开放许可证(Apache 2.0)使 SAM 可用。我们还在在线演示中展示了 SAM 的能力。

图2:我们新引入的数据集 SA-1B 中的示例图像和叠加的掩模。SA-1B 包含1100万个多样化、高分辨率、经过许可和保护隐私的图像和11亿个高质量的分割掩模。这些掩模是由 SAM 完全自动地注释的,我们通过人为评级和大量实验验证,它们具有高质量和多样性。我们按每张图像中的掩模数量分组进行可视化(平均每张图像有约100个掩模)。 

 2. Segment Anything Task

我们从自然语言处理中获得启发,参考了下一个标记预测任务,该任务用于基础模型的预训练,并通过提示工程解决各种下游任务[10]。为了构建分割的基础模型,我们的目标是定义一个类似的任务。任务。我们从自然语言处理中的提示的概念开始,将其应用到分割中,其中提示可以是一组前景/背景点、粗略的框或遮罩、自由文本,或者在一般情况下,任何指示在图像中进行分割的信息。因此,可提示的分割任务是给定任何提示返回一个有效的分割掩膜。 "有效"掩膜的要求仅意味着即使提示不明确并可能指向多个对象(例如,回想衬衣与人的例子,并参见图3),输出也应该是至少一个对象的合理掩膜。这个要求类似于期望语言模型对一个不确定的提示输出一个连贯的响应。我们选择这个任务,因为它导致了一个自然的预训练算法,并通过提示为零样本转换到下游分割任务的通用方法。

预训练:可提示的分割任务提供了一个自然的预训练算法,该算法模拟了每个训练样本的序列提示(例如点、框和遮罩),并将模型的掩模预测与基准真值进行比较。我们从交互式分割[109, 70]中改编了这种方法,尽管与交互式分割的目的是在有足够的用户输入后最终预测有效掩膜不同,我们的目标是始终预测任何提示的有效掩膜,即使提示不明确也是如此。这确保了预训练模型在涉及歧义的使用情况下是有效的,包括我们数据引擎 §4所需的自动注释。我们注意到,表现良好的这个任务是具有挑战性的,需要专门的建模和训练损失选择,我们在 §3中进行了讨论。

相关任务:分割是一个广泛的领域,包括交互式分割 [57, 109]、边缘检测 [3]、超像素化 [85]、目标提案生成 [2]、前景分割 [94]、语义分割 [90]、实例分割 [66]、全景分割 [59] 等。我们的可提示分割任务的目标是生成一个广泛具有适应多个(虽然不是全部的)现有和新的分割任务的能力的模型,通过提示工程实现。这种能力是任务泛化的一种形式 [26]。请注意,这与以前在多任务分割系统上的工作是不同的。在多任务系统中,一个单一的模型执行一组固定的任务,例如联合语义、实例和全景分割 [114, 19, 54],但训练和测试任务是相同的。我们工作中的一个重要区别是,为可提示分割训练的模型可以通过作为更大系统中的组件,在推理时执行一个新的、不同的任务,例如,为了执行实例分割,可提示分割模型与现有的物体检测器相结合。

讨论:提示和组合是强大的工具,可以使单个模型以可扩展的方式使用,潜在地可以完成设计时未知的任务。这种方法类似于其他基础模型的使用方式,例如,CLIP [82]是DALL·E [83]图像生成系统的文本-图像对齐组件。我们预计,由 prompt 工程等技术驱动的可组合系统设计将使得可以应用更广泛,而不是专门针对一组固定任务进行训练的系统。通过组合的角度比较可提示和交互式分割也很有意思:虽然交互式分割模型是为人类用户设计的,但为可提示分割训练的模型也可以像我们将要展示的那样组合到更大的算法系统中。

图4:SAM(Segment Anything Model)概述。重型图像编码器输出图片嵌入,可以通过各种输入提示高效地查询,以在摊销的实时速度下产生物体掩膜。对于对应于多个对象的模糊提示,SAM可以输出多个有效掩模和相关的置信度得分。

3. Segment Anything Model

接下来,我们将描述可提示分割的 Segment Anything Model (SAM)。SAM包含三个组件,如图4所示:图像编码器、灵活的提示编码器和快速掩模解码器。我们在 Transformer 视觉模型[14, 33, 20, 62]的基础上进行建模,并在模型的性能与实时性之间进行了特定的权衡。我们在此概述这些组件,详细内容请参见 §A。

图像编码器:受可扩展性和强大的预训练方法的启发,我们使用了一个经过 MAE [47] 预训练的 Vision Transformer (ViT) [33],并最小化地修改以处理高分辨率输入[62]。图像编码器只需对每个图像运行一次,可以在提示模型之前应用它。

提示编码器:我们考虑两组提示:稀疏型(点、框、文本)和密集型(掩模)。我们使用位置编码 [95] 和每种提示类型和自由文本的学习嵌入来表示点和框,使用 CLIP[82] 的现成文本编码器来表示自由文本。密集提示(即掩模)使用卷积嵌入,并逐元素地与图像嵌入相加。

掩模解码器:掩模解码器有效地将图像嵌入,提示嵌入和输出令牌映射到一个掩模上。这种设计受[14, 20]的启发,采用Transformer解码器块[103]的修改,然后是一个动态掩模预测头。我们修改的解码器块在两个方向上(提示到图像嵌入和反之亦然)使用提示自注意力和交叉注意力来更新所有嵌入。运行两个块后,我们对图像嵌入进行上采样,并使用MLP将输出令牌映射到动态线性分类器,该分类器然后计算每个图像位置的掩模前景概率。

消除歧义:当模型只有一个输出时,如果给出一个歧义性提示,模型将平均多个有效的掩模。为了解决这个问题,我们修改了模型,使其针对单个提示预测多个输出掩模(见图3)。我们发现预测3个掩模输出足以涵盖大多数常见情况(嵌套掩模通常最多有三层:整体、部分和子部分)。在训练期间,我们只通过各个掩模的最小损失[15, 45, 64]进行反向传播。为了对掩模进行排名,模型预测每个掩模的置信度得分(即预估的IoU)。效率方面,我们的整体模型设计主要受到效率的驱动。在给定预先计算的图像嵌入的情况下,提示编码器和掩模解码器在web浏览器上运行,使用CPU,在大约50毫秒内完成。这种运行时性能使我们的模型实现了无缝,实时的交互提示。

损失和训练:我们使用[14]中使用的焦点损失[65]和Dice损失[73]的线性组合来监督掩模预测。对于可以提示的分割任务,我们使用几何提示的组合进行训练(对于文本提示,请参见第7.5节)。我们仿真交互式设置,每个掩模随机采样11个回合的提示,这样使得SAM能够无缝地与我们的数据引擎集成,这也是按照[92, 37]所做的。

4. Segment Anything Data Engine

由于分割掩模在互联网上不太充足,我们构建了一个数据引擎,以便收集我们的1.1B掩模数据集SA-1B。该数据引擎由三个阶段组成:(1)模型辅助手动注释阶段,(2)半自动阶段,其中混合使用了自动预测掩模和模型辅助注释,以及(3)完全自动阶段,其中我们的模型在没有注释者输入的情况下生成掩模。接下来,我们将详细介绍每个阶段。

辅助手动阶段:在第一阶段中,类似于传统的交互式分割,一组专业注释员使用由SAM提供支持的基于浏览器的交互式分割工具,通过点击前景/背景对象点标记掩模。掩模可以使用像素精确的“画笔”和“橡皮擦”工具进行精细化调整。我们的模型辅助注释可以实时直接在浏览器内运行(使用预计算的图像嵌入),从而实现真正的交互式体验。我们没有对标记对象施加语义约束,注释者可以自由标记“物质”和“事物”[1]。我们建议注释者标记他们能够命名或描述的对象,但我们没有收集这些名称或描述。注释者被要求按突出顺序标记对象,并鼓励他们在一个掩模标记超过30秒的情况下继续处理下一个图像。

在此阶段开始时,SAM使用常见的公共分割数据集进行训练。在足够的数据注释之后,SAM只使用新注释的掩模进行重新训练。随着收集到越来越多的掩模,图像编码器从ViT-B扩展到ViT-H,并且其他体系结构细节发生了变化;总共我们重新训练了我们的模型6次。随着模型的改进,每个掩模的平均注释时间从34秒减少到14秒。我们注意到,14秒比COCO [66]的掩模注释快6.5倍,仅比极端点边界框标记慢2倍[76,71]。随着SAM的改进,每个图像的平均掩模数量从20个增加到44个。总体而言,在此阶段我们从120k个图像中收集了4.3M个掩模。

半自动阶段:在这个阶段中,我们旨在增加掩模的多样性,以提高我们的模型分割任何东西的能力。为了让注释者专注于不太突出的对象,我们首先自动检测到有信心的掩模。然后,我们向注释者展示带有这些掩模的图像,并要求他们注释任何未注释的对象。为了检测有信心的掩模,我们使用通用的“对象”类别在所有第一阶段的掩模上训练了一个边界框检测器[84]。在此阶段,我们在180k个图像中收集了另外5.9M个掩模(总共10.2M个掩模)。和第一阶段一样,我们定期使用新收集的数据重新训练我们的模型(5次)。每个掩模的平均注释时间从不包括自动掩模的14秒回升到了34秒,因为这些对象比较难资产标注。每个图像的平均掩模数从44个增加到了72个(包括自动掩模)。

完全自动阶段:在最后一个阶段中,注释是完全自动的。这要归功于我们模型的两个主要增强方面。首先,在此阶段开始时,我们已经收集了足够的掩模来大大改善模型,包括来自上一阶段的多样化掩模。其次,到了这个阶段,我们已经开发了具有歧义感知能力的模型,这使我们能够在歧义情况下预测出有效的掩模。具体而言,我们用32×32点的规则网格提示模型,并针对每个点预测一组可能对应于有效对象的掩模。具有歧义感知能力的模型可在子部分或子子部分处返回子子部分、子部分和整个对象。我们的模型的IoU预测模块用于选择有信心的掩模;此外,我们仅识别并选择稳定的掩模(如果在0.5-δ和0.5 + δ处对概率图进行分割,结果相似,则我们认为一个掩模是稳定的)。最后,在选择了有信心和稳定的掩模后,我们对其应用非最大抑制(NMS)以过滤重复的掩模。为了进一步提高较小掩模的质量,我们还处理了多个重叠的放大图像裁剪。关于此阶段的更多细节,请参见§B。我们将完全自动的掩模生成应用于我们数据集中的所有11M张图像,共产生了1.1B个高质量的掩模。接下来,我们将描述和分析此数据集,SA-1B。

5. Segment Anything Dataset

我们的SA-1B数据集包括使用我们的数据引擎收集的11M个多样化、高分辨率、经过许可并保护隐私的图像和1.1B个高质量分割掩模。我们将SA-1B与现有数据集进行比较,并分析掩模质量和属性。我们将发布SA-1B以帮助未来计算机视觉基础模型的开发。我们注意到,SA-1B将在某些研究用途下以优惠的许可协议和研究人员的保护措施下发布。

图片:我们从一家直接与摄影师合作的供应商那里获得了一套新的1100万张图片的许可。这些图片具有高分辨率(平均为3300×4950像素),由此产生的数据大小可能会带来可访问性和存储方面的挑战。因此,我们发布了将最短边设置为1500像素的降采样图片。即使经过降采样,我们的图片分辨率仍然远高于许多现有的视觉数据集(例如,COCO[66]图像为∼480×640像素)。请注意,今天大多数模型所处理的输入分辨率远低于这个水平。发布的图片中的人脸和车辆牌照已被模糊处理。

口罩质量:为了估计口罩质量,我们随机抽样了500张图像(∼50k个口罩),并要求我们的专业注释员提高这些图像中所有口罩的质量。注释员使用我们的模型和像素精确的“画笔”和“橡皮擦”编辑工具进行修正。这个过程产生了自动预测和专业修正口罩的对比结果。我们计算了每对口罩之间的IoU,并发现94%的对比结果IoU大于90%(97%的对比结果IoU大于75%)。为了进行比较,早期的工作将注释者之间的一致性估计为85-91%的IoU[44,60]。我们在第7节中进行的实验通过人工评分确认,相对于各种数据集而言,口罩质量很高,并且在自动口罩和所有数据引擎生成的口罩之间进行模型训练相当好。

口罩属性:在图5中,我们绘制了SA-1B中物体中心的空间分布,与现有最大的分割数据集进行比较。所有数据集中都存在常见的摄影师偏见。我们观察到,相对于最相似分布的两个数据集LVIS v1[44]和ADE20K[117],SA-1B覆盖图像角落的范围更大,而COCO[66]和Open Images V5 [60]具有更显着的中心偏见。在图6(图例)中,我们通过大小比较这些数据集。相比第二大的Open Images,SA-1B拥有11倍更多的图像和400倍更多的口罩。平均而言,它每张图像有36倍的口罩比Open Images多。在这方面最接近的数据集ADE20K每张图像仍然少3.5倍的口罩。图6(左)绘制了每个图像的口罩分布,接下来,我们在图6(中)中查看了图像相对口罩大小(口罩面积除以图像面积的平方根)。正如预期的那样,由于我们的数据集每个图像有更多的口罩,因此也倾向于包括更高比例的小型和中型口罩。最后,为了分析形状复杂度,我们在图6(右)中查看了口罩凹度(1减去口罩面积除以凸包区域面积)。由于形状复杂度与口罩大小相关,我们通过首先从面罩大小的分段进行分层抽样,来控制数据集的口罩大小分布。我们观察到,我们的口罩凹度分布与其他数据集的相似。

6. Segment Anything RAI Analysis

接下来,我们通过调查使用SA-1B和SAM时可能存在的公平性问题和偏见,对我们的工作进行负责任的人工智能(RAI)分析。我们关注SA-1B的地理和收入分布以及SAM在人们的受保护属性方面的公平性。在第F节中,我们还提供了数据集、数据注释和模型卡片。

地理和来源
我们推断这些国家的图像是用标准方法拍摄的。在图7中,我们可视化了SA-1B中每个国家(左)和图像最多的50个国家(右)的图像计数。我们注意到,前三个国家来自世界不同的地区。SA-1B在欧洲、亚洲、大洋洲以及中等收入国家的图像中所占的比例要高得多,包括非洲在内的所有地区至少有2800万个mask,在不同地区和收入之间是相当一致的(每张图像mask为94-108张)

在这里插入图片描述 分割人群的公平性

我们通过测量组间SAM的表现差异,调查了感知的性别表现、感知的年龄组和感知的肤色之间的潜在的公平问题。我们使用了更具包容性的人群注释(MIAP)[87]数据集,用于性别表现和年龄,以及一个专有的数据集,用于肤色。SAM对那些被认为年龄较大的人表现最好(尽管置信区间很大)

七、Zero-Shot Transfer 实验

本节用SAM模型进行Zero-Shot Transfer实验:考虑了5个任务,其中4个与用于训练SAM的快速分割任务有显著不同,评估了在训练过程中没有看到的数据集和任务上的SAM模型(遵循CLIP)。数据集可能包括新的图像分布(如水下或以自我为中心的图像),并没有出现在SA-1B中。

我们的实验首先测试了可提示分割的核心目标:从任何提示中生成一个有效的掩码。我们强调单个前景点提示的具有挑战性的场景,因为它比其他更具体的提示更有可能是模棱两可。随后,我们提示SAM(1)执行边缘检测,(2)分割所有内容,即对象提议生成,(3)分段检测到的对象,即实例分割,以及(4)作为概念证明,从自由形式的文本中分割对象。这四个任务与SAM训练并通过提示工程实现的可提示分割任务有显著不同。我们的实验以消融研究结束。

(1) SAM使用一个MAE [47]预训练的ViT-H [33]图像编码器
(2) SAM是在SA-1B上训练的,数据集只包括数据引擎的最后阶段自动生成的掩码。

1.zero shot 单点有效掩模评估

任务:评估从单个前景点分割一个对象,因为一个点可以指代多个对象。大多数数据集中的标签掩码不会枚举所有可能的掩码,这可能会使自动度量不可靠。因此,我们补充了标准mIoU度量(即预测和标签掩模之间的所有IoU的平均值),在该研究中,注释者将掩码质量从1(无意义)评级到10(像素完美)。

默认情况下,我们从标签掩码的“中心”(在掩码内部距离变换的最大值)中采样点,遵循交互式分割中的标准评估协议,默认只评估模型中最确定的掩模。基线都是单掩码方法。我们主要与RITM [92]进行比较,这是一个强交互分段器。

数据集:使用一套新编译的23个具有不同图像分布的数据集,来进行mIoU评估

上图为对23个数据集的指向掩码评估。(a)SAM的平均MIOU和最强单点分段器RITM 。由于歧义,一个mask可能与GT不匹配;圆圈显示了SAM的3个预测中最相关的“神谕”结果。(b)每个数据集比较注释器从1到10(最差)(最好)的掩码质量评级。所有方法都使用GT掩模中心作为提示符。(c,d)具有不同点数的mIoU。SAM以1分显著优于之前的交互式分段器,并且得分更多。1点的低绝对mIoU是歧义的结果。

在这里插入图片描述

2.zero shot 目标 proposal

接下来,我们评估了SAM在对象提案生成的中级任务上的作用。这项任务在目标检测研究中发挥了重要的作用,作为开创性系统的中间步骤。为了生成对象建议,我们运行一个稍微修改的自动掩码生成管道的版本,并将掩码输出为提案。
我们计算了LVIS v1 上的标准平均召回率(AR)度量。我们关注LVIS,因为它的大量类别是一个具有挑战性的测试。我们与作为ViTDet 检测器(带有级联掩模R-CNN ViT-H)实现的强基线进行了比较。

结果:在表4中,我们可以毫不意外地看到,使用来自ViTDet-H的检测作为对象建议(即,游戏AR的DMP方法[16])总体上表现最好。然而,SAM在几个指标上都做得非常好。值得注意的是,它在中型和大型物体以及稀有和普通物体上都优于ViTDet-H。事实上,SAM只在小对象和频繁对象上的表现低于ViTDet-H,其中ViTDet-H可以很容易地学习LVIS特定的注释偏差,因为它是在LVIS上训练的,而不像SAM。我们还比较了消融的模糊模糊版本的SAM,它在所有AR指标上的表现都明显低于SAM。

3.zero shot 文本到掩码

最后,我们考虑一个更高层次的任务:从自由形式的文本中分割对象。这个实验证明了SAM处理文本提示的能力。虽然我们在之前的所有实验中都使用了完全相同的SAM,但对于这个实验,SAM的训练过程被修改以使其能够感知文本,但其方式不需要新的文本注释。具体来说,对于每个手动收集的面积大于1002的掩模,我们提取了CLIP图像嵌入。然后,在训练过程中,我们将提取的CLIP图像嵌入作为第一次交互,提示SAM。这里的关键观察结果是,由于CLIP的图像嵌入被训练成与文本嵌入对齐,所以我们可以使用图像嵌入进行训练,但要使用文本嵌入进行推理。也就是说,在推理时,我们通过CLIP的文本编码器运行文本,然后将生成的文本嵌入作为提示符提供给SAM。

在这里插入图片描述 结果我们在上图中显示了定性的结果。SAM可以根据简单的文本提示如“轮子”以及“海狸齿格栅”等短语来分割对象。当SAM不能仅从文本提示中选择正确的对象时,一个额外的点提示可以提供帮助,类似于[PhraseClick]。

4.zero shot Edge Detection

类似不再讨论

5. Zero-Shot Instance Segmentation

类似不再讨论

八、讨论

1.基础模型

自机器学习的早期以来,预训练的模型已经适应于下游任务。近年来,随着对规模的日益重视,这种模式变得越来越重要,这种模型最近被(重新)命名为“基础模型”:即“在大规模的广泛数据上进行训练,并适应广泛的下游任务”的模型。我们的工作与这个定义很好地相关,尽管我们注意到图像分割的基础模型本质上是一个有限的范围,因为它代表了计算机视觉的一个重要的、但有分数的子集。我们还将我们的方法的一个方面与[8]进行了对比,[ On the opportunities and risks of foundation models]强调了自我监督学习在基础模型中的作用。虽然我们的模型是用自监督技术(MAE)初始化的,但它的绝大部分能力来自于大规模的监督训练。在数据引擎可以扩展可用注释的情况下,监督训练提供了一个有效的解决方案。

2.组合性

预先训练过的模型可以增强新的能力,甚至超出了人们在训练时的想象。一个突出的例子是CLIP 如何在更大的系统中作为一个组件使用,如DALL·E。我们的目标是通过要求SAM为广泛的分割提示预测一个有效的掩码来实现这一点。其效果是在SAM和其他组件之间创建一个可靠的接口。例如,MCC 可以很容易地使用SAM来分割感兴趣的对象,并实现对单个RGB-D图像的三维重建的强泛化。在另一个例子中,SAM可以通过可穿戴设备检测到的注视点而被提示,从而启用新的应用程序。由于SAM能够推广到像 ego-centric 的图像这样的新领域,这样的系统不需要额外的训练就能工作。

3.限制

虽然SAM在总体上表现得很好,但它并不完美。它可能会错过精细的结构,有时会使小的断开的组件产生幻觉,并且不会像“放大”等计算密集型的方法那样清晰地产生边界。一般来说,当提供了许多点时,我们期望专用的交互式分割方法优于SAM。与这些方法不同,SAM是为通用性和使用广度而设计的,而不是高IoU交互分割。此外,SAM可以实时处理提示,但是当使用一个很重的图像编码器时,SAM的整体性能并不是实时的。我们对文本到mask任务的尝试是探索性的,并不是完全鲁棒的,尽管我们相信它可以通过更多的努力来改进。虽然SAM可以执行许多任务,但如何设计简单的提示来实现语义和全景分割尚不清楚。最后,还有一些特定于领域的工具,比如[ilastik: interactive machine learning for (bio)image analysis.],我们希望它们在各自的领域中优于SAM。

总结

Segment Anything 项目是一个试图提升图像分割到基础模型的时代。我们的主要贡献是一个新的任务(可提示的分割)、模型(SAM)和数据集(SA-1B),使这一飞跃成为可能。SAM是否达到了基础模型的状态还有待它在社区中的使用,但无论我们期望这项工作的视角,超过1B面具的发布,以及我们快速的分割模型将有助于铺平道路。
 

要学的东西太多,先鸽一下,咕咕咕。。。。。未完待续

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MappingGenerator PRO 2023.3 Visual Studio 2019-2022

您的私人编码助手 MappingGenerator 最初是作为 AutoMapper 的设计时替代品创建的。现在它正在演变为编码助手,您可以将最平凡的编码任务委派给它: 生成映射生成显式转换实施克隆生成投影表达式脚手架方法调用脚手架对象创建清理方法调用方便ILogger的使…

探讨Hive是否转为MapReduce程序

目录 前提条件 数据准备 探讨HQL是否转为MapReduce程序执行 1.设置hive.fetch.task.conversionnone 2.设置hive.fetch.task.conversionminimal 3.设置hive.fetch.task.conversionmore 前提条件 Linux环境下安装好Hive,这里测试使用版本为:Hive2.3.…

【结构型模式】适配者模式

文章目录优秀借鉴1、简介2、结构3、实现方式3.1、案例引入3.2、类适配器3.3、对象适配器3.4、接口适配器4、区别对比5、适配者模式优缺点6、应用场景优秀借鉴 黑马程序员Java设计模式详解-适配器模式概述适配器设计模式(封装器模式)一文彻底弄懂适配器模…

页眉怎么添加【节】,设置不同章节不同页眉

文章目录前言添加【节】,设置不同内容总结前言 大家写文档或者论文的时候可能会需要:不同章节页眉展示不同的内容 然而,在双击页眉进行编辑的时候却发现几个章节的页眉一起被修改了: 会出现文章与页眉不同步的情况&#xff0c…

idea使用Junit

文章目录 idea使用JunitJunit配置常用注解常用于测试的断言方法后续idea使用Junit 对项目使用Junit主要有两个步骤: 添加Junit依赖,即添加Junit jar包使用JunitJunit配置 方法一:idea自带的快捷方法 对要测试的类的方法,在该类中,右键鼠标呼出菜单,选择Generate,快捷…

简单的回顾Linux

linux命令ls会显示出文件的颜色, 系统约定的默认颜色含义如下: 白色:表示普通文件 蓝色:表示目录 绿色:表示可执行文件 红色:表示压缩文件 浅蓝色:链接文件 主要是使用ln命令建立的文件 红色闪烁:表示链接的…

Java实现打印杨辉三角形,向左、右偏的平行四边形这三个图形代码程序

目录 前言 一、打印杨辉三角形 1.1运行流程(思想) 1.2代码段 1.3运行截图 二、向左偏的平行四边形 1.1运行流程(思想) 1.2代码段 1.3运行截图 三、向右偏的平行四边形 1.1运行流程(思想) 1.2代…

inplace-operation-error 【已解决】

最近在搞CT医学图像分割模型的领域泛化优化,结果就出现了报错: 关于这个问题stackoverflow上有非常多的讨论,可以过去围观: 指路:中文版stackoverflow - 堆栈内存溢出 (stackoom.com) Stack Overflow - Where Develo…

UNET-RKNN分割眼底血管

前言 最近找到一个比较好玩的Unet分割项目,Unet的出现就是为了在医学上进行分割(比如细胞或者血管),这里进行眼底血管的分割,用的backbone是VGG16,结构如下如所示(项目里面的图片,借用的!借用标记出处&…

C语言函数大全--h开头的函数

C语言函数大全 本篇介绍C语言函数大全–h开头的函数或宏 1. hypot,hypotf,hypotl 1.1 函数说明 函数声明函数功能double hypot(double x, double y);计算直角三角形的斜边长(double)float hypotf (float x, float y);计算直角…

UPA/URA双极化天线的协方差矩阵结构

文章目录UPA的阵列响应向量(暂不考虑双极化天线)UPA阵列响应:从单极化天线到双极化天线UPA双极化天线的协方差矩阵结构参考文献UPA的阵列响应向量(暂不考虑双极化天线) 下图形象描述了UPA阵列的接收信号 UPA阵列的水平…

【springcloud 微服务】Spring Cloud 微服务网关Gateway使用详解

目录 一、微服务网关简介 1.1 网关的作用 1.2 常用网关 1.2.1 传统网关 1.2.2 云原生网关 二、gateway网关介绍 2.1 问题起源 2.2 引发的问题 2.2.1 重复造轮子 2.2.2 调用低效 2.2.3 重构复杂 2.3 gateway改进 三、Spring Cloud Gateway 介绍 3.1 Gateway 概述 …

【JSON学习笔记】3.JSON.parse()及JSON.stringify()

前言 本章介绍JSON.parse()及JSON.stringify()。 JSON.parse() JSON 通常用于与服务端交换数据。 在接收服务器数据时一般是字符串。 我们可以使用 JSON.parse() 方法将数据转换为 JavaScript 对象。 语法 JSON.parse(text[, reviver])参数说明: text:必需&…

Angular可视化指南 - 用Kendo UI图表组件创建数据可视化

Kendo UI for Angular是专业级的Angular UI组件库,不仅是将其他供应商提供的现有组件封装起来,telerik致力于提供纯粹高性能的Angular UI组件,而无需任何jQuery依赖关系。无论您是使用TypeScript还是JavaScript开发Angular应用程序&#xff0…

【机器学习(二)】线性回归之梯度下降法

文章目录专栏导读1、梯度下降法原理2、梯度下降法原理代码实现3、sklearn内置模块实现专栏导读 ✍ 作者简介:i阿极,CSDN Python领域新星创作者,专注于分享python领域知识。 ✍ 本文录入于《数据分析之术》,本专栏精选了经典的机器…

1漏洞发现

漏洞发现-操作系统之漏洞探针类型利用修复 一、操作系统漏洞思维导图 相关名词解释: CVSS(Common Vulnerability Scoring System,即“通用漏洞评分系统”) CVSS是安全内容自动化协议(SCAP)的一部分通常C…

rockchip rk3588添加uvc及uvc,adb的复合设备

软硬件环境: 软件基础:我目前拿到的rk3588 sdk :gitwww.rockchip.com.cn:2222/Android_S/rk3588- manifests.git硬件基础:RK3588 LP4X EVB uvc_app: 从rv1126 sdk中rv1126_sdk/rv1126/external/uvc_app 目录移植而来。移植后&…

能翻译大量文字的软件-正规的翻译软件

复制自动翻译软件是一种能够复制并自动翻译文本的工具。当您阅读某一种语言的文本时,这种软件可以快速识别并翻译出来,以方便您更好地理解内容。与其他翻译软件不同的是,复制自动翻译软件可以直接在游览网站的过程中,直接对用户正…

【C++】命名空间,缺省参数,函数重载,引用,内联函数

目录1. 命名空间2. 输入输出3. 缺省参数4. 函数重载为什么C支持函数重载?5. 引用5.1 引用作函数参数(输出型参数)5.2 作函数的返回值关于函数的返回值:5.3 引用权限关于类型转换:5.4 引用和指针6. 内联函数6.1 C推荐的…

【千题案例】TypeScript获取两点之间的距离 | 中点 | 补点 | 向量 | 角度

我们在编写一些瞄准、绘制、擦除等功能函数时,经常会遇到计算两点之间的一些参数,那本篇文章就来讲一下两点之间的一系列参数计算。 目录 1️⃣ 两点之间的距离 ①实现原理 ②代码实现及结果 2️⃣两点之间的中点 ①实现原理 ②代码实现及结果 3…