【读点论文】Segment Anything,视觉界的GPT,可以通过Prompt完成图像实体理解的视觉基础大模型,处理零样本任务

Segment Anything

Abstract

  • 我们介绍了Segment Anything(SA)项目:一种用于图像分割的新任务、模型和数据集。在数据收集循环中使用我们的高效模型,我们构建了迄今为止(迄今为止)最大的分割数据集,在1100万张许可和尊重隐私的图像上拥有超过10亿个掩码。该模型被设计和训练为可提示的,因此它可以将零样本转换为新的图像分布和任务。我们对其在许多任务中的能力进行了评估,发现其零样本性能令人印象深刻——通常与之前完全监督的结果相竞争,甚至优于之前的结果。我们将在发布Segment Anything Model(SAM)和1B掩码和11M图像的相应数据集(SA-1B)https://segment-anything.com促进对计算机视觉基础模型的研究。
  • SAM 主要由三个组件构成:图像编码器(ImageEncoder)、提示编码器(PromptEncoder)、和解码器(MaskDecoder)。图像编码器使用 MAE 进行预训练,整个 SAM 在拥有 11 亿标注的训练集 SA-1B 上进一步进行微调,训练时使用了 Focal loss 和 Dice loss 的组合。推理时,测试图片 x 首先由图像编码器进行编码,然后给定提示 Prompt,轻量级的解码器将进行三个级别的预测。SAM是一个提示型模型,其在1100万张图像上训练了超过10亿个掩码,实现了强大的零样本泛化。许多研究人员认为「这是 CV 的 GPT-3 时刻,因为 SAM 已经学会了物体是什么的一般概念,甚至是未知的物体、不熟悉的场景(如水下、细胞显微镜)和模糊的情况」,并展示了作为 CV 基本模型的巨大潜力。
    • 图像编码器:基于可扩展和强大的预训练方法,研究者使用MAE预训练的ViT,最小限度地适用于处理高分辨率输入。图像编码器对每张图像运行一次,在提示模型之前进行应用。
    • 提示编码器:考虑两组prompt:稀疏(点、框、文本)和密集(掩码)。研究者通过位置编码来表示点和框,并将对每个提示类型的学习嵌入和自由形式的文本与CLIP中的现成文本编码相加。密集的提示(即掩码)使用卷积进行嵌入,并通过图像嵌入进行元素求和。
    • 掩码解码器:掩码解码器有效地将图像嵌入、提示嵌入和输出token映射到掩码。
  • facebookresearch/segment-anything: The repository provides code for running inference with the SegmentAnything Model (SAM), links for downloading the trained model checkpoints, and example notebooks that show how to use the model. (github.com)
  • 论文地址:[2304.02643] Segment Anything (arxiv.org)

Introduction

  • 在网络级数据集上预先训练的大型语言模型正在以强大的零样本和较少的搜索泛化彻底改变NLP。这些“基础模型”可以推广到训练过程中看到的任务和数据分布之外。这种功能通常通过提示工程来实现,在提示工程中,手工制作的文本用于提示语言模型为手头的任务生成有效的文本响应。当使用来自网络的丰富文本语料库进行缩放和训练时,这些模型的零样本和少样本性能与微调模型(在某些情况下甚至匹配)相比出奇地好。经验趋势表明,这种行为随着模型规模、数据集大小和总训练计算的增加而改善。
  • 基础模型也在计算机视觉中进行了探索,尽管程度较低。也许最突出的插图将来自网络的成对文本和图像对齐。例如,CLIP和ALIGN使用对比学习来训练对齐两种模态的文本和图像编码器。经过训练,经过设计的文本提示使零样本能够概括为新颖的视觉概念和数据分布。这种编码器还与其他模块有效组合,以实现下游任务,如图像生成(例如,DALL·e)。虽然在视觉和语言编码器方面已经取得了很大进展,但计算机视觉包括了超出这一范围的广泛问题,其中许多问题还不存在丰富的训练数据
  • 在这项工作中,我们的目标是建立一个图像分割的基础模型。也就是说,我们寻求开发一个可提示的模型,并使用能够实现强大泛化的任务在广泛的数据集上对其进行预训练。有了这个模型,我们的目标是使用即时工程解决新数据分布上的一系列下游分割问题。这个计划的成功取决于三个部分:任务、模型和数据。为了开发它们,我们解决了以下关于图像分割的问题:
    • 什么任务可以实现零样本泛化?
    • 相应的模型架构是什么?
    • 什么数据可以支持此任务和模型?
  • 这些问题错综复杂,需要全面解决。我们首先定义一个可提示的分割任务,该任务足够通用,可以提供强大的预训练目标,并实现广泛的下游应用。此任务需要一个支持灵活提示的模型,并且可以在提示时实时输出分割掩码,以允许交互式使用。为了训练我们的模型,我们需要一个多样化的、大规模的数据源。不幸的是,没有用于分割的网络规模的数据源;为了解决这个问题,我们构建了一个“数据引擎”,即我们在使用高效模型来帮助数据收集和使用新收集的数据来改进模型之间进行迭代。接下来,我们介绍每个互连的组件,然后是我们创建的数据集和证明我们方法有效性的实验。
    • task(§2)。在NLP和最近的计算机视觉中,基础模型是一个很有前途的发展,可以通过使用“提示”技术对新的数据集和任务执行零样本和少样本学习。受这项工作的启发,我们提出了可提示的分割任务,其中的目标是在给定任何分割提示的情况下返回有效的分割掩码(见图第a段)。提示只是指定在图像中分割什么,例如,提示可以包括标识对象的空间或文本信息。有效输出掩码的要求意味着,即使提示不明确并且可能涉及多个对象(例如,衬衫上的一个点可能指示衬衫或穿着它的人),输出也应该是这些对象中至少一个的合理掩码。我们使用可提示的分割任务作为预训练目标,并通过提示工程解决一般的下游分割任务

    • model(§3)。可提示的分割任务和真实世界使用的目标对模型架构施加了约束。特别是,该模型必须支持灵活的提示,需要实时计算掩码以允许交互式使用,并且必须具有模糊性意识。令人惊讶的是,我们发现一个简单的设计满足了所有三个约束:强大的图像编码器计算图像嵌入,提示编码器嵌入提示,然后将这两个信息源组合在预测分割掩码的轻量级掩码解码器中。我们将此模型称为分段任意模型或SAM(见下图中b)。通过将SAM分离为图像编码器和快速提示编码器/掩码解码器,可以在不同提示下重用相同的图像嵌入(并分摊其成本)。给定图像嵌入,提示编码器和掩码解码器在web浏览器中从提示预测掩码,时间为~50ms。我们专注于点、框和掩码提示,还使用自由格式的文本提示显示初始结果。为了让SAM意识到模糊性,我们将其设计为预测单个提示的多个掩码,使SAM能够自然地处理模糊性,例如衬衫与人的示例

    • Data engine(§4)。为了实现对新数据分布的强泛化,我们发现有必要在一组庞大而多样的掩码上训练SAM,超越现有的任何分割数据集。虽然基础模型的一种典型方法是在线获取数据[Learning transferable visual models from natural language supervision],但mask并不自然丰富,因此我们需要一种替代策略。我们的解决方案是建立一个“数据引擎”,即我们与模型在环数据集注释共同开发我们的模型(见下图c)。我们的数据引擎有三个阶段:辅助手动、半自动和全自动。在第一阶段,SAM帮助注释器注释掩码,类似于经典的交互式分段设置。在第二阶段,SAM可以通过提示可能的对象位置自动为对象子集生成掩码,注释器专注于注释其余对象,有助于增加掩码的多样性。在最后阶段,我们用规则的前景点网格提示SAM,平均每张图像产生约100个高质量遮罩。

    • 在这里插入图片描述

      • 我们的目标是通过引入三个相互关联的组件来构建分割的基础模型:可提示的分割任务、支持数据注释并通过提示工程将零样本转移到一系列任务的分割模型(SAM),以及用于收集SA-1B(我们的超过10亿个掩码的数据集)的数据引擎。
    • Dataset(§5)。我们的最终数据集SA-1B包括来自11M许可和隐私保护图像的超过1B个掩码。SA-1B是使用我们的数据引擎的最后阶段完全自动收集的,其掩码比任何现有的分割数据集都多400倍,正如我们广泛验证的那样,掩码具有高质量和多样性。除了将其用于训练SAM以使其强健和通用之外,我们希望SA-1B成为旨在建立新基础模型的研究的宝贵资源。

    • Responsible AI(§6)。我们研究并报告了使用SA-1B和SAM时潜在的公平问题和偏见。SA-1B中的图像跨越了地理和经济上不同的国家,我们发现SAM在不同人群中表现相似。我们希望这将使我们的工作在现实世界的用例中更加公平。我们在附录中提供了模型和数据集卡。

    • Experiments(§7)。我们对SAM进行了广泛的评估。首先,使用一套由23个分割数据集组成的新数据集,我们发现SAM从单个前景点生成高质量的掩模,通常仅略低于手动注释的 ground truth。其次,我们使用提示工程在零样本传输协议下的各种下游任务上发现了一致的强定量和定性结果,包括边缘检测、对象建议生成、实例分割和文本到任务预测的初步探索。这些结果表明,SAM可以通过即时工程开箱即用,以解决涉及SAM训练数据之外的对象和图像分布的各种任务。尽管如此,正如我们在第8节中所讨论的,仍有改进的空间。

    • Release. 我们发布SA-1B数据集用于研究目的,并在允许的开放许可证(Apache 2.0)下提供SAMhttps://segment-anything.com.我们还通过在线演示展示SAM的能力 Segment Anything | Meta AI (segment-anything.com)。

  • 掩码质量:为了评估掩码质量,研究者随机抽取了500张图像(大约5万个掩码),要求专业标注员使用像素精确的“画笔”和“橡皮擦”在模型预测掩码的基础上对其进行专业矫正。这一过程,产生成对的模型预测掩码以及人工专业矫正后的掩码。通过计算每对之间的IoU,来评估掩码质量。实现结果发现,94%的对具有大于90%的IoU。

Segment Anything Task

  • 我们从NLP中获得了灵感,其中下一个令牌预测任务用于基础模型预训练,并通过prompt engineering解决各种下游任务。为了建立分割的基础模型,我们的目标是定义具有类似功能的任务。

  • task,我们首先将提示的概念从NLP转换为分割,其中提示可以是一组前景/背景点、粗略框或掩码、自由格式文本,或者通常是指示在图像中分割什么的任何信息。那么,可提示的分割任务是在给定任何提示的情况下返回有效的分割掩码。“有效”掩码的要求只是意味着,即使提示不明确,并且可能涉及多个对象(例如,回忆衬衫与人的例子,见下图),输出也应该是其中至少一个对象的合理掩码。这一要求类似于期望语言模型对模棱两可的提示输出连贯的响应。我们选择这个任务是因为它产生了一种自然的预训练算法和一种通过提示将零样本转移到下游分割任务的通用方法

    • 在这里插入图片描述

    • 每列显示SAM从单个不明确的点提示(绿色圆圈)生成的3个有效掩码。

  • Pre-training.可提示分割任务提出了一种自然的预训练算法,该算法模拟每个训练样本的提示序列(例如,点、框、掩码),并将模型的掩码预测与基本事实进行比较。我们将这种方法从交互式分割中进行了调整,尽管与交互式分割不同,交互式分割的目标是在足够的用户输入后最终预测有效的掩码,但我们的目标是始终预测任何提示的有效掩码,即使提示不明确。这确保了预训练的模型在涉及歧义的用例中是有效的,包括我们的数据引擎§4要求的自动注释。我们注意到,在这项任务中表现出色是一项挑战,需要专门的建模和训练损失选择,我们将在§3中对此进行讨论。

  • Zero-shot transfer. 直观地说,我们的预训练任务赋予了模型在推理时对任何提示做出适当响应的能力,因此下游任务可以通过设计适当的提示来解决。例如,如果有一个猫的边界框检测器,则可以通过向我们的模型提供检测器的框输出作为提示来解决猫实例分割问题。一般来说,一系列实用的分割任务可以作为提示。除了自动数据集标记外,我们还在§7中的实验中探索了五个不同的示例任务。

  • Related tasks. 分割是一个广泛的领域:有交互式分割、边缘检测、超级像素化、对象建议生成、前景分割、语义分割、实例分割、全景分割等。我们的可提示分割任务的目标是通过prompt engineering生成一个功能广泛的模型,该模型可以适应许多(尽管不是所有)现有和新的分割任务。这种能力是任务泛化的一种形式。请注意,这与之前关于多任务分割系统的工作不同。在多任务系统中,单个模型执行一组固定的任务,例如联合语义、实例和全景分割,但训练和测试任务是相同的。我们工作中的一个重要区别是,为可提示分割训练的模型可以在推理时通过充当更大系统中的组件来执行新的不同任务,例如,为了执行实例分割,将可提示分割模型与现有的对象检测器相结合。

  • Discussion. 提示和组合是功能强大的工具,使单个模型能够以可扩展的方式使用,有可能完成模型设计时未知的任务。这种方法类似于其他基础模型的使用方式,例如CLIP是DALL·e图像生成系统的文本图像对齐组件。我们预计,与专门为固定任务集训练的系统相比,由prompt engineering等技术提供动力的可组合系统设计将实现更广泛的应用程序。从合成的角度比较可提示分割和交互式分割也很有趣:虽然交互式分割模型是在考虑人类用户的情况下设计的,但为可提示分割训练的模型也可以组成一个更大的算法系统,正如我们将要演示的那样。

Segment Anything Model

  • 接下来,我们将描述可提示分割的分段任意模型(SAM)。SAM有三个组件,如下图所示:图像编码器、灵活提示编码器和快速掩码解码器。我们建立在Transformer视觉模型的基础上,对(摊销的)实时性能进行了特定的权衡。我们在这里对这些组件进行了高层描述,详细信息见§a。

    • 在这里插入图片描述

    • 分段任何模型(SAM)概述。重量级图像编码器输出图像嵌入,然后可以通过各种输入提示有效地查询该图像嵌入,以摊余的实时速度生成对象掩码。对于与多个对象对应的模糊提示,SAM可以输出多个有效掩码和相关的置信度分数。

  • 图像编码器。受可扩展性和强大的预训练方法的启发,我们使用了MAE预训练的(ViT),该Transformer至少适用于处理高分辨率输入。图像编码器每个图像运行一次,并且可以在提示模型之前应用。

  • 提示编码器。我们考虑两组提示:稀疏(点、框、文本)和密集(掩码)。我们通过位置编码来表示点和框,这些位置编码与每个提示类型的学习嵌入相加,并使用CLIP的现成文本编码器来表示自由格式文本。密集提示(即掩码)使用卷积嵌入,并与图像嵌入逐元素求和

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

  • 解决歧义。对于一个输出,如果给出不明确的提示,模型将平均多个有效掩码。为了解决这一问题,我们修改了模型,以预测单个提示的多个输出掩码。我们发现,3个掩码输出足以解决最常见的情况(嵌套掩码通常最多有三个深度:整体、部分和子部分)。在训练过程中,我们只在mask上反向探测最小的损失。为了对掩码进行排序,该模型预测每个掩码的置信度得分(即估计的IoU)。

  • Efficiency. 整体模型设计在很大程度上是以效率为动力的。给定预先计算的图像嵌入,提示编码器和掩码解码器在网络浏览器中运行,在CPU上,大约50ms。这种运行时性能使我们的模型能够无缝、实时地进行交互式提示。

  • Losses and training. 我们使用[End-to-end object detection with Transformers]中使用的焦点损失和dice损失的线性组合来监督掩模预测。我们使用混合的几何提示来训练可提示的分割任务(文本提示见§7.5)。我们通过在每个掩码的11轮中随机采样提示来模拟交互式设置,允许SAM无缝集成到我们的数据引擎中。

Segment Anything Data Engine

  • 由于互联网上的分割掩码并不丰富,我们建立了一个数据引擎来收集我们的1.1亿掩码数据集SA-1B。数据引擎有三个阶段:(1)模型辅助的手动注释阶段,(2)混合了自动预测掩码和模型辅助注释的半自动阶段,以及(3)我们的模型在没有注释器输入的情况下生成掩码的全自动阶段。接下来我们将详细介绍每一个。
  • 辅助手动阶段。在第一阶段,类似于经典的交互式分割,一组专业注释人员通过使用SAM提供的基于浏览器的交互式分割工具点击前景/背景对象点来标记遮罩。遮罩可以使用pixelprecise “画笔”和“橡皮擦”工具进行细化。我们的模型辅助注释直接在浏览器内实时运行(使用预先计算的图像嵌入),实现真正的交互式体验。我们没有对标记对象施加语义约束,注释器可以自由地标记“东西”和“事物”。我们建议注释器标记他们可以命名或描述的对象,但没有收集这些名称或描述。注释者被要求按照突出的顺序标记对象,并被鼓励在mask注释超过30秒后继续下一张图像。在这个阶段开始时,SAM是使用公共分割数据集进行训练的。在充分的数据注释后,仅使用新注释的掩码对SAM进行再训练。随着更多掩模的收集,图像编码器从ViT-B扩展到ViT-H,其他架构细节也在发展;我们总共对模型进行了6次再训练。随着模型的改进,每个掩码的平均注释时间从34秒减少到14秒。我们注意到,14秒比COCO的掩码注释快6.5倍,仅比使用极值点的边界框标记慢2倍。随着SAM的改进,每张图像的平均掩模数量从20个增加到44个。总的来说,我们在这一阶段从120k张图像中收集了430万个mask。
  • Semi-automatic stage. 在这个阶段,我们的目标是增加 mask 的多样性,以提高我们的模型分割任何东西的能力。为了将注释器集中在不太突出的对象上,我们首先自动检测到自信的掩码。然后,我们向注释器展示了预先填充了这些掩码的图像,并要求他们注释任何其他未注释的对象。为了检测有信心的掩码,我们使用通用的“对象”类别在所有第一阶段掩码上训练了一个边界框检测器。在此阶段,我们在180k张图像中额外收集了590万个掩模(总共1020万个掩膜)。与第一阶段一样,我们定期根据新收集的数据对模型进行再训练(5次)。每个掩码的平均注释时间回到了34秒(不包括自动掩码),因为这些对象更难标记。每张图像的平均口罩数量从44个增加到72个(包括自动mask)。
  • Fully automatic stage. 在最后阶段,注释是完全自动的。这是可行的,因为我们的模型有两个主要的增强。首先,在这个阶段开始时,我们收集了足够的 mask 来大大改进模型,包括前一阶段的各种 mask。其次,到了这个阶段,我们已经开发了模糊感知模型,它使我们能够预测有效的掩码,即使在模糊的情况下也是如此。具体来说,我们用32×32的规则网格提示模型,并为每个点预测一组可能对应于有效对象的掩码。使用模糊感知模型,如果一个点位于部分或子部分上,我们的模型将返回子部分、部分和整个对象。我们模型的IoU预测模块用于选择置信掩码;此外,我们只识别和选择了稳定的掩模(如果在0.5−δ和0.5+δ处对概率图进行阈值处理会产生类似的掩模,则我们认为掩模是稳定的)。最后,在选择了置信和稳定的掩码后,我们应用非最大抑制(NMS)来过滤重复。为了进一步提高较小遮罩的质量,我们还处理了多个重叠的放大图像裁剪。有关此阶段的更多详细信息,请参见§B。我们将全自动掩模生成应用于数据集中的所有1100万张图像,总共生成了11亿个高质量掩模。接下来,我们将描述并分析生成的数据集SA-1B。
  • 该数据引擎有三个阶段:模型辅助手动标注、半自动标注阶段和全自动阶段。
    • 模型辅助手动标注阶段:研究者首先使用常见的公开图像分割数据集训练SAM,然后使用SAM为SA-1B数据预测图像掩码,由一组专业标注人员在预测掩码的基础上进行掩码细化。标注人员可以自由地为掩码赋予标签;此外,标注人员需要按照对象的突出程度来标记对象,并且掩码标注超过30秒就要继续处理下一张图像。在充分的数据标注后,仅使用新标注的掩码对SAM进行重新训练(该阶段总共训练了模型6次)。随着收集到更多的掩码,图像编码器从ViT-B扩展到ViT-H。同时,随着模型的改进。每个掩码的平均标注时间从34秒减少到14秒(比COCO的掩码标注快6.5倍,比2D框标注慢2倍);每个图像的平均掩码数量从20个掩码增加到44个掩码。总的来说,该阶段从12万张图像中收集了4630万个掩码。
    • 半自动阶段该阶段:其目标是增加掩码的多样性,以提供模型分割东西的能力。为了使标注者专注于不太突出的对象,首先SAM自动分割高置信度的掩码,然后向标注者展示预填充这些掩码的图像,并要求他们标注任何其他未标注的对象。该阶段在18万张图像中额外收集590万个掩码(总共1020万个掩码)。与第一阶段一样,定期在新收集的数据集上重新训练模型。每个掩码的平均标注时间回到34秒。每个图像的平均掩码数量从44个增加到72个。
    • 全自动阶段这个阶段:这个阶段的标注是全自动的,因为模型有两个主要的增强。首先,在这一阶段的开始,收集了足够多的掩码来大大改进模型;其次,在这一阶段,已经开发了模糊感知模型,它允许在有歧义的情况下预测有效的掩码。具体来说,用32x32的规则网络点来提示网络,并为每个点预测一组可能对应于有效对象的掩码。在模糊感知模型中,如果一个点位于某个部分或子部分上,模型将返回子部分、局部和整个对象。该模型的IoU模块将选择高置信度的掩码,同时选择稳定掩码(如果阈值化概率图在0.5-σ,0.5+σ)产生相似的掩码,则认为是稳定掩码。最后,在选择高置信度和稳定的掩码后,采用NMS对重复数据进行过滤。该阶段,在1100万张图像上全自动生成11亿个高质量掩码。

