火爆CV圈的SAM是什么?

01

SAM是什么

前言

最近几周,人工智能的圈子里都在讨论SAM(Segment Anything Model),一个号称(零样本)分割一切的图像分割模型。
火爆CV圈的SAM是什么?图:Segment Anything Demo
2023年4月6号,Meta AI发布一篇论文:《Segment Anything》。在论文中,他们提出一个用于图像分割的基础模型,名为SAM(Segment Anything Model)。该模型可以通过用户提示(如点击、画框、掩码、文本等)从图像中分割出特定的对象。除此之外,它可以零样本泛化到新颖的视觉概念和数据分布(通俗来说,就是它可以分割一切图像上的视觉对象,即使这些对象没有在训练集出现过)。这意味着从业者不再需要收集自己的细分数据为用例微调模型了,这种能够泛化到新任务和新领域的灵活性,在图像分割领域尚属首次。
火爆CV圈的SAM是什么?图:Segment Anything对用户提示作出响应

SAM已经学会了关于物体的一般概念,并且它可以为任何图像或视频中的任何物体生成Mask,甚至包括在训练过程中没有遇到过的物体和图像类别。SAM足够通用,可以涵盖广泛的用例,并且可以在新的图像领域上开箱即用,无需额外的训练。 

此外,SAM通过单一模型,既可以使用交互式方法进行图像分割,也可以全自动图像分割。

图解SAM
火爆CV圈的SAM是什么?
首先,这篇论文主要作出三点贡献:
  1. 抛出一个Segment Anything(SA)的项目,在一个统一框架Prompt Encoder内,指定一个点、一个边界框、一句话,直接一键分割出对应物体
  2. 提出一个图像分割的基础模型:SAM(由图像编码器、提示编码器、解码器组成)
  3. 提出一个大规模多样化的图像分割数据集:SA-1B(包含1100万张图片以及10亿个Mask图)
在这项工作中,SA的目标是建立一个图像分割的基础模型(Foundation Models)。换言之,作者团队寻求开发一个可提示的分割模型,并在一个大规模且支持强大泛化能力的数据集上对其进行预训练,然后用提示工程(Prompt Engineering)解决一系列新的数据分布上的下游分割问题。

基础模型是指在广泛的数据上进行大规模训练,并且是适应广泛的下游任务。 

提示工程是指任意表示图像中要分割的信息,如一组前景/背景点、一个粗略的框或者掩码、自由形式的文本等。

那么,要实现上述方案,取决于三个组件:任务、模型、数据。因此,我们可以分为以下三章对SAM进行分析。
怎么样解决ZERO SHOT问题
火爆CV圈的SAM是什么?图:Task,可提示分割
受到NLP领域中Prompt(提示)的启发,作者提出可提示分割任务。该任务的目标是给定任意分割提示,模型返回有效的分割掩码。其中,提示可以是任何指示要分割内容的信息(如点、框,掩码、文本等)。“有效”掩码要求即使提示是模糊的,并且可能指向多个对象,输出也应该是这些对象中的至少一个合理掩码。如下图所示,在手臂上的一个点提示,既可以表示手臂这个对象,也可以表示人这个对象(此要求,类似于期望语言模型对模棱两可的提示输出连贯的响应)。
火爆CV圈的SAM是什么?图:模型对于模糊提示输出至少一个对象的合理掩码
ZERO SHOT模型的设计问题
由于可提示分割任务和现实世界使用的约束,模型的设置需要满足一些要求:
  1. 必须支持灵活的提示
  2. 需要在交互时实时计算掩码
  3. 必须具备歧义识别的能力
为此,设计了Segment Anything Model(SAM),包含一个强大的图像编码器(计算图像嵌入),一个提示编码器(计算提示嵌入),一个轻量级掩码解码器(实时预测掩码)。在使用时,只需要对图像提取一次图像嵌入,可以在不同的提示下重复使用。给定一个图像嵌入,提示编码器和掩码解码器可以在浏览器中在~50毫秒内根据提示预测掩码。
火爆CV圈的SAM是什么?图:SAM结构示意
图像编码器:可以是任意能够编码图像的网络,实际项目中作者使用经过MAE预训练的Transformer(ViT-H)
提示解码器:考虑两组提示:稀疏(点、框、文本)和密集(掩码)。其中点和框通过位置编码来表示;文本通过CLIP的文本编码器来表示;掩码使用卷积来表示
掩码解码器:Transformer Decoder(类似于Maskformer),将图像嵌入、提示嵌入和Token映射到Mask
如何平衡巨量数据的质量/成本问题
提出一个用于图像分割的数据集:SA-1B,它包含1100万张多样化、高分辨率、授权和保护隐私的图像以及11亿个高质量的分割掩码组成。SA-1B的掩码比任何现有的分割数据集多400倍,并且掩码具有高质量和多样化等特点。
图像:从直接与摄像师合作的供应商处获得一组1100万张新图片的授权。原始图像是高分辨率的(平均3300×4950像素),为了存储方便,发布时图像下采样为最短边为1500像素的图像。(发布的图像中人脸和车辆拍照进行模糊处理)
火爆CV圈的SAM是什么?图:图像数据对比
掩码:11亿个高质量掩码,其中99.1%由数据引擎全自动生成
火爆CV圈的SAM是什么?图:掩码数量对比
掩码质量:为了评估掩码质量,作者随机抽取了500张图像(~5万个掩码),要求专业标注员使用像素精确的“画笔”和“橡皮擦”在模型预测掩码的基础上对其进行专业矫正。这一过程,产生成对的模型预测掩码以及人工专业矫正后的掩码。通过计算每对之间的IoU,来评估掩码质量。实现结果发现,94%的对具有大于90%的IoU(97%的对具有大于75%的IoU)
数据引擎:为了对庞大数据的图像进行掩码标注,作者开发了数据引擎。如图所示,它是一个模型、数据的闭环系统。模型标注数据,标注好的数据用来优化模型。循环,迭代优化模型以及数据质量
火爆CV圈的SAM是什么?图:数据引擎(上),数据集(下)
该数据引擎有三个阶段:(1)模型辅助手动标注;(2)半自动标注阶段,混合自动预测的掩码和人工标注掩码;(3)全自动阶段。
(1)模型辅助手动标注阶段
该阶段开始之前,首先使用常见的公开图像分割数据集训练SAM,然后使用SAM为SA-1B数据预测图像掩码(提示为前景/背景点击),由一组专业标注人员在预测掩码的基础上进行掩码细化。
标注人员可以自由地为掩码赋予标签(类别语义没有受限);此外,标注人员需要按照对象的突出程度来标记对象,并且掩码标注超过30秒就要继续处理下一张图像。
在充分的数据标注后,仅使用新标注的掩码对SAM进行重新训练(该阶段总共训练了模型6次)。随着收集到更多的掩码,图像编码器从ViT-B扩展到ViT-H。同时,随着模型的改进。每个掩码的平均标注时间从34秒减少到14秒(比COCO的掩码标注快6.5倍,比2D框标注慢2倍);每个图像的平均掩码数量从20个掩码增加到44个掩码。总的来说,该阶段从12万张图像中收集了4630万个掩码。
(2)半自动阶段
该阶段的目标是增加掩码的多样性,以提供模型分割东西的能力。为了使标注者专注于不太突出的对象,首先SAM自动分割高置信度的掩码(为了检测高置信度掩码,使用通过目标类别在第一阶段掩码上训练了一个目标检测器),然后向标注者展示预填充这些掩码的图像,并要求他们标注任何其他未标注的对象。
该阶段在18万张图像中额外收集590万个掩码(总共1020万个掩码)。与第一阶段一样,定期在新收集的数据集上重新训练模型(5次)。
每个掩码的平均标注时间回到34秒(因为这些目标更具挑战性)。每个图像的平均掩码数量从44个增加到72个。
(3)全自动阶段
这个阶段,标注是全自动的,因为模型有两个主要的增强。首先,在这一阶段的开始,收集了足够多的掩码来大大改进模型;其次,在这一阶段,已经开发了模糊感知模型,它允许在有歧义的情况下预测有效的掩码。具体来说,用32×32的规则网络点来提示网络,并为每个点预测一组可能对应于有效对象的掩码。
在模糊感知模型中,如果一个点位于某个部分或子部分上,模型将返回子部分、局部和整个对象。该模型的IoU模块将选择高置信度的掩码,同时选择稳定掩码(如果阈值化概率图在

原创文章,作者:整数智能,如若转载,请注明出处:https://www.agent-universe.cn/2023/05/8367.html

Like (0)
Previous 2023-05-18 17:28
Next 2023-05-19 18:10

相关推荐