分割算法FastSAM论文详解

FastSAM 论文详解:方法与实验

论文:Fast Segment Anything (arXiv:2306.12156)
FastSAM提出"先全实例分割、后提示筛选"的两阶段框架,以YOLOv8-seg替代SAM的端到端Transformer,实现68M参数、40ms推理速度(50×加速),且不受提示数量影响。通过原型加权机制高效生成Mask,结合CLIP实现文本提示,虽在小目标分割上略逊于SAM,但显著降低训练成本与部署门槛。该方法验证了专用轻量模型在效率与实用性上的优势。


一、核心思想

FastSAM 的核心洞察是:"Segment Anything" 任务可以解耦为两个顺序阶段 :

复制代码
┌─────────────────────┐      ┌─────────────────────────┐
│  Stage 1: 全实例分割  │  →   │  Stage 2: 提示引导选择   │
│  (All-instance      │      │  (Prompt-guided        │
│   Segmentation)     │      │   Selection)           │
└─────────────────────┘      └─────────────────────────┘

这与 SAM 的端到端思路截然不同:

  • SAM:图像 + Prompt 同时输入 Transformer → 直接输出 Mask
  • FastSAM :先用 CNN 检测器一次性分割出图中所有实例 → 再用 Prompt 做后处理筛选

二、方法详解

2.1 第一阶段:All-instance Segmentation(全实例分割)

基座模型:YOLOv8-seg(带实例分割分支的 YOLOv8)

架构组成:

  • CNN Backbone:提取多尺度特征
  • FPN(Feature Pyramid Network):融合不同尺度特征
  • Detect Branch:输出类别 + 边界框
  • Mask Branch :基于 YOLACT 原理输出实例掩膜

YOLACT 分割机制(关键):

YOLOv8-seg 的分割分支输出两部分:

  1. k 个原型Mask(Prototypes):由 ProtoNet 生成,是图像级别的"基础mask模板"
  2. k 个 Mask 系数(Mask Coefficients):每个检测框对应一组系数,范围在 -1, 1

最终实例 Mask 的计算:

复制代码
Instance Mask = Σ (Mask_Coefficient_i × Prototype_i)

即:用系数对原型做加权线性组合,得到每个实例的最终分割掩膜。

这种设计的优势是计算高效:不需要逐个实例做昂贵的 Mask Head 前向传播,只需一次原型生成 + 系数加权。

2.2 第二阶段:Prompt-guided Selection(提示引导选择)

在获得所有实例 Mask 后,根据用户提示筛选目标:

Prompt 类型 筛选机制
Point(点) 判断点落在哪个 Mask 区域内;支持前景点(保留)+ 背景点(过滤)组合;多个 Mask 可合并
Box(框) 计算 Prompt 框与每个实例检测框的 IoU,选 IoU 最高的
Text(文本) 用 CLIP 提取文本 Embedding;将每个 Mask 区域送入 CLIP 图像编码器提取特征;选相似度最高的

Text Prompt 的特别处理:

  • FastSAM 不需要像 SAM 那样修改训练流程来支持文本
  • 推理时直接用预训练 CLIP 做文本-图像匹配即可
  • 缺点:每个 Mask 区域都要单独过 CLIP,速度较慢

三、与 SAM 的本质区别

维度 SAM FastSAM
架构 ViT Transformer 端到端 CNN 检测器(YOLOv8)两阶段
参数 600M+(ViT-H) 68M
速度 2099ms(Everything 32×32) 40ms (50× 加速)
训练数据 SA-1B 全量(11M 图像) SA-1B 的 2%(约 1/50)
Prompt 处理 与图像一起编码,端到端学习 后处理筛选预生成的实例
Everything 模式 需要密集网格点提示,速度随点数增加 一次性生成所有实例,速度恒定

四、实验结果

4.1 运行效率(核心优势)

在单张 NVIDIA RTX 3090 上:

方法 参数量 1 point 10 points 100 points Everything (32×32)
SAM-H 600M 446ms 464ms 627ms 2099ms
SAM-B 136M 110ms 125ms 230ms 1383ms
FastSAM 68M 40ms 40ms 40ms 40ms

关键发现 :FastSAM 的速度不随 prompt 数量变化,因为它总是先分割所有实例;而 SAM 的速度随 prompt 点数线性增长。

