Segment Anything Model (SAM)

news2024/11/25 16:52:17

论文地址:https://arxiv.org/pdf/2304.02643.pdf

项目地址:Segment Anything | Meta AI (segment-anything.com)

SAM贡献:

1.SA任务:提出了提示图像分割任务,在给定任何图像分割提示的情况下返回一个有效的分割掩码(mask),提示内容包括图像空间信息(点、框)或者相关文本信息。

2.SA-1B数据集:采用一种高效的数据收集方法(data engine),建立了到目前为止最大图像分割数据集。数据收集方法包括三个步骤:手工、半自动、全自动。

3.SAM模型:建立和训练一种可用于提示工程的预训练的图像分割基础模型,可在one-shot和few-shot场景应用新分布的图像数据。模型支持灵活的提示,在实时中计算掩码以允许交互使用,并且具有歧义意识。

SA任务:

任务定义:给定任何提示的有效图像分割mask。提示可以是一组前景/背景点,一个粗略的框或蒙版,自由格式的文本,或者更一般来说,任何指示图像中分割内容的信息,(论文中实现的有点、框和文本)。“有效”掩码意味着即使提示是不明确的,也可以生成与该提示相关的多个mask(至少一个),(比如给出鸵鸟眼睛的提示,模型可以给出鸵鸟头、鸵鸟上半部分身体、鸵鸟全身的结果)。

预训练:提示分割任务提出了一种自然的预训练算法,该算法为每个训练样本模拟一系列提示(例如,点、框、掩码),并将模型的掩码预测与基本事实进行比较。

zero-shot 任务迁移:在新的数据集上可以直接使用,不需要进一步的训练。

相关任务:提示图像分割包含很多图像分割任务,比如实例分割、语义分割、全景分割等。

SAM模型:

SAM模型包含三个部分:图像编码器、提示编码器和掩码解码器。框架图如下图所示。

图像编码器:图像编码器每个图像运行一次,可以在提示编码器之前应用。图像编码器采用的是预训练的视觉编码器(ViT)。

提示编码器:提示分为两种,稀疏提示(点、框和文本),密集提示(mask)。对于点和框,通过位置编码进行表示;对于文本,采用CLIP的文本编码器。对于稀疏提示,需要学习他们的嵌入向量。对于mask,通过卷积神经层得到的嵌入和原图像的嵌入进行对应元素点加。

掩码解码器:掩码解码器有效地将图像嵌入、提示嵌入和输出令牌映射到掩码。采用了对Transformer解码器块的修改,然后是动态掩码预测头。改进的解码器块在两个方向上使用提示自注意和交叉注意(提示到图像嵌入,反之亦然)来更新所有嵌入。在运行两个块之后,对图像嵌入进行上采样,MLP将输出标记映射到动态线性分类器,然后该分类器计算每个图像位置的掩码前景概率。

解决模糊(歧义):对于一个输出,如果给出一个模糊的提示,该模型将平均多个有效掩码。为了解决这个问题,进行了模型修改,以预测单个提示符的多个输出掩码。3个掩码输出足以解决大多数常见情况(嵌套掩码通常最多有三个深度:整体,部分和子部分)。在训练期间,只在mask上进行最小损失。为了对掩码进行排序,该模型预测每个掩码的置信度分数(即估计的借据)。

性能:给定预先计算的图像嵌入,提示编码器和掩码解码器在web浏览器中运行,在CPU上,大约50ms。这种运行时性能支持模型的无缝、实时交互式提示。

损失和训练:损失和训练。使用使用的焦损失和骰子损失的线性组合来监督掩模预测。使用几何提示的混合来训练可提示的分割任务。通过在每个掩码中随机抽取11轮提示来模拟交互式设置,从而使SAM无缝地集成到的数据引擎中。

