读论文:Segment Anything

标题: Segment Anything
作者: Alexander Kirillov Eric Mintun Nikhila Ravi Hanzi Mao Chloe Rolland Laura Gustafson Tete XiaoSpencer Whitehead Alexander C. Berg Wan-Yen Lo Piotr Dollar´ Ross Girshick
原文地址:https://arxiv.org/pdf/2304.02643.pdf


Abstract

本文介绍了Segment Anything (SA) 项目,一种用于图像分割的新任务、模型和数据集:该项目使用了高效模型来构建目前最大的分割数据集(在1100万张特许和尊重隐私的图像上有超过10亿个掩码);而模型被设计和训练为可提示的,因此它可以将零样本转移到新的图像分布和任务中。通过实验发现其零样本性能十分出色。


Introduction

在网络规模数据集上预训练的大型语言模型正在通过强大的零样本和少样本泛化彻底改变 NLP,而这些模型都可以泛化到一些从未见过的数据集上。此功能通常通过提示工程实现,而且其性能有时能与那些经过调参的模型相差不大。

本文的目标就是:建立一个图像分割的基础模型——一个可提示的模型,并在一个广泛的数据集上使用一个能实现强大泛化的任务对其进行预训练。

目标:利用提示工程解决新数据分布上的一系列下游分割问题。

实现该目标的关键在于以下三部分:任务、模型和数据。而为了发展他们,要解决以下关于图像分割的问题:

  1. 什么任务能实现零散的概括?
  2. 什么是相应的模型结构?
  3. 什么数据可以为这个任务和模型提供动力?

而这些问题又是纠缠在一起的,需要一个全面的解决方法:

我们首先定义了一个可提示的分割任务,其通用性足以提供一个强大的预训练目标,并实现广泛的下游应用。这个任务需要一个支持灵活提示的模型,并能在提示时实时输出分割掩码,以便于互动使用。为了训练我们的模型,我们需要一个多样化、大规模的数据源。
不幸的是,没有网络规模的分割数据源;为了解决这个问题,我们建立了一个 “数据引擎”,也就是说,我们在使用我们的高效模型来协助收集数据和使用新收集的数据来改进模型之间进行迭代。我们接下来介绍每个相互关联的组件,然后是我们创建的数据集和证明我们方法有效性的实验

  • 任务:基础模型可以通过使用 "提示 "技术对新的数据集和任务进行零次和几次的学习——可提示的分割任务:在任何分割提示下返回一个有效的分割掩码,如下图所示:

一个提示简单地指定了图像中要分割的内容,例如,一个提示可以包括识别物体的空间或文本信息

“基础模型”是指在大规模数据集上预训练的深度学习模型,如VGG、ResNet等。这些模型通常具有很强的特征提取能力和泛化能力,并且可以通过微调等技术适应不同的计算机视觉任务;

  • 模型:可提示的分割任务对模型的结构提出了限制:该模型必须支持灵活的提示,需要实时计算掩码以允许交互式使用,并且必须具有模糊性——一个强大的图像编码器计算图像嵌入,一个提示编码器嵌入提示,然后这两个信息源在一个预测分割面具的轻量级面具解码器中被结合,按着这个思路所构建出来的模型就是本文所提出的分割模型SAM,如下图b所示:

通过将SAM分离成一个图像编码器和一个快速提示编码器/掩码解码器,相同的图像嵌入可以通过不同的提示重复使用(并摊销其成本)

  • 数据引擎:为了实现对新数据分布的强大泛化,我们发现有必要对SAM进行大规模和多样化的面具训练,超越任何已经存在的分割数据集——建立一个 “数据引擎”:模型中的数据集注释共同开发我们的模型;
  • 数据集SA-1B:包括来自1100万张许可和隐私保护图像的1B多个掩码,如下图所示:

SA-1B是使用我们的数据引擎的最后阶段完全自动收集的,比任何现有的分割数据集有400倍的掩码,而且正如我们广泛验证的那样,这些掩码具有高质量和多样性。除了用于训练SAM的鲁棒性和通用性,我们希望SA-1B成为旨在建立新基础模型的研究的宝贵资源

  • 实验:首先,使用23个分割数据集的不同新套件,我们发现SAM从单一的前景点产生高质量的掩模,通常只略低于手动注释的地面真相。其次,我们发现,在使用提示工程的零照传输协议下,各种下游任务的定量和定性结果始终很强,包括边缘检测、对象建议生成、实例分割,以及对文本到掩码预测的初步探索。这些结果表明,SAM可以使用开箱即用的提示工程来解决各种涉及SAM训练数据以外的物体和图像分布的任务

