Segment Anything阅读笔记

这篇具有很好参考价值的文章主要介绍了Segment Anything阅读笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Segment Anything

摘要

体验地址
论文地址
代码地址
这篇文章最近有点火,已经有1万多star了
Segment Anything阅读笔记

  • 大规模数据集(超过10亿个mask)
  • 可以做zero-shot任务

引言

作者问了三个问题:
图像分割成功取决于三个组成部分:任务、模型和数据。本文解决了以下关于图像分割的问题:

  1. 什么任务可以实现零zero-shot泛化?
  2. 相应的模型架构是什么?
  3. 什么样的数据可以支持这个任务和模型
    Segment Anything阅读笔记

任务

在NLP和最近的计算机视觉中,基础模型是一个有前途的发展,它可以通过使用“提示”技术对新数据集和任务执行零次和少次学习。受此工作的启发,我们提出了可提示分割任务,其目标是在给定任何分割提示时返回有效的分割掩码(上图a)。提示符简单地指定要在图像中分割什么,例如,提示符可以包括标识对象的空间或文本信息。有效输出掩码的要求意味着,即使提示符是模糊的,并且可能指向多个对象(例如,衬衫上的一个点可能表示衬衫或穿衬衫的人),输出也应该是这些对象中至少一个的合理掩码。我们使用提示分割任务作为预训练目标,并通过提示工程解决一般的下游分割任务。

模型

可提示的分割任务和实际使用的目标对模型体系结构施加了约束。特别是,该模型必须支持灵活的提示,需要实时平摊计算掩码以允许交互使用,并且必须能够识别歧义。令人惊讶的是,我们发现一个简单的设计满足了所有三个约束:一个强大的图像编码器计算图像嵌入,一个提示编码器嵌入提示,然后将两个信息源组合在一个轻量级的掩码解码器中,预测分割掩码。我们把这个模型称为分割任意模型(Segment Anything model),或SAM(见图b)。通过将SAM分离为图像编码器和快速提示编码器/掩码解码器,可以使用不同的提示重用相同的图像嵌入(及其成本摊销)。

给定图像嵌入,提示编码器和掩码解码器在网络浏览器中从提示符中预测掩码,时间为~ 50ms。我们主要关注点、框和掩码提示,并使用自由形式的文本提示来呈现初始结果。为了使SAM能够识别歧义,我们将其设计为为单个提示预测多个掩码,允许SAM自然地处理歧义,例如衬衫vs.人的示例。

Data engine

为了实现对新数据分布的强泛化,我们发现有必要在一个大而多样的掩码集上训练SAM,而不是任何已经存在的分割数据集。虽然基础模型的典型方法是在线获取数据,但掩码自然并不丰富,因此我们需要一种替代策略。我们的解决方案是构建一个“数据引擎”,即我们与模型在循环数据集注释共同开发我们的模型。我们的数据引擎有三个阶段:辅助手动、半自动和全自动。在第一阶段,SAM帮助注释者注释掩码,类似于经典的交互式分割设置。在第二阶段,SAM可以自动为对象的一个子集生成掩码,方法是提示它可能的对象位置,而注释器则专注于注释剩余的对象,这有助于增加掩码的多样性。在最后阶段,我们用前景点的规则网格提示SAM,平均每张图像产生约100个高质量蒙版。
Segment Anything阅读笔记

分割任务

Segment Anything阅读笔记
从NLP中获得灵感,其中下一个token预测任务用于基础模型预训练,并通过提示工程解决各种下游任务。为了建立一个分割的基础模型,我们的目标是定义一个具有类似功能的任务。

任务
我们首先将提示符的思想从NLP转换为分割,其中提示符可以是一组前景/背景点,一个粗略的框或掩码,自由形式的文本,或者通常情况下,指示图像中要分割的内容的任何信息。那么,提示分割任务是在给定任何提示时返回一个有效的分割掩码。“有效”掩码的要求仅仅意味着,即使提示符是模糊的,并且可能涉及多个对象(例如,回想一下衬衫vs.人的例子,请参见图3),输出也应该是这些对象中至少一个的合理掩码。这一需求类似于期望语言模型对模棱两可的提示符输出一致的响应。我们选择这个任务是因为它导致了一个自然的预训练算法和一个通过提示将zero-shot转移到下游分割任务的通用方法。
Pre-training
提示分割任务提出了一种自然的预训练算法,该算法为每个训练样本模拟一系列提示(例如,点、框、掩码),并将模型的掩码预测与实际情况进行比较。我们从交互式分割、中采用了这种方法,尽管与交互式分割的目标是在足够的用户输入后最终预测有效的掩码不同,我们的目标是始终预测任何提示的有效掩码,即使提示是模糊的。这确保了预训练的模型在涉及歧义的用例中是有效的,包括我们的数据引擎所要求的自动注释。我们注意到,在这项任务中表现良好具有挑战性,需要专门的建模和训练损失选择
Zero-shot transfer
直观地说,我们的预训练任务赋予了模型在推理时对任何提示作出适当响应的能力,因此可以通过设计适当的提示来解决下游任务。例如,如果有一个猫的边界盒检测器,猫实例分割可以通过提供检测器的盒子输出作为我们的模型的提示来解决。一般来说,大量的实际分割任务都可以作为提示。除了自动数据集标记之外,我们还在实验中探索了五个不同的示例任务。
相关的任务
分割是一个广泛的领域:有交互式分割,边缘检测,超像素化,对象建议生成,前景分割,语义分割,实例分割,全景分割等。
我们的提示分割任务的目标是生产一个能力广泛的模型,可以适应许多(虽然不是全部)现有的和新的分割任务通过及时的工程。这种能力是任务泛化的一种形式。注意,这与以前的多任务分割系统不同。在多任务系统中,单个模型执行一组固定的任务,例如联合语义、实例和全景分割,但训练和测试任务是相同的。在我们的工作中,一个重要的区别是,为提示分割训练的模型可以在推理时作为一个更大的系统中的组件执行一个新的、不同的任务,例如,为了执行实例分割,提示分割模型与现有的对象检测器相结合。
讨论

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

