论文阅读笔记: Segment Anything

news2024/11/15 19:46:32

文章目录

  • Segment Anything
    • 摘要
    • 引言
      • 任务
      • 模型
      • 数据引擎
      • 数据集
      • 负责任的人工智能
    • Segment Anything Model
      • 图像编码器
      • 提示编码器
      • mask解码器
      • 解决歧义
      • 损失和训练

Segment Anything

论文地址: https://arxiv.org/abs/2304.02643
代码地址:https://github.com/facebookresearch/segment-anything
项目地址: https://segment-anything.com/

摘要

  • 介绍了Segment Anthing项目: 用于图像分割的新任务、模型和数据集。
  • 构建了迄今为止最大的分割数据集,其中11M张图片包含1Bmask图。
  • SAM的设计和训练具有快速性,因此可以将zero-shot转移到新的图像分布和任务重。

引言

  • 在网络规模上预训练的大语言模型正通过强大的zero-shot和few-shot泛化彻底改变NLP。经验趋势表明,zero-shot和few-shot随着模型训练规模、数据集大小和总计算量的增加而改善。
  • 计算机视觉领域也对基础模型进行了探索,尽管程度很小。尽管在视觉和语言编码器方便取得了很大的进展,但计算机视觉还包含超出此范围的广泛问题,而且对于其中许多问题,并不存在丰富的训练数据。
  • 文章的目标是构建图像分割的基础模型。即希望开发一个可提示的模型,并使用能够实现强大泛化的任务在广泛的数据集上对其进行预训练。
  • 计划的成功取决于三个组成部分: 任务、模型和数据。为了解决它们,解决了以下有关图像分割的问题:
    • 什么任务将实现zero-shot泛化?
    • 对应的model架构是什么?
    • 哪些数据可以为该任务和模型提供支持?
  • 针对上面的问题,首先定义一个提示分割任务,它足够通用,可以提供强大的预训练目标并支持广泛的下游应用程序。该任务需要一个支持灵活提示的模型,并且可以在提示时实时输出分段mask以允许交互使用。

在这里插入图片描述

任务

  • 在NLP和视觉中,基础模型是一个有前景的发展,通常可以通过使用"提示"技术对新数据集和任务执行zero-shot和few-shot。
  • 提出了提示分割任务,其目标是在给任何给定分割提示的情况下返回有效分割mask。
  • 提示可以包括标识对象的空间或文本信息。有效输出mask的要求意味着即便提示不明确并且可能引用多个对象,输出也应该是合理的mask至少其中一个对象。

模型

  • 实时的分割任务和实际使用的目标对模型架构施加了约束。特别是模型必须支持灵活的提示,需要分摊实时计算mask以允许交互使用,并且必须是模糊性感知。
  • 作者发现一个简单的设计满足了所有三个约束: 强大的图像编码器计算图像embedding, 提示编码器嵌入提示,然后将两个信息源组合在预测分割mask的轻量级mask解码器中。此模型成为分段任意模型(SAM)。
  • 通过将SAM分成图像编码器和快速提示编码器/mask解码器,可以通过不同的提示重复使用相同的图像embedding(及其成本分摊)。

数据引擎

  • 为了实现对新数据分布的强泛化,有必要在大量且多样化的mask上训练SAM,超出任何现有的分割数据集。
  • 构建一个"数据引擎", 用于获取数据。数据引擎分为三个阶段: 辅助手动、半自动和全自动。在第一阶段,SAM协助注释者注释mask。第二阶段,SAM可以通过提示可能得对象位置来自动为对象子集生成mask,而注释器则专注于注释其余对象,从而帮助增加mask多样性。最后阶段,用前景点的规则网格提示SAM, 每个图像平均生产约100个高质量掩码。

数据集

最终数据集SA-1B包含来自11M许可和隐私保护的图像超过1B个mask。SA-1B使用数据引擎的最后阶段完全自动收集,其mask比任何现有分割数据集多400x。

负责任的人工智能

SA-1B中的图像跨域了地理和经济上不同的国家,且SAM在不同人群中表现相似。

Segment Anything Model

在这里插入图片描述

SAM具有三个组件: 图像编码器、灵活提示编码器和快速mask解码器。基于Transformer视觉模型构建,并针对实时性能进行了特定权衡。