贡献

  • 首先,它提出了一个新的任务,称为可提示分割,这个任务足够通用,可以提供强大的预训练目标,并支持广泛的下游应用;
  • 其次,它介绍了SAM模型,该模型支持灵活提示,并可以实时输出分割掩模;
  • 第三,它介绍了SA-1B数据集,其中包含超过10亿个掩模和1100万张图像;

这些贡献通过推进图像分割领域的最新技术水平,并提供一种新的方法来解决这个问题而融入到现有文献中。作者还讨论了他们的工作与其他基础模型和工具在这个领域的关系。


综述

1、 SA任务

研发人员从NLP中获得灵感:下一标记预测任务用于基础模型预训练,并通过提示工程来解决各种下游任务。而本文要通过定义一个具有类似能力的任务来构建分割的基础模型

  • 任务:首先将提示的概念从NLP转化为分割,其中提示可以是一组前景/背景点、粗略的框或遮罩、自由格式的文本(或者一般来说,任何指示要分割的内容的信息一个图像);
  • 预训练:可提示的分割任务提出了一种自然的预训练算法(该算法模拟每个训练样本的一系列提示(例如,点、框、掩码),并将模型的掩码预测与基本事实进行比较)——赋予模型在推理时对任何提示做出适当响应的能力
  • 零样本传输:指在模型训练时没有见过某个特定任务或数据集,但在测试时可以成功地将该模型应用于该任务或数据集(下游任务(在使用预训练模型(如本文中的SAM模型)时,将该模型应用于实际任务的过程)可以通过设计适当的提示来解决,例如,如果有一个用于猫的边界框检测器,则可以通过将检测器的框输出作为提示提供给我们的模型来解决猫实例分割);
  • 相关任务:可提示分割任务的目标是产生一个具有广泛能力的模型,它可以通过提示工程适应许多(尽管不是全部)现有的和新的分割任务。但是这与多任务分割系统不同,该系统中训练和测试任务是相同的。但是可提示分割任务为可提示性分割训练的模型可以在推理时通过作为一个更大的系统中的组件来执行一个新的、不同的任务,例如,为了执行实例分割,可提示性分割模型与现有的物体检测器相结合;(这个不用写进PPT吧);

2、 SA模型

Segment Anything Model (SAM)具有三个组件,如下图所示:

SAM概述,一个重量级图像编码器输出一个图像嵌入,然后可以通过各种输入提示有效地查询,以平摊实时速度生成对象掩码。对于对应于多个对象的模糊提示,SAM可以输出多个有效掩码和相关的置信度分数;
从左到右分别是图像编码器、灵活提示编码器和快速掩码解码器
该模型建立在 Transformer 视觉模型的基础上,并针对(摊销的)实时性能进行了特定的权衡;

  • 图像编码器:用了一个MAE预训练的视觉转弯其ViT,它能被最小限度的适应于处理高分辨率输入以处理高分辨率输入。该图像编码器每幅图像运行一次,可以在提示模型之前应用
  • 提示编码器:它可以将不同类型的提示转换为模型可以理解的向量表示,考虑两组提示:稀疏的(点、框、文本)密集的(掩码)(用位置编码来表示点和框,用学习到的嵌入来表示每种提示类型,用CLIP的现成文本编码器表示自由形式的文本。密集的提示(即面具)使用卷积嵌入,并与图像嵌入的元素相加);
  • 掩码解码器:它有效地将图像嵌入、提示嵌入和一个输出标记映射到掩码。它是对对Transformer解码器块的修改,使用提示自我注意和两个方向的交叉注意(提示到图像嵌入,反之亦然)来更新所有嵌入。在运行两个块后,我们对图像嵌入进行上采样,一个MLP将输出令牌映射到一个动态线性分类器,然后计算每个图像位置的掩码前景概率

掩码前景概率,即在给定图像和提示的情况下,模型预测每个像素属于前景的概率。掩码前景概率可以用来生成分割掩码,即将图像中的每个像素分配到前景或背景类别中。

  • 解决模糊问题:(就是在有一个输出的情况下,如果给出一个模糊的提示,该模型将平均出现多个有效的掩码)让模型能够预测一个提示的多个输出掩码从而解决该问题,如下图所示:
    在这里插入图片描述

每一列显示SAM从单个模糊点提示符(绿色圆圈)生成的3个有效掩码;
我们发现3个掩码输出足以解决大多数常见情况(嵌套掩码通常最多有三种深度:整体、部分和子部分);
在训练期间,我们仅通过掩码反向传播最小损失 [15, 45, 64]。为了对掩模进行排名,该模型预测每个掩模的置信度分数(即估计的 IoU)

  • 损失和训练:使用focal loss和dice loss的线性组合来监督掩码预测,还使用几何提示的混合来训练可提示的分割任务;

