大模型介绍:Segment Anything

Segment Anything 介绍

https://segment-anything.com/

Segment Anything旨在构建用于图像分割的基础模型。该项目提出了一个可提示的分割任务,使用这个任务作为预训练目标,并通过提示工程解决各种下游分割任务。

大模型介绍:Segment Anything

大模型介绍:Segment Anything

论文作者还设计了一个模型架构,称为Segment Anything Model (SAM),用于执行分割任务。为了训练这个模型,作者构建了一个数据引擎,通过迭代使用模型来辅助数据收集,并利用新收集的数据来改进模型。最终创建了一个规模庞大的分割数据集,称为SA-1B,其中包含了超过10亿个掩码和1100万张图像。

  • 数据集链接:https://segment-anything.com/dataset/index.html
  • 开源代码:https://github.com/facebookresearch/segment-anything

论文出发点

论文的出发点是建立一个适用于图像分割的基础模型,通过预训练和提示工程的方式实现模型在新的数据分布和任务上的强大泛化能力。

作者希望通过这项工作,构建一个适用于图像分割的基础模型,并探索基于提示工程的方法来解决计算机视觉领域的各种问题。

任务抽象

论文中所抽象的主要问题是如何训练一个模型,能够具备强大的零样本泛化能力,用于执行图像分割任务。作者试图解决三个关键组成部分:任务定义、模型架构和数据收集过程。

大模型介绍:Segment Anything

预训练阶段采用了模拟一系列提示(如点集、框或掩模)的方法,并将模型的掩模预测与真实标注进行比较。这种方法从交互式分割中借鉴而来,但与交互式分割的目标不同,交互式分割的目标是在足够的用户输入后最终预测出有效的掩模,而论文的目标是在任何提示情况下始终预测出有效的掩模,即使提示存在歧义。

模型组成

Segment Anything Model(SAM)是一种用于可提示分割的模型。它由三个主要组件组成:图像编码器、提示编码器和掩码解码器。这些组件共同工作,根据不同类型的提示生成分割掩码。

图像编码器

SAM利用经过调整以处理高分辨率输入的MAE(Masked Autoencoder)预训练的Vision Transformer(ViT)作为图像编码器。这个图像编码器能够高效地对输入图像进行编码。它在每张图像上运行一次,在对模型进行提示之前可以应用该编码器。

提示编码器

SAM考虑两种类型的提示:稀疏提示(如点、框和文本)和密集提示(掩码)。稀疏提示(如点和框)使用位置编码与每种提示类型的学习嵌入相结合进行表示。自由文本提示使用CLIP(Contrastive Language-Image Pre-training)中的文本编码器进行编码。密集提示(即掩码)使用卷积进行嵌入,并与图像嵌入逐元素求和。

掩码解码器

掩码解码器将图像嵌入、提示嵌入和输出令牌作为输入,高效地将它们映射到分割掩码。SAM受先前工作的启发,采用修改过的Transformer解码器块,其中包含提示自注意力和双向交叉注意力:提示到图像嵌入以及反之。运行两个解码器块后,图像嵌入进行上采样,然后通过多层感知机(MLP)将输出令牌映射到动态线性分类器。该分类器计算图像中每个位置的掩码前景概率。

解决歧义

SAM通过为单个提示预测多个输出掩码来解决提示中的歧义问题。在训练过程中,模型仅反向传播对预测掩码的最小损失。为了对掩码进行排序,模型为每个掩码预测一个置信度分数(即估计的交并比IoU)。

效率

SAM的整体设计注重效率。在预先计算的图像嵌入的基础上,提示编码器和掩码解码器可以在Web浏览器上的CPU上运行,约需50毫秒完成。这种运行时性能使得可以实时交互地对模型进行提示。

数据引擎

辅助手动阶段

在第一个阶段中,模仿传统的交互式分割,由专业的注释员使用基于SAM的基于浏览器的交互式分割工具点击前景/背景对象点来标记掩码。注释员可以使用像素精确的"刷子"和"橡皮擦"工具对掩码进行精细调整。

半自动阶段

在这个阶段,我们旨在增加掩码的多样性,以提高模型对任何物体的分割能力。为了让注释员专注于不太显著的对象,我们首先自动检测出置信的掩码。然后,我们向注释员呈现已填充这些掩码的图像,并要求他们标注任何其他未标注的对象。

完全自动阶段

在最后一个阶段,标注完全自动进行。这得益于我们模型的两个重要改进。首先,在这个阶段开始时,我们已经收集了足够的掩码来大大改进模型,包括上一阶段的多样化掩码。

SA-1B 数据集