Segment Anything Dataset

  • 我们的数据集SA-1B由11M多样、高分辨率、授权和隐私保护的图像和使用我们的数据引擎收集的1.1B高质量分割掩码组成。我们将SA-1B与现有数据集进行了比较,并分析了掩模质量和特性。我们正在发布SA-1B,以帮助未来开发计算机视觉的基础模型。我们注意到,SA-1B将在某些研究用途的有利许可协议下发布,并为研究人员提供保护。

  • 图像。我们从一家直接与photographers合作的供应商那里获得了1100万张新照片的许可。这些图像具有高分辨率(平均3300×4950像素),由此产生的数据大小可能会带来可访问性和存储方面的挑战。因此,我们发布了最短边设置为1500像素的下采样图像。即使在下采样后,我们的图像的分辨率也明显高于许多现有的视觉数据集(例如,COCO图像的分辨率为~480×640像素)。请注意,目前大多数模型都使用分辨率低得多的输入。在公布的图像中,人脸和车牌被模糊了。

  • mask。我们的数据引擎产生了11亿个掩码,其中99.1%是完全自动生成的。因此,自动口罩的质量至关重要。我们将它们直接与专业注释进行比较,并观察各种掩码属性与突出的分割数据集的比较情况。正如下面的分析和§7中的实验所证明的那样,我们的主要结论是,我们的自动mask质量高,对训练模型有效。受这些发现的启发,SA-1B仅包括自动生成的遮罩。

  • Mask quality. 为了估计掩模质量,我们随机采样了500张图像(~50k个掩模),并要求我们的专业注释人员提高这些图像中所有掩模的质量。注释人员使用我们的模型和像素精确的“画笔”和“橡皮擦”编辑工具来完成这项工作。这一过程产生了一对自动预测和专业校正的口罩。我们计算了每对之间的IoU,发现94%的对的IoU大于90%(97%的对的IoU大于75%)。为了进行比较,先前的工作估计注释器之间的一致性为85-91%IoU。我们在§7中的实验通过人工评分证实,相对于各种数据集,mask质量很高,在自动口罩上训练我们的模型几乎与使用数据引擎产生的所有mask一样好。

  • Mask properties. 在下图中,与现有最大的分割数据集相比,我们绘制了SA-1B中对象中心的空间分布。所有数据集中都存在常见的photographer 偏见。我们观察到,与分布最相似的两个数据集LVIS v1和ADE20K相比,SA-1B具有更大的图像角覆盖范围,而COCO和Open Images V5具有更显著的中心偏差。

    • 在这里插入图片描述
  • 在下图(图例)中,我们按大小比较了这些数据集。SA-1B比第二大的Open images多了11倍的图像和400倍的掩码。平均而言,它的每张图像的掩码是Open Images的36倍。在这方面最接近的数据集ADE20K,每张图像的掩码仍然减少了3.5倍。下图(左)绘制了遮罩的周边图像分布。接下来,我们看看图(中间)中的图像相对掩模大小(掩模面积除以图像面积的平方根)。正如预期的那样,由于我们的数据集每幅图像有更多的掩码,因此它也倾向于包括更大比例的中小型相对大小掩码。最后,为了分析形状复杂性,我们观察图中的掩模凹度(1减去掩模面积除以掩模凸包的面积)。下图(右)段。由于形状复杂度与掩码大小相关,我们通过首先从装仓掩码大小执行分层采样来控制数据集的掩码大小分布。我们观察到,我们的掩码的凹陷分布与其他数据集的凹陷分布大致相似。

    • 在这里插入图片描述

    • 数据集掩码属性。图例引用了每个数据集中的图像和遮罩的数量。请注意,SA-1B比现有最大的分割数据集Open images多了11倍的图像和400倍的掩码。

Segment Anything RAI Analysis

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

  • Geographic and income representation.我们推断国家图像是使用标准方法拍摄的(见§C)。在下图中,我们可视化了SA-1B(左)和图像最多的50个国家(右)中的每个国家的图像计数。我们注意到,排名前三的国家来自世界不同地区。

    • 在这里插入图片描述

    • SA-1B图像的估计地理分布。世界上大多数国家的SA-1B图像都超过1000张,图像最多的三个国家来自世界不同地区。

  • 接下来,在下表中,我们比较了SA-1B、COCO和Open Images的地理和收录表示。SA-1B在欧洲、亚洲和大洋洲以及中等收入国家的图片比例要高得多。所有数据集都低估了非洲和低收入国家的代表性。我们注意到,在SA-1B中,包括非洲在内的所有地区都至少有2800万个口罩,比以往任何数据集的口罩总数都多10倍。最后,我们观察到,每个图像(未显示)的平均掩码数量在区域和收入之间相当一致(每个图像94-108个)。

    • 在这里插入图片描述

    • Comparison of geographic and income representation. SA-1B在欧洲、亚洲和大洋洲以及中等收入国家有更高的代表性。来自非洲、拉丁美洲和加勒比地区以及低收入国家的图像在所有数据集中的代表性都不足。

  • 细分人群的公平性。我们通过测量各组之间SAM的表现差异,调查了感知性别表现、感知年龄组和感知肤色的潜在公平问题。我们使用更具包容性的人群注释(MIAP)数据集来进行性别表示和年龄,并使用专有的肤色数据集(见§C)。我们的评估使用模拟交互式分割,随机采样1点和3点(见§D)。下表(左上)显示了感知性别表现的结果。我们注意到,女性在检测和分割数据集中的代表性不足,但观察到SAM在各组中的表现相似。我们重复表(左下)中对感知年龄的分析,注意到那些被感知为越来越年轻的人在大规模数据集中的代表性不足。SAM在那些被认为年龄较大的人身上表现最好(尽管置信区间很大)。最后,我们重复表(右)中对感知肤色的分析,注意到在大规模数据集中,表观肤色较浅的人被证明代表性过高,而肤色较深的人代表性不足。由于MIAP不包含感知肤色注释,我们使用了一个专有数据集,该数据集包含感知Fitzpatrick皮肤类型的注释,其范围从1(最浅肤色)到6(最深肤色)。虽然平均数有所不同,但我们没有发现各组之间的显著差异。我们相信我们的发现源于任务的性质,并承认当SAM被用作更大系统的组件时可能会出现偏差。最后,在§C中,我们将分析扩展到服装细分,在那里我们发现了感知性别表现的偏见迹象。

Zero-Shot Transfer Experiments

  • 在本节中,我们介绍了SAM的 zero-shot transfer 实验,即分段任意模型。我们考虑了五个任务,其中四个任务与用于训练SAM的可提示分割任务显著不同。这些实验在训练期间未看到的数据集和任务上评估SAM(我们对“ zero-shot transfer”的使用遵循其在CLIP中的使用)。数据集可能包括新的图像分布,如水下或以自我为中心的图像(如下图),据我们所知,这些图像没有出现在SA-1B中。
    • 在这里插入图片描述

    • 来自23个不同分割数据集的样本用于评估SAM的 zero-shot transfer能力。

  • 我们的实验首先测试可提示分割的核心目标:从任何提示生成有效的掩码。我们强调单个前景点提示的挑战性场景,因为它比其他更具体的提示更有可能是模糊的。接下来,我们将介绍一系列实验,这些实验横跨低、中、高级别的图像理解,并大致平行于该领域的历史发展。具体来说,我们提示SAM(1)执行边缘检测,(2)对所有内容进行分段,即。对象建议生成,(3)分割检测到的对象,即实例分割,以及(4)作为概念证明,从自由格式文本中分割对象。这四项任务与SAM接受训练并通过即时工程实施的可提示分割任务有很大不同。我们的实验以消融研究结束。
  • Implementation. 除非另有规定:(1)SAM使用MAE预训练的ViT-H图像编码器,(2)SAM在SA-1B上训练,注意该数据集仅包括数据引擎最后阶段自动生成的掩码。有关所有其他模型和训练细节,如超参数,请参阅§A。

