Meta提出的SAM是什么?

1,123 阅读2分钟

前些日子,Meta放出了他们在CV领域最新的项目——Segment Anything Project,涉及到了图像分割领域的新任务、模型、数据集。而这三个点,就是对应文章——Segment Anything的三个亮点。

新任务

项目提出的新任务的名字叫做可提示的图像分割任务(the promptable segmentation task),即给定图片和一些提示词——点的位置、方框、mask、文字等等,返回图像分割结果。

具体如下图:

SAM任务

模型

模型需要满足几个条件:

  • 支持灵活的prompt
  • 分割掩码的生成满足交互的实时性
  • 能够处理歧义的情况(同一个位置不同粒度的分割)

分割歧义样例

为了满足上面三个条件,文章提出了如下模型:

  • 一个基于ViT的图像编码器
  • 一个prompt编码器
  • 一个轻量级的掩码解码器

具体结构如下:

SAM模型结构

数据集

文章提出了一个10亿级的图像分割数据集,数据集的生成方法主要是通过模型在环的数据集标注(model-in-the-loop dataset annotation)过程,实现了标注过程从纯人工、半自动到全自动的过程。

数据集的构建过程其实是一个特别有意思的过程,具体可以参考知乎上的回答——如何评价Meta/FAIR 最新工作Segment Anything? - 一堆废纸的回答。这个回答将SAM的数据集构造过程与ChatGPT等大语言模型的RLHF的过程做了类比,引出了Data Centric AI的概念。

效果与不足

模型的效果相当惊艳,这里摘录Segment Anything官网上的一些例子。

多种prompt实时交互.gif

自动分割图片中的所有物体.gif

对于有歧义的prompt生成多个有效掩码.gif

目前主要的不足是生成的掩码不包含标签。

关注算法工程笔记,获取更多内容。