引言

2023年是AI技术突飞猛进的一年,如果您认为AI领域已经通过 ChatGPT、GPT4 和 Stable Diffusion 获得了快速发展,那么请不要忽略下一个突破性创新: SAM。

Meta 的 FAIR 实验室发布的Segment Anything Model (SAM),是一种最先进的图像分割模型,旨在改变计算机视觉领域。

SAM 基于对自然语言处理 (NLP) 产生重大影响的基础模型(Foundation Model)。它专注于提示分割任务 (promptable segmentation tasks),使用提示工程来适应不同的下游分割问题。

在这篇博文中,您将:

  • 了解 SAM 是什么以及为什么它能够改变游戏规则。
  • 了解它与以前的模型相比有什么区别和联系。
  • 深入了解 SAM 的网络架构、设计和实现。
  • 发现 SAM 在AI 辅助打标方面的潜在用途。

为什么我们对 SAM 如此兴奋?

经过详细的测试,我们可以看到以下令人难以置信的进步:

  • SAM 可以通过简单地单击或交互选择要包含或排除在对象中的点来分割对象。您还可以通过使用多边形工具绘制边界框或分割区域来创建分割,它将捕捉到对象。
  • 当在识别要分割的对象时遇到不确定性时,SAM 能够生成多个有效的掩膜。
  • SAM 能够自动识别图像中存在的所有对象并生成掩膜。
  • 在预先计算图像嵌入后,SAM 可以立即为任何提示提供分割掩膜,从而实现与模型的实时交互。

SAM与之前模型进行比较

SAM 是人工智能向前迈出的一大步,因为它建立在早期模型奠定的基础之上。SAM 可以从其他系统获取输入提示,例如,将来从 AR/VR 头戴设备中获取用户的视线来选择对象、使用输出蒙版进行视频编辑、将 2D 对象抽象为 3D 模型,甚至流行的 Google照片任务,例如创建拼贴画。

它可以通过在提示不清楚的情况下生成多个有效掩膜来处理棘手的情况。以用户寻找 Waldo 的提示为例:
在这里插入图片描述

SAM 的结果具有突破性的原因之一是分割掩模与ViTDet等其他技术相比更有优势。下图显示了两种技术的比较:
在这里插入图片描述

深入了解 SAM 的网络架构和设计

SAM 的设计取决于三个主要组件:

  • 可提示的分割任务,可实现零样本泛化。
  • 模型架构。
  • 为任务和模型提供支持的数据集。

在这里插入图片描述

任务

SAM 经过数百万张图像和超过 10 亿个掩膜的训练,可以针对任何提示返回有效的分割掩膜。在这种情况下,提示是分割任务,可以是前景/背景点、粗框或掩膜、点击、文本,或者一般来说,指示在图像中分割什么的任何信息。该任务也用作模型的预训练目标。

模型

SAM 的架构包含三个组件,它们协同工作以返回有效的分割掩膜:

  • 一种图像编码器,用于生成一次性图像嵌入。
  • 嵌入提示的提示编码器。
  • 一个轻量级掩膜解码器,结合了提示和图像编码器的嵌入。

在这里插入图片描述
我们将在下一节中深入探讨该架构,但现在让我们看一下数据集。

数据引擎和数据集

需要一个数据引擎来支持任务并改进数据集和模型。数据引擎分为三个阶段:

  • 辅助手动,SAM 协助标注者标注掩膜,类似于经典的交互式分割设置。
  • 半自动,其中 SAM 可以通过提示可能的对象位置来自动为对象子集生成掩膜,而标注者则专注于标注其余对象,从而帮助增加蒙版多样性。
  • 全自动,人工标注者通过前景点的规则网格提示 SAM,平均为每个图像生成 100 个高质量掩膜。
    数据引擎构建了 Meta AI 发布的 10 亿级分割一切掩膜数据集。

SAM结构快速指南

在这里插入图片描述

图像编码器

在最高级别,图像编码器 (掩膜自编码器,MAE,预训练视觉Transformer,ViT)生成一次性图像嵌入,并且可以在提示模型之前应用。

提示编码器