Zero-Shot Single Point Valid Mask Evaluation

  • task,我们评估从单个前景点分割对象。由于一个点可以引用多个对象,因此此任务不适合。大多数数据集中的 gt 掩码并没有枚举所有可能的掩码,这可能会使自动度量变得不可靠。因此,我们用一项人类研究来补充标准的mIoU度量(即预测掩码和地面实况掩码之间的所有IoU的平均值),在该研究中,注释者对掩码质量的评分从1(无意义)到10(像素完美)。有关更多详细信息,请参见§D.1、§E和§G。

  • 默认情况下,我们根据交互式分割中的标准评估协议,从 gt 掩码的“中心”(掩码内部距离变换的最大值)采样点。由于SAM能够预测多个掩码,因此默认情况下,我们仅评估模型的最自信掩码。基线都是单掩码方法。我们主要与RITM进行比较,这是一种强大的交互式分割器,与其他强大的基线相比,它在我们的基准上表现最好。

  • 数据集。我们使用了一套新编译的23个数据集,这些数据集具有不同的图像分布。上图列出了数据集,并显示了每个数据集的样本(更多细节请参见附录表)。我们使用所有23个数据集进行mIoU评估。对于人类研究,我们使用下图b中列出的子集(由于此类研究的资源需求)。该子集包括SAM根据自动度量优于和低于RITM的两个数据集。

    • 在这里插入图片描述

    • 对23个数据集进行点对掩模评估。(a) SAM和最强单点分割器RITM的平均IoU。由于模糊性,单个掩码可能与 gt 不匹配;圆圈显示SAM的3个预测中最相关的“预言”结果。(b) 注释器对掩码质量评级的每个数据集比较,从1(最差)到10(最好)。所有方法都使用 gt 遮罩中心作为提示。(c,d)mIoU。SAM以1分的成绩显著优于先前的交互式分割器,并且与更多的分数不相上下。1点处的低绝对mIoU是模糊性的结果。

  • Results. 首先,我们研究使用mIoU对23个数据集的全套数据集进行自动评估。我们比较了下图a中每个数据集的结果与RITM。SAM在23个数据集中的16个数据集上产生了更高的结果,高达~47 IoU。我们还提出了一个“预言”结果,其中SAM的3个掩码中最相关的是通过将它们与 gt 进行比较来选择的,而不是选择最自信的掩码。这揭示了歧义对自动评估的影响。特别是,使用oracle来执行模糊性解决,SAM在所有数据集上都优于RITM。

  • 人体研究的结果如上图b所示。误差条是平均掩码评级的95%置信区间(所有差异都是显著的;详见§E)。我们观察到,注释者一致认为SAM掩码的质量大大高于最强基线RITM。带有单个输出掩码的消融的“不模糊”SAM版本的评级一直较低,但仍高于RITM。SAM的平均评级在7到9之间,这与定性评级指南相对应:“高分(7-9):对象是可识别的,错误很小,也很罕见(例如,缺少一个小的、严重模糊的断开组件…)。”这些结果表明SAM已经学会从一个点分割有效的掩码。请注意,对于像DRAM和IBD这样的数据集,SAM在自动指标上更差,它在人类研究中得到的评分始终更高。

  • 上图c显示了额外的基线,SimpleClick和FocalClick,它们获得的单点性能低于RITM和SAM。随着点数从1增加到9,我们观察到方法之间的差距减小。随着任务变得更容易,这是意料之中的事;此外,SAM没有针对非常高的IoU制度进行优化。最后,在上图d中,我们将默认的中心点采样替换为随机点采样。我们观察到SAM和基线之间的差距越来越大,并且SAM能够在任何一种采样方法下获得可比较的结果。

Zero-Shot Edge Detection

  • approach. 我们使用BSDS500在边缘检测的经典低级别任务上评估SAM。我们使用简化版本的自动掩码生成管道。具体来说,我们用前景点的16×16规则网格提示SAM,得到768个预测掩码(每个点3个)。NMS移除冗余掩码。然后,使用无阈值掩码概率图的Sobel滤波和标准轻量级后处理(包括边缘NMS)来计算边缘图(详见§D.2)。
  • Results.我们在下图中可视化了具有代表性的边缘图。定性地说,我们观察到,即使SAM没有经过边缘检测训练,它也会产生合理的边缘图。与基本事实相比,SAM预测了更多的边,包括BSDS500中未注释的合理边。
    • 在这里插入图片描述

    • 在BSDS500上进行Zero-shot边缘预测。SAM没有经过预测边缘图的训练,也没有在训练期间访问BSDS图像或注释。

  • 这种偏差定量地反映在下表中:50%精度(R50)的召回率很高,但以精度为代价。SAM自然落后于学习BSDS500偏差的最先进方法,即要抑制哪些边缘。尽管如此,与HED(也在BSDS500上进行了训练)等开创性深度学习方法相比,SAM表现良好,并且明显优于以前的Zero-shot 传递方法,尽管公认已经过时。
    • 在这里插入图片描述

    • Zero-shot transfer 到BSDS500上的边缘检测。

Zero-Shot Object Proposals

  • Approach. 接下来,我们在对象建议生成的中级任务上评估SAM。这项任务在物体检测研究中发挥了重要作用,是开创性系统的中间步骤。为了生成对象提案,我们运行了一个稍微修改过的自动掩码生成管道版本,并将掩码作为提案输出(有关详细信息,请参见§D.3)。我们在LVIS v1上计算标准平均召回率(AR)度量。我们之所以关注LVIS,是因为它的类别众多,这是一个具有挑战性的测试。我们将其与作为ViTDet检测器(具有级联掩码R-CNN,ViT-H)实现的强基线进行比较。我们注意到,这个“基线”对应于game AR中显示的“检测器伪装为提议生成器”(DMP)方法,这使其成为一个真正苛刻的比较。
  • Results. 在下表中,我们毫不奇怪地看到,使用来自ViTDet-H的检测作为对象建议(即,玩AR游戏的DMP方法)总体上表现最好。然而,SAM在几个指标上做得非常好。值得注意的是,它在中型和大型对象以及稀有和常见对象上的性能优于ViTDet-H。事实上,SAM只在小对象和频繁对象上表现不如ViTDet-H,其中ViTDet-H可以很容易地学习LVIS特定的注释偏差,因为它是在LVIS上训练的,而不是SAM。我们还将其与消除歧义的SAM版本(“single-out.”)进行了比较,后者在所有AR指标上的表现明显不如SAM。
    • 在这里插入图片描述

    • LVIS v1.上的对象建议生成。SAM应用于 zero-shot,即它没有被训练用于对象建议生成,也没有访问LVIS图像或注释。

Zero-Shot Instance Segmentation

  • Approach. 转到更高层次的愿景,我们使用SAM作为实例分割器的分割模块。实现很简单:我们运行一个对象检测器(以前使用的ViTDet),并用其输出框提示SAM。这说明在更大的系统中组成SAM。

  • Results. 我们比较了下表中SAM和ViTDet对COCO和LVIS预测的掩码。从掩码AP度量来看,我们在两个数据集上都观察到了差距,其中SAM相当接近,尽管肯定落后于ViTDet。通过可视化输出,我们观察到SAM掩模通常在质量上优于ViTDet的掩模,具有更清晰的边界。为了调查这一观察结果,我们进行了一项额外的人体研究,要求注释者在之前使用的1到10质量量表上对ViTDet掩模和SAM掩模进行评分。在下图中,我们观察到SAM在人类研究中始终优于ViTDet。

    • 在这里插入图片描述

    • 实例分割结果。使用ViTDet框提示SAM进行零样本分割。全监督的ViTDet优于SAM,但在更高质量的LVIS掩模上差距缩小。有趣的是,根据人工评分,SAM优于ViTDet。

    • 在这里插入图片描述

    • 我们对ViTDet和SAM的人体研究中的口罩质量评级分布,均应用于LVIS地面实况箱。我们还报告了LVIS和COCO地面实况质量。图例显示了评级平均值和95%置信区间。尽管其AP较低,但SAM的评分高于ViTDet,这表明ViTDet利用了COCO和LVIS训练数据中的偏差。

  • 我们假设,在COCO上,mask AP间隙较大,基本事实质量相对较低(如人类研究所证实的),ViTDet了解COCO mask的具体偏差。SAM作为一种 zero-shot 方法,无法利用这些(通常不理想的)偏差。LVIS数据集具有更高质量的 gt,但仍然存在特定的特性(例如,遮罩不包含洞,它们是简单的多边形)以及模态遮罩与阿莫尔遮罩的偏差。同样,SAM没有接受过学习这些偏见的训练,而ViTDet可以利用这些偏见。

Zero-Shot Text-to-Mask

  • Approach. 最后,我们考虑一个更高层次的任务:从自由格式文本中分割对象。这个实验证明了SAM处理文本提示的能力。虽然我们在之前的所有实验中都使用了完全相同的SAM,但对于这一次,SAM的训练过程被修改为具有文本意识,但不需要新的文本注释。具体地,对于每个面积大于 10 0 2 100^2 1002的手动收集的掩模,我们提取CLIP图像嵌入。然后,在训练过程中,我们用提取的CLIP图像嵌入作为SAM的第一次交互来提示SAM。这里的关键观察结果是,因为CLIP的图像嵌入被训练为与其文本嵌入对齐,所以我们可以使用图像嵌入进行训练,但使用文本嵌入进行推理。也就是说,在推理时,我们通过CLIP的文本编码器运行文本,然后将生成的文本嵌入作为SAM的提示(详见§D.5)。
  • Results. 我们在下图中显示了定性结果。SAM可以基于简单的文本提示(如“车轮”)以及短语(如“海狸齿格栅”)来分割对象。当SAM无法仅从文本提示中选择正确的对象时,一个额外的点通常会修复预测,类似于[PhraseClick: toward achieving flexible interactive segmentation by phrase and click]。
    • 在这里插入图片描述

    • Zero-shot 文本到掩码。SAM可以使用简单而细致的文本提示。当SAM无法做出正确的预测时,额外的点提示会有所帮助。

Ablations

  • 我们使用单中心点提示协议对23个数据集套件进行了多次消融。回想一下,单个点可能是模糊的,并且这种模糊性可能不会在 gt 中表示,gt 每个点只包含一个掩码。由于SAM在zero-shot transfer设置中操作,SAM的顶级掩码与数据注释指南产生的掩码之间可能存在系统偏差。因此,我们还报告了关于 gt 的最佳mask(“oracle”)。

  • 下图(左)描绘了在数据引擎阶段的累积数据上训练时SAM的性能。我们观察到,每个阶段都会增加mIoU。在所有三个阶段的训练中,自动 mask 的数量远远超过手动和半自动 mask。为了解决这一问题,我们发现在训练中对手动和半自动 mask 进行10倍的过采样可以获得最佳效果。这种设置使训练变得复杂。因此,我们测试了第四种设置,该设置仅使用自动生成的遮罩。有了这些数据,SAM的性能仅略低于使用所有数据(~0.5 mIoU)。因此,默认情况下,我们仅使用自动生成的遮罩来简化训练设置。

  • 下在图(中间)中,我们观察了数据量的影响。完整的SA-1B包含11M图像,我们对其进行了均匀的子采样,分别为1M和0.1M。在0.1万张图像中,我们观察到在所有设置下mIoU都大幅下降。然而,对于1M张图像,约占完整数据集的10%,我们观察到的结果与使用完整数据集相当。这个数据体系仍然包括大约1亿个掩码,对于许多用例来说可能是一个实用的设置。

  • 最后,下图(右)显示了ViT-B、ViT-L和ViT-H图像编码器的结果。与ViT-B相比,ViT-H显著提高,但与ViT-L相比仅具有边际增益。此时,进一步的图像编码器缩放似乎并不富有成效。

    • 在这里插入图片描述

    • 我们的数据引擎阶段、图像编码器缩放和训练数据缩放的消融研究。(左)每个数据引擎阶段都会改进我们的23个数据集套件,仅使用自动数据(我们的默认值)进行训练会产生与使用所有三个阶段的数据相似的结果。(中间)使用~10%SA-1B和完整SA-1B训练的SAM具有可比性。默认情况下,我们使用所有11M图像进行训练,但使用1M图像是一个合理的实用设置。(右)缩放SAM的图像编码器显示出有意义但饱和的增益。然而,在某些设置中,较小的图像编码器可能是优选的。