4.2 零样本边缘检测(BSDS500)

  • FastSAM 先输出所有实例的 Mask 概率图
  • 用 Sobel 滤波提取边缘
  • 结果与 SAM 相当,R50 指标甚至略高

4.3 零样本目标提议生成(COCO / LVIS)

COCO Box AR@1000:

方法 AR@1000
SAM-H E64 67.7
FastSAM 63.7
SAM-B E32 59.1

LVIS v1 Bbox AR@1000:

方法 all small med. large
ViTDet-H 65.0 53.2 83.3 91.2
FastSAM 57.1 44.3 77.1 85.3
SAM-H E64 52.1 36.6 75.1 88.2

FastSAM 在 bbox 提议上甚至超过了 SAM-H,这得益于 YOLO 检测器在边界框回归上的优势。

LVIS v1 Mask AR@1000:

方法 all small med. large
SAM-H E64 54.2 39.6 77.9 83.9
FastSAM 49.7 35.6 72.7 77.6

Mask 质量低于 SAM,尤其是小目标。

4.4 零样本实例分割(用 ViTDet 的框做 Prompt)

方法 COCO AP LVIS AP
SAM 46.5 30.8
FastSAM 37.9 23.9

实例分割性能有明显差距,主要因为 Mask 精度不如 SAM。

4.5 实际应用场景

论文展示了多个下游任务:

  • 异常检测(MVTec AD):Everything 模式接近 SAM,Point/Box 模式可精确选中缺陷区域
  • 显著目标分割(ReDWeb-S):与 SAM 接近
  • 建筑物提取(遥感图像):规则形状物体表现好,但阴影区域分割较少
  • 文本提示分割:能根据 "The yellow dog" / "The black dog" 正确选择对应实例

五、优缺点总结

优势

  1. 速度极快:50× 于 SAM,且速度不受 prompt 数量影响
  2. 模型轻量:68M 参数,适合工业部署
  3. 训练成本低:仅用 SA-1B 的 2% 数据训练
  4. 即插即用:基于成熟的 YOLOv8 生态,易于集成

局限(论文坦诚指出)

  1. 小目标 Mask 质量差:Mask AR 在小目标上明显低于 SAM
  2. Mask 置信度不准:置信度来自 YOLO 的 bbox 分数,与 mask 质量关联不强
  3. 小物体 Mask 偏方形:YOLACT 原型组合的固有缺陷
  4. 大物体边界伪影:Mask 可能在 bbox 边界处出现 artifacts
  5. 文本 prompt 慢:每个 mask 要单独过 CLIP 提取特征

六、一句话总结

FastSAM 用"先全分割、后筛选"的两阶段策略替代了 SAM 的端到端 Transformer 方案,用 CNN 检测器(YOLOv8-seg)换来了 50 倍速度提升和 1/10 的模型大小,但在 Mask 精细度(尤其是小目标)上有所妥协。它证明了对于特定任务,引入人类先验(CNN 的局部归纳偏置)设计的专用模型,比通用大模型更具效率优势。

相关推荐
nm_zfyjt27 分钟前
信息流广告投放优化实践:线索成本评估模型与转化链路重构(家装建材案例)
算法·重构·内蒙古朋友圈广告服务商·内蒙古朋友圈获客
w_zero_one2 小时前
算法--构造
java·数据结构·算法
song150265372982 小时前
小型零部件外观检测难?AI机器视觉检测设备,适配全行业小件质检
人工智能·计算机视觉·视觉检测
xsd202411182 小时前
AI 智能美甲推荐系统技术全解析
人工智能·计算机视觉
原子延迟2 小时前
批量压缩视频会变大?HandBrake等3款(2026)
图像处理·人工智能·计算机视觉·音视频
其实防守也摸鱼2 小时前
信创安全竞赛知识总结与题库
大数据·网络·人工智能·算法·安全·php
奥惟斯3 小时前
GEO 上线前,先把这 3 类实体信号地基补上
人工智能·深度学习·机器学习·自然语言处理·数据挖掘·数据分析·知识图谱
小超人诞生日记3 小时前
C++ 智能指针的使用及其原理详解
c++·算法
apple_692658854 小时前
基于 Qwen-Image-2.1 的人物替换 LoRA 模型及部署工作流 人物替换的效果 吊打闭源
人工智能·计算机视觉