提示编码器将背景点、掩膜、边界框或文本实时编码为嵌入向量。该研究考虑了两组提示:稀疏(点、框、文本)和密集(掩膜)。

点和框由位置编码表示,并为每种提示类型添加学习的嵌入。自由格式的文本提示由CLIP的现成文本编码器表示。密集提示(如掩膜)通过卷积嵌入,并通过图像嵌入按元素求和。

掩膜解码器

轻量级掩膜解码器根据图像和提示编码器的嵌入来预测分割掩膜。它将图像嵌入、提示嵌入和输出token映射到掩码。所有嵌入均由解码器块更新,解码器块在两个方向(从提示到图像嵌入再返回)使用即时自注意力和交叉注意力。

掩膜带有标注并用于更新模型权重。这种布局增强了数据集,并允许模型随着时间的推移进行学习和改进,使其高效且灵活。

10 亿级分割一切掩膜数据集

Segment Anything 10 Billion Mask (SA-1B) 数据集是迄今为止最大的有标注分割数据集。它专为高级分割模型的开发和评估而设计。

我们认为该数据集将成为训练和微调未来通用模型的重要组成部分。这将使他们能够在不同的分割任务中取得出色的表现。目前,该数据集仅在研究许可下可用。

SA -1B 数据集的独特之处在于:

  • 多样性
  • 规模
  • 高质量注释

多样性

该数据集经过精心策划,涵盖广泛的领域、对象和场景,确保模型能够很好地推广到不同的任务。它包括来自各种来源的图像,例如自然场景、城市环境、医学图像、卫星图像等。

这种多样性有助于模型学习分割具有不同复杂性、规模和上下文的对象和场景。
在这里插入图片描述

规模

SA-1B数据集包含超过十亿张高质量标注图像,为模型提供了充足的训练数据。庞大的数据量有助于模型学习复杂的模式和表示,使其能够在不同的分割任务上实现最先进的性能。
在这里插入图片描述

高质量标注

该数据集已使用高质量掩膜仔细标注,从而获得更准确和详细的分割结果。在SA-1B 数据集的Responsible AI (RAI) 分析中,调查了地理和收入分配中潜在的公平问题和偏见。

研究论文表明,与其他开源数据集相比,SA-1B 中来自欧洲、亚洲、大洋洲以及中等收入国家的图像比例要高得多。值得注意的是,SA-1B 数据集至少包含包括非洲在内的所有地区的 2800 万个掩膜。这比之前任何数据集中的掩膜总数多出 10 倍。
在这里插入图片描述
我们认为 SA-1B 数据集将进入计算机视觉名人堂(与COCO、ImageNet和MNIST等著名数据集一起)作为未来计算机视觉分割模型开发的资源。

SAM 是开源的吗?

简短的回答是肯定的!SA-1B 数据集已作为研究目的开源发布。此外,继 FAIR 致力于开放研究之后,Meta AI 在 Apache 2.0(宽松许可证)下发布了预训练模型(大小约 2.4 GB)和代码。它可以在 GitHub 上免费访问。训练数据集以及交互式演示 Web UI 也可用。
在这里插入图片描述

如何微调 SAM

既然你已经知道 SAM 训练的数据集,就可以确定 SA-1B 数据集中是否涵盖了代表你想要解决任务的数据集。如果不是,或者代表性不足,您可以考虑微调 SAM 在数据集上的权重。这可以通过同样开源的预训练模型实现。步骤包括:

  • 通过提取边界框坐标(模型提示)并提取地面实况分割掩膜来创建自定义数据集。
  • 通过将输入图像转换为 PyTorch 张量(SAM 内部函数期望的格式)来准备微调。
  • 通过实例化一个训练循环来运行微调步骤,该循环侧重于使用轻量级掩膜解码器迭代数据项、生成掩膜并将其与groundtruth 掩膜进行比较。掩膜解码器的微调更容易、更快速且内存效率更高。
  • 将调整后的模型与原始模型进行比较,以确保确实有显着的改进。

如何使用SAM进行 AI 辅助打标

我们将SAM视为人工智能辅助标签领域的游戏规则改变者。它基本上消除了使用多边形绘图工具分割图像的痛苦,并允许我们专注于对模型更重要的数据任务。 下图显示由SAM生成的带或不带分割掩模的脑部 MRI 图像。
在这里插入图片描述

这些其他数据任务包括映射不同对象之间的关系,赋予它们描述其行为方式的属性,以及评估训练数据以确保其平衡、多样化且无偏见。

利用人工智能增强手工标注

SAM 可用于创建人工智能辅助的工作流程增强功能并提高标注者的工作效率。以下是我们认为 SAM 可以做出的一些改进:

  • 提高准确性:注释者可以实现更精确和准确的标签,减少错误并提高标注数据的整体质量。
  • 更快的标注:毫无疑问,SAM 将加快标注过程,与合适的图像标注工具结合使用,使标注者能够更快、更高效地完成任务。
  • 一致性:让所有标注者都使用 SAM 版本可以确保标注之间的一致性,这在多个标注者处理同一个项目时尤其重要。
  • 减少工作量:通过自动分割复杂的结构,SAM 显着减少了标注者的手动工作量,使他们能够专注于更具挑战性和复杂的任务。
  • 持续学习:随着标注者完善和纠正 SAM 的辅助标记,我们可以实现它,使模型不断学习和改进,从而随着时间的推移获得更好的性能并进一步简化注释过程。

因此,将 SAM 集成到标注工作流程中对我们来说是理所当然的事情,它将使我们能够加速尖端计算机视觉应用程序的开发。

SAM 如何为人工智能辅助标注做出贡献

为了举例说明 SAM 如何为 AI 辅助标记做出贡献,请考虑之前的医学图像示例。我们将DICOM图像上传到演示 Web UI,并花了 10 秒钟单击图像来分割不同的感兴趣区域。

随后,我们使用多边形标注进行了手动标注,耗时 2.5 分钟。标注速度提高 15 倍!
在这里插入图片描述

应用

SAM 几乎可以用于每一个分割任务,从实例分割到全景分割。我们很高兴看到 SAM 能够如此快速地帮助您在进行分割预打标。

从农业和零售到医学图像和地理空间图像, SAM 可以实现的人工智能辅助标注是无穷无尽的。相信 SAM 很快将成为主要标注工具的默认功能。

  • 图像和视频编辑器
    SAM 具有为最复杂的视频和图像提供准确分割掩膜的出色能力,可为图像和视频编辑应用程序提供自动对象分割技能。无论提示(点坐标、边界框等)是在前景还是背景,SAM 都会使用位置编码来指示提示是在前景还是背景。

  • 为资源匮乏行业生成综合数据集
    困扰制造业等行业计算机视觉应用的一项挑战是缺乏数据集。例如,制造汽车零件并计划检测生产线上零件缺陷的行业无法为该用例收集大量数据集。你可以使用 SAM 为您的应用程序生成合成数据集。如果意识到 SAM 不太适合您的应用,你可以选择在现有数据集上对其进行微调。

  • 基于视线的分割
    AR 应用程序可以使用 SAM 的Zero-Shot Single Point Valid Mask Evaluation技术,通过 AR 眼镜等设备根据目标视线的位置来分割对象。这可以帮助 AR 技术在用户与这些对象交互时让他们对世界有更真实的感觉。

影响

SAM真正代表了计算机视觉领域的突破性发展。通过利用提示分割任务,SAM 可以使用提示工程来适应各种下游分割问题。 这种创新方法与迄今为止最大的标记分割数据集 (SA-1B) 相结合,使 SAM 在各种分割任务中实现最先进的性能。

SAM 具有显著增强人工智能辅助标注并减少图像分割任务中的体力劳动的潜力,可以为农业、零售、医学图像和地理空间图像等行业铺平道路。 作为一种开源模型,SAM 将激发计算机视觉领域的进一步研究和开发,鼓励 AI 社区突破这个快速发展的领域的可能界限。

最终,SAM 标志着计算机视觉故事的新篇章,展示了基础模型在改变我们感知和理解周围世界的方式方面的力量。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