图像编码器

受可扩展性和强大的预训练方法的推动,SAM使用MAE预训练的ViT最低程度地适应处理高分辨率输入。

提示编码器

考虑两组提示: 稀疏(点、框、文本)和密集(mask)。通过位置编码来表示点和框,并用CLIP中现成的文本编码器为每种提示类型和自由格式文本学习embedding求和。密集提示使用卷积进行嵌入,并与图像嵌入按元素求和。

mask解码器

mask解码器有效地将图像embedding、提示embedding和输出词符映射到mask。此设计采用了Transformer解码器块的修改,后跟动态mask预测头。修改后的解码器块在两个方向上使用实时自注意力和交叉注意力来更新所有embedding。运行两个块后,对图像embedding进行上采样,并且MLP将输出词符映射到动态现行分类器,然后计算每个图像位置的mask前景概率。

解决歧义

对于一个输出,如果给出不确定的提示,模型将对多个有效mask进行平均。为了解决这个问题,修改模型以预测单个提示的多个数超出mask。大多数情况下输出3个mask就足以。子啊训练过程中,仅反向传播mask上的最小损失。为了对mask进行排名,模型预测每个mask的置信度得分(预估的IoU)

损失和训练

使用焦点损失和骰子损失的现行组合来监督mask预测。使用几何提示的混合来训练可提示的分割任务。通过在每个mask的11轮随机采样提示来模拟交互式设置,从而使SAM能够无缝集成到数据引擎中。

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

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

相关文章

C++-----STL简介(了解)

1. 什么是STL STL(standard template libaray-标准模板库):是C标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。 2. STL的版本 原始版本 Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版…

手撕Python之生成器、装饰器、异常

1.生成器 生成器的定义方式&#xff1a;在函数中使用yield yield值&#xff1a;将值返回到调用处 我们需要使用next()进行获取yield的返回值 yield的使用以及生成器函数的返回的接收next() def test():yield 1,2,3ttest() print(t) #<generator object test at 0x01B77…

MATLAB-基于高斯过程回归GPR的数据回归预测

目录 目录 1 介绍 1. 1 高斯过程的基本概念 1.2 核函数&#xff08;协方差函数&#xff09; 1.3 GPR 的优点 1.4. GPR 的局限 2 运行结果 3 核心代码 1 介绍 高斯过程回归&#xff08;Gaussian Process Regression, GPR&#xff09;是一种强大的非参数贝叶斯方法&…

JAVA- 多线程

一&#xff0c;多线程的概念 1.并行与并发 并行&#xff1a;多个任务在同一时刻在cpu 上同时执行并发&#xff1a;多个任务在同一时刻在cpu 上交替执行 2.进程与线程 进程&#xff1a;就是操作系统中正在运行的一个应用程序。所以进程也就是“正在进行的程序”。&#xff0…

Java 数据类型详解:基本数据类型与引用数据类型

在 Java 编程语言中&#xff0c;数据类型主要分为两大类&#xff1a;基本数据类型和引用数据类型。理解这两种类型的区别、使用场景及其转换方式是学习 Java 的基础。本文将深入探讨这两类数据类型的特点&#xff0c;并展示自动类型转换、强制类型转换以及自动拆箱和封箱的使用…

Level3 — PART 3 — 自然语言处理与文本分析