分割模型

Segment Anything阅读笔记
SAM有三个组成部分,如图4所示:一个图像编码器,一个灵活的提示编码器和一个快速的掩码解码器。我们建立在Transformer视觉模型的基础上,对实时性能进行了特定的权衡。

  • 图像编码器使用MAE
  • prompt编码器:稀疏提示(点、框、文本)和密集提示(掩码)。通过位置编码表示点和框,并对每种提示类型和自由形式的文本使用CLIP现成的文本编码器进行学习嵌入。密集提示(即掩码)使用卷积嵌入,并与图像嵌入元素相加。
  • MASK解码器:Transformer decoder block接着动态mask预测头,在两个方向上使用提示自我注意和交叉注意(提示到图像嵌入和反之亦然)来更新所有嵌入,在运行两个块之后,对图像嵌入进行上采样,MLP将输出令牌映射到动态线性分类器,然后计算每个图像位置的掩码前景概率。
  • 解决歧义:模型预测每个mask的置信度分数(即估计的IoU)
  • 损失函数:dice loss和focal loss

Segment Anything Data Engine

Assisted-manual阶段
在第一阶段,类似于经典的交互式分割,一组专业的注释人员使用SAM支持的基于浏览器的交互式分割工具,通过单击前景/背景对象点来标记掩码。蒙版可以使用像素精确的“笔刷”和“橡皮擦”工具来细化。我们的模型辅助注释直接在浏览器中实时运行(使用预先计算的图像嵌入),从而实现真正的交互式体验。我们没有对标记对象施加语义约束,注释者可以自由地标记“stuff”和“things”。我们建议注释者标记他们可以命名或描述的对象,但没有收集这些名称或描述。标注者被要求按突出的顺序标注对象,并被鼓励在一个MASK花费30秒以上的时间来标注下一个图像。
在这一阶段的开始,SAM使用公共分割数据集进行训练。在足够的数据标注后,仅使用新标注的MASK重新训练SAM。随着越来越多的MASK被收集,图像编码器从ViT-B缩放到ViT-H,其他架构细节也在进化;我们总共重新训练了我们的模型6次。随着模型的改进,每个MASK的平均注释时间从34秒减少到14秒。我们注意到,14秒比COCO的掩码标注快6.5倍,仅比极值点的边界框标注慢2倍。随着SAM的改进,每张图像的平均掩码数量从20个增加到44个。总的来说,我们在这个阶段从12万张图片中收集了430万个面具。
半自动阶段
在这个阶段,我们的目标是增加MASK的多样性,以提高我们的模型分割任何东西的能力。为了将注释器集中在不太突出的对象上,我们首先自动检测自信掩码。然后,我们向注释者展示了预先填充了这些蒙版的图像,并要求他们注释任何其他未注释的对象。为了检测可信掩码,我们使用通用的“对象”类别在所有第一阶段掩码上训练了一个边界盒检测器。在此阶段,我们在180k图像中收集了额外的590万个面具(总共1020万个面具)。与第一阶段一样,我们定期对新收集的数据重新训练我们的模型(5次)。每个掩码的平均注释时间回到了34秒(不包括自动掩码),因为这些对象的标签更具挑战性。每张图片的平均蒙版数量从44个增加到72个(包括自动蒙版)。
全自动阶段
在最后阶段,注释是完全自动的。这是可行的,因为我们的模型有两个主要的增强。首先,在这一阶段的开始,我们收集了足够多的面具来极大地改进模型,包括前一阶段的各种面具。第二,在这个阶段,我们已经开发了模糊感知模型,它允许我们在模糊的情况下预测有效的掩码。具体来说,我们使用32×32规则点网格来提示模型,并为每个点预测一组可能对应于有效对象的掩码。对于识别歧义的模型,如果一个点位于一个部件或子部件上,我们的模型将返回子部件、部分和整个对象。利用模型中的IoU预测模块来选择有信心的面具;此外,我们仅识别和选择了稳定的掩码(如果将概率图阈值设为0.5−δ和0.5 + δ会产生相似的掩码,则我们认为掩码是稳定的)。最后,在选择自信和稳定的掩码后,应用非最大抑制(non- maximum suppression, NMS)对重复数据进行过滤。为了进一步提高较小蒙版的质量,我们还处理了多个重叠的放大图像剪裁。

