论文翻译:Segment Anything

news2024/11/17 9:43:44

论文地址:https://arxiv.org/abs/2304.02643
代码地址:https://github.com/facebookresearch/segment-anything
数据集地址:https://ai.facebook.com/datasets/segment-anything/
在这里插入图片描述

“Segment Anything"项目旨在通过引入新的任务、数据集和模型,使图像分割在计算机视觉领域民主化。该项目包括通用的"Segment Anything Model”(SAM)和最大的分割数据集"Segment Anything 1-Billion mask"(SA-1B)。该模型具有可提示性,并能够在新任务和图像分布上实现零样本迁移。此外,它展现了令人印象深刻的性能,常常超过完全监督的方法。SA-1B数据集可供研究目的使用,而SAM则以Apache 2.0许可证开源。这一举措旨在实现广泛的应用,并鼓励进一步研究计算机视觉基础模型。

任务

在这里插入图片描述

基于提示技术,自然语言处理(NLP)和计算机视觉领域中的基础模型可以实现对新数据集和任务的零样本学习和少样本学习。可提示分割任务旨在根据给定的提示生成有效的分割掩码,提示可以包含空间或文本信息,用于识别对象。

在分割任务中,提示可以是点、框、掩码、文本或任何指示图像中要分割的对象的信息。可提示分割任务要求针对任何给定的提示生成有效的分割掩码。即使提示不明确并且可能指代多个对象,输出结果应该为至少一个对象提供合理的掩码,类似于语言模型对不明确提示的连贯回答。该任务通过提示技术实现了自然的预训练算法,并为零样本迁移至下游分割任务提供了一种通用方法。

可提示分割任务提供了一种自然的预训练算法,对每个训练样本模拟了一系列提示序列,并将模型的掩码预测与真实结果进行比较。这个任务从交互式分割中得到了启发,目标是在提示不明确的情况下预测出有效的掩码。这确保了预训练模型在涉及歧义的使用案例中(例如自动注释)的有效性。

模型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
SAM具有三个组成部分:图像编码器(经过MAE预训练的ViT)、灵活的提示编码器和快速的掩码解码器。

作者考虑了两组用于分割的提示:稀疏提示(点、框、文本)和密集提示(掩码)。点和框使用位置编码与每种提示类型的学习嵌入相结合表示,而自由文本使用来自CLIP的文本编码器。密集提示(如掩码)使用卷积进行嵌入,并与图像嵌入逐元素求和。

掩码解码器将图像和提示嵌入以及输出令牌有效地映射到一个掩码。受以前的研究启发,它使用一个修改后的Transformer解码器块,后跟一个动态掩码预测头。解码器块在两个方向上(提示到图像和图像到提示)使用提示自注意力和交叉注意力来更新所有嵌入。经过两个块后,图像嵌入被上采样,并且MLP将输出令牌映射到一个动态线性分类器,该分类器计算每个图像位置的掩码前景概率。

该模型经过修改,可以预测单个模糊提示的多个输出掩码,其中发现三个掩码输出足以应对大多数常见情况。在训练过程中,使用掩码的最小损失,同时为每个掩码预测一个置信度分数。掩码预测使用焦点损失和Dice损失的线性组合进行监督。通过几何提示的混合和每个掩码11轮的交互设置,训练可提示分割任务,从而实现与数据引擎的无缝集成。

数据引擎

由于互联网上缺乏大量的分割掩码数据,作者构建了一个数据引擎,以收集包含11亿个掩码数据集SA-1B。数据引擎包括三个阶段:

辅助手动阶段。在第一阶段,专业的注释员使用基于浏览器的交互式分割工具(由SAM提供支持)通过点击前景和背景对象点来标记掩码。模型辅助注释实时运行,提供交互式体验。注释员在没有语义约束的情况下标记对象,并优先标记突出的对象。SAM最初在公开的分割数据集上进行训练,并使用新标记的掩码进行重新训练,共进行了六次重新训练迭代。随着SAM的改进,每个掩码的平均注释时间从34秒减少到14秒,每个图像的平均掩码数量从20个增加到44个。在此阶段,从12万张图像中收集了430万个掩码。

在半自动阶段,目的是增加掩码的多样性和提高模型的分割能力。自动检测到有信心的掩码,并将其与预填充的图像一起呈现给注释员,然后注释员标记额外的未标注对象。使用通用的“对象”类别,使用第一阶段的掩码训练了一个边界框检测器。这个阶段从18万张图像中收集了590万个额外的掩码,总共达到1020万个掩码。模型定期使用新收集的数据进行重新训练(5次)。对于更具挑战性的对象,每个掩码的平均注释时间增加到了34秒,每个图像的平均掩码数量从44个增加到72个,包括自动生成的掩码。