4、 SA数据引擎

(感觉这个部分不用讲)
由于互联网上的分割掩码并不丰富,本文特地构建了一个数据引擎来收集SA-1B数据集。该引擎有三个阶段:(1) 模型辅助手动注释阶段;(2) 混合自动预测掩码和模型辅助注释的半自动阶段; (3) 全自动阶段,我们的模型在没有注释器输入的情况下生成掩码:

  1. 辅助手动阶段:这一阶段类似于经典的交互式分割,即一组专业注释者(他们使用基于浏览器的交互式分割工具对图像进行标注)通过使用由 SAM 提供支持的基于浏览器的交互式分割工具单击前景/背景对象点来标记蒙版——它可以使用像素精确的“画笔”和“橡皮擦”工具进行细化。
    在此阶段开始时,SAM 使用常见的公共分割数据集进行训练。在完成足够的数据注释后,SAM 仅使用新注释的掩码进行再训练;
  2. 半自动阶段:此阶段的目标是增加掩码的多样性,以提高我们的模型分割任何东西的能力。为了将注释器集中在不太显眼的对象上,我们首先自动检测了置信掩码。然后我们向注释者展示了预先填充了这些掩码的图像,并要求他们对任何其他未注释的对象进行注释;
  3. 全自动阶段:这一阶段的注释是全自动的,这是因为该模型有两个主要改进:首先,在这个阶段开始时,我们 收集了足够多的掩码来大大改进模型 ,包括上一阶段的各种掩码。其次,在这个阶段,我们 已经开发了歧义感知模型 ,这使我们即使在模棱两可的情况下也能预测有效的掩码…;

4、 SA数据集

该数据集包含 1100 万张多样化、高分辨率、许可和隐私保护图像,以及使用我们的数据引擎收集的 1.1B 高质量分割掩码。

  • 图像:数据集中的图像具有高分辨率(平均 3300×4950 像素),由此产生的数据大小可能会带来可访问性和存储方面的挑战——最短边设置为 1500 像素的下采样图像,即便如此,图像的分辨率仍然高于许多现有的数据集;
  • 掩码:本文的数据引擎生成了 1.1B 掩码,其中 99.1% 是全自动生成的,经过分析和实验得出——自动掩码质量高且对训练模型有效;

5、 SA RAI分析

使用RAI分析来调整使用模型以及其数据集时的公平问题和偏见。

  • 地理和收入代表性:比较了 SA-1B、COCO [66] 和 Open Images [60] 的地理和收入代表性(其实就是说明了自己的数据集内容比较公平)

SA-1B 在欧洲、亚洲和大洋洲以及中等收入国家/地区的图像比例要高得多。所有数据集都没有充分代表非洲和低收入国家。我们注意到,在 SA-1B 中,包括非洲在内的所有地区至少有 2800 万个口罩,比之前任何数据集的口罩总数多 10 倍

  • 对人进行细分的公平性:下表显示了感知性别表现的结果:

(左上)显示了感知性别表现的结果。我们注意到,女性在检测和分割数据集中的代表性不足[115],但观察到SAM在各组中的表现相似。我们在表2(左下)中重复了对感知年龄的分析,注意到那些被认为是年轻和年长的人在大规模数据集中的代表性不足[110]。SAM在那些被认为年龄较大的人身上表现最好(尽管置信区间很大)。最后,我们在表2(右)中重复了对感知肤色的分析,注意到那些表面肤色较浅的人已被证明在大规模数据集中代表性过高,而那些肤色较深的人代表性不足


6、 零样本转移实验

该实验考虑了五项任务,其中四项与用于训练SAM的可提示性分割任务有很大不同。这些实验在训练期间未见的数据集和任务上评估 SAM。所使用的数据集可能包括新颖的图像分布,如下图所示:
实验首先测试可提示分割的核心目标:从任何提示生成有效的掩码。具体而言,该实验提示SAM去做如下这些事:(1) 执行边缘检测,(2) 分割所有内容,即对象提议生成,(3)分割检测到的对象,即实例分割,以及(4)作为概念验证,从自由格式文本中分割对象;

  • 实现:如果没有特殊说明,那么按下面的规定来训练:(1) SAM 使用 MAE预训练的 ViT-H图像编码器和 (2) SAM 在 SA-1B 上训练,注意该数据集仅包括从最后阶段自动生成的掩码我们的数据引擎;

6.1 零样本单点有效掩码评估

  • 任务:评估从一个单一的前景点中分割出一个物体,而且还采用一项人类研究来补充mIoU指标,在这项研究中,注释者对面具质量的评分从1(无意义)到10(像素完美);

默认情况下,我们按照交互式分割中的标准评估协议[92],从地面真实掩模的 “中心”(掩模内部距离变换的最大值处)取样点。由于SAM能够预测多个掩码,我们默认只评估模型最自信的掩码。基线是所有的单面具方法。我们主要与RITM[92]进行比较,这是一个强大的交互式分割器,与其他强大的基线相比,在我们的基准上表现最好

  • 数据集:所使用的就是上边那张图所代表的具有不同图像分布的数据集。而对于人类研究所使用的数据集为下图中b所展示的那些数据:
  • 结果:在图9a中与RITM比较每个数据集的结果:

对于每个目标类别,IoU定义为预测掩码和真实掩码的交集面积除以它们的并集面积。mIoU则是所有目标类别IoU的平均值。mIoU越高,表示模型在目标分割任务上的性能越好;
SAM在23个数据集中的16个产生了更高的结果,高达∼47 IoU;还展示了一个 "神谕 "结果,在这个结果中,SAM的3个掩码中最相关的掩码是通过与地面真相的比较来选择的,而不是选择最自信的掩码;
这揭示了模糊性对自动评估的影响。特别是,用 "神谕 "来解决模糊性问题,SAM在所有数据集上都优于RITM

人类研究的结果显示在图9b中:

按数据集比较注释者对掩码质量的评分,从1(最差)到10(最好)。所有的方法都使用地面真实掩膜中心作为提示;
误差条是平均面具评分的95%置信区间(所有的差异都是显著的;)可以看到,注释者对SAM掩码质量的评价一直大大高于最强基线RITM。带有单一输出掩码的SAM的消减的、"无歧义意识 "的版本,虽然仍高于RITM,但评分一直较低

这些结果表明,SAM已经学会了从一个点上分割有效的掩码。请注意,对于像DRAM和IBD这样的数据集,SAM在自动指标上比较差,但它在人类研究中得到的评分一直比较高

图9c则是显示了额外的基线:

随着点的数量从1增加到9,我们观察到方法之间的差距减少了。这是预期的,因为任务变得更容易;而且,SAM没有为非常高的IoU制度进行优化;

最后,在图9d中,我们用随机点取样代替默认的中心点取样。

我们观察到,SAM和基线之间的差距越来越大,SAM在任何一种采样方法下都能取得相当的结果


6.2 零样本边缘检测

  • 方法:使用BSD500(经典的低级计算机视觉基准数据集)对SAM在边缘检测的经典低级任务上进行评估。我们使用了一个简化版的自动面具生成管道——用一个16*16的前景点的规则网格来提示SAM,产生768个预测的掩码(每个点3个);
  • 结果:如下图所示:
    在这里插入图片描述

SAM没有接受过预测边缘图的训练,在训练过程中也没有接触到BSDS图像或注释;
质量上看,我们观察到,即使SAM没有经过边缘检测的训练,它也能产生合理的边缘图

可以看到,与实况相比,SAM预测有了更多边缘。这种偏差在下表中可以反映出来:

上边的三个指标是评估边缘检测算法性能的三个常用指标:
ODS:衡量了在不同阈值下,边缘检测算法得到的边缘响应与真实边缘之间的匹配程度;
OIS:只考虑在单个图像尺度上的性能表现;
AP:衡量了在不同IoU阈值下,预测结果与真实结果之间匹配程度的平均精度;
50%精度下的召回率(R50)很高,但以精度为代价

可以看出来,SAM自然落后于最先进的方法,这些方法学习了BSDS500的偏见,即哪些边缘需要抑制。但是与HED等开创性的深度学习方法相比,SAM 表现良好,并且明显优于之前的零样本传输方法;


6.3 零样本对象提案

  • 方法:为了生成物体建议,模型运行一个稍加修改的自动掩码生成管道,并将掩码作为建议输出。本文在LVIS v1上计算了标准的平均召回率(AR)指标来作为其评价指标并与ViTDet检测器进行比较;
  • 结果:如下表所示:

使用ViTDet-H的检测作为对象建议(即,游戏AR的DMP方法[16])总体上表现最好。然而,SAM在几个指标上做得非常好

从该结果中可以看出来:SAM在中型和大型对象以及罕见和常见对象上优于ViTDet-H,只有在小对象的频繁对象上的表现不如它。这是因为ViTDet-H是在该数据集上进行训练的,进而可以学习到一些特定的注释偏差。