SA-1B数据集:
数据引擎有三个阶段:(1)模型辅助的手动注释阶段,(2)混合了自动预测掩码和模型辅助注释的半自动阶段,以及(3)模型在没有注释器输入的情况下生成掩码的全自动阶段。
模型辅助的手动注释阶段:类似于经典的交互式分割,一个专业的注释者团队使用基于浏览器的交互式分割工具,通过点击前景/背景对象点来标记蒙版。可以使用像素精确的“笔刷”和“橡皮擦”工具来改进蒙版。模型辅助注释直接在浏览器中实时运行(使用预先计算的图像嵌入),从而实现真正的交互式体验。在这一阶段的开始,SAM使用公共分割数据集进行训练。在充分标注数据后,SAM仅使用新标注的掩码进行再训练。随着蒙版收集的增加,图像编码器从ViT-B缩放到ViT-H,其他构建细节也随之演变。
半自动阶段:在这个阶段,作者的目标是增加mask的多样性,以提高模型分割任何东西的能力。为了将注释器集中在不太突出的对象上,首先自动检测自信掩码。然后向注释者展示预先填充了这些蒙版的图像,并要求他们注释任何其他未注释的对象。为了检测自信蒙版,作者们使用通用的“对象”类别在所有第一阶段蒙版上训练了一个边界盒检测器。
全自动阶段:在这一阶段的开始,作者们收集了足够的遮罩来极大地改进模型,包括前一阶段的各种遮罩。其次,在这个阶段,作者们已经开发了模糊感知模型,它允许预测有效的掩码,即使在模糊的情况下。最后,在选择自信和稳定的掩码后,作者们使用非最大抑制(NMS)来过滤重复。为了进一步提高小蒙版的质量,还处理了多个重叠的放大图像裁剪。
数据集不做介绍,详见原论文。
可信AI分析:不做介绍,详见原论文。
zero-shot实验:
(1)执行边缘检测,(2)分割所有内容,即对象建议生成,(3)分割检测到的对象,即实例分割,以及(4)作为概念验证,从自由格式文本中分割对象。

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

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

相关文章

JS/node:Blob、ArrayBuffer和Buffer

前端较少涉及对二进制数据的处理,但即便如此,我们偶尔总能在角落里看见它们的身影,今天我们就来聊一聊JS的二进制家族:Blob、ArrayBuffer和Buffer(Buffer由Node.js提供) 概述 Blob: 前端的一个专门用于支…

el-checkbox设置溢出...隐藏后,选框和文字垂直方向不居中了

解决方式设置vertical-align:middle样式属性 ::v-deep .el-checkbox__label {font-size: 18px;margin-bottom: 5px;width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;vertical-align: middle;//可以实现复选框和文字垂直方向居中}

2023.8.1号论文阅读

文章目录 MCPA: Multi-scale Cross Perceptron Attention Network for 2D Medical Image Segmentation摘要本文方法实验结果 SwinMM: Masked Multi-view with SwinTransformers for 3D Medical Image Segmentation摘要本文方法实验结果 MCPA: Multi-scale Cross Perceptron Att…

Redis 高可用:主从复制、哨兵模式、集群模式

文章目录 一、redis高可用性概述二、主从复制2.1 主从复制2.2 数据同步的方式2.2.1 全量数据同步2.2.2 增量数据同步 2.3 实现原理2.3.1 服务器 RUN ID2.3.2 复制偏移量 offset2.3.3 环形缓冲区 三、哨兵模式3.1 原理3.2 配置3.3 流程3.4 使用3.5 缺点 四、cluster集群4.1 原理…

芯片制造详解.薄膜沉积.学习笔记(六)

这里附上原视频链接,此文章是对于视频的归纳和整理。 如何造出芯片:薄膜沉积|芯片制造详解06 芯片制造详解.薄膜沉积.学习笔记 六 一、由薄膜引出沉积二、沉积的分类2.1 物理沉积(PVD)2.2 化学气相沉积(CVD) 三、沉积的历史3.1 V1.0 常压化学…

无涯教程-Lua - 简介

Lua是一种轻量语言,它的官方版本只包括一个精简的核心和最基本的库。这使得Lua体积小、启动速度快。它用ANSI C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。和许多“大而全”的语言不一样,网络通信…

STM32基础知识学习笔记汇总

笔记后面补充汇集到此 怎么选 初学:海创、杨桃杜洋、江科大、千峰进阶:安福莱、普中过度:韦东山深入:正点、野火其他:金沙滩、自化协、硬石 扩展 库函数操作相当于C,面向对象寄存器操作相当于C &#xff…

【HarmonyOS】键盘遮挡输入框时,实现输入框显示在键盘上方

【关键字】 harmonyOS、键盘遮挡input,键盘高度监听 【写在前面】 在使用API6、API7开发HarmonyOS应用时,常出现页面中需要输入input,但是若input位置在页面下方,在input获取焦点的时候,会出现软键盘挡住input情况&a…

【备战csp-j】 csp常考题型详解(2)

二.计算机网络。 1. TCP/IP 协议共有( )层协议 。 A.3 B.4 C.5 D.6 答案:B 解析: 2.Ipv4 地址是由( ) 位二进制数码表示的。 A.16 B.32 C.24 D.8 答案:B 解析:IP地址是IP协议提供的一种统一的地址格式。在目前使用的IPv…

使用Python创建快速创建剪映草稿轨道,自动生成视频

使用Python创建快速创建剪映草稿轨道,自动生成视频 一、实现原理 实现原理 : JianYingPro 项目文件是 json 的形式存储的,只需要创建draft_content.json,draft_mate_info.json 打开软件后会自动补全。 作用:快速生成草稿,可以完…

jenkins通过sshPut传输文件的时候,报错Permission denied的SftpException

一、背景 使用jenkins的ssh插件传输文件至远程机器的指定目录,php程序打包后,经过zip压缩为oms.zip zip -rq oms.zip ./ -x .git/* -x .env然后我们求md5值 md5sum oms.zip最后执行传输。 09:03:02 Executing command on ssh[116.61.10.149]: mkdir…

深度技术解析:验证码短信API的实现原理与优化策略

引言 验证码短信在现代应用中扮演着至关重要的角色,它是一种简单而高效的安全验证方式,被广泛用于各类应用和场景。验证码短信在现代应用中的起着账号安全保障、交易与支付安全保障等重要作用。 在本文中,本文将围绕验证码短信 API 的基本原…

消息队列中间件 MetaQ/RocketMQ

简介—— 消息队列中间件 MetaQ/RocketMQ 中间件 MetaQ 是一种基于队列模型的消息中间件,MetaQ 据说最早是受 Kafka 的影响开发的,第一版的名字 "metamorphosis",是奥地利作家卡夫卡的名作——《变形记》。RocketMQ 是 MetaQ 的开…

【零基础??天速成 Java】Day1 - 初识 java

目录 前言 1. 第一个 java 程序 2. java 开发的注意事项 3. java 的注释 4. javadoc 标签 5. java 的变量 6. java 的 String 和 基本类型转换 7. java 的输入 8. java 的数组 9. java 的方法 10. java 方法的传参 写在最后: 前言 我的 java 基础学习…

工业机器人:现代制造业的革命力量

随着科技的迅猛发展,工业机器人已经成为现代制造业中不可或缺的一环。工业机器人的发展历经几十年的演进,从最早只能完成重复性、单一性的任务,到如今可以完成复杂多变的工序。工业机器人的应用领域也不断扩大,如汽车制造、电子制…

《零基础入门学习Python》第074讲:GUI的终极选择:Tkinter11

今天我们来讲讲 事件绑定。正如我们此前所提到的,一个 tkinter 的应用程序大部分时间是花费在事件循环中的,也就是通过 mainloop() 方法进入时间循环了,事件可以有各种各样的来源,比如说 用户移动、点击一下鼠标,会产生…

git常用命令速查表

1.git add -u [<路径>]: 把<路径>中所有跟踪&#xff08;tracked&#xff09;文件中被修改过或已删除文件的信息添加到索引库。它不会处理未跟踪&#xff08;untracked&#xff09;的文件。省略<路径>表示&#xff1a;即当前目录。 2.git add -a [<路径&…

BGP属性+选路规则

目录 一&#xff0c;BGP的属性—基础属性 1.PrefVal 2.LocPrf 3、优先本地下一跳 &#xff08;NextHop&#xff09; 4、AS-PATH 5、起源属性 6、MED -多出口鉴别属性 二&#xff0c;BGP选路规则 三&#xff0c;BGP的社团属性 一&#xff0c;BGP的属性—基础…

埃隆马斯克五步工作法丨IDCF

作者&#xff1a;徐磊 文章首发地址&#xff1a;https://smartide.cn/zh/blog/2022-0707-elonmusk-5steps/ 埃隆马斯克在2021年被福布斯杂志评选为世界首富&#xff0c;截至2022年7月他的个人财富为2214亿美金&#xff0c;他同时也是多家公司的CEO&#xff0c;包括&#xff1a…

便利生活,探索上门家政小程序的必备功能与用户体验

上门家政小程序是一种方便用户在线预约家政服务的应用程序。下面将介绍一下开发上门家政小程序时的必备功能&#xff0c;以及这些功能如何提供便利和增加用户体验。   在线预约功能&#xff1a;上门家政小程序提供了在线预约平台&#xff0c;用户可以通过手机随时随地选择需要…