在完全自动阶段,由于收集到更多的掩码和开发了具有模糊感知的模型,注释完全自动化。模型通过一个32x32的点网格进行预测,并为有效对象预测一组掩码。使用IoU预测模块选择可信的掩码,并只选择稳定的掩码。对重复的掩码应用非极大值抑制(NMS),并处理重叠的缩放图像裁剪以提高较小的掩码质量。完全自动的掩码生成应用于所有1100万个图像,总共生成了11亿个高质量的掩码。

数据集

在这里插入图片描述
SA-1B是一个数据集,包含了1100万张多样化、高分辨率、经过许可且保护隐私的图像,以及11亿个高质量的分割掩码。这些图像相较于现有的数据集具有更高的分辨率(平均为3300×4950像素,缩小至1500像素),其中人脸和车牌已经进行了模糊处理。99.1%的分割掩码是完全自动地生成的,并且其质量是重点关注的。对于自动预测和专业修正的掩码进行的比较表明,94%的配对具有超过90%的IoU(交并比)。这种高质量的掩码也得到了人工评价的确认。SA-1B中物体中心的空间分布在图像角落方面覆盖范围更广,相较于其他数据集,SA-1B具有更多的图像、掩码和每个图像的掩码数量。它还包含了更高比例的小型和中型相对尺寸的掩码。SA-1B中掩码的形状复杂性与其他数据集大致相似。

性能分析

SA-1B在欧洲、亚洲和大洋洲以及中等收入国家的图像比例较高,但在非洲和低收入国家方面的代表性不足。然而,SA-1B的所有地区至少有2800万个口罩。该数据集在根据被感知性别呈现、被感知年龄组和被感知肤色方面进行了公平性分析。结果表明,在性别和年龄组方面,SAM的表现相似,并且在被感知肤色组方面没有显著差异。然而,在SAM被用作更大系统的组成部分时可能存在偏见,并且在分割服装方面发现了在被感知性别呈现方面的偏见迹象。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

决定AI大模型胜负的关键:解读数据在未来竞争中的角色

随着人工智能的迅猛发展,高质量数据的重要性已愈发明显。以大型语言模型为例,近年来的飞跃式进展在很大程度上依赖于高质量和丰富的训练数据集。相比于GPT-2,GPT-3在模型架构上的改变微乎其微,更大的精力是投入到了收集更大、更高…

声卡设备无法正常工作或初始化的原因和解决方法

先来一个小科普,声卡设备是电脑中负责处理音频信号的硬件部件,它需要与相应的声卡驱动程序配合使用,才能让电脑发出或录制声音。 不过,自带声卡的设备或是自行匹配的声卡设备,也经常出现声卡设备无法正常工作或初始化…

通过Jenkins实现Unity多平台自动打包以及相关问题解决

简介 通过本文可以了解到如何在windows和mac上部署Jenkins。并且通过Jenkins实现Unity在IOS,安卓和PC等多平台自动打包的功能,并且可以将打包结果通过飞书机器人同步到飞书群内。优化工作流,提高团队的开发效率。文末记录了实际使用Jenkins时遇到的各种问…

Leetcode44 通配符匹配

给你一个输入字符串 (s) 和一个字符模式 (p) ,请你实现一个支持 ? 和 * 匹配规则的通配符匹配: ? 可以匹配任何单个字符。 * 可以匹配任意字符序列(包括空字符序列)。 判定匹配成功的充要条件是:字符模式必须能够 完…

真心靠谱 Ubuntu18.04 换源 国内阿里云私服

本篇 blog 真心靠谱 1、备份原来的默认源 cp /etc/apt/sources.list{,.bak} 2、换阿里云的源(需要稍作修改) 直接使用阿里云的会报错 https://developer.aliyun.com/mirror/ubuntu 以上报错:是https证书问题,网上有人说安装证…

基于改进ISODATA算法的负荷场景曲线聚类MATLAB程序

参考文献: 基于机器学习的短期电力负荷预测和负荷曲线聚类研究_张辰睿(硕士论文) 参考其第三章 主要内容: 主要包含四种聚类算法,K-means聚类、ISODATA聚类、L-ISODATA聚类及K-L-ISODATA聚类,并且包含了…

JSch登录sftp时发现需要Kerberos身份验证