6.4 零样本实例分割

  • 方法:使用SAM作为实例分段器的分段模块——运行一个对象检测器(之前使用的ViTDet),并用它的输出框提示SAM;
  • 结果:表5比较了SAM和ViTDet在COCO和LVIS上预测的掩模:

可以观察到两个数据集上的差距,其中SAM相当接近,尽管肯定落后于ViTDet

通过可视化输出,我们观察到SAM掩模通常在质量上优于ViTDet,具有更清晰的边界,如下图所示:

为了调查这一观察结果,我们进行了一项额外的人体研究,结果如下图所示:

掩模质量评级分布来自我们对ViTDet和SAM的人类研究,两者都应用于LVIS地面真理盒。我们还报告LVIS和COCO地面真相质量。图例显示了评级均值和95%置信区间。尽管其AP较低(表5),SAM的评分高于ViTDet,这表明ViTDet利用了COCO和LVIS训练数据中的偏差

可以观察到SAM在人体研究中的表现始终优于ViTDet

(其实就是SAM没有接触过这些数据集,而ViTDet-H则是用它们来训练的,所以能学到其中的偏见)


6.5 零样本本文到掩码

  • 方法:从自由形式的文本中分割对象(一种更高级的任务),通过该实验来证明SAM处理文本提示能力(这里有一段话不知道该不该写。。。就是说把这个模型的训练过程弄成识别文本,但是是以一种不需要新的文本注释的方式进行的);
  • 结果:在图12中显示了定性结果:

SAM可以根据简单的文本提示(如“车轮”)和短语(如“海狸齿格栅”)来分割对象。当SAM仅从文本提示中未能选择正确的对象时,通常会增加一个点来修复预测


6.6 消融实验

本文使用单中心点提示协议在我们的23数据集套件上执行了几次消融。结果如下图所示:

对我们的数据引擎阶段、图像编码器缩放和训练数据缩放的消融研究

下面这张图显示了SAM在数据引擎阶段累积数据训练时的性能:

每个数据引擎阶段都会对我们的23个数据集套件进行改进,只用自动数据(我们的默认)进行训练的结果与使用所有三个阶段的数据相似

观察到每一个阶段mIoU都在增加。当进行所有三个阶段的训练时,自动面具的数量远远超过手动和半自动面具。
为了解决这个问题,我们发现在训练过程中对手动和半自动掩码进行10倍的过采样会得到最好的结果。但是这样的话会使得训练变复杂,所以本文只是用自动生成的掩码来进行实验从而简化训练

下面这张图显示了据量的影响,完整的SA-1B包含1100万张图像,我们对这些图像进行了统一的子抽样,为1M和0.1M的消融:

用10%的SA-1B和全SA-1B训练的SAM是可比的。我们默认使用所有的11M图像进行训练,但使用1M图像是一个合理的实际设置

在0.1M的图像中,我们观察到在所有设置下都有很大的mIoU下降。然而,在100万张图像中,约占全部数据集的10%,我们观察到的结果与使用全部数据集相当。

下面这张图则是显示了ViT-B、ViT-L和ViT-H图像编码器的结果:

缩放SAM的图像编码器显示了有意义的、但却饱和的收益。尽管如此,在某些情况下,较小的图像编码器可能是首选

ViT-H比ViT-B有很大的改进,但比ViT-L只有很小的进步。目前,进一步的图像编码器扩展似乎没有什么成果


总结

本文的贡献主要在以下三方面:一个新的任务(可提示的分割)、模型(SAM)和数据集(SA-1B),并使这个飞跃成为可能。

SAM是否能达到基础模型的地位,还要看它在社区中的使用情况,但无论如何,还是希望这项工作的前景、超过1B个掩模的发布以及我们的可提示分割模型将有助于铺平前进的道路

  • 但是这个模型对于热带气旋检测来说会不会有点太复杂了?或许可以去看看YOLO v8,那个模型也要出论文了。

未来展望

需要改进的主要领域是文本到掩码任务的精度以及如何设计实现语义和全景分割的简单提示

  • 基础模型:在广泛的数据上进行规模训练并可适应广泛的下游任务的模型;
  • 语意合成性:用SAM来使预训练变得简单,即通过要求 SAM 为广泛的分割提示预测有效掩码来实现这一目标;
  • 限制
  1. SAM可能会错过精细的结构,有时会产生不连贯的小组件的幻觉,并且不会像“放大”的计算密集型方法那样清晰地产生边界;
  2. SAM 可以实时处理提示,但在使用重型图像编码器时,SAM 的整体性能并不是实时的;
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值