【SAM系列01】Segment Anything Model 概述与背景介绍

本文是SAM系列博客的第一篇,主要介绍图像分割领域的发展历程、SAM模型的诞生背景、核心贡献以及其对计算机视觉领域的深远影响。

1. 引言

2023年4月,Meta AI Research发布了Segment Anything Model(SAM),这一模型的问世被认为是计算机视觉领域的一个里程碑事件。SAM首次实现了通用图像分割的能力,能够在零样本(Zero-shot)条件下对任意图像中的任意对象进行分割,彻底改变了图像分割任务的范式。

2. 图像分割领域的发展历程

2.1 传统图像分割方法

在深度学习兴起之前,图像分割主要依赖于传统的计算机视觉方法:

方法类别 代表算法 核心思想
阈值分割 Otsu、自适应阈值 基于像素灰度值的统计特性
边缘检测 Canny、Sobel 基于图像梯度信息
区域生长 种子区域生长 从种子点向外扩展相似像素
聚类方法 K-means、Mean Shift 基于特征空间的像素聚类
图割方法 Graph Cut、GrabCut 将分割建模为能量最小化问题

这些方法虽然在特定场景下有效,但普遍存在以下局限:

  • 对图像质量和光照条件敏感
  • 需要手工设计特征
  • 泛化能力较弱

2.2 深度学习时代的图像分割

深度学习的发展为图像分割带来了革命性的变化:

(1)语义分割(Semantic Segmentation)

语义分割的目标是为图像中的每个像素分配一个类别标签。

  • FCN(2015):首次将全连接层替换为卷积层,实现端到端的像素级预测
  • U-Net(2015):引入编码器-解码器结构和跳跃连接,在医学图像分割中表现优异
  • DeepLab系列(2016-2018):引入空洞卷积(Atrous Convolution)和ASPP模块
  • PSPNet(2017):通过金字塔池化模块捕获多尺度上下文信息

语义分割的损失函数通常采用交叉熵损失:

LCE=−1N∑i=1N∑c=1Cyi,clog⁡(pi,c)\mathcal{L}_{CE} = -\frac{1}{N}\sum_{i=1}^{N}\sum_{c=1}^{C} y_{i,c} \log(p_{i,c})LCE=N1i=1Nc=1Cyi,clog(pi,c)

其中,NNN为像素数量,CCC为类别数,yi,cy_{i,c}yi,c为真实标签,pi,cp_{i,c}pi,c为预测概率。

(2)实例分割(Instance Segmentation)

实例分割不仅需要识别像素的类别,还需要区分同一类别的不同实例。

  • Mask R-CNN(2017):在Faster R-CNN基础上增加mask分支,成为实例分割的标准框架
  • YOLACT(2019):实现实时实例分割
  • SOLOv2(2020):基于位置进行实例分割,无需检测框

Mask R-CNN的多任务损失函数为:

L=Lcls+Lbox+Lmask\mathcal{L} = \mathcal{L}_{cls} + \mathcal{L}_{box} + \mathcal{L}_{mask}L=Lcls+Lbox+Lmask

(3)全景分割(Panoptic Segmentation)

全景分割统一了语义分割和实例分割,需要同时处理"stuff"(如天空、道路)和"things"(如人、车)。

  • Panoptic FPN(2019):基于FPN的全景分割框架
  • MaskFormer(2021):基于Transformer的统一分割框架
  • Mask2Former(2022):引入masked attention,性能进一步提升

2.3 现有方法的局限性

尽管深度学习极大地提升了图像分割的性能,但现有方法仍存在以下问题:

  1. 任务特定性:不同的分割任务(语义/实例/全景)需要不同的模型架构
  2. 类别受限:模型只能分割训练时见过的类别
  3. 标注依赖:需要大量精细的像素级标注,成本高昂
  4. 泛化能力弱:在新领域或新场景下性能下降明显

3. SAM的诞生背景

3.1 基础模型(Foundation Model)的兴起

近年来,基础模型(Foundation Model)的概念在AI领域引起了广泛关注。这一概念最早由斯坦福HAI研究院提出,指的是在大规模数据上预训练的模型,可以适应广泛的下游任务。

在NLP领域,GPT系列、BERT、T5等模型展示了基础模型的强大能力。在计算机视觉领域,CLIP、DALL-E等模型也取得了突破性进展。

基础模型的核心特点:
├── 大规模预训练
│   ├── 海量数据
│   └── 大参数量
├── 强泛化能力
│   ├── 零样本学习
│   └── 少样本学习
└── 多任务适应
    ├── 迁移学习
    └── 提示工程

3.2 Promptable AI的发展

CLIP和GPT的成功证明了**提示(Prompt)**作为与AI模型交互方式的有效性。用户可以通过自然语言或其他形式的提示来引导模型完成特定任务,而无需针对每个任务进行专门训练。

SAM将这一思想引入图像分割领域,设计了一种可提示的分割模型(Promptable Segmentation Model)

3.3 Meta AI的愿景

Meta AI希望为计算机视觉领域创建一个类似于NLP中GPT的基础模型,具备以下特性:

  • 能够分割任意图像中的任意对象
  • 支持多种形式的提示输入
  • 在零样本条件下具有强泛化能力
  • 可作为其他视觉任务的基础组件

4. SAM的核心贡献

4.1 Segment Anything Task

SAM提出了一个新的任务定义——Segment Anything,其核心是设计一个可提示的分割模型。给定任意形式的提示,模型应该返回一个有效的分割掩码。

形式化定义为:给定图像 III 和提示 PPP,模型输出分割掩码 MMM

M=fθ(I,P)M = f_\theta(I, P)M=fθ(I,P)

