AX 爱鲜报

Segment Anything (SAM)

Meta AI 推出的通用图像分割基础模型,可通过点、框等提示生成高质量物体掩码,也能自动分割整图所有物体,附带预训练权重与示例 Notebook。

过去 7 天收获 1 颗 Star

爱鲜报评分

0.0

0 人评分

55k

星数

否

中文

Jupyter Notebook

主语言

是

活跃

17

贡献者

人工分析

EDITORIAL

推荐理由

SAM 是图像分割领域的里程碑式基础模型,零样本能力强、生态成熟,衍生项目极多。仓库提供完整推理代码、三种规模权重和可直接运行的 Jupyter 示例,适合作为视觉分割任务的起点。注意官方已推出面向图像与视频的 SAM 2,新项目建议优先评估 SAM 2。

适用场景

  • 图像物体分割与抠图
  • 标注数据自动生成与预标注
  • 计算机视觉算法原型验证
  • 结合检测框/点提示的交互式分割
  • 下游任务(如分割、编辑、医学影像)微调基座

优点

  • 零样本分割效果强,泛化性好
  • 提供 ViT-B/L/H 三种规模权重,兼顾速度与精度
  • 官方 Notebook 示例清晰,几行代码即可出结果
  • 支持 ONNX 导出,可在浏览器端运行
  • Apache-2.0 许可,社区生态与衍生项目丰富

缺点

  • 模型权重体积大,ViT-H 推理显存与算力要求较高
  • 仅做分割,不直接输出语义类别标签
  • 官方仓库已停止主要迭代,新特性转向 SAM 2
  • 数据集 SA-1B 有独立研究许可,商用需留意条款
上手难度 进阶

Segment Anything(SAM)是什么

SAM 是 Meta AI(FAIR)发布的可提示图像分割基础模型。给定点、框或掩码等提示,它能输出高质量的物体掩码;也可以不提供任何提示,自动生成整张图中所有物体的分割结果。模型在约 1100 万张图像、11 亿个掩码上训练,零样本表现突出。

官方已推出支持图像与视频的 SAM 2,新项目建议优先评估 SAM 2;本仓库仍是理解 SAM 原理与快速上手的重要参考。

核心能力

  • 提示式分割:用点或框指定目标,返回对应掩码
  • 全图自动分割:一次性输出图中所有物体掩码
  • 多规格模型:vit_b、vit_l、vit_h 三种骨干,精度与开销递增
  • ONNX 导出:轻量掩码解码器可导出,在浏览器等 ONNX Runtime 环境运行

快速上手示意

安装依赖(需 Python 3.8+、PyTorch 1.7+、TorchVision 0.8+,建议 CUDA 环境):

pip install git+https://github.com/facebookresearch/segment-anything.git
pip install opencv-python pycocotools matplotlib onnxruntime onnx

下载对应权重后,用提示生成掩码:

from segment_anything import SamPredictor, sam_model_registry

sam = sam_model_registry["vit_h"](checkpoint="sam_vit_h_4b8939.pth")
predictor = SamPredictor(sam)
predictor.set_image(image)
masks, scores, logits = predictor.predict(point_coords=..., point_labels=...)

自动分割整图:

from segment_anything import SamAutomaticMaskGenerator

mask_generator = SamAutomaticMaskGenerator(sam)
masks = mask_generator.generate(image)

命令行批量处理:

python scripts/amg.py --checkpoint sam_vit_h_4b8939.pth --model-type vit_h --input ./images --output ./out

仓库结构

  • segment_anything/:模型与推理核心代码
  • notebooks/:提示分割、自动分割、ONNX 示例
  • scripts/:自动掩码生成与 ONNX 导出脚本
  • demo/:基于 React + ONNX 的浏览器端演示

使用建议

  1. 先用 vit_b 做流程验证,再按精度需求切换到更大模型;
  2. 自动分割参数(如点采样密度、阈值)对结果影响明显,需按场景调参;
  3. SAM 只输出掩码,不含类别语义,通常需配合分类模型或人工标注使用;
  4. 商用前请确认 SA-1B 数据集的研究许可条款。

评论

登录后才可评论与评分

0 条评论

  • 暂无评论,来写第一条吧。