Segment Anything论文阅读笔记
Segment Anything论文阅读笔记
- 1. Segment Anything论文基本信息
- 2. Segment Anything论文阅读
- 2.1 第一遍阅读 Segment Anything
- 2.2. 第二遍阅读 Segment Anything
- 2.2.1. Segment Anything中相关的图表
1. Segment Anything论文基本信息
论文地址 | https://arxiv.org/abs/2304.02643 |
---|---|
项目地址 | https://github.com/facebookresearch/segment-anything |
Demo 与数据集SA-1B地址 | https://segment-anything.com/ |
论文作者 | Alexander Kirillov1;2;4 Eric Mintun2 Nikhila Ravi1;2 Hanzi Mao2 Chloe Rolland3 Laura Gustafson3Tete Xiao3 Spencer Whitehead Alexander C. Berg Wan-Yen Lo Piotr Dollar ´ 4 Ross Girshick4 |
作者单位 | Meta AI Research, FAIR |
2. Segment Anything论文阅读
使用三遍阅读法阅读该论文
2.1 第一遍阅读 Segment Anything
标题:Segment Anything
摘要:我们引入“分割任何事物”项目,一个新的任务、模型和图像分割数据集。在数据收集中循环使用我们的高效模型,我们建立了迄今为止(到目前为止)最大的分割数据集,在1100万张许受可和尊重隐私的图像上拥有超过10亿个掩模。该模型被设计和训练为可提示的,因此它可以将零拍摄转移到新的图像分布和任务。我们评估了它在许多任务中的能力,发现它的零射击性能令人印象深刻-通常可相竞争甚至优于与之前的完全监督结果。我们在https://segment-anything.com上发布了包含1B个掩模和11M张图像的任意图像分割模型(SAM)和相应的数据集(SA-1B),以促进对计算机视觉基础模型的研究。
介绍:在这项工作中,我们的目标是建立一个图像分割的基础模型。也就是说,我们寻求开发一个提示模型,并使用一个能够实现强大泛化的任务在广泛的数据集上对其进行预训练。解决以下三个图像分割问题:
- 什么任务支持零概率泛化?
- 相应的模型结构是怎样的?
- 哪些数据可以为这项任务和模型提供动力?
总结:“任意分割”项目是将图像分割提升到基础模型时代的一次尝试。
我们的主要贡献是一个新的任务(提示分割),模型(SAM)和数据集(SA-1B),使这一飞跃成为可能。
章节标题
摘要
- 简介
- 分割任意事物任务
- 分割任意事物模型
- 分割任意事物数据引擎
- 分割任意事物数据集
- 分割任意事物(RAI)负责任的AI分析
- 零样本迁移实验
- 讨论
参考
附录
A. 分割任意事物模型和任务细节
B. 自动生成掩码细节
C. RAI其他详细信息
D. 实验实现细节
E. 人类学习实验设计
F. 数据集、标注与模型卡
G. 标注指导原则
2.2. 第二遍阅读 Segment Anything
1.仔细看论文中的数字、图表和其他插图。要特别注意图表。坐标轴的标记是否正确?结果是否以误差条显示,以便结论具有统计显著性?像这样的常见错误会将匆忙、粗制滥造的作品与真正优秀的作品区分开来。
2.记住标记相关的未读参考文献以供进一步阅读(这是了解论文背景的好方法)。
第二遍阅读最多需要一个小时。通过这一关后,你应该能够掌握论文的内容。你应该能够向别人总结论文的主旨,并提供支持证据。这种程度的细节适合于你感兴趣的论文,但不属于你的研究专业。
有时你甚至在第二遍结束时也看不懂一篇论文。这可能是因为这个主题对你来说是新的,有不熟悉的术语和缩写。或者作者可能会使用你不理解的证明或实验技术,因此论文的大部分内容都是不可理解的。论文可能写得很差,有未经证实的断言和大量的参考文献。也有可能是深夜你太累了。你现在可以选择:(a)把论文放在一边,希望你不需要理解这些材料就能在你的职业生涯中取得成功,(b)稍后再回到论文中,也许在阅读背景材料之后,或者©坚持下去,继续第三遍。
2.2.1. Segment Anything中相关的图表
图1列出了本文提到的项目涉及到的三个组成部分,分别是:任务、模型和数据。
其中任务指的是基于提示的分割,如图1中的(a)所示,提示可以是 点、框、Mask或者自由文本,输入图像,输出有效的mask。
模型是指可以分割任意事物的模型,如图1中的(b)所示,该模分割模型(SAM),支持数据注释,并通过提示工程实现零概率转移到一系列任务中。
数据,包含两个方面数据引擎和数据,如图1中的(c)所示,上半部分是数据引擎,通过数据训练模型,通过模型标注数据,循环进行。下半部分是包含十亿mask的数据集SA-1B。
SA-1B含义是SagmentAnything 1B。
图2, 来自我们新引入的数据集SA-1B的带有叠加Mask的示例图像。SA-1B包含11M不同的、高分辨率的、许可的和隐私保护的图像和1.1B高质量的分割Mask。这些Mask是由SAM完全自动标注的,正如我们通过人工评分和大量实验验证的那样,它们具有高质量和多样性。我们根据每个图像的掩模数量对图像进行分组以实现可视化(平均每个图像有~ 100个掩模)。
图3. 每一列展示了3个由SAM通过一个混淆的提示点(绿色圆圈)生成的有效掩码。
图4. SAM概览。重量级图像编码器输出图像嵌入,然后可以通过各种输入提示有效地查询,以平摊实时速度生成对象掩码。对于对应于多个对象的模糊提示,SAM可以输出多个有效掩码和相关的置信度分数。
右侧的预测从上到下依次嵌套掩模通常最多有三层深度:整体、部分和子部分。图3由上到下也是按照整体、部分和子部分这样排列的。
关于模型的细节说明可以看附录中的部分“A. 分割任意事物模型和任务细节
”。
图5 图像大小归一Mask版中心分布。图像归一化后的Mask中心分布图反应了目标在图像中的位置分布,Open Images和COCO数据集分布集中在中心点,ADE20K和SA-1B分布的范围更普遍。通过数据集的对比可以得到使用ADE20K和SA-1B数据集训练的模型泛化性能会更好。
图6. 数据集Mask属性。图例引用了每个数据集中的图像和掩码的数量。注意到,SA-1B比现有最大的分割数据集Open images[60]多11倍的图像和400倍的掩码。
上图对比了几个数据集的属性,在每张图mask个数属性上SA-1B数据集Mask个数较多,在mask相对尺寸属性上五个书籍及相似,在图像凹度属性上五个数据集相似。
图7. SA-1B图像的估计地理分布。世界上大多数国家都有超过1000张图片SA-1B,图片最多的三个国家来自世界各地。
改图说明了图像数据的地理来源分布。
相关文章:

Segment Anything论文阅读笔记
Segment Anything论文阅读笔记 1. Segment Anything论文基本信息2. Segment Anything论文阅读2.1 第一遍阅读 Segment Anything2.2. 第二遍阅读 Segment Anything2.2.1. Segment Anything中相关的图表 1. Segment Anything论文基本信息 论文地址https://arxiv.org/abs/2304.02…...
Python入门教程 | Python 基础语法
标识符 第一个字符必须是字母表中字母或下划线 _ 。标识符的其他的部分由字母、数字和下划线组成。标识符对大小写敏感。 在 Python 3中,可以用中文作为变量名,非 ASCII 标识符也是允许的了。默认情况下,Python 3 源码文件以 UTF-8 编码&am…...

JAMstack架构:快速构建安全、高性能的现代应用
随着Web应用的快速发展,开发者们在寻找更加高效、安全和可维护的应用架构。JAMstack架构应运而生,它通过将前端、后端和部署过程分离,提供了一种现代化的方式来构建Web应用。在本文中,我们将深入探讨JAMstack架构的特点、优势以及…...

Web会话技术
会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束。在一次会话中可以包含多次请求和响应 会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,…...

hbuilderx打包苹果证书获取步骤
简介: 目前app开发,很多企业都用H5框架来开发,而uniapp又是这些h5框架里面最成熟的,因此hbuilderx就成为了开发者的首选。然而,打包APP是需要证书的,那么这个证书又是如何获得呢? 生成苹果证书相对复杂一些…...
JAVA下载Excel文件之后无法打开,提示损坏
resources 目录下放模板 excel 文件,通过接口下载后,可以正常下载,但打不开。 问题: springboot 项目简单的下载excel 模板功能,模板放在resources/template/目录中 public void downloadItemBatch(HttpServletRespo…...

复合 类型
字符串和切片 切片 切片的作用是允许你引用集合中部分连续的元素序列,而不是引用整个集合。 例如: let s String::from("hello world");let hello &s[0..5]; // 切片 [0,5) 等效于&s[..5] let world &s[6..11]; // 切片…...

Practices11|41. 缺失的第一个正数(数组)、73. 矩阵置零(矩阵)
41. 缺失的第一个正数(数组) 1.题目: 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1: 输入:nums [1,2,0] 输出…...

深入完整的带你了解java对象的比较
目录 元素的比较 1.基本类型的比较 2.对象比较的问题 1.运行结果 2.疑问 3.原因 对象的比较 1.覆写基类的equals 2.基于Comparble接口类的比较 3.基于比较器比较 4.三种方式对比 元素的比较 1.基本类型的比较 在Java 中,基本类型的对象可以直接比较大…...
ubuntu20.04升级GLIBC高版本方法,解决:version `GLIBC_2.34‘ not found
检查版本 strings /lib/x86_64-linux-gnu/libc.so.6 |grep GLIBC_ 1 显示结果 GLIBC_2.2.5 GLIBC_2.2.6 GLIBC_2.3 GLIBC_2.3.2 GLIBC_2.3.3 GLIBC_2.3.4 GLIBC_2.4 GLIBC_2.5 GLIBC_2.6 GLIBC_2.7 GLIBC_2.8 GLIBC_2.9 GLIBC_2.10 GLIBC_2.11 GLIBC_2.12 GLIBC_2.13 GLIBC_2…...

日产将使用东风纯电平台?官方回应:不是日产品牌
据财联社报道,日产中国在对于“日产将使用东风纯电平台”的传闻进行回应时指出,文中提及的平台将会用于日产在华合资企业的自主品牌,而不是日产品牌本身。这一消息进一步确认了之前每经网的报道,称日产将采用东风汽车最新发布的“…...

cdh6.3.2 Flink On Yarn taskmanager任务分配倾斜问题的解决办法
业务场景: Flink On Yarn任务启动 组件版本: CDH:6.3.2 Flink:1.13.2 Hadoop:3.0.0 问题描述: 在使用FLink on Yarn调度过程中,发现taskmanager总是分配在集中的几个节点上,集群…...

改进YOLO系列:3.添加SOCA注意力机制
添加SOCA注意力机制 1. SOCA注意力机制论文2. SOCA注意力机制原理3. SOCA注意力机制的配置3.1common.py配置3.2yolo.py配置3.3yaml文件配置1. SOCA注意力机制论文 暂未找到 2. SOCA注意力机制原理 3. SOCA注意力机制的配置 3.1common.py配置 ./models/common.p…...

SpringBoot整合Mybatis Plus——条件构造器Wrapper
Mybatis Plus为我们提供了如下的一些条件构造器,我们可以利用它们实现查询条件、删除条件、更新条件的构造。 条件构造器 | MyBatis-Plus (baomidou.com) 一、通过maven坐标引入依赖(注意版本!!) <dependency>…...

while循环语句
# while循环 # 通过while循环,计算1到100的总和 num 1 sum 0 while num < 100:sum num sumnum 1 print(f"1到100的和为{sum}") #嵌套语句--实现猜1-10数字游戏 import random flagTrue numrandom.randint(1,10) while flag:guess_numint(input(&q…...
【ARM 嵌入式 编译系列 11 -- GCC __attribute__((packed))详细介绍】
文章目录 __attribute__((packed)) 介绍上篇文章:ARM 嵌入式 编译系列 10.3 – GNU elfutils 工具小结 下篇文章:ARM 嵌入式 编译系列 11.1 – GCC attribute((aligned(x)))详细介绍 attribute((packed)) 介绍 __attribute__((packed)) 是 GCC 编译器的一个特性,它可以…...
Pytorch-day06-复杂模型构建-checkpoint
1、PyTorch 复杂模型构建 1、模型截图2、模型部件实现3、模型组装 2、模型定义 2.1、Sequential 1、当模型的前向计算为简单串联各个层的计算时, Sequential 类可以通过更加简单的方式定义模型。2、可以接收一个子模块的有序字典(OrderedDict) 或者一系列子模块…...

windows电脑系统自带的画图工具如何实现自由拼图
1.首先选中你要拼接的第一张图片,右键选着编辑,会自动打开自带的画图工具 然后就是打开第一张图片,如下图所示 接着就是将画布托大,如下图所示。 然后点击选择,选择下面的空白区域,选着区域的范围要比准备拼…...

直线模组的运行注意事项
直线模组是属于高精密的传动元件,大家都知道,安装不当,直线模组就无法显示其高精度的优势,不仅如此,使用不当也会磨损直线模,针对直线模组的使用安全性事宜,我们切记严苛遵照有关的安全操作规程…...

记录每日LeetCode 2236. 判断根结点是否等于子结点之和 Java实现
题目描述: 给你一个 二叉树 的根结点 root,该二叉树由恰好 3 个结点组成:根结点、左子结点和右子结点。 如果根结点值等于两个子结点值之和,返回 true ,否则返回 false 。 初始代码: /*** Definition f…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...

visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...

GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...

HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...

STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...