Segment Anything 完全使用指南:点一下就能分割图像中的任意对象
2026/8/23 10:30:52 网站建设 项目流程

Segment Anything 完全使用指南:点一下就能分割图像中的任意对象

【免费下载链接】segment-anythingThe repository provides code for running inference with the SegmentAnything Model (SAM), links for downloading the trained model checkpoints, and example notebooks that show how to use the model.项目地址: https://gitcode.com/GitHub_Trending/se/segment-anything

Segment Anything(SAM)是 Meta AI 开源的图像分割模型:输入一个点或一个框,它就输出对应的对象掩码,也可以自动生成整张图的全部对象掩码。它在 1100 万张图像、11 亿个掩码的数据集上训练,零样本即可投入各类分割任务。

模型架构:三个组件如何协作

从上图可以看出,SAM 的推理由三个组件串联完成:

  • 图像编码器:把整张图像编码为图像嵌入,只需计算一次,后续提示可反复复用
  • 提示编码器:把点、框等提示编码成向量
  • 掩码解码器:结合图像嵌入与提示,产出多个候选掩码并给出质量分数

图像编码一次后即可缓存,之后每加一个提示只跑轻量解码器,交互响应快。

SAM 安装步骤

环境要求:Python >= 3.8、PyTorch >= 1.7、TorchVision >= 0.8,建议安装带 CUDA 支持的版本。

git clone https://gitcode.com/GitHub_Trending/se/segment-anything cd segment-anything pip install -e .

如需掩码后处理、COCO 格式保存或运行示例 notebook,再安装可选依赖:pip install opencv-python pycocotools matplotlib onnxruntime onnx。模型权重文件见下文"三个模型版本怎么选"。

从点提示到掩码:最短可用示例

如图所示,SAM 对不同类型的提示都能输出高质量掩码:

  • 点提示:点在对象内部,输出对应对象
  • 框提示:框住目标区域,按框生成掩码
  • 组合提示:点与框可叠加使用,进一步限定范围
from segment_anything import SamPredictor, sam_model_registry sam = sam_model_registry"vit_h" predictor = SamPredictor(sam) predictor.set_image(image) # RGB 图像,嵌入只计算一次 masks, scores, logits = predictor.predict(point_coords=[[x, y]], point_labels=[1])

set_image负责计算图像嵌入,predict可反复调用;单击提示有歧义时默认返回 3 个候选掩码,按scores取最高的即可。把上一次的掩码作为新提示传入,还能迭代细化结果。

自动生成整图掩码

不想逐点提示时,SamAutomaticMaskGenerator会在图上铺开点网格,自动过滤低质量和重复掩码,一次性输出整张图的所有对象;也可用仓库中的 scripts/amg.py 脚本在命令行批量处理图片文件夹。

在浏览器里跑 ONNX 演示

项目的 demo/ 目录提供一个纯前端 React 应用,用 ONNX Runtime Web 运行量化后的掩码解码器:

从上图可以看出,演示完全不依赖服务器:鼠标移动时掩码实时更新;WASM 多线程让预测保持流畅。

三个模型版本怎么选

  • vit_h(默认):backbone 最大,分割质量最好
  • vit_l:中等规模,质量与速度折中
  • vit_b:最小版本,显存或推理资源受限时使用

切换方式:把sam_model_registry传入的型号和对应 checkpoint 文件换掉即可,三个版本的权重均可从官方渠道下载。

适用场景

  • 抠图与图像编辑:需要精确选区的用户点几下就能得到掩码,替代手动套索
  • 数据集构建:批量生成整图掩码(COCO RLE 格式),直接喂给下游模型训练
  • 视觉研究:作为零样本分割基线,省去针对目标数据集重新标注
  • 工业质检:在产线图像中定位目标物或异常区域

写在最后

把"逐像素标注"压缩成几次点击,是 SAM 最实用的地方:装好依赖、下载权重后,几行代码就能拿到第一个掩码。建议先跑通上面的点提示示例,再打开仓库 notebooks/ 目录里的交互式 notebook 动手试试。 🎯

【免费下载链接】segment-anythingThe repository provides code for running inference with the SegmentAnything Model (SAM), links for downloading the trained model checkpoints, and example notebooks that show how to use the model.项目地址: https://gitcode.com/GitHub_Trending/se/segment-anything

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询