【计算机视觉 | 图像分割】Segment Anything论文讲解

news2024/10/6 6:44:52

文章目录

  • 一、前言
  • 二、论文出发点
  • 三、创新思路
  • 四、方法
    • 4.1 Segment Anything Task
    • 4.2 Segment Anything Model
    • 4.3 Segment Anything Data Engine
    • 4.4 Segment Anything Dataset
  • 五、结果

一、前言

在这里插入图片描述
论文:https://arxiv.org/pdf/2304.02643.pdf

项目:https://github.com/facebookresearch/segment-anything

Demo:https://segment-anything.com

本文介绍了Facebook AI Research的Segment Anything (SA) 项目:用于图像分割的新任务、模型和数据集。在数据收集循环中使用该模型,它构建了迄今为止最大的分割数据集,在 1100 万张许可和尊重隐私的图像上有超过 10 亿个掩码。该模型被设计和训练为可提示的,因此它可以将零样本转移到新的图像分布和任务中。

通过评估它在众多任务上的能力,它的零样本性能令人印象深刻——通常与之前完全监督的结果具有竞争力,甚至优于之前的结果。

二、论文出发点

在大规模数据集上预训练的大型语言模型正在通过强大的零样本和少样本泛化彻底改变 NLP。

本文的目标是建立图像分割的基础模型,寻求开发一个可提示的模型,并使用能够实现强大泛化的任务在广泛的数据集上对其进行预训练,用该模型使用提示工程解决新数据分布上的一系列下游分割问题。

该计划的成功取决于三个组成部分:任务、模型和数据。因此,需要解决以下有关图像分割的问题:

  1. 什么任务将实现零样本泛化?
  2. 对应的模型架构是怎样的?
  3. 哪些数据可以为这项任务和模型提供支持?

在这里插入图片描述

三、创新思路

首先定义一个可提示的分割任务,该任务足够通用以提供强大的预训练目标并支持广泛的下游应用程序。它需要一个支持灵活提示的模型,并且可以在提示时实时输出分割掩码,以供交互使用。为了训练模型,需要多样化、大规模的数据源。该模型必须支持灵活的提示,需要分摊实时计算掩码以允许交互式使用,并且必须具有歧义意识。同时,为了实现对新数据分布的强泛化,有必要在大量不同的掩码集上训练 SAM,而不是已经存在的任何分割数据集。

四、方法

4.1 Segment Anything Task

先将提示的概念从 NLP 转化为分割,其中提示可以是一组前景/背景点、粗略的框或遮罩、自由格式的文本,或者一般来说,任何指示要分割的内容的信息一个图像。然后,可提示的分割任务是在给定任何提示的情况下返回有效的分割掩码。“有效”掩码的要求仅仅意味着即使提示不明确并且可能指代多个对象,输出也应该是一个合理的掩码这些对象中的至少一个。此要求类似于期望语言模型对模棱两可的提示输出连贯的响应。选择这个任务是因为它会产生一个自然的预训练算法和一个通过提示将零镜头转移到下游分割任务的通用方法。每列显示 SAM 从单个模糊点提示(绿色圆圈)生成的 3 个有效掩码:

在这里插入图片描述

4.2 Segment Anything Model

SAM 具有三个组件:图像编码器、灵活提示编码器和快速掩码解码器。图像编码器输出一个图像embedding,然后可以通过各种输入提示有效地查询,以分摊的实时速度生成对象掩码。对于对应于多个对象的模糊提示,SAM 可以输出多个有效掩码和相关的置信度分数。同时,SAM使用中使用的focal loss 和dice loss 的线性组合来监督掩码预测,并使用几何提示的混合来训练可提示的分割任务。

在这里插入图片描述

4.3 Segment Anything Data Engine

作者构建了一个数据引擎来收集1.1B 掩码数据集 SA-1B。数据引擎分为三个阶段:

  • 模型辅助手动注释阶段
  • 混合自动预测掩码和模型辅助注释的半自动阶段
  • 全自动阶段,SAM模型在没有注释器输入的情况下生成掩码

4.4 Segment Anything Dataset

本文数据集 SA-1B 包含 1100 万张多样化、高分辨率、许可和隐私保护图像,以及使用数据引擎收集的 1.1B 高质量分割掩码。SA-1B 比现有最大的分割数据集 Open Images 多 11 倍的图像和多 400 倍的掩码,如下图:

在这里插入图片描述

五、结果

作者使用 mIoU 对全套 23 个数据集进行自动评估。我们将每个数据集结果与 RITM 进行了比较。

SAM 在 23 个数据集中的 16 个上产生了更高的结果,高达 ∼47 IoU。下面是一些具体结果的展示~

来自 23 个不同分割数据集的样本用于评估 SAM 的零样本传输能力:

在这里插入图片描述

掩码评估对比:是在 23 个数据集上的掩码评估。

(a) SAM 和最强的单点分割器 RITM 的平均 IoU;

(b) 从 1(最差)到 10(最好)的注释者对每个数据集的掩码质量评级进行比较。所有方法都使用ground truth mask center作为提示;

(c, d) 具有不同点数的 mIoU。其中,SAM 以 1 分显着优于之前的交互式分割器,并且与更多点持平。

在这里插入图片描述

边缘检测任务:随后在BSDS500 上的零镜头进行边缘检测结果可视化,SAM 没有接受过预测边缘图的训练,也没有在训练期间访问 BSDS 图像或注释。

在这里插入图片描述
在BSDS500 上的边缘检测零样本传输对比情况:

在这里插入图片描述
目标检测对比情况:

在这里插入图片描述
实例分割对比情况:

在这里插入图片描述
在这里插入图片描述
可视化:

在这里插入图片描述

数据引擎阶段、图像编码器缩放和训练数据缩放的消融研究的消融实验:

在这里插入图片描述

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

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

相关文章

数据结构(一)—— 数组

文章目录 一、数组基础二、题1. 704 二分查找2. 27 移除元素3. 977 有序数组的平方4. 209 长度最小的子数组 一、数组基础 数组是存放在连续内存空间上的相同类型数据的集合,也就是说数组内存空间的地址是连续的。 因为数组的在内存空间的地址是连续的,…

COIG:首个大规模、可商用的中文开源指令数据!

文 | ZenMoore ChatGPT 出现后的这几个月,整个学界和业界的疯狂想必大家都已经看到了。 然而,在背各种各样的动物还有山海经怪兽的英语单词的时候,其实不妨停下来想一想复现中文 ChatGPT 到底缺什么?缺大模型吗?缺工程…

C++的引用

目录 引用概念 引用的用法 做函数形参 优点一 优点二 引用做返回值 让我们更深入的了解引用与指针 语法层引用与指针完全不同的概念 站在底层的角度看指针与引用 笔记类型文章 引用概念 在语言层面上:引用不是定义新的变量,而是给已存在变量再…

大模型带来的Web复兴,会是昙花一现吗?

大家是不是对GPT、对话式AI、生成式AI之类的话题,已经有点审美疲劳了? 写这篇文章之前,我有点犹豫,究竟还要不要接着讨论GPT了。最终决定写,是觉得个人用户、开发者,以及正在紧锣密鼓训大模型的AI公司和云厂…

Go | 一分钟掌握Go | 1 - 安装Go

作者:Mars酱 声明:本文章由Mars酱原创,部分内容来源于网络,如有疑问请联系本人。 转载:欢迎转载,转载前先请联系我! 为什么学Go 为什么要学Go?网上太多广告和说辞了,什…

“SCSA-T学习导图+”首发:路由技术之OSPF入门

本期引言: 路由技术是网络环境中,为不同的节点传输数据提供传输路径的技术,企业网络的拓扑一般会比较复杂,不同的部门或者总部和分支可能处于不同的网段中,此时就需要使用路由协议来连接不同的网段,实现数…

django channels(websocket)的使用,实现网页间实时聊天

目录 一、创建项目mysite和应用chat 1. 创建项目mysite 2. 创建应用chat并添加应用到settings.py的INSTALLED_APPS中 3. 添加模板文件 4. 添加视图及路由 5.配置根路由指定chat应用的路由 6. 集成channels 二、实现聊天服务器 1. 创建一个新文件chat/templates/chat/r…

响应式开发HTNL5CSS3视频播放器