本问记录使用JSch登录sftps时遇到的Kerberos验证问题并记录了解决方法 项目场景: 项目开发中使用了SFTP,debug调试程序时发现了每次都需要手动输入 Kerberos的口令信息。这就很奇怪了难道每次连接SFTP时候都需要手动输入吗? 日志如下&#x…

RPC核心原理详解

什么是RPC? RPC的全称是Remote Procedure Call,即远程过程调用。简单解读字面上的意思,远程肯定是指要跨机器而非本机,所以需要用到网络编程才能实现,但是不是只要通过网络通信访问到另一台机器的应用程序&#xff0c…

基于Dubbo分布式学校信息管理系统设计与实现

一、引言 1.1 课题背景 随着时代的发展与进步,计算机网络也随之日益完善,渐渐覆盖了我们生活的各个方面。在信息化和数字化的时代背景下,使用计算机管理学校信息来提升教育工作的质量和效率,是大势所趋,所以近年来,随着网络技术的不断发展,使用信息管理系统的学校越来…

云原生时代数据治理的变革与创新

随着数字化进程的深入,企业对数据的依赖日益加深,数据资源的重要性愈发凸显。如何管好、用好数据,做好数据治理工作,发挥数据资源价值,成为企业提质增效过程中的重要议题。 在本次直播中,我们介绍了数据治…

leetcode:191. 位1的个数

难度:简单 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 1 的个数(也被称为汉明重量)。 提示: 请注意,在某些语言(…

qt 最小文件系统 交叉编译qt源码

busybox qt源码下载后,需要交叉编译,在开发板上生成相应的库,才能在开发板上使用 我用qt制作了一个计时器,有相应的按钮功能。在windows上我大概知道鼠标点击按钮能够触发相应事件。把该程序移植到linux开发板上,开发…

Qt QSqlTableModel详解

背景知识: Qt SQL的API分为不同层: 驱动层 驱动层 对于QT是基于C来实现的框架,该层主要包括QSqlDriver、QSqlDriverCreator、QSqlDriverCreatorbase、QSqlDriverPlugin and QSqlResult。这一层提供了特定数据库和SQL API层之间的底层桥梁…

AutoSAR系列讲解(入门篇)3.2-RTE对Runnables的运行支撑

目录 一、作为运行环境的主要功能点 二、Runnables的触发条件 一、作为运行环境的主要功能点 通过RTE给runnable提供触发事件。 之前说过了runnable是可以被触发的,就是需要通过RTE来实现这个触发和调用runnable,具体在下面讲解 通过RTE给runnable提供…

STM32外设系列—DHT11

文章标题 一、DHT11简介二、数据手册分析2.1 接口说明2.2 串行通信说明2.2.1 单总线通信2.2.2 单总线传输数据位定义2.2.3 时序图 三、DHT11程序设计3.1 初始化GPIO3.2 发送起始信号3.3 接收一个字节数据3.4 接收温湿度信息并校准 四、总结 一、DHT11简介 DHT11是一款常用的数…

Qt生成安卓工程运行闪退分析

提示找不到库 jin目录下库是存在的 提示下列库没有找到 libopencv_java4.so libtiff.so libboost_filesystem.so.1.71.0 libboost_chrono.so.1.71.0 libboost_regex.so.1.71.0 导致无法加载符号 最终导致应用无法启动,而退出 重新编译为静态库,并以静态库方式链…

技术管理第三板斧招聘与解聘-升级汰换

1.开除人“心要慈,刀要快” No Surprise: 不要突然Fire一个人(离职一定不是一个突发行为),没有任何征兆告诉员工 A“你被开除了”,这是典型的管理失职。如果A存在问题,你应该先告知&#xff0…

数据结构--顺序表的基本操作--插入 and 删除

数据结构–顺序表的基本操作–插入 顺序表的插入操作 实现目标 ListInsert(&L,i,e):插入操作。在表L中的第i个位置上插入指定元素e。 typedef struct {int data[MaxSize];int len; }Sqlist;代码实现&#xff1a; #include <stdio.h> #include <stdlib.h> …

前端JavaScript入门-day03

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 1、循环-for 1. for 循环-基本使用 1. for循环语法 2. 退出循环 2. for 循环嵌套 2、数组 1 数组是…

易点易动设备管理平台:为制药厂提升设备管理效率保驾护航

在高度竞争的制药行业中&#xff0c;设备管理对企业的生产效率和产品质量起着至关重要的作用。如何在保证设备安全、高效运行的同时&#xff0c;降低成本和提高设备利用率呢&#xff1f;易点易动设备管理平台为您提供了完美的解决方案。本文将详细阐述易点易动设备管理平台如何…