Segment Anything:突破边界的图像分割新技术解析

这篇具有很好参考价值的文章主要介绍了Segment Anything:突破边界的图像分割新技术解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Segment Anything论文地址:https://arxiv.org/pdf/2304.02643.pdf

论文背景

在自然语言处理中,基于大规模语言模型的零样本和少样本学习已经取得了重要进展。在计算机视觉领域,例如CLIP和ALIGN,通过工程化的文本提示可以实现对新视觉概念的零样本泛化。本论文中,我们提出了可提示的分割任务,即根据分割提示返回有效的分割掩码。提示可以包含空间或文本信息,用于识别图像中的对象。有效的输出掩码意味着即使提示模棱两可且可能指向多个对象(例如,衣服上的一点可以表示衬衫或穿着衬衫的人),输出掩码也应该对其中至少一个对象产生合理的分割。我们将可提示的分割任务用作预训练目标,并通过提示工程来解决各种下游分割任务。

Segment Anything模型(SAM)
可提示的分割任务和实际应用要求模型架构具备一定的约束条件。特别是,模型必须支持灵活的提示,能够实时计算分割掩码以实现交互使用,并且必须具备对模棱两可情况的认知能力。令人惊讶的是,论文作者发现一个简单的设计可以满足所有这些约束条件:一个强大的图像编码器计算图像嵌入,一个提示编码器对提示进行编码,然后将这两种信息源结合在一个轻量级的掩码解码器中,预测分割掩码。大佬将这个模型称为Segment Anything模型,简称SAM。通过将SAM分解为图像编码器和快速提示编码器/掩码解码器,可以重复使用相同的图像嵌入(并分摊成本)进行不同提示的计算。给定一个图像嵌入,提示编码器和掩码解码器可以在网络浏览器中在约50毫秒内根据提示预测出掩码。我们关注点、框和掩码提示,并展示了使用自由文本提示的初步结果。为了使SAM具备认知模糊性的能力,我们设计它可以为单个提示预测多个掩码,从而自然地处理模棱两可的情况,如衬衫与人的示例。

Segment Anything数据引擎包括辅助手动、半自动和全自动三个阶段,用于构建大规模且多样化的掩码数据。SA-1B是通过数据引擎的全自动阶段生成的数据集,包含10亿个掩码,比现有数据集多400倍,具有高质量和多样性。SA-1B旨在用于训练具备鲁棒性和泛化能力的SAM,并成为构建新基础模型的宝贵资源。

Segment Anything任务方法

为了训练模型,研究人员提出了一种预训练算法,模拟了一系列的提示序列,并将模型的预测与真实掩码进行比较。与交互式分割不同,该方法的目标是在任何提示情况下始终生成有效的分割掩码。这确保了预训练模型在包括自动注释在内的各种应用场景中的有效性。

该技术的另一个优势是零样本迁移能力。通过预训练任务,模型能够在推理时适应不同的提示信息,因此可以通过设计适当的提示来解决各种实际分割任务。例如,如果已经有了一个用于检测猫的边界框检测器,可以通过将检测器的输出边界框作为提示,实现猫实例分割。这种方法使得广泛的分割任务可以被视为提示工程的一部分。

Segment Anything技术的出现为图像分割领域带来了新的思路和可能性。通过提示工程和组合方法,单一模型可以以可扩展的方式应用于各种任务,并适应未知的任务。这种方法为构建更灵活、适应性强的分割系统奠定了基础。

在未来,我们可以进一步探索提示工程和组合方法的潜力,以推动图像分割技术的发展和应用。

Segment Anything 模型架构

Segment Anything:突破边界的图像分割新技术解析,论文翻译,图像分割,语义分割,计算机视觉

Segment Anything模型(SAM)用于可提示分割任务,包括三个组件:图像编码器、灵活的提示编码器和快速掩码解码器。它
基于Transformer视觉模型(如ViT)构建SAM,具有实时性能的权衡。以下是对这些组件的详细的介绍。

图像编码器(Image Encoder)

图像编码器使用了经过MAE预训练的Vision Transformer(ViT),并进行了最小程度的调整以处理高分辨率输入。图像编码器仅运行一次,可以在对模型进行提示之前应用。

提示编码器(Prompt Encoder)

提示编码器考虑两种类型的提示:稀疏型(点、框、文本)和密集型(掩码)。我们使用位置编码表示点和框,并与每种提示类型和自由形式文本的学习嵌入进行求和。密集型提示(即掩码)使用卷积进行嵌入,并与图像嵌入逐元素求和。

掩码解码器(Mask Decoder)

掩码解码器高效地将图像嵌入、提示嵌入和输出标记映射到掩码。该设计受到先前研究的启发,使用Transformer解码器块的修改版,后接动态掩码预测头部。我们的修改版解码器块使用自注意力和交叉注意力(提示到图像嵌入和反之)来更新所有嵌入。在运行两个块之后,我们上采样图像嵌入,并通过MLP将输出标记映射到动态线性分类器,计算每个图像位置的掩码前景概率。

Segment Anything:突破边界的图像分割新技术解析,论文翻译,图像分割,语义分割,计算机视觉

这里的提示编码器和掩码解码器的功能与BERT模型中的掩码机制类似,它们通过稀疏型(点、框、文本)或密集型(掩码)的提示向模型提供了关于需要进行遮挡的部分的信息。这种遮挡使模型能够进行自监督学习,通过学习遮挡的内容来提高对图像中感兴趣目标的分割能力。

Segment Anything:突破边界的图像分割新技术解析,论文翻译,图像分割,语义分割,计算机视觉

消除模糊性

当给定模棱两可的提示时,模型将对多个有效掩码进行平均。为了解决这个问题,大佬修改了模型,使其可以为单个提示预测多个输出掩码,如下图所示,我们发现输出3个掩码足以解决大多数常见情况(嵌套掩码通常最多有三层:整体、部分和子部分)。在训练过程中,我们只反向传播具有最小损失的掩码。为了对掩码进行排名,模型为每个掩码预测一个置信度分数(如估计的IoU)。

Segment Anything:突破边界的图像分割新技术解析,论文翻译,图像分割,语义分割,计算机视觉

效率性

整体模型设计在很大程度上考虑了效率性。在预先计算的图像嵌入的基础上,提示编码器和掩码解码器可以在Web浏览器中在CPU上以约50毫秒的速度运行

损失和训练

模型在训练过程中,使用了焦点损失(focal loss)和Dice损失(dice loss)的线性组合作为损失函数。这两种损失函数结合了目标检测和分割任务的特点,能够有效地引导模型学习正确的分割结果。

焦点损失(Focal Loss):

焦点损失是一种针对类别不平衡问题的损失函数,可以帮助模型更好地处理易分类和困难分类的样本。

焦点损失的计算公式如下:

F L ( p t ) = − α t ( 1 − p t ) γ l o g ( p t ) FL(p_t) = -\alpha_t(1-p_t)^\gamma log(p_t) FL(pt)=αt(1pt)γlog(pt)
其中:
p t p_t pt 表示模型的预测概率;
α t \alpha_t αt 是平衡参数,用于调整易分类和困难分类样本的权重;
γ \gamma γ 是一个可调的指数参数,用于调整焦点损失的衰减速率。

通过对焦点损失公式的定义,可以看出当样本难以分类时,损失函数的值会更大,从而加大对这类样本的关注度,以便模型更好地学习困难样本。

Dice损失(Dice Loss)

Dice损失是一种常用的评估分割任务准确性的指标,它衡量了模型预测结果与真实分割结果之间的相似度。

Dice损失的计算公式如下:
D i c e ( p , g ) = 2 ∣ p ⋂ g ∣ ∣ p ∣ + ∣ g ∣ Dice(p,g) = \frac{2|p \bigcap g|}{|p|+|g|} Dice(p,g)=p+g2∣pg

其中:
p p p 表示模型的预测结果,通常是一个二值化的分割掩码;
g g g 表示真实的分割结果,也是一个二值化的分割掩码;
∣ ⋅ ∣ |\cdot| 表示对应的区域的像素数量;
∩ \cap 表示交集运算。

Dice损失的取值范围为0到1,值越大表示模型预测结果与真实分割结果的相似度越高。因此,最小化Dice损失可以使模型更接近真实分割结果。

综合使用焦点损失和Dice损失可以在训练过程中同时考虑样本的难易程度和分割准确性,以提高模型的性能和泛化能力。

对于训练promptable分割任务,采用了一种混合几何提示的策略。这意味着我们使用了多种几何形状的提示,如点、框等,以增加模型对各种场景和对象的适应能力。通过多样的几何提示,模型可以学习到不同对象的形状和结构信息,提高分割任务的泛化能力和鲁棒性。

Segment Anything 数据准备工作

为了收集 1.1B mask 数据集 SA-1B,构建了一个数据引擎。该数据引擎包括三个阶段:

  • 模型辅助手动标注阶段
  • 半自动阶段,结合了自动预测的掩码和模型辅助标注
  • 全自动阶段

模型辅助手动标注阶段(第一阶段)

在这个阶段,组建了一个专业标注团队,使用基于 SAM 的基于浏览器的交互式分割工具,通过点击前景/背景对象点来标注掩码。标注员会标注他们能够命名或描述的对象。

在这个阶段开始时,我们使用常见的公共分割数据集对 SAM 进行训练。随着收集到更多的掩码,我们将图像编码器从 ViT-B 缩放到 ViT-H,并进行了其他相关的细节调整。我们总共对模型进行了6次重新训练。在这个阶段收集到了来自120k张图像的4.3M个掩码。

半自动阶段(第二阶段)

为了提高掩码的多样性,我们在这个阶段专注于标注不太明显的对象。SAM 首先自动检测出置信度较高的掩码,然后将这些掩码填充到图像中,并要求标注员标注任何其他未标注的对象。

在这个阶段,我们收集到了额外的5.9M个掩码,来自180k张图像(总计10.2M个掩码)。

全自动阶段(第三阶段)

在最后的全自动阶段,标注完全自动化进行。这得益于我们模型的两个主要改进。首先,在这个阶段开始时,我们已经收集到足够多的掩码,大大改善了模型的性能,包括来自前一个阶段的多样化掩码。其次,到了这个阶段,我们开发了具备模糊感知能力的模型,可以在模糊的情况下预测有效的掩码。

具体来说,通过一个 32×32 的规则点网格提示模型,并为每个点预测一组可能对应有效对象的掩码。使用模糊感知模型,如果一个点位于一个部分或子部分上,模型将返回子部分、部分和整个对象的掩码。模型中的 IoU 预测模块用于选择置信度高的码;此外,选择稳定的掩码(如果在概率图像阈值为0.5-δ和0.5+δ时结果相似,则该掩码是稳定的)。最后,在选择了置信度高和稳定的掩码后,我们应用非最大值抑制(NMS)来过滤重复的掩码。为了进一步提高较小掩码的质量,还对多个重叠的放大图像区域进行处理。

最终,我们构建了 SA-1B 数据集,包含了11M张图像和总共1.1B个高质量的掩码。

Segment Anything:突破边界的图像分割新技术解析,论文翻译,图像分割,语义分割,计算机视觉

零样本迁移实验结果

从23个下游任务的性能表现
Segment Anything:突破边界的图像分割新技术解析,论文翻译,图像分割,语义分割,计算机视觉
Segment Anything:突破边界的图像分割新技术解析,论文翻译,图像分割,语义分割,计算机视觉

(a) 与RITM相比,SAM在23个数据集中的16个数据集上取得了更高的结果。

还提供了“oracle”结果,其中通过将SAM的3个掩码与地面真值进行比较,选择最相关的掩码,而不是选择最自信的掩码。这揭示了模糊性对自动评估的影响。
特别是,在使用oracle执行模糊性消解时,SAM在所有数据集上都优于RITM。

(b) SAM在自动度量上表现较差,但在人类研究中获得了一致较高的评级。

零样本迁移边缘预测

Segment Anything:突破边界的图像分割新技术解析,论文翻译,图像分割,语义分割,计算机视觉

使用16×16的正则网格的前景点对SAM进行提示,产生768个预测的掩码(每个点3个)。通过非极大值抑制(NMS)去除冗余的掩码。然后,使用Sobel滤波计算边缘图。
尽管SAM并未针对边缘检测进行训练,但它能够产生合理的边缘图,并且具有较高的性能。

零样本迁移物体提示生成

Segment Anything:突破边界的图像分割新技术解析,论文翻译,图像分割,语义分割,计算机视觉
ViTDet-H表现最佳。在零迁移条件下,SAM在多个指标上表现出色。

零样本迁移实例分割

Segment Anything:突破边界的图像分割新技术解析,论文翻译,图像分割,语义分割,计算机视觉
SAM的性能与ViTDet相当,尽管稍逊一筹。

掩码质量
通过可视化输出,可以观察到SAM的掩码在质量上往往优于ViTDet。SAM在人类研究中始终优于ViTDet。

零样本迁移文本到掩码

Segment Anything:突破边界的图像分割新技术解析,论文翻译,图像分割,语义分割,计算机视觉

首先提取CLIP图像嵌入。然后,在训练过程中,使用提取的CLIP图像嵌入对SAM进行提示。
由于CLIP的图像嵌入是训练与其文本嵌入对齐的,因此文本嵌入用于推理,即使用生成的文本嵌入作为对SAM的提示。
SAM可以根据简单的文本提示(如“一个轮子”)以及短语(如“海狸牙栅格”)对对象进行分割。

Segment Anything:突破边界的图像分割新技术解析,论文翻译,图像分割,语义分割,计算机视觉文章来源地址https://www.toymoban.com/news/detail-523791.html

到了这里,关于Segment Anything:突破边界的图像分割新技术解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【计算机视觉 | 目标检测 | 图像分割】Grounded Segment Anything:Grounding DINO + Segment Anything Model (SAM)介绍

    集成SAM,可以通过文本提示做检测/分割等任务。 我们计划通过结合 Grounding DINO 和 Segment Anything 来创建一个非常有趣的演示,旨在通过文本输入检测和分割任何内容! 并且我们会在此基础上不断完善它,创造出更多有趣的demo。 我们非常愿意帮助大家分享和推广基于Segment-A

    2024年02月04日
    浏览(46)
  • 人工智能时代,如何借助新技术实现突破?| 圆桌对话

    继上篇介绍完干货满满的议题分享后,更精彩的圆桌论坛衔尾相随。本次圆桌对话以“人工智能时代,如何借助新技术实现突破?”为主题,由华锐技术机构市场团队负责人-高媛主持,邀请了AMD中国区数据中心事业部资深架构师-梁朝军,火山引擎证券行业解决方案负责人-陈

    2024年02月19日
    浏览(47)
  • 【图像分割】Grounded Segment Anything根据文字自动画框或分割环境配置和基本使用教程

    要求: python=3.8 , pytorch=1.7,   torchvision=0.8 官方地址: https://github.com/IDEA-Research/Grounded-Segment-Anything Marrying Grounding DINO with Segment Anything Stable Diffusion BLIP Whisper ChatBot - Automatically Detect , Segment and Generate Anything with Image, Text, and Audio Inputs - GitHub - IDEA-Research/Grounded-Segment-Anything: Marr

    2024年02月05日
    浏览(67)
  • 【计算机视觉 | 目标检测 | 图像分割】Grounding DINO + Segment Anything Model (SAM)源代码分享(含源代码)

    在本教程中,我们将学习如何使用两个突破性的模型自动注释图像 - Grounding DINO 和 Segment Anything Model (SAM)。 然后,我们可以使用此数据集来训练实时对象检测或实例分割模型。 以传统方式使用多边形对图像进行注释极其耗时且昂贵。 借助 Grounding DINO 和 SAM,初始注释仅需几分

    2024年04月15日
    浏览(157)
  • Segment Anything论文翻译,SAM模型,SAM论文,SAM论文翻译;一个用于图像分割的新任务、模型和数据集;SA-1B数据集

    论文链接: https://arxiv.org/pdf/2304.02643.pdf https://ai.facebook.com/research/publications/segment-anything/ 代码连接:https://github.com/facebookresearch/segment-anything 论文翻译: http://t.csdn.cn/nnqs8 https://blog.csdn.net/leiduifan6944/article/details/130080159 本文提出Segment Anything (SA)项目:一个用于图像分割的新任务

    2023年04月19日
    浏览(45)
  • 合合信息AI图像内容安全新技术亮相WAIC2023,防范“生成式造假”

    开年以来,多个图像生成软件在全球迅速蹿红,其作画逼真程度“技惊四座”。AI一路“狂飙”,让生成、篡改等多形式的图片伪造的门槛变得更低,由此引发的隐患也令人忧虑。 图像是信息的主要载体之一,利用AI进行图像造假的行为,是AI可信化发展需要应对的重点问题。

    2024年02月16日
    浏览(50)
  • Segment anything(图片分割大模型)

    目录 1.Segment anything  2.补充图像分割和目标检测的区别 定义 :图像分割通用大模型 延深 :可以预计视觉检测大模型,也快了。 进一步理解 :传统图像分割对于下图处理时,识别房子的是识别房子的模型,识别草的是识别草的模型,识别人的是识别人的模型,而Segment anyt

    2024年02月14日
    浏览(41)
  • “我有一个大胆的想法”?Meta AI 新技术让你的思维图像一览无余!

     夕小瑶科技说 原创  作者 | 付奶茶 大家之前是否想象过未来的技术进步会带来读脑器,计算界面是否有可能越过触摸屏、键盘进入我们思维内部读取我们脑袋中所想。尽管当前我们社会尚未达到这一阶段,但我们确实逐渐接近这一愿景! 不久前,Meta AI宣布了一项名为Ima

    2024年02月07日
    浏览(39)
  • 基于Segment anything的实例分割半自动标注

    使用Meta AI的SAM,并添加了一个基本界面来标记图像,并保存COCO格式的掩码。 https://github.com/anuragxel/salt 安装SAM; 创建conda虚拟环境,使用 conda env create -f environment.yaml ; 安装coco-viewer来快速可视化标注结果。 1、将图片放入到 dataset_name/images/* 并且创建空目录 dataset_name/embeddin

    2024年02月06日
    浏览(50)
  • Segment Anything(SAM)全图分割做mask

    项目的源码和模型下载以及环境配置等可参考我的上一篇文章,这里不再赘述。  文章链接:https://blog.csdn.net/m0_63604019/article/details/130221434 在项目中创建一个名为segment-everything.py的文件,文件中写入如下代码: 然后右键点击【Run \\\'segment-everyting\\\'】运行segment-everyting.py文件,运

    2024年02月10日
    浏览(44)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包