目录 前言 一、本视频播放器需要实现的功能 ​二、代码分布结构 三、部分主要代码 1.index01.html 2.video1.css 3.video1.js 四、images图片资源及视频 五、运行效果 前言 1.本文讲解的响应式开发技术(HTML5CSS3Bootstrap)的HTML5视频播放器等…

TS-黑马(二)

目录: (1)ts-类型-字面量与nullish类型 (2)ts-类型-泛型 (3)ts-意义 (4)ts-class语法 (1)ts-类型-字面量与nullish类型 我们子啊传递参数的时…

以 100GB SSB 性能测试为例,通过 ByteHouse 云数仓开启你的数据分析之路

动手点关注 干货不迷路 I. 传统数仓的演进:云数仓 近年来,随着数据“爆炸式”的增长,越来越多的数据被产生、收集和存储。而挖掘海量数据中的真实价值,从其中提取商机并洞见未来,则成了现代企业和组织不可忽视的命题。…

总的所有的全部的完全的整个的整体的: all entire full gross whole total

all entire full gross whole total 所有的,完全的,完整的全部的,整个的,整体的,总的 all entire full gross whole total all entire full gross whole total一些词典的解释allentirefullgrosswholetotal 区别辨析entire、whole、complete、full、total、gross与alltotal&…

【JavaWeb】HTMLCSS

一:B/S 软件的结构 二:前端的开发流程 3、网页的组成部分 页面由三部分内容组成! 分别是内容(结构)、表现、行为。 内容(结构),是我们在页面中可以看到的数据。我们称之为内容。一般内容 我们…

【Linux】共享内存(shm)代码实现

文章目录 共享内存介绍最快的IPC形式共享内存示意图共享内存数据结构共享内存函数shmget函数shmfig shmat函数说明: shmdt函数shmctl函数 共享内存的原理小结 共享内存的特点生命周期共享内存的大小共享内存为什么快共享内存没有任何的保护机制即同步互斥扩展内容 代…

《软件开发本质论》读书笔记

目录 第一部分——价值的循环开发取向频繁交付小的,价值大,代价小的特性 测试同时要有业务测试和开发测试开发测试应在代码开发的同时完成甚至先于代码完成 重构第一部分总结 第二部分——说明与论述团队目的自主专精 五卡法预测软件计划控制好自己所参与…

二叉树一定是完全二叉树

一、树的概念及其结构 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 1、树的特点 ①有一个特殊的结点&…

ARM Coresight 及 DS-5 介绍 5 - ARM Cortex-M DS-5 加载 ELF 文件运行

文章目录 1.1.1 DS-5 工程创建1.1.2 DS-5 加载 ELF 脚本创建1.1.3 DS-5 脚本读写 Memory1.1.4 DS-5 扫描脚本 1.1.1 DS-5 工程创建 在使用ARM DS-5 连接 board(或者PFGA)之前首先需要能够扫描到相应的硬件信息,比如对应的cpu的相关信息:coresight 相关组…

【Zblog搭建博客网站】windows环境搭建属于自己的博客并发布上线 - cpolar内网穿透

文章目录 1. 前言2. Z-blog网站搭建2.1 XAMPP环境设置2.2 Z-blog安装2.3 Z-blog网页测试2.4 Cpolar安装和注册 3. 本地网页发布3.1. Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 转载自远程内网穿透的文章:【Zblog建站】搭建属于自己的博客网站&#…

【C++】初始化列表,explicit 关键字,静态成员

初始化列表 构造函数内可以对于成员的赋值,故不能称为是初始化,初始化只能初始化依次,C中类对象的初始化可由初始化列表完成 内置类型成员可以通过设置缺省值实现初始化,但对于const修饰的成员、引用成员、没有默认构造函数的自…

hive解析json

目录 一、背景 二、hive 解析 json 数据函数 1、get_json_object 2、json_tuple 3、使用嵌套子查询(exploderegexp_replacesplitjson_tuple)解析json数组 4、使用 lateral view 解析json数组 一、背景 我们进行ETL(Extract-Transfer-Load) 过程中,经常会遇到从不同数据…

编码拓展:链接库

一.认识链接库 1.1库 计算机中,有些文件专门用于存储可以重复使用的代码块,例如功能实用的函数或者类,我们通常将它们称为库文件,简称“库”(Library)。 以 C 语言为例,如下为大家展示的就是…