Discussion

  • 基础模型。自机器学习的早期以来,预先训练的模型已经适应了下游任务。近年来,随着对规模的日益重视,这种范式变得越来越重要,这类模型最近被(重新)称为“基础模型”:即“在大规模的广泛数据上训练并适应广泛下游任务的模型”。我们的工作与这一定义密切相关,尽管我们注意到图像分割的基础模型本质上是有限的,因为它代表了计算机视觉的一个重要但部分的子集。我们还将我们的方法的一个方面与[On the opportunities and risks of foundation models]进行了对比,后者强调了自我监督学习在基础模型中的作用。虽然我们的模型是用自监督技术(MAE)初始化的,但其绝大多数能力来自大规模的监督训练。在数据引擎可以扩展可用注释的情况下,如我们的情况,监督训练提供了一个有效的解决方案。
  • Compositionality. 经过预训练的模型可以提供新的能力,甚至超出训练时的想象。一个突出的例子是CLIP如何在更大的系统中用作组件,如DALL·E。我们的目标是使用SAM使这种合成变得简单。我们的目标通过要求SAM预测各种分割提示的有效掩码来实现这一点。其效果是在SAM和其他组件之间创建一个可靠的接口。例如,MCC可以很容易地使用SAM来分割感兴趣的对象,并实现对看不见的对象的强泛化,以便从单个RGB-D图像进行3D重建。在另一个例子中,SAM可以通过可穿戴设备检测到的注视点来提示,从而启用新的应用程序。由于SAM能够推广到以自我为中心的图像等新领域,因此此类系统无需额外训练即可工作。
  • 局限性,虽然SAM总体表现良好,但并不完美。它可能会错过精细的结构,有时会产生小的断开连接的组件的幻觉,并且不会像“放大”的计算密集型方法那样清晰地产生边界。通常,当提供许多点时,我们期望专用的交互式分割方法优于SAM。与这些方法不同,SAM是为通用性和使用广度而设计的,而不是高IoU交互式分割。此外,SAM可以实时处理提示,但当使用重型图像编码器时,SAM的总体性能不是实时的。我们对文本 mask 任务的尝试是探索性的,并不完全稳健,尽管我们相信可以通过更多的努力来改进。虽然SAM可以执行许多任务,但尚不清楚如何设计实现语义和全景分割的简单提示。最后,还有一些特定于领域的工具,如[ilastik: interactive machine learning for (bio)image analysis],我们希望它们在各自的领域中优于SAM。
  • 结论,Segment Anything项目试图将图像分割提升到基础模型时代。我们的主要贡献是一项新任务(可提示分割)、模型(SAM)和数据集(SA-1B),使这一飞跃成为可能。SAM是否达到基础模型的地位还有待于它在社区中的使用方式,但无论我们对这项工作的前景如何,超过1B个 mask 的发布和我们可推广的细分模型都将有助于为未来铺平道路。

A. Segment Anything Model and Task Details

  • 图像编码器。通常,图像编码器可以是输出C×H×W图像嵌入的任何网络。受可扩展性和强大的预训练的启发,我们使用MAE预训练的(ViT),具有最小的适应性来处理高分辨率输入,特别是具有14×14窗口注意力和四个等距全局注意力块的ViT-H/16,如下[Exploring plain vision transformer backbones for object detection]。图像编码器的输出是输入图像的16倍缩小的嵌入。由于我们的运行时目标是实时处理每个提示,因此我们可以提供大量的图像编码器FLOP,因为每个图像只计算一次FLOP,而不是每个提示。

  • 按照标准实践,我们使用1024×1024的输入分辨率,该分辨率是通过重新缩放图像并填充短边获得的。因此,图像嵌入是64×64。为了降低通道维度,我们使用1×1卷积来获得256个通道,然后使用3×3卷积来获得同样具有256个通道。每个卷积后面都有一个层归一化。

  • 提示编码器。稀疏提示被映射到256维矢量嵌入,如下所示。一个点被表示为该点的位置的位置编码和指示该点是在前景中还是在背景中的两个学习嵌入之一的总和。方框由嵌入对表示:(1)其左上角的位置编码与表示“左上角”的学习嵌入相加;(2)相同的结构,但使用表示“右下角”的习得嵌入。最后,为了表示自由形式的文本,我们使用CLIP中的文本编码器(通常可以使用任何文本编码器)。在本节的剩余部分中,我们将重点讨论几何提示,并在§D.5中深入讨论文本提示。

  • 密集提示(即掩码)与图像具有空间对应关系。我们以比输入图像低4倍的分辨率输入掩码,然后使用两个分别具有输出通道4和16的2×2,跨步-2卷积来缩小另外的4倍。最后的1×1卷积将通道维度映射到256。通过GELU激活和层标准化来分离每一层。然后逐元素添加掩模和图像嵌入。如果没有掩码提示,则向每个图像嵌入位置添加表示“无掩码”的学习嵌入。

  • 轻量级掩码解码器。该模块有效地将图像嵌入和一组提示嵌入映射到输出掩码。为了组合这些输入,我们从Transformer分割模型[End-to-end object detection with Transformers,Perpixel classification is not all you need for semantic segmentation.]中获得灵感,并修改了标准Transformer解码器。在应用我们的解码器之前,我们首先将学习到的输出令牌嵌入插入到提示嵌入集中,该输出令牌嵌入将在解码器的输出处使用,类似于[ViT]中的[class]令牌。为了简单起见,我们将这些嵌入(不包括图像嵌入)统称为“token”。

  • 我们的解码器设计如下图所示。每个解码器层执行4个步骤:(1)对token的自关注,(2)从token(作为查询)到图像嵌入的交叉关注,(3)逐点MLP更新每个令牌,以及(4)从图像嵌入(作为查询的)到token的交叉关注。最后一步使用提示信息更新图像嵌入。在交叉关注期间,图像嵌入被视为 6 4 2 64^2 642个256维向量的集合。每个自/交叉注意力和MLP在训练时都有残差连接、层归一化和0.1的dropout。下一解码器层从上一层获取更新的令牌和更新的图像嵌入。我们使用两层解码器

    • 在这里插入图片描述

    • 轻量级掩码解码器的详细信息。两层解码器通过交叉关注来更新图像嵌入和提示token。然后,图像嵌入被放大,从中更新的输出token被用于动态预测掩模。(为图清晰起见,未进行说明:在每个关注层,位置编码都被添加到图像嵌入中,整个原始提示token(包括位置编码)被重新添加到token查询和key中。)

  • 为了确保解码器能够访问关键的几何信息,无论何时位置编码参与到关注层中,都会将其添加到图像嵌入中。此外,当整个原始提示标记(包括它们的位置编码)参与注意力层时,它们都会被重新添加到更新的标记中。这允许强烈依赖提示标记的几何位置和类型。

  • 在运行解码器后,我们用两个转置卷积层将更新的图像嵌入上采样4倍(现在它相对于输入图像缩小了4倍)。然后,token 再次参与图像嵌入,并且我们将更新的输出token嵌入传递给小的3层MLP,该MLP输出与放大的图像嵌入的通道维度匹配的向量。最后,我们预测了在放大图像嵌入和MLP的输出之间具有空间逐点乘积的掩模

  • Transformer 使用256的嵌入尺寸。Transformer MLP块具有2048的大内部尺寸,但MLP仅应用于相对较少(很少大于20)的提示token。然而,在我们有64×64图像嵌入的跨注意力层中,为了提高计算效率,我们将查询、key 和 value 的通道维度减少了2×至128。所有注意力层使用8个头。用于升级输出图像嵌入的转置卷积是2×2,步长2,输出通道尺寸为 64 和 32,并且具有GELU激活。它们通过层规范化来分隔。

  • Making the model ambiguity-aware. 如上所述,单个输入提示可能是模糊的,因为它对应于多个有效掩码,并且模型将学习在这些掩码上求平均值。我们通过一个简单的修改来消除这个问题:我们使用少量输出 token 并同时预测多个掩码,而不是预测单个掩码。默认情况下,我们预测三个mask,因为我们观察到三个层(整体、部分和子部分)通常足以描述嵌套遮罩。在训练过程中,我们计算 gt 和每个预测掩码之间的损失,但仅从最低损失进行反向传播。这是一种常见的技术,用于具有多个输出的模型。为了在应用程序中使用,我们希望对预测的mask进行排序,因此我们添加了一个小头(对额外的输出令牌进行操作),用于估计每个预测 mask 与其覆盖的对象之间的IoU。

  • 多个提示的歧义要少得多,三个输出掩码通常会变得相似。为了最大限度地减少训练中退化损失的计算,并确保单个无模糊掩码接收规则梯度信号,我们只在给出多个提示时预测单个掩码。这是通过添加用于附加掩码预测的第四输出 token 来实现的。第四个掩码从不为单个提示返回,也是为多个提示返回的唯一掩码。

  • 损失。我们用焦点损失和 dice 损失的线性组合来监督掩模预测,焦点损失与 dice 损失的比例为20:1。我们观察到每个解码器层之后的辅助深度监督是无益的。利用IoU预测和具有 gt 掩模的预测掩模的IoU之间的均方误差损失来训练IoU预测头。它以1.0的恒定比例因子添加到mask损耗中。

  • 训练算法。我们在训练期间模拟交互式分割设置。首先,以相同的概率为目标掩模随机选择前景点或边界框。点是从 gt 遮罩中均匀采样的。方框被视为 gt 遮罩的边界框,在每个坐标中添加随机噪声,标准偏差等于方框边长的10%,最大为20个像素。这种噪声分布是实例分割和交互式分割等应用程序之间的合理折衷,实例分割在目标对象周围产生一个紧密的方框,而交互式分割用户可以绘制一个松散的方框。

  • 在根据该第一提示进行预测之后,从先前掩模预测和 GT 掩模之间的误差区域中均匀地选择后续点。如果误差区域分别是假阴性或假阳性,则每个新点都是前景或背景。我们还提供了上一次迭代的掩码预测,作为我们模型的额外提示。为了给下一次迭代提供最大的信息,我们提供了非阈值掩码logits,而不是二进制掩码。当返回多个掩码时,传递到下一次迭代并用于采样下一个点的掩码是具有最高预测 IoU 的掩码。

  • 我们发现,在8个迭代采样点之后(我们已经测试了多达16个),收益递减。此外,为了鼓励模型从提供的掩码中受益,我们还使用了两次迭代,其中没有对额外的点进行采样。这些迭代中的一个被随机插入到8个迭代采样点中,另一个总是在最后。这总共给出了11次迭代:一次采样的初始输入提示,8个迭代采样点,以及两次迭代,其中没有新的外部信息提供给模型,因此模型可以学习完善自己的掩码预测。我们注意到,使用相对大量的迭代是可能的,因为我们的轻量级掩码解码器需要不到图像编码器计算的1%,因此,每次迭代只增加一小部分开销。这与之前的交互式方法不同,以前的交互式方法每次优化器更新只执行一个或几个交互式步骤。

  • 训练配方。我们使用AdamW优化器(β1=0:9,β2=0:999)和250次迭代的线性学习率预热以及逐步学习率衰减时间表。预热后的初始学习率(lr)为8e−4。我们训练90k次迭代(~2个SA-1B时期),并在60k次迭代时将lr降低10倍,在86666次迭代时再次降低。批处理大小为256个图像。为了正则化SAM,我们将权重衰减(wd)设置为0.1,并以0.4的速率应用下降路径(dp)。我们使用0.8的逐层学习率衰减(ld)。未应用数据扩充。我们从MAE预训练的ViT-H初始化SAM。由于图像编码器大,输入大小为1024×1024,我们将训练分布在256个GPU上。为了限制GPU内存的使用,我们使用每个GPU最多64个随机采样的掩码进行训练。此外,我们发现,对SA-1B掩模进行轻度滤波,以丢弃覆盖图像90%以上的掩模,可以从质量上改善结果。

  • 对于消融和训练中的其他变化(例如,文本到 mask §D.5),我们偏离了上述默认配方,如下所示。当仅使用来自第一和第二数据引擎阶段的数据进行训练时,我们用尺度范围为[0.1,2.0]的大规模抖动来增加输入。直观地说,当训练数据更加有限时,数据扩充可能会有所帮助。为了训练ViT-B和ViT-L,我们使用180k次迭代,批量大小为128,分布在128个GPU中。我们分别为ViT-B/L设置了lr=8e−4/4e−4、ld=0.6/0.8、wd=0.1和dp=0.6/0.4。