消融实验

Segment Anything阅读笔记文章来源地址https://www.toymoban.com/news/detail-418478.html

到了这里,关于Segment Anything阅读笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 论文阅读 - Segment Anything

    Meta推出的Segment Anything开源之后,一下成为了CV界的网红。本文是对Segment Anything这篇论文的精读,其中会有一些个人的见解。 为了让更多人了解到SAM的重要意义,本文会尽量写的白话一些,让非深度学习工作者也能知道SAM的工作原理。 这部分写给非深度学习工作者。 几乎所

    2023年04月24日
    浏览(39)
  • 《论文阅读07》Segment Anything in 3D with NeRFs

    研究领域:图像分割(3D) 论文:Segment Anything in 3D with NeRFs Submitted on 24 Apr 2023 (v1), last revised 1 Jun 2023 (this version, v3) Computer Vision and Pattern Recognition (cs.CV) nvos数据集 论文链接 使用NeRFs在3D中分割任何内容 摘要 最近,Segment Anything Model(SAM)作为一种强大的视觉基础模型出现,它能

    2024年02月16日
    浏览(47)
  • [自注意力神经网络]Segment Anything(SAM)论文阅读

    论文地址 https://arxiv.org/abs/2304.02643 源码地址 https://github.com/facebookresearch/segment-anything 强烈建议大家试试Demo,效果真的很好:https://segment-anything.com/         本文建立了一个基础图像分割模型,并将其在一个巨大的数据集上进行训练,目的是解决一系列下游任务。本文的关键

    2023年04月23日
    浏览(63)
  • 【论文阅读】Segment Anything(SAM)——可分割一切的CV大模型

    【前言】随着ChatGPT席卷自然语言处理,Facebook凭借着Segment Anything在CV圈也算扳回一城。迄今为止,github的star已经超过3万,火的可谓一塌糊涂。作为AI菜鸟,可不得自己爬到巨人肩膀上瞅一瞅~ 论文地址:https://arxiv.org/abs/2304.02643 代码地址:GitHub - facebookresearch/segment-anything: T

    2024年02月15日
    浏览(44)
  • 论文阅读:TinySAM: Pushing the Envelope for Efficient Segment Anything Model-文章内容阅读

    论文标题: TinySAM: 极致高效的分割一切模型 论文地址:https://arxiv.org/pdf/2312.13789.pdf 代码地址(pytorch):https://github.com/xinghaochen/TinySAM 详细论文解读:TinySAM:极致高效压缩,手机就能实时跑的分割一切模型 - 知乎 (zhihu.com)  目录 文章内容解析  概括 文章的观点 技术创新解

    2024年01月17日
    浏览(54)
  • Segment Anything——论文笔记

    home page:segment-anything.com code:segment-anything 介绍:SAM是最近提出的一种通用分割大模型,其表现出了强大的零样本泛化能力,视觉感知模型的通用化又前进了一步。为了达到文章标题字面意义“segment anything”,那么就需要该算法具有强大的物体语义感知能力,在模型的设计阶

    2024年02月10日
    浏览(39)
  • 【论文笔记】Fast Segment Anything

    我说个数:一个月5篇基于Fast Segment Anything的改进的论文就会出现哈哈哈哈。 SAM架构的主要部分Transformer(ViT)模型相关的大量计算资源需求,这给其实际部署带来了障碍 将分段任意任务解耦为两个顺序阶段,分别是是实例分段和提示引导选择。 第一阶段取决于基于卷积神经

    2024年02月16日
    浏览(43)
  • 【自用】SAM模型论文笔记与复现代码(segment-anything-model)

    一个 prompt encoder ,对提示进行编码, image encoder 对图像编码,生成embedding, 最后融合2个 encoder ,再接一个轻量的 mask decoder ,输出最后的mask。 模型结构示意图: 流程图: 模型的结构如上图所示. prompt会经过 prompt encoder , 图像会经过 image encoder 。然后将两部分embedding经过一个

    2024年01月24日
    浏览(47)
  • 【论文笔记】SAM3D: Zero-Shot 3D Object Detection via Segment Anything Model

    原文链接:https://arxiv.org/pdf/2306.02245.pdf   分割一切模型(SAM)作为视觉领域的基石模型,有强大的泛化性,能解决很多2D视觉问题。但是SAM是否可以适用于3D视觉任务,仍需要被探索。   目前几乎没有关于3D目标检测的零样本学习,如何使SAM的零样本能力适用于3D目标检测

    2024年02月16日
    浏览(40)
  • 【Segment Anything】CV的大模型Segment Anything也来了,强人工智能的时代究竟还有多远?

    论文链接:https://arxiv.org/pdf/2304.02643.pdf 论文解读后续更新…… 官方文档:https://ai.facebook.com/blog/segment-anything-foundation-model-image-segmentation/ 项目地址:https://github.com/facebookresearch/segment-anything demo地址:https://segment-anything.com/demo 我自己上传了一张图片,结果还是挺好的(我上传

    2023年04月17日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包