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 的浏览器端演示
使用建议
- 先用
vit_b做流程验证,再按精度需求切换到更大模型; - 自动分割参数(如点采样密度、阈值)对结果影响明显,需按场景调参;
- SAM 只输出掩码,不含类别语义,通常需配合分类模型或人工标注使用;
- 商用前请确认 SA-1B 数据集的研究许可条款。
评论
- 暂无评论,来写第一条吧。