目录 自然语言处理概要 分词与词性标注 N-Gram 分词 分词及词性标注的难点 法则式分词法 全切分 FMM和BMM Bi-direction MM 优缺点 统计式分词法 N-Gram概率模型 HMM概率模型 词性标注(Part-of-Speech Tagging) HMM 文本挖掘概要 信息检索(Information Retr…

AI预测福彩3D采取888=3策略+和值012路或胆码测试9月8日新模型预测第81弹

经过80期的测试&#xff0c;当然有很多彩友也一直在观察我每天发的预测结果&#xff0c;得到了一个非常有价值的信息&#xff0c;那就是9码定位的命中率非常高&#xff0c;70多期一共只错了8次&#xff0c;这给喜欢打私房菜的朋友提供了极高价值的预测结果~当然了&#xff0c;大…

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大&#xff0c;需要补充太多的知识点&#xff0c;教授讲得内容跨越较大&#xff0c;一般一节课的内容是书本上的一章节内容&#xff0c;所以看视频比较吃力&#xff0c;需要先预习课本内容后才能够很好的理解教授讲…

代码日常问题 --day01

1.刚开始我遇到的问题 1.1项目场景&#xff1a; 首先&#xff0c;请确认已经成功创建了一个Maven项目。 接下来&#xff0c;为了验证JDK和Maven配置是否正确&#xff0c;我需要访问项目的设置页面。 操作路径是点击“File”菜单栏选项&#xff0c;然后选择“Settings”。 …

可公开的公开学习分享课

2024.9.8AI分享 1、推荐软件 --智谱清言 2、通义灵码 通义灵码官网 3、沉浸式翻译 &#xff08;看英文文献&#xff09; 沉浸式翻译官网 4、aicheck.cc &#xff08;AI 写论文的工具–形成提纲&#xff09;–不免费 AI 写论文的工具 无法挑战可以复制粘贴 5、aminer.cn&…

Nginx 是如何解决惊群效应的?

什么是惊群效应&#xff1f; 第一次听到的这个名词的时候觉得很是有趣&#xff0c;不知道是个什么意思&#xff0c;总觉得又是奇怪的中文翻译导致的。 复杂的说&#xff08;来源于网络&#xff09;TLDR; 惊群效应&#xff08;thundering herd&#xff09;是指多进程&#xff…

养老院管理系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;护工管理&#xff0c;老人管理&#xff0c;房间管理&#xff0c;公告信息管理&#xff0c;床位管理&#xff0c;健康信息管理 微信端账号功能包括&#xff1a;系统首页&#xf…

【PyTorch】常用网络层layers总结

文章目录 前言一、Convolution Layers二、Pooling Layers三、Padding Layers总结 前言 PyTorch中网络搭建主要是通过调用layers实现的&#xff0c;这篇文章总结了putorch中最常用的几个网络层接口及其参数。 一、Convolution Layers pytorch官方文档介绍了众多卷积层算法&…

017.PL-SQL编程—函数

我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448; 入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448; 虚 拟 环 境 搭 建 &#xff1a;&#x1f449;&…

网上花店管理系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;客服聊天管理&#xff0c;基础数据管理&#xff0c;论坛交流管理&#xff0c;公告信息管理&#xff0c;用户管理&#xff0c;轮播图信息 微信端账号功能包括&#xff1a;系统首…

Shader 渲染路径

实际的游戏开发中&#xff0c;场景中的光源肯定是更多、更复杂的&#xff0c;如果只有一个平行光的处理&#xff0c;完全不能满足需求。处理更多的光源&#xff0c;我们就需要了解Unity底层是如何处理这些光源的。 1、渲染路径是什么 渲染路径&#xff08;Rendering Path&…

51单片机个人学习笔记11(AT24C02-I2C总线)

前言 本篇文章属于STC89C52单片机&#xff08;以下简称单片机&#xff09;的学习笔记&#xff0c;来源于B站教学视频。下面是这位up主的视频链接。本文为个人学习笔记&#xff0c;只能做参考&#xff0c;细节方面建议观看视频&#xff0c;肯定受益匪浅。 [1-1] 课程简介_哔哩…

海外域名有多好用?怎么购买海外域名?Namecheap+虚拟卡购买步骤详解

前言 为什么要用海外域名&#xff1f; 首先&#xff0c;博主要介绍一下为什么要使用海外域名&#xff0c;使用国内的域名不好吗&#xff1f;主要是出于以下几个原因供大家参考&#xff0c;主要是涵盖了品牌保护、市场拓展、灵活性和创新性等多个方面&#xff1a; 1.品牌保护&…

智慧环保解决方案

1. 建设背景与环境问题 随着经济和工业的快速发展&#xff0c;环境问题如污染和资源短缺日益严重&#xff0c;引起了国家层面的高度重视。政策密集出台&#xff0c;旨在加强大气污染防治&#xff0c;推动区域联合防治&#xff0c;实施大气污染物和温室气体的协同控制。 2. 环…

springboot 整合swagger

没有多余废话&#xff0c;就是干 spring-boot 2.7.8 springfox-boot-starter 3.0.0 结构 POM.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/…