支持的提示类型包括:

  • 点提示(Point):前景点或背景点
  • 框提示(Box):边界框
  • 粗糙掩码(Mask):粗略的分割区域
  • 文本提示(Text):自然语言描述(实验性支持)

4.2 模型架构

SAM采用了简洁而有效的架构设计,包含三个核心组件:

输入图像

Image Encoder

图像嵌入

提示

Prompt Encoder

提示嵌入

Mask Decoder

分割掩码

  • Image Encoder:基于MAE预训练的ViT,提取图像特征
  • Prompt Encoder:将不同类型的提示编码为向量
  • Mask Decoder:基于Transformer的轻量级解码器,生成分割掩码

4.3 SA-1B数据集

SAM的成功离不开其构建的大规模数据集SA-1B(Segment Anything 1 Billion):

统计项 数量
图像数量 1100万
掩码数量 11亿
平均每张图像掩码数 ~100个
数据收集方式 人机协同标注

SA-1B是目前最大的分割数据集,比之前最大的开源分割数据集大400倍。

4.4 数据引擎(Data Engine)

为了高效构建SA-1B数据集,Meta设计了创新的数据引擎,包含三个阶段:

  1. 辅助手动阶段(Assisted-Manual):人工标注,SAM辅助
  2. 半自动阶段(Semi-Automatic):SAM自动分割显著对象,人工标注剩余对象
  3. 全自动阶段(Fully-Automatic):SAM在规则网格点上自动生成掩码

全自动阶段

网格点采样

SAM自动分割

NMS后处理

半自动阶段

SAM自动检测

显著对象掩码

人工标注

额外对象

辅助手动阶段

专业标注员

SAM辅助预测

人工修正

5. SAM的技术创新点

5.1 灵活的提示机制

SAM的提示机制使其能够适应各种交互方式:

点提示的歧义处理:单个点可能对应多个有效的分割结果(如点击人的眼睛,可能指眼睛、脸部或整个人)。SAM通过输出多个掩码来处理这种歧义:

{M1,M2,M3}=fθ(I,p)\{M_1, M_2, M_3\} = f_\theta(I, p){M1,M2,M3}=fθ(I,p)

每个掩码对应不同的分割粒度(部分、子对象、整体对象)。

5.2 高效的架构设计

SAM的设计理念是一次编码,多次查询

  • Image Encoder只需运行一次(计算密集)
  • Prompt Encoder和Mask Decoder可以快速运行(轻量级)

这使得SAM支持实时、交互式的分割:

Image Encoder: O(H×W×C)\text{Image Encoder: } O(H \times W \times C)Image Encoder: O(H×W×C)
Mask Decoder: O(Ntokens)\text{Mask Decoder: } O(N_{tokens})Mask Decoder: O(Ntokens)

5.3 零样本迁移能力

SAM展示了强大的零样本迁移能力,能够直接应用于:

  • 从未见过的图像领域(如医学图像、卫星图像)
  • 新的对象类别
  • 不同的数据分布

6. SAM的应用场景

6.1 交互式图像编辑

SAM可以作为图像编辑工具的核心组件,支持用户通过点击或框选快速选中目标对象。

6.2 自动标注工具

利用SAM的自动分割能力,可以大大加速数据标注流程,降低标注成本。

6.3 下游任务基础

SAM可以作为其他视觉任务的基础组件:

  • 目标检测
  • 图像修复
  • 视频对象追踪
  • 3D重建

6.4 特定领域应用

  • 医学影像:器官分割、病变检测
  • 遥感图像:建筑物提取、土地利用分类
  • 自动驾驶:道路场景理解
  • 工业检测:缺陷检测与分割

7. SAM的局限性

尽管SAM表现出色,但仍存在一些局限:

  1. 细节分割精度:在处理精细边界时,分割结果可能不够精确
  2. 语义理解能力:SAM本质上是类别无关的,缺乏语义理解能力
  3. 小目标分割:对于图像中的小目标,分割效果可能不理想
  4. 计算资源需求:Image Encoder基于ViT-H,需要较大的计算资源
  5. 视频分割:SAM针对单帧图像设计,不能直接处理视频中的时序信息

8. 总结与展望

SAM的发布标志着图像分割领域进入了基础模型时代。其核心贡献包括:

  • 提出了Segment Anything任务和可提示的分割范式
  • 设计了高效的模型架构
  • 构建了大规模的SA-1B数据集
  • 展示了强大的零样本迁移能力

SAM的成功也激发了后续研究,包括:

  • SAM的效率优化:如FastSAM、MobileSAM等
  • SAM的能力扩展:如Grounded SAM(结合语义理解)
  • SAM的领域适应:针对医学、遥感等特定领域的微调
  • SAM2:Meta发布的视频分割版本,支持时序信息建模

在下一篇文章中,我们将深入分析SAM的模型架构,详细讲解Image Encoder、Prompt Encoder和Mask Decoder的设计细节。


参考文献

  1. Kirillov, A., et al. “Segment Anything.” ICCV 2023.
  2. Long, J., et al. “Fully Convolutional Networks for Semantic Segmentation.” CVPR 2015.
  3. Ronneberger, O., et al. “U-Net: Convolutional Networks for Biomedical Image Segmentation.” MICCAI 2015.
  4. He, K., et al. “Mask R-CNN.” ICCV 2017.
  5. Chen, L. C., et al. “DeepLab: Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs.” TPAMI 2017.
  6. Cheng, B., et al. “Masked-attention Mask Transformer for Universal Image Segmentation.” CVPR 2022.

下一篇:【SAM系列02】SAM模型架构详解——深入理解Image Encoder、Prompt Encoder与Mask Decoder

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