B. Automatic Mask Generation Details

  • 在这里,我们讨论了数据引擎的全自动阶段的细节,该阶段用于生成已发布的SA-1B。
  • 裁剪。分别使用16×16和8×8规则点网格,从全图像上的32×32点的规则网格和从2×2和4×4部分重叠窗口产生的20个额外的放大图像裁剪生成掩模。原始的高分辨率图像用于裁剪(这是我们唯一一次使用它们)。我们摘下了触及corp内部边界的mask。我们在两个阶段应用了标准的基于贪婪盒子的NMS(盒子用于提高效率):第一阶段在每种作物中,第二阶段在作物之间。在作物中应用NMS时,我们使用模型预测的IoU对掩码进行排序。当跨裁剪应用NMS时,我们根据遮罩的源裁剪,将遮罩从放大最多(即从4×4裁剪)到放大最少(即原始图像)进行排序。在这两种情况下,我们都使用了0.7的NMS阈值。
  • 过滤。我们使用了三个过滤器来提高mask的质量。首先,为了只保持自信的掩码,我们通过模型预测的IoU得分在88.0的阈值进行过滤。其次,为了只保持稳定的掩码,我们通过将相同的底层软掩码阈值设置为不同的值来比较两个二进制掩码。只有当其-1和+1阈值掩码对之间的IoU等于或大于95.0时,我们才保持预测(即,由阈值logits产生的二进制掩码为0)。第三,我们注意到,偶尔自动遮罩会覆盖整个图像。这些掩模通常不感兴趣,我们通过去除覆盖图像95%或更多的掩模来过滤它们。根据专业注释人员使用§5中描述的方法判断,选择所有过滤阈值以实现大量掩码和高掩码质量。
  • 后处理。我们观察到两种错误类型,它们很容易通过后处理来减轻。首先,估计有4%的掩模包含小的杂散成分。为了解决这些问题,我们移除了面积小于100像素的连接组件(包括如果最大组件低于此阈值,则移除整个遮罩)。其次,估计还有4%的掩模包含小的假孔。为了解决这些问题,我们填充了面积小于100像素的洞。孔洞被确认为倒置掩模的组成部分。
  • 掩模,自动生成模型。我们为全自动掩码生成训练了一个特殊版本的SAM,该版本牺牲了一些推理速度来改进掩码生成特性。我们注意到我们的默认SAM与此处用于数据生成的SAM之间的差异:它仅在手动和半自动数据上进行训练,通过大规模抖动数据增强进行更长时间的训练(177656次迭代,而不是90k次),模拟交互训练仅使用点和掩码提示(无框),并且在训练期间每个掩码仅采样4个点(从我们默认的9个减少到4个加速训练迭代,对1点性能没有影响,尽管如果用更多的点进行评估会损害mIoU),最后掩码解码器使用3层而不是2层。SA-1B示例。我们在下图中展示了SA-1B样品。有关更多示例,请参阅我们的数据集资源管理器 www.segment-anything.com。
    • 在这里插入图片描述

    • 来自我们新引入的数据集SA-1B的具有重叠遮罩的示例图像。SA-1B包含11M多样、高分辨率、许可和隐私保护图像以及1.1B高质量分割掩模。这些 mask 由SAM完全自动注释,正如我们通过人类评级和大量实验验证的那样,具有高质量和多样性。我们根据每张图像的遮罩数量对图像进行分组以进行可视化(平均每张图像有~100个遮罩)。

C. RAI Additional Details

  • 推断SA-1B的地理信息。虽然SA-1B中的图像没有地理标记,但每张图像都有一个描述其内容和拍摄地点的说明。我们使用基于Elmo的命名实体识别模型从这些字幕中推断出大致的图像地理位置。每个提取的位置实体都映射到每个匹配的国家、省和城市。首先考虑匹配的国家,然后是省份,最后是城市,将标题映射到单个国家。我们注意到,这种方法存在歧义和潜在的偏见(例如,“格鲁吉亚”可能指的是该国或美国州)。因此,我们使用提取的位置来分析整个数据集,但不发布推断的位置。字幕将不会按照图像提供商的要求公开发布。
  • 推断COCO和Open Images的地理信息。COCO和Open Images数据集不提供地理位置。在[Does object recognition work for everyone?]之后,我们使用Flickr API检索地理元数据。我们检索了24%的COCO训练集(19562张图像)的位置,对于Open images,我们检索了18%的训练集(493517张图像,仅考虑了带掩码的图像)。我们注意到,地理信息是近似的,具有该信息的图像样本可能与完整的数据集分布不完全匹配。
  • 推断收入信息。我们使用每张图片推断的国家,使用世界银行定义的水平来查找其收入水平。我们将中上层和中下层分解为一个单独的中间层。
  • 细分人群的公平性。为了调查SAM在人群分割方面的公平性,我们使用开放图像的更具包容性的人群注释(MIAP)测试集注释,这使我们能够比较SAM在感知的性别表现和感知的年龄组中的表现。MIAP提供了方框注释,而我们需要用于此分析的基本事实掩码。为了获得基本事实掩码,我们从Open Images中选择每个人物类别掩码,如果其对应的边界框在MIAP中注释边界框的1%范围内(基于相对框边长),则产生3.9k个掩码。
  • 服装细分的公平性。我们将我们的分析从§6扩展到服装细分。我们观察SAM在服装上的表现相对于穿着服装的人的属性。我们使用Open Images的所有6.5k真实mask,这些 mask 在服装超类下有一个类别,并位于MIAP的人物框内。在下表中,我们比较了不同性别和年龄组的表现。我们发现,SAM更善于对那些以男性为主、95%置信区间不相交的人进行服装分割。从1点评估移动到3点评估时,差距缩小。感知年龄组的差异并不显著。我们的研究结果表明,在使用一点提示根据感知的性别表现对服装进行细分时存在偏见,我们鼓励SAM用户注意这一限制。
    • 在这里插入图片描述

    • SAM在感知的性别表现和年龄组中对服装进行细分的表现。感知性别的间隔是不相交的,男性的mIoU更高。年龄组的置信区间重叠。

D. Experiment Implementation Details

D.1. Zero-Shot Single Point Valid Mask Evaluation

  • 数据集。我们建立了一个新的分割基准,使用之前工作中的23个不同分割数据集来评估我们模型的零样本转移能力。下表给出了每个数据集的描述。该套件涵盖了一系列领域,包括以自我为中心的、显微镜、X射线、水下、航空、模拟、驾驶和绘画图像。为了有效评估,我们对超过15k个掩码的数据集进行了二次采样。具体来说,我们随机选取图像,使采样图像中的遮罩总数为~10k。我们模糊了所有数据集中的人脸。
    • 在这里插入图片描述

    • 分割数据集用于评估 zero-shot 分割与点提示。23个数据集涵盖了广泛的领域;请参阅“图像类型”列。为了提高评估效率,我们对超过15k个掩码的数据集进行了子采样。具体来说,我们对图像进行随机采样,使图像中的遮罩总数为~10k。

  • 点采样。我们的默认点采样遵循交互式分割的标准实践。确定地选择第一个点作为离对象边界最远的点。每个后续点距离 gt 和先前预测之间的误差区域的边界最远。一些实验(如有规定)使用了更具挑战性的采样策略,其中第一个点是随机点,而不是决定性地选择的“中心”点。如上所述,选择每个后续点。此设置更好地反映了第一个点不可靠地靠近遮罩中心的使用情况,例如来自眼睛凝视的提示。
  • 评价,我们测量N点提示后的预测和地面实况掩码之间的IoU,其中 N = { 1 , 2 , 3 , 5 , 9 } N=\{1,2,3,5,9\} N{1,2,3,5,9},并且利用上述策略中的任一策略对点进行迭代采样。每个数据集mIoU是数据集中所有对象的平均每个掩码IoU。最后,我们通过对所有23个数据集的每个数据集mIoU进行平均来报告顶线度量。我们的评估不同于标准的交互式分割评估协议,该协议测量实现X%IoU所需的平均点数,最多可达20点。我们只关注一个或可能几个点之后的预测,因为我们的许多用例都涉及一个或很少的提示。考虑到我们的应用重点,这需要实时提示处理,我们预计在使用大量点时,最佳的交互式分割模型将优于SAM。
  • 基线。我们使用了三个最近的强交互式基线:RITM、FocalClick和SimpleClick。对于每一个,我们都使用在作者公开发布的最广泛的数据集上训练的最大模型。对于RITM,我们使用在作者介绍的COCO和 LVIS 的组合上训练的HRNet32 IT-M。对于FocalClick,我们使用在包括8个不同分割数据集的“组合数据集”上训练的SegFormerB3-S2。对于SimpleClick,我们使用在COCO和LVIS的组合上训练的ViT-H448。我们遵循建议的数据预处理默认策略(即数据增强或图像大小调整),不更改或调整任何参数进行评估。在我们的实验中,我们观察到RITM在我们的23个数据集套件中以1点评估优于其他基线。因此,我们使用RITM作为默认基线。当用更多的点进行评估时,我们会报告所有基线的结果。
  • 单点模糊性和预言机评估。除了N点提示后的IoU外,我们还通过评估SAM三个预测中最符合GT的预测掩码(而不是像默认情况下那样使用SAM本身排名第一的掩码)来报告SAM在1点的“预言”性能。该协议通过放宽在几个有效对象中猜测一个正确掩码的要求,解决了可能的单点提示歧义。

