
一、引言
在这项工作中,作者的目标是建立一个图像分割的基础模型。也就是说,寻求开发一个提示模型,并使用一个能够实现强大泛化的任务在广泛的数据集上对其进行预训练。有了这个模型,使用即时工程解决新数据分布上的一系列下游分割问题。
该计划的成功取决于三个组成部分:任务、模型和数据。为了开发它们,作者解决了以下关于图像分割的问题:
1、什么任务可以实现zero-shot泛化?
2、相应的模型体系结构是什么?
3、哪些数据可以为这项任务和模型提供支持?
这些问题纠缠在一起,需要综合解决。作者首先定义了一个提示的分割任务,它足够通用,可以提供一个强大的预训练目标,并支持广泛的下游应用程序。此任务需要一个支持灵活提示的模型,并且可以在提示时实时输出分段掩码以允许交互使用。为了训练模型,需要一个多样化的、大规模的数据源。不幸的是,没有网络规模的数据来源的分割;为了解决这个问题,作者构建了一个“数据引擎”,也就是说,在使用高效模型来协助数据收集和使用新收集的数据来改进模型之间进行迭代。
**任务:**在NLP和最近的计算机视觉中,基础模型是一个很有前途的发展,它可以通过使用“提示”技术对新的数据集和任务执行zero-shot和few-shot学习。受这一行工作的启发,作者提出了提示分割任务,其目标是给定任何分割提示返回有效的分割掩码(见图1a)。提示符只是指定图像中要分割的内容,例如,提示符可以包括识别对象的空间或文本信息。即使提示是模糊的,并且可能引用多个对象(例如,衬衫上的一个点可能表示衬衫或穿着它的人),输出也应该是这些对象中至少一个对象的合理掩码。使用提示分割任务作为预训练目标,并通过提示工程解决一般的下游分割任务。
**模型:**可提示的分割任务和实际使用的目标对模型体系结构施加了约束。特别是,模型必须支持灵活的提示、需要实时计算掩码,以实现交互式使用。
而且必须具有模糊感知能力。令人惊讶的是,作者发现一个简单的设计满足所有三个约束:一个强大的图像编码器计算图像嵌入,一个提示编码器嵌入提示,然后将两个信息源组合在一个轻量级的掩码解码器中,该解码器预测分割掩码。作者将此模型称为分段任意模型(Segment Anything model,简称SAM)(见图1b)。通过将SAM分为图像编码器和快速提示编码器/掩码解码器,可以使用不同的提示重复使用相同的图像嵌入(并平摊其成本)。给定图像嵌入,提示编码器和掩码解码器在50ms内从web浏览器中的提示预测掩码。将重点放在点、框和掩码提示上,并使用自由格式的文本提示来呈现初始结果。为了使SAM能够感知歧义,将其设计为预测单个提示的多个掩码,从而允许SAM自然地处理歧义,例如衬衫与人的例子。
**数据引擎:**为了实现对新数据分布的强泛化,有必要在一个大而多样的掩码集上训练SAM,而不仅仅是已经存在的任何分割数据集。虽然基础模型的典型方法是在线获取数据,但掩模并不自然丰富,因此需要一种替代策略。作者的解决方案是建立一个“数据引擎”,也就是说,与模型在循环数据集注释共同开发模型(见图1c)。数据引擎有三个阶段:辅助手动、半自动和全自动。在第一阶段,SAM帮助注释者注释掩码,类似于经典的交互式分段设置。在第二阶段,SAM可以通过提示可能的对象位置来自动为对象子集生成掩码,而注释器则专注于注释剩余的对象,从而帮助增加掩码的多样性。在最后阶段,用前景点的规则网格提示SAM,平均每张图像产生100个高质量掩模。

本文介绍了建立一个通用图像分割模型的过程,包括定义提示分割任务、设计SegmentAnythingModel,以及构建数据引擎以收集大规模多样化数据。模型通过预训练和提示工程,实现零-shot泛化,适用于多种下游任务。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



