【深度学习】15. Segment Anything Model (SAM) :基于提示的分割新时代

news2025/6/6 12:08:08

Segment Anything Model (SAM) :基于提示的分割新时代

基本介绍

The first foundation model for promptable segmentation.

Segment Anything Model(简称 SAM)是 Meta AI 于 2023 年提出的一种通用型图像分割基础模型。与以往分割模型不同,SAM 是首个支持多种交互提示(prompt)方式进行分割的模型,可以在不训练的前提下实现多种图像分割任务,是典型的 zero-shot promptable segmentation 模型。

模型能力概览

  • 只需简单点击图像、框选区域、画掩码或提供文字提示,即可自动生成目标分割结果;
  • 可对不确定区域生成多个有效掩码;
  • 可对整张图像进行全目标检测和分割;
  • 在对图像嵌入进行预计算后,SAM可以即时为任何提示提供分割掩码,实现与模型的实时交互。
  • 分割速度极快,预计算 embedding 后能实时响应提示

SAM由三个相互连接的组件构建:任务、模型和数据引擎

在这里插入图片描述

  • Task: Promptable Segmentation

    • 在这种情况下,提示符是分割任务,可以是前景/背景点、粗框或蒙版、点击、文本,或者一般情况下,指示图像中要分割的内容的任何信息。该任务也被用作模型的预训练目标。
  • 模型: Segment Anything Model (SAM)

    • 重量级图像编码器输出图像嵌入。
    • 一个轻量级的提示编码器有效地查询图像嵌入。
    • 轻量级掩码解码器生成对象掩码和置信度分数。

SAM 的结构组成

SAM 的结构由三个核心模块构成:

模块名称作用说明
图像编码器使用 ViT 结构对整张图像生成 embedding(图像特征向量)
提示编码器编码前景点、背景点、框、掩码等用户提示信息
掩码解码器综合图像和提示信息,生成分割掩码及其置信度评分

整体流程是:图像 → ViT → 图像 embedding + 提示 embedding → 解码 → 分割掩码

支持的提示类型(Prompt Types)

提示类型示例说明
点提示单点/多点点击指定前景或背景区域
框提示粗略框定区域生成与框中物体一致的掩码
掩码提示传入已有掩码,进一步优化支持迭代式修正
多模态提示(实验)如文本:“segment the dog”未来可能支持文本指令(暂不稳定)

示例:通过点击分割一只猫

假设你上传了一张猫的照片并点击了猫的头部,SAM 的工作如下:

  1. 将整张图像通过 ViT 编码为高维 embedding;
  2. 对点击坐标编码为提示 embedding;
  3. 解码器融合两种信息,生成多个候选掩码;
  4. 输出包含:
    • 最可能的掩码;
    • 多个备选掩码(适用于歧义区域);
    • 每个掩码的置信度(IoU score 估计);

支持多掩码、多粒度分割

SAM 特别支持 ambiguity-aware segmentation,即:

  • 输出多个粒度层级的掩码,如 “整只狗”、“狗的头”、“狗的耳朵”;

    SAM旨在为单个提示预测多个掩码(即3个掩码:整体、部分、子部分)。

  • 对每个掩码预测一个 置信度分数(IoU 估计);

    为了对掩码进行排名,该模型预测每个掩码的置信度分数(即估计的IoU(交集/联合))

  • 训练时仅对损失最小的掩码反向传播,提升鲁棒性。

数据引擎:SA-1B 数据集

为了训练 SAM,Meta 构建了迄今为止最大的分割数据集:

  • 名称:SA-1B(Segment Anything 1 Billion)
  • 数据量:包含 1100 万张图像,11 亿个分割掩码,比任何先前的分割数据集多400倍的掩码
  • 用途:用于训练、评估通用分割模型
  • 开放性:仅限研究使用,开源访问:https://segment-anything.com/dataset

分割任何10亿掩码(SA-1B)数据集是迄今为止最大的标记分割数据集。它是专门为开发和评估高级分割模型而设计的。

数据集将是训练和微调未来通用模型的重要组成部分

实验表现与优势

  • SAM的结果具有开创性的原因之一是,与其他技术(如ViTDet)相比,分割掩码的效果非常好。
  • 在 23 个数据集上进行评测,尤其在 单点 zero-shot 分割 上表现优异;
  • 使用 1 个点提示时,性能已超越传统模型(RITM,SIMPLECLICK,FOCALCLICK)使用多个提示点的效果;
  • 分割边缘细腻、结构自然,是当前最强的基础模型之一。

局限性

虽然 SAM 很强大,但仍存在一些限制:

  • 对复杂结构或细小物体容易漏检或产生错误边界;
  • 在多点交互下可能不如专门的交互式分割模型(如 SimpleClick);
  • SAM在文本到掩码任务上的表现并不完全稳健。
  • SAM的性能预计会被特定于领域的工具超越(例如,ilastik)。
  • SAM是用自监督技术初始化的(即,MAE),它的绝大部分能力来自大规模的监督训练。

总结

SAM 引领了 promptable segmentation 的新范式,具备以下特征:

  • 可迁移性强:一次训练,支持多任务、多场景;
  • 交互式强:支持实时反馈和多种交互方式;
  • 数据基础强大:配合 SA-1B 具备强泛化能力;
  • 未来可拓展至多模态分割、3D 分割、视频分割等更广泛应用。

你现在就可以通过官方 demo 在线体验:

Segment Anything Demo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2398581.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java从入门到精通 - 常用API(一)

常用 API 此笔记参考黑马教程,仅学习使用,如有侵权,联系必删 文章目录 常用 API1. 包代码演示 2. String2.1 String 概述代码演示总结 2.2 String 的常用方法代码演示 2.3 String 使用时的注意事项第一点第二点代码演示 总结题目 2.4 String…

实现Cursor + Pycharm 交互

效果演示: 直接可以在cursor或Pycharm中点击右键点击,然后就可以跳转到另一个应用的对应位置了 使用方法: 分别在两个应用中安装插件【Switch2Cursor Switch2IDEA,这两个插件分别安装在 IDEA 和 Cursor 中】: Switc…

C++标准模板库