D.2. Zero-Shot Edge Detection

  • 数据集和指标。我们在BSDS500上进行了Zero-Shot边缘检测实验。每个图像的 GT 来自五个不同主题的手动注释。我们使用边缘检测的四个标准度量报告了200个图像测试子集的结果:最佳数据集规模(ODS)、最佳图像规模(OIS)、平均精度(AP)和50%精度的召回率(R50)。
  • Method. 对于zero-shot transfer,我们使用简化版本的自动掩码生成管道。我们用前景点的16×16规则网格提示SAM,这产生768个预测掩码(每个点三个)。我们不通过预测的IoU或稳定性进行过滤。NMS移除冗余掩码。然后,我们将Sobel滤波器应用于残差掩码的未阈值概率图,如果它们不与掩码的外部边界像素相交,则将值设置为零。最后,我们在所有预测上取像素最大值,将结果线性归一化为[0,1],并应用边缘NMS来细化边缘。
  • 可视化。在下图中,我们展示了来自SAM的零样本边缘预测的其他示例。这些定性示例进一步说明了SAM如何倾向于输出可感知的边缘图,尽管未进行边缘检测训练。我们看到边缘可以很好地与人类注释对齐。尽管如前所述,由于SAM没有针对边缘检测进行训练,因此它不会学习BSDS500数据集的偏差,并且经常输出比 GT 注释中存在的更多的边缘。
    • 在这里插入图片描述

    • BSDS500上零样本边缘预测的附加可视化。回想一下,SAM没有经过预测边缘图的训练,并且在训练期间无法访问BSDS图像和注释。

D.3. Zero-Shot Object Proposals

  • 数据集和指标。我们报告了LVIS v1验证集上1000个提议的 mask 的标准平均召回(AR)指标。由于LVIS为1203个对象类提供了高质量的掩码,因此它为对象建议生成提供了一个具有挑战性的测试。我们专注于AR@1000由于我们模型的开放世界性质,它可能会在LVIS中的1203类之外产生许多有效的掩码。为了衡量频繁、常见和罕见类别的性能,我们使用AR@1000而是对照仅包含相应LVIS类别的 GT 集来测量。
  • 基线。我们使用级联ViTDet-H作为基线,这是AP在LVIS上中最强的模型。如正文所述,在领域中训练的对象检测器可以“游戏”AR,并且有望成为比其他专注于开放世界提议或分割的模型更强的基线。为了生成1000个建议,我们在三个级联阶段中禁用分数阈值,并将每个阶段的最大预测数提高到1000。
  • Method. 我们使用SAM的自动掩码生成流水线的修改版本来进行 zero-shot transfer。首先,为了使推理时间与ViTDet的推理时间相当,我们不处理图像裁剪。其次,我们通过预测的IoU和稳定性来去除滤波。这就留下了两个可调参数来获得每个图像约1000个掩码:输入点网格和NMS阈值重复掩码抑制。我们选择64×64点网格和0.9的NMS阈值,平均每个图像产生~900个掩码。在评估时,如果在一张图像中提出了1000多个mask,则根据其置信度和稳定性得分的平均值对其进行排名,然后截断为前1000个建议。
  • 我们假设SAM输出多个掩码的能力对此任务特别有价值,因为召回应该受益于从单个输入点在多个规模上生成的提案。为了测试这一点,我们将其与仅输出单个掩模而不是三个掩模的消融版本SAM进行比较(SAM-单个输出)。由于该模型产生的掩模较少,我们进一步将采样点的数量和NMS阈值分别增加到128×128和0.95,平均每个图像获得~950个掩模。此外,单输出SAM不会产生用于在自动掩码生成管道中对NMS的掩码进行排序的IoU分数,因此掩码是随机排序的。测试表明,这与更复杂的掩码排序方法具有相似的性能,例如使用掩码的最大logit值作为模型置信度的代理

D.4. Zero-Shot Instance Segmentation

  • 方法对于zero-shot实例分割,我们使用COCO和LVIS v1验证拆分上的全监督ViTDet-H输出的框提示SAM。我们通过将最有信心的预测掩码与框提示一起反馈给掩码解码器来应用额外的掩码细化迭代,以产生最终预测。我们在下图中显示了在LVIS上预测的零样本实例分割。与ViTDet相比,SAM倾向于生产更高质量、边界更清洁的mask。我们在§7.4中通过人体研究证实了这一观察结果。请注意,作为zero-shot模型,SAM无法学习数据集中的注释偏差。例如,我们看到SAM对板进行了有效的模态预测,而LVIS掩模在设计上不能包含孔,因此板被随意注释。
    • 在这里插入图片描述

    • LVIS v1.上的零样本实例分割。SAM生产比ViTDet更高质量的掩模。作为零样本模型,SAM没有机会学习特定的训练数据偏差;见右上角的例子,SAM进行模态预测,而LVIS中的基本事实是阿莫尔的,因为LVIS中没有掩码注释。

D.5. Zero-Shot Text-to-Mask

  • 模型和训练。我们使用最大的公开可用的CLIP模型(ViT-L/14@336px)以计算文本和图像嵌入,我们在使用之前对其进行规范化。为了训练SAM,我们使用数据引擎前两个阶段的掩码。此外,我们丢弃所有面积小于1002像素的掩模。我们在批量大小为128的120k次迭代中使用大规模抖动来训练该模型。所有其他训练参数都遵循我们的默认设置。
  • 生成训练提示。为了提取输入提示,我们首先将每个遮罩周围的边界框按从1×到2×的随机因子展开,对展开的框进行方形裁剪以保持其纵横比,并将其调整为336×336像素。在将裁剪馈送到CLIP图像编码器之前,我们以50%的概率将遮罩外的像素归零。为了确保嵌入集中在对象上,我们在最后一层使用掩码注意力,将注意力从输出标记限制到掩码内的图像位置。最后,我们的提示是输出令牌嵌入。对于训练,我们首先提供基于CLIP的提示,然后提供额外的迭代点提示来完善预测。
  • 推论在推理过程中,我们在没有任何修改的情况下使用CLIP文本编码器来创建SAM提示。我们依赖于文本和图像嵌入由CLIP对齐的事实,这使我们能够在使用基于文本的提示进行推理的同时,在没有任何显式文本监督的情况下进行训练。

D.6. Probing the Latent Space of SAM

  • 最后,我们进行了初步调查,以定性地探究SAM所学习的潜在空间。特别是,我们感兴趣的是,即使没有经过明确的语义监督训练,SAM是否能够捕获其表示中的任何语义。为此,我们通过从掩模及其水平翻转版本周围的图像裁剪中提取SAM的图像嵌入,将图像嵌入乘以二进制掩模,并在空间位置上求平均值,来计算掩模嵌入。在下图中,我们展示了同一图像中的查询掩码和类似掩码(在潜在空间中)的3个示例。我们观察到,每个查询的最近邻居显示出一些形状和语义上的相似性,尽管不完美。尽管这些结果是初步的,但它们表明SAM的表示可能有多种用途,例如进一步的数据标记、理解数据集的内容或作为下游任务的特征。
    • 在这里插入图片描述

    • 从SAM的潜在空间对掩模嵌入的相似性进行阈值化的可视化。洋红色框表示查询;顶行显示低阈值的匹配,底行显示高阈值的匹配。同一图像中最相似的掩码嵌入通常在语义上与查询掩码嵌入相似,即使SAM没有用明确的语义监督进行训练

