news 2026/9/10 12:16:12

SAM 图像分割快速上手指南:点一个点就能得到对象掩码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SAM 图像分割快速上手指南:点一个点就能得到对象掩码

SAM 图像分割快速上手指南:点一个点就能得到对象掩码

【免费下载链接】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 发布的图像分割基础模型:在图像上点一个位置或框一个区域,它会返回高质量的对象掩码。如果你是想快速上手图像分割的新手、做素材抠图的编辑,或是需要预标注数据的算法工程师,这篇文章会带你跑通安装、首次调用和版本选择。

它的工作原理

SAM 的思路很直接:图像编码器(一个 ViT 视觉 Transformer)先把整张图压缩成一张特征图,相当于提前记住"图里有什么";然后你给出的点、框等提示被提示编码器转成模型能理解的向量,掩码解码器把它和特征图结合,输出几组候选掩码,并给每组附上质量分数。整套流程对应仓库 segment_anything/modeling/ 下的 image encoder、prompt encoder、mask decoder 三个模块。

上图是自动掩码生成器的输出:整条街道被划分成语义清晰的区域,电车、树木、行人彼此分离。值得注意的是,图像编码器每张图只需跑一次,之后连续点多、框多都是即时的,这正是交互演示流畅的原因。该模型在训练中见过 1100 万张图像和 11 亿个掩码,因此可以零训练直接用于新场景。

三步跑通第一个分割结果 🔧

环境要求 Python ≥ 3.8、PyTorch ≥ 1.7,建议按 PyTorch 官方指引安装带 CUDA 支持的两个依赖。安装命令:

pip install git+https://gitcode.com/GitHub_Trending/se/segment-anything.git

或者先克隆再本地安装:

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

接着下载对应的模型权重文件(如 vit_h 版本的 sam_vit_h_4b8939.pth)放到本地。用点提示做一次分割,核心代码只有几行:

from segment_anything import SamPredictor, sam_model_registry import numpy as np from PIL import Image sam = sam_model_registry"vit_h" predictor = SamPredictor(sam) predictor.set_image(Image.open("your_image.jpg").convert("RGB")) masks, scores, _ = predictor.predict( point_coords=np.array([[x, y]]), point_labels=np.array([1]) )

代码里point_labels取 1 表示正点、0 表示负点,实测加几个负点可以把掩码从无关区域推开。预期结果:masks是一组布尔掩码,scores是模型对每个掩码的置信度。在官方示例中,点中车轮会得到下图效果,更多参数组合可参考 notebooks/predictor_example.ipynb。

版本与配置怎么选

三个版本的区别全在骨干网络规模上,输入图像统一会被缩放到 1024×1024:

版本骨干配置(嵌入维度/层数)权重规模取舍
vit_h(默认)1280 / 32约 2.4GB掩码质量最高,算力需求最大
vit_l1024 / 24约 900MB质量与速度的中间档
vit_b768 / 12约 375MB最轻量,适合 CPU 或低配显卡

选择建议:做效果评估或对外演示,直接用默认的vit_h;在 CPU 或显存紧张的环境跑批处理,换成vit_b即可。切换时只需改sam_model_registry里的版本名和 checkpoint 路径,其余代码不变。

它能解决哪些实际问题 🎯

图像编辑里的精确选区。用点或框勾出主体,掩码可直接用于去背景、局部合成或素材替换。官方示例中,人和狗、椅子混在一张图里时,各区域依然被干净地区分开:

数据集预标注。需要批量掩码时不必逐张手点,自动掩码生成器一次输出图中所有对象,且每个掩码附带质量分数,可以直接作为预标注使用:

from segment_anything import SamAutomaticMaskGenerator generator = SamAutomaticMaskGenerator(sam) masks = generator.generate(image)

浏览器端的轻量推理。掩码解码器本身很轻,可以导出为 ONNX 格式(导出脚本见 scripts/export_onnx_model.py)。demo/ 目录里有一个 React 示例,用多线程在浏览器里完成掩码预测,适合不想把图片传到服务端的场景。

想动手的话,最短路径是:克隆仓库、装好依赖、打开示例 notebook 跑一遍。先点出第一个掩码,再按需扩展到自动掩码生成和 ONNX 导出。

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 17:21:43

Signal付费无手机号注册:账号体系与隐私通信的技术解析

最近一条和 Signal 有关的消息值得关注:Signal 正在测试一种“付费创建一个不绑定手机号的账号”的方案。这个消息对普通用户可能只是“注册更方便”,但对从事加密通信、隐私保护、自动化集成、企业合规工作的开发者来说,背后涉及账号体系、身…

作者头像 李华
网站建设 2026/9/4 20:05:59

公共艺术品资产与维护成本管理系统:Spring Boot + Vue 3 实战

最近看到一条挺有意思的新闻话题:“Banksy works cost public almost £150k”。抛开艺术品争议不谈,这件事给技术人员留了一个很现实的思考:公共艺术品一旦进入城市,后续的清洁、修复、安保、保险甚至拆除,都会变…

作者头像 李华
网站建设 2026/9/4 21:00:05

【DeepSeek Harness 基石-Cordis元框架】入门指南与六大核心概念解析

文章目录 1. 项目概述 1.1 什么是 Cordis 1.2 项目状态 1.3 适用场景 1.4 设计哲学 1.5 Deepseek Harness与Cordis的关系 2. 快速开始 2.1 环境要求 2.2 安装 2.3 最简示例 2.4 使用脚手架创建项目 2.5 项目结构 2.6 使用 CLI 启动 3. 核心概念:Context(上下文) 3.1 什么是 …

作者头像 李华
网站建设 2026/9/2 23:45:01

开源原型模板:把产品评审变成可追踪的前端工程流程

这次我们来看一类非常容易被低估的开源项目:面向“产品构建 评审流程”的开源原型模板。它不是一个单一框架,而是一整套把“快速出原型”和“结构化评审”串起来的前端工程模板。产品经理可以拿它快速搭出可点击的交互稿,设计师可以在真实页…

作者头像 李华