SA-1B包含了1100万个多样化、高分辨率、经过许可并保护隐私的图像,以及由我们的数据引擎收集的11亿个高质量分割掩码。

图像

我们从与摄影师直接合作的供应商处获得了一组新的1100万张图像的许可。这些图像具有高分辨率(平均为3300×4950像素),由此产生的数据大小可能带来访问和存储方面的挑战。

因此,我们将缩小样本图像的尺寸,使其最短边为1500像素。即使在缩小尺寸后,我们的图像仍然比许多现有的视觉数据集(例如,COCO的图像约为480×640像素)具有显著更高的分辨率。

掩码

我们的数据引擎生成了11亿个掩码,其中99.1%是完全自动生成的。因此,自动掩码的质量至关重要。我们直接将其与专业标注进行比较,并研究各种掩码属性与主要分割数据集的比较情况。

掩码质量

为了评估掩码质量,我们随机抽取了500个图像(约50,000个掩码),并要求我们的专业标注员改进这些图像中所有掩码的质量。标注员使用我们的模型和像素精确的"刷子"和"橡皮擦"编辑工具进行改进。

这个过程生成了自动预测的掩码和经过专业修正的掩码的一对对。我们计算了每对掩码之间的IoU,并发现94%的对之间的IoU大于90%(97%的对之间的IoU大于75%)。

掩码属性

我们绘制了SA-1B中物体中心的空间分布,与最大的现有分割数据集进行了比较。所有数据集中都存在常见的摄影师偏差。SA-1B更好地覆盖了图像的角落,而COCO和Open Images V5则更加偏重中心。

实验分析

Zero-Shot Edge Detection

在Zero-Shot Edge Detection实验中,我们使用BSDS500数据集评估SAM在经典的低层任务——边缘检测上的表现。我们使用简化版的自动掩码生成流程。

大模型介绍:Segment Anything

具体来说,我们使用一个16×16的前景点规则网格作为SAM的提示,从而产生768个预测掩码(每个点3个掩码)。通过非极大值抑制(NMS)去除多余的掩码。然后,使用Sobel滤波对未阈值化的掩码概率图计算边缘图,并进行标准的轻量级后处理,包括边缘非极大值抑制(具体详见§D.2)。

即使SAM并没有针对边缘检测进行训练,它也能生成合理的边缘图。与地面真值相比,SAM预测出更多的边缘,包括在BSDS500中未标注的合理边缘。

Zero-Shot Object Proposals

在Zero-Shot Object Proposals实验中,我们评估SAM在中层任务——目标候选生成(object proposal generation)上的表现。该任务在目标检测研究中起着重要作用,是先驱系统中的一个中间步骤。

选择LVIS数据集是因为它具有大量的目标类别,提供了一个具有挑战性的测试。我们将SAM与一个强基线模型进行比较,该模型使用ViTDet检测器(采用级联Mask R-CNN ViT-H)实现。

Zero-Shot Instance Segmentation

在Zero-Shot Instance Segmentation实验中,我们将SAM作为实例分割器的分割模块。具体实现很简单:我们运行一个目标检测器(之前使用的ViTDet),然后用它的输出边界框来提示SAM生成分割结果。

大模型介绍:Segment Anything

我们可以观察到两个数据集上存在差距,SAM的表现相对接近,但明显落后于ViTDet。通过可视化输出,我们观察到SAM生成的分割结果在质量上往往优于ViTDet,边界更清晰。

Zero-Shot Text-to-Mask

对SAM处理文本提示能力的概念验证。虽然在之前的所有实验中我们使用了完全相同的SAM,但对于这个实验,SAM的训练过程进行了修改,使其能够理解文本提示,但并不需要新的文本注释。

方法总结

我们的目标是通过要求SAM在广泛的分割提示下预测有效的掩码来实现这种组合性。这样做的效果是在SAM和其他组件之间创建一个可靠的接口。

SAM可以根据可穿戴设备检测到的凝视点进行提示,实现新的应用。由于SAM能够在新的领域(如自我中心图像)进行泛化,这些系统可以在不需要额外训练的情况下工作。

尽管SAM的整体表现良好,但它并非完美。它可能会错过细微的结构,在某些情况下产生小的不连续组件,并且其生成的边界不如“放大”的计算密集型方法。SAM注重的是广泛适用性和多样性,而不是高IoU的交互式分割。

【竞赛报名/项目咨询请加微信:mollywei007】

上一篇

2023年英国初级奥数UKJMO成绩公布

下一篇

重磅官宣!阿德莱德大学、南澳大学正式合并!

你也可能喜欢

  • 暂无相关文章!

评论已经被关闭。

插入图片
返回顶部
Baidu
map