C标准库参考: C 标准库-CSDN博客 标准模板库STL C 标准库 和 STL 的关系 1. 严格来说,STL ≠ C 标准库 STL(Standard Template Library) 是 C 标准库的一个子集,主要提供泛型编程相关的组件(如容器、迭代器…

dvwa6——Insecure CAPTCHA

captcha&#xff1a;大概是“我不是机器人”的一个勾选框或者图片验证 LOW: 先输入密码正常修改试一下&#xff08;123&#xff09;&#xff0c;发现报错 查看源码&#xff1a; <?phpif( isset( $_POST[ Change ] ) && ( $_POST[ step ] 1 ) ) {// Hide the C…

【学习笔记】On the Biology of a Large Language Model

On the Biology of a Large Language Model 1 Introduction 目标是对这些模型的内部工作机制进行逆向工程&#xff0c;从而更好地理解它们&#xff0c;并评估它们是否适合特定用途。 正如细胞是生物系统的基本构建单元&#xff0c;我们假设特征是模型内部计算的基本单位。仅仅…

飞腾D2000,麒麟系统V10,docker,ubuntu1804,小白入门喂饭级教程

#下载docker Index of linux/static/stable/ 根据电脑的CPU类型选择&#xff1a; Intel和AMD选x86_64飞腾D2000选aarch64 #选择较新的版本 #在包含下载的docker-XX.X.X.tgz的文件夹中右键->打开终端 # 解压安装包&#xff08;根据实际下载的文件&#xff09; tar -zxvf …

星野录(博客系统)测试报告

目录 一. 项目背景 二、项目功能 三、测试计划 1. 功能测试 1.1 测试用例 1.2 执行测试部分操作截图 2. 使用selenium进行自动化测试 2.1 添加相关依赖 2.2 登录页面测试 3.3 注册页面测试 3.4 博客列表页面测试 3.5 博客详情页测试 3.6 博客编辑页面测试 3.7 个人…

使用 Java 实现一个简单且高效的任务调度框架

目录 一、任务调度系统概述 (一)任务调度的目标 (二)任务调度框架的关键组成 二、任务状态设计 (一)任务状态流转设计 (二)任务表设计(SQL) 三、单机任务调度实现 (一)获取待处理任务 (二)执行任务 代码实现(单线程版本) (三)多线程提高吞吐量 四…

2022—2025年:申博之路及硕士阶段总结

文章目录 1 前景概要2 打造神兵利器2.1 夺天地之精2.2 锻兵魂之形2.3 契人兵之命 3 潜心闭关修炼3.1 第一阶段&#xff1a;苦心智3.2 第二阶段&#xff1a;劳筋骨3.3 第三阶段&#xff1a;摧意志 4 突破晋级4.1 突破失败4.2 聚气凝神4.3 心魔再现4.4 新起点 5 回顾及深思 1 前景…

项目执行中缺乏灵活应对机制,如何增强适应性?

项目执行中缺乏灵活应对机制可以通过建立风险预警机制、培养团队快速响应能力、制定动态调整方案、加强团队沟通协作、引入敏捷管理理念来增强适应性。 其中&#xff0c;培养团队快速响应能力尤为重要。这种能力意味着当项目遇到突发状况时&#xff0c;团队能迅速评估问题、确定…

Agentic Workflow是什么?Agentic Workflow会成为下一个AI风口吗?

无论是想要学习人工智能当做主业营收&#xff0c;还是像我一样作为开发工程师但依然要运用这个颠覆开发的时代宠儿&#xff0c;都有必要了解、学习一下人工智能。 近期发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;入行门槛低&#x…

BUUCTF[极客大挑战 2019]EasySQL 1题解

[极客大挑战 2019]EasySQL题解 分析解题过程漏洞原理分析明确注入点&#xff1a;尝试万能密码法法一法二 总结 分析 从题目分析&#xff0c;这道题应该与SQL注入有关&#xff0c;启动靶机之后&#xff0c;访问url是一个登录界面&#xff0c;随便输入用户名密码之后&#xff0…

大模型 提示模板 设计

大模型 提示模板 设计 论文介绍:LangGPT - 从编程语言视角重构大语言模型结构化可复用提示设计框架 核心问题: 现有提示工程缺乏结构化设计模板,依赖经验优化,学习成本高且复用性低,难以支持提示的迭代更新。 创新思路: 受编程语言的结构化和可复用性启发,提出LangGP…

excel表格记账 : 操作单元格进行加减乘除 | Excel中Evaluate函数

文章目录 引用I 基础求和∑II Excel中Evaluate函数基于字符串表达式进行计算用法案例 :基于Evaluate实现汇率计算利润知识扩展在单元格内的换行选择整列单元格引用 需求: 基于汇率计算利润,调整金额以及进汇率和出汇率自动算出利润,已经统计总利润。 基于Evaluate实现汇率计…

20250602在荣品的PRO-RK3566开发板的Android13下的uboot启动阶段配置BOOTDELAY为10s

20250602在荣品的PRO-RK3566开发板的Android13下的uboot启动阶段配置BOOTDELAY为10s 2025/6/2 18:15 缘起&#xff1a;有些时候&#xff0c;需要在uboot阶段做一些事情。 于是&#xff0c;希望在荣品的PRO-RK3566开发板的Android13下的uboot启动停下。 1、【原始的LOG&#xff…

ssh登录wsl2

1. ssh服务重新安装 Ubuntu20.04子系统自带的ssh服务无法连接&#xff0c;需卸载后重新安装。 sudo apt-get remove openssh-server sudo apt-get install openssh-server2. 修改配置信息 sudo vim /etc/ssh/sshd_config修改内容&#xff1a; # 最好一模一样 Port 33 # 这…

黑马Java面试笔记之 消息中间件篇(Kafka)

一. Kafka保证消息不丢失 Kafka如何保证消息不丢失 使用Kafka在消息的收发过程中都会出现消息丢失&#xff0c;Kafka分别给出了解决方案 生产者发送消息到Brocker丢失消息在Brocker中存储丢失消费者从Brocker接收消息丢失 1.1 生产者发送消息到Brocker丢失 设置异步发送 消息…

PYTHON通过VOSK实现离线听写支持WINDOWSLinux_X86架构

在当今人工智能快速发展的时代&#xff0c;语音识别技术已经成为人机交互的重要方式之一。本文将介绍如何使用Python结合Vosk和PyAudio库实现一个离线语音识别系统&#xff0c;无需依赖网络连接即可完成语音转文字的功能。 技术栈概述 1. Vosk语音识别引擎 Vosk是一个开源的…

neo4j 5.19.0两种基于向量进行相似度查询的方式

介绍 主要讲的是两种相似度查询 一种是创建向量索引&#xff0c;然后直接从索引的所有数据中进行相似度搜索&#xff0c;这种不支持基于自己查询的结果中进行相似度匹配另一种是自己调用向量方法生产相似度进行相似度搜索&#xff0c;这种可以基于自己的查询结果中进行相似度…

华为云Flexus+DeepSeek征文|利用华为云 Flexus 云服务一键部署 Dify 平台开发文本转语音助手全流程实践

目录 前言 1 华为云 Flexus 与 Dify 平台简介 1.1 Flexus&#xff1a;为AI而生的轻量级云服务 1.2 Dify&#xff1a;开源的LLM应用开发平台 2 一键部署Dify平台至Flexus环境 3 构建文本转语音助手应用 3.1 创建ChatFlow类型应用 3.2 配置语音合成API的HTTP请求 3.3 设…