E. Human Study Experimental Design

  • 在这里,我们在§7.1和§7.4中描述了用于评估mask质量的人体研究的细节。这项人体研究的目的是解决使用IoU来衡量预测口罩质量的两个局限性。第一个限制是,对于诸如单个点之类的模糊输入,模型可能会因返回与 GT 不同的对象的有效掩码而受到强烈惩罚。第二个限制是,GT 掩模可能包括各种偏差,例如边缘质量中的系统误差,或者对遮挡对象进行模态分割或任意分割的决定。在领域中训练的模型可以学习这些偏差,并获得更高的IoU,而不必产生更好的掩码。人为审查可以获得独立于 GT 掩盖的掩盖质量的衡量标准,以缓解这些问题

  • 模型。对于单点评估,我们使用RITM、单输出SAM和SAM来检验两个假设。首先,我们假设,当给定一个点时,SAM比基线交互式分割模型在视觉上产生更高质量的掩码,即使当具有基本事实的IoU等指标没有揭示这一点时也是如此。其次,我们假设SAM消除模糊掩码的能力提高了单点输入的掩码质量,因为单输出SAM可能返回的掩码平均值超过模糊掩码。例如,分割实验,我们评估级联ViTDet-H和SAM,以测试SAM产生视觉上更高质量的掩码的假设,即使由于无法学习验证数据集的特定注释偏差而获得较低的AP。

  • 数据集。对于单点实验,我们从23个数据集中选择了7个数据集,因为全套数据集太大,不适合人类审查。我们选择LVIS v0.5、VISOR、DRAM、IBD、NDD20、OVIS和iShape,它们提供了各种图像集合,包括scene-level, ego-centric, drawn, overhead, underwater, and synthetic imagery。此外,该集合包括数据集,其中SAM在IoU指标方面优于RITM,反之亦然。例如,分割实验,我们使用LVIS v1验证集,允许与在LVIS上训练的ViTDet进行直接比较。

  • Methodology. 我们向专业注释人员展示了模型生成的掩码,并要求他们使用提供的指南对每个掩码进行评分(完整指南见§G)。注释器来自为数据引擎收集手动注释掩码的同一家公司。向注释者提供了对图像、单个模型的预测掩码和模型输入(单点或单框)的访问权限,并要求其根据三个标准来判断掩码:掩码是否对应于有效对象?mask 有干净的边界吗?掩码与输入对应吗?然后,他们提交了1-10的评分,表明mask的整体质量。

  • 分数为1表示完全不对应于对象的遮罩;低得分(2-4)表示掩模具有巨大的误差,例如包括其他物体的巨大区域或具有大面积的无意义边界;中间得分(5-6)指示大部分是可感知的但仍具有显著语义或边界错误的掩码;高分(7-9)表示仅具有较小边界误差的掩模;10分用于没有可见误差的掩模。注释器提供了五个不同的视图,每个视图都旨在帮助识别不同的错误类型。

  • 对于单点实验,每个数据集从用于基准 zero-shot 交互式分割的相同子集中随机选择1000个掩模(有关这些子集的详细信息,请参见§D.1)。模型输入是最中心的点,计算为距遮罩边缘的距离变换的最大值。例如分割实验,从LVIS v1验证集中选择1000个掩模,模型输入是LVIS地面实况框。在所有实验中,尺寸小于 2 4 2 24^2 242像素的掩模都被排除在采样之外,以防止向评分者显示太小而无法准确判断的掩模。出于内存和显示的原因,在预测掩模之前,对大图像进行重新缩放,使其最大边长为2000。在所有实验中,相同的输入被馈送到每个模型以产生预测的掩模。

  • 为了进行比较,还提交了每个数据集的 GT 掩码进行评级。对于单点实验,每个数据集总共有4000个评级作业(RITM、SAM单输出、SAM和 GT 各有1000个掩码);例如,分割实验,它总共提供了3000个作业(ViTDet、SAM和 GT)。

  • 对于每个数据集,这些作业以随机顺序插入到一个队列中,30个注释器从中提取作业。在审查研究的初步测试中,我们将每项工作提供给五名不同的注释者,并发现得分合理一致:五名注释者的平均得分标准差为0.83。此外,注释公司还部署了质量保证测试人员,他们抽查了一小部分结果,以确定是否严重偏离了指南。因此,对于我们的实验,每项工作(即在一张图像中对一个掩模进行评级)都只由一个注释器完成。每个注释器每个作业花费的平均时间为90秒,比我们最初的目标30秒长,但仍然足够快,可以在7个选定的数据集中的每个数据集上收集大量评级。

  • Results. 下图显示了单点实验中每个数据集的直方图评级。我们对两个假设进行了统计检验:(1)SAM比基线模型(RITM或ViTDet)得分更高,(2)SAM比单输出SAM得分更高。通过对模型得分平均值的配对t检验计算P值,我们对10k个样本进行配对自举检验,以找到平均值差异的99%置信区间。

    • 在这里插入图片描述

    • 通过我们人类评估研究的数据集进行的mask质量评级分布。

  • 下表显示了这些测试的p值和置信区间。所有的统计检验都非常显著,所有的置信区间都不包括零。

    • 在这里插入图片描述

    • 统计测试显示显著性,SAM具有比基线和单输出SAM更高的掩码质量评级。P值通过配对t检验计算,而平均得分差异的置信区间通过10k个样本的配对自举计算。所有p值都是显著的,并且所有置信区间都不包括零。

  • 为了与COCO GT 相比较,我们还包括了在人类审查过程测试期间收集的794个COCO GT mask评级。使用与LVIS结果相同的设置将这些掩模呈现给评分者。为了进行公平的比较,LVIS的结果被二次采样到每个模型和地面实况的相同794个输入。对于上表,完整的1000个评级用于运行统计测试,这表明SAM的掩模质量比ViTDet的改善具有统计学意义。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HubSpot如何通过自动化和优化客户服务流程?

在当今竞争激烈的市场环境中,提供卓越的客户服务体验已经成为企业赢得客户忠诚、推动业务增长的关键所在。HubSpot,作为一款领先的客户关系管理软件,通过自动化和优化客户服务流程,为企业带来了革命性的服务体验提升。 HubSpot通…

请核对您的姓名、证件号码、有效期和年限是否选择正确,请勿使用挂失过的身份证

问题 请核对您的姓名、证件号码、有效期和年限是否选择正确,请勿使用挂失过的身份证 详细问题 笔者在专利业务办理系统进行新用户注册,注册时间为晚上大概22:00以后。注册时已核对姓名、证件号码、有效期和年限,已确保正确&…

高质量ChatGPT Prompts 精选

通用超级 Prompt GPT4实用。通用超级 prompt ,根据你想要的输出和你的反馈,自动使用相应的专家角色帮你解决问题。如果需要升级ChatGPT Plus,可以参考教程 升级 GPT4.0 保姆教程 您是一位具有多领域专长的专家级ChatGPT提示工程师。在我们…

web服务器是如何运行的?tomcat基本原理

tomcat基本流程 tomcat在启动时将webapps下的每个项目中的web.xml读取,获取相关信息。tomcat只关心Servlet 程序、Filter 过滤器、Listener 监听器,不关心其他类。 tomcat接收到请求后会将请求报文转换成一个httpServletRequest对象,包含请求…

分类预测 | Matlab实现WOA-LSSVM鲸鱼算法优化最小二乘支持向量机数据分类预测

分类预测 | Matlab实现WOA-LSSVM鲸鱼算法优化最小二乘支持向量机数据分类预测 目录 分类预测 | Matlab实现WOA-LSSVM鲸鱼算法优化最小二乘支持向量机数据分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.Matlab实现WOA-LSSVM鲸鱼算法优化最小二乘支持向量机数据…

.NET JWT入坑

前言 JWT (JSON Web Token) 是一种安全传输信息的开放标准,由Header、Payload和Signature三部分组成。它主要用于身份验证、信息交换和授权。JWT可验证用户身份,确保访问权限,实现单点登录,并在客户端和服务器之间安全地交换信息…

Missing artifact org.opencv:opencv:jar:4.10.0 [opencv-4.10.0.jar]

Missing artifact org.opencv:opencv:jar:4.10.0 [opencv-4.10.0.jar] https://mvnrepository.com/artifact/org.opencv/opencv 根本就没有 找了个旧项目的opencv-410.jar修改下opencv-4.10.0.jar放到目录下面就好了 D:\localRepository\org\opencv\opencv\4.10.0 OpenCV-C…

【Spring高级】Spring Boot启动过程

目录 SpringApplication new 分析源码分析步骤演示primarySources和Sources应用类型webApplicationTypesetInitializers设置容器初始化器setListeners设置监听器主类推断 SpringApplication run 分析主要步骤步骤演示事件发布容器相关执行 runner准备EnvironmentEnvironmentPos…

【MATLAB源码-第45期】基于matlab的16APSK调制解调仿真,使用卷积编码软判决。

操作环境: MATLAB 2022a 1、算法描述 1. 16APSK调制解调 16APSK (16-ary Amplitude Phase Shift Keying) 是一种相位调制技术,其基本思想是在恒定幅度的条件下,改变信号的相位,从而传送信息。 - 调制:在16APSK中&am…

Github 2024-04-12 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-04-12统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目6TypeScript项目2Cuda项目1C++项目1C项目1HTML项目1Jupyter Notebook项目1JavaScript项目1Python - 100天从新手到大师 创建周期:22…

书生·浦语大模型实战营 | 第3次学习笔记

前言 书生浦语大模型应用实战营 第二期正在开营,欢迎大家来学习。(参与链接:https://mp.weixin.qq.com/s/YYSr3re6IduLJCAh-jgZqg 第三堂课的视频链接:https://www.bilibili.com/video/BV1QA4m1F7t4/ 本次笔记是学习完第三堂课…

视频秒播优化实践

本文字数:2259字 预计阅读时间:10分钟 视频起播时间,即首帧时间,是视频类应用的一个重要核心指标,也是影响用户观看体验的核心因素之一。如果视频要加载很久才能开始播放,用户放弃播放甚至离开 App 的概率都…

影响小程序SSL证书收费标准的因素有哪些?

在当今互联网时代,移动应用发展日新月异,小程序逐渐成为广大企业和个人开发者的心仪之选。然而,伴随小程序的广泛应用,安全问题和用户信任显得尤为关键。为了确保小程序的信息传输安全,SSL证书成为了一项基础配置。那么…

探索Web3的奇迹:数字时代的新前景

在数字化时代的潮流中,我们不可避免地迎来了一个全新的篇章——Web3时代的到来。在这个时代中,区块链技术作为数字化世界的核心,正在重塑着我们的生活方式、经济模式以及社会结构。在Web3时代,我们将目睹着一个以去中心化、透明化…

MS7336MA高清 HD/全高清 FHD 可选择视频运放与视频同轴线控解码

产品简述 MS7336MA 是一颗集成单通道视频放大器与视频同轴线控解 码为一体的芯片,它内部集成 6dB 增益轨到轨输出驱动器以及 10 阶滤波器,允许同一个输入信号在 -3dB 带宽 35MHz 和 55MHz 之间进行选择控制。视频同轴线控解码内部集成一颗高…

原型模式:复制对象的智能解决方案

在软件开发过程中,对象的创建可能是一个昂贵的操作,特别是当对象的初始化包括从数据库加载数据、进行IO操作或进行复杂计算时。原型模式是一种创建型设计模式,它通过复制现有的实例来创建新的对象实例,从而避免了类初始化时的高成…

QQ 邮箱使用 SMTP 发送邮件报错:550 The From header is missing or invalid

文章目录 场景描述问题排查根据提示查看原因查看封装的 message 个人简介 场景描述 QQ 邮箱使用 SMTP 发送邮件报错:550 The From header is missing or invalid: 失败原因:(550, bThe "From" header is missing or invalid. Ple…

6. Bean 的作用域和生命周期

Spring Framework的主要功能是用来存储和读取Bean,Bean于Spring框架的地位可见一斑。本节的目的就是从作用域和生命周期的角度更加深入了解一下Bean对象。 1. Bean的作用域 首先我们来学习一下Bean的作用域,源码位置:bean_scope 1.1 作用域…

iMazing如何备份手机资料 iPhone的资料可以传到iPad里吗 iphone备份到mac 苹果导入备份

在当今信息化快速发展的时代,手机已经成为我们生活中不可或缺的一部分。随着资料的积累,备份手机数据成了一个重要的问题。本文将介绍iMazing如何备份手机资料,并为大家解答“iPhone的资料可以传到iPad里吗”这一问题。这不仅可以帮助你有效管…

mybaits(8)-缓存机制

缓存机制 1、mybatis缓存2、一级缓存2.1 开启一级缓存2.2 一级缓存失效 3、二级缓存3.1 开启二级缓存3.2 二级缓存什么时候失效3.3 二级缓存的相关配置 4、MyBatis集成EhCache 1、mybatis缓存 缓存:cache 缓存的作用:通过减少IO的方式,来提高…