论文阅读笔记: Segment Anything

2024-09-09 07:12

本文主要是介绍论文阅读笔记: Segment Anything,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 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能够无缝集成到数据引擎中。

这篇关于论文阅读笔记: Segment Anything的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1150498

相关文章

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi