当前位置: 首页 > article >正文

【论文阅读】视觉分割新SOTA: Segment Anything(SAM)

导言

随着基于对比文本—图像对的预训练(CLIP)方法或者模型、聊天生成预训练转换器(ChatGPT)、生成预训练转换器-4(GPT-4)等基础大模型的出现,通用人工智能( AGI)的研究得到快速发展。AGI旨在为人工智能系统赋予更强大的执行能力,使其能够自主学习、不断进化,解决各种问题和处理不同的任务,从而在多个领域得到广泛应用。这些基础模型在大规模数据集上进行训练后,能够成功应对多样的下游任务。在这一背景下,Meta公司提出的分割一切模型(segment anything model,SAM)于2023年取得重要突破,在图像分割领域获得了优异的性能,以至于被称为图像分割终结者。

论文简介

论文题目:
Segment Anything

研究领域:
Computer Vision and Pattern Recognition; Artificial Intelligence; Machine Learning

论文作者:
Alexander Kirillov等

论文链接:
https://arxiv.org/abs/2304.02643v1

主要方法

在这里插入图片描述
本文借鉴大型语言模型的思想,提出了一种名为SAM的提示分割模型。该模型在大型数据集上进行预训练,具有较强的泛化能力,可以通过提示工程解决模型在新数据分布上的泛化问题。

模型的输入由两部分组成:一部分是分割提示,包括点、目标框、掩码和文本提示;另一部分是需要进行分割的图像。模型的目标是,根据用户提供的分割提示,生成一个有效的掩码。
此处“有效掩码”是指,即使提示不明确或涉及多个对象,模型的输出也应该是这些对象中一个合理的掩码。
在这里插入图片描述
SAM主要构成:图像编码器、提示编码器和掩码解码器。

1、图像编码器:图像编码器在SAM中的作用是将输入图像映射到特征空间,这一过程主要依赖于预训练好的ViT(vision Transformer)模型,该模型基于 MAE(masked auto encoder)方法进行训练。

2、提示编码器:该部分的任务是将用户输入的提示映射至特征空间,从而得到提示的特征嵌入。这些提示主要分为两类,一类是密集提示(上次迭代中预测的粗略掩码、用户标注的掩码);另一类是离散提示(如点、目标框、文本提示)。其中,密集提示通过卷积层进行处理,而离散提示则通过提示编码器进行处理。

3、掩码解码器:该部分主要有两个功能
1)将图像编码器和提示编码器输出的两个嵌入层进行整合;
2)通过整合后的信息解码出最终有效的掩码。值得注意的是,掩码解码器会根据置信度输出3种掩码,分别是选中物体的整体掩码、部分掩码和子部分掩码。
上图所示,当输入的提示点位于剪刀的刀柄部位时,模型则会输出以下3种掩码:
1)将整把剪刀进行分割;
2)将剪刀的两个刀柄分别进行分割;
3)将选中的这一个刀柄进行分割。
模型将这3种掩码按照各自的置信度大小进行排序输出,以准确地满足用户的需求。

论文针对的问题

在图像分割领域,由于缺乏大规模的数据集来训练一个基础模型,本文通过数据引擎实现了对数据集的构建和对模型的训练。数据引擎的工作流程分为3个阶段,从辅助手动阶段到半自动阶段,最后是完全自动阶段。

1、在辅助手动阶段:数据标注员借助交互标注工具,与SAM一起进行手动标注。这一阶段共收集了430万个掩码和12万幅图像;

2、半自动阶段:本文利用SAM输出的高置信度掩码对图像进行预标注。然后,再对图像中剩余未标注的部分进行交互式标注。这一阶段结束时,每幅图像平均提供了72个掩码;

3、完全自动阶段:进行SAM的最终训练和分割一切SA-1B数据集的获取。最终,SA-1B数据集包含1,100万幅图像和11亿个掩码。其中,99.1%的掩码是自动生成的。
并且数据集完全开放获取(10TB)

论文创新点

1、与 ChatGPT 的启发思想一样,采用 Prompt-based learning 的可提示学习范式,提高学习效率;
2、建立了迄今为止最大的分割数据集 Segment Anything 1-Billion(SA-1B),含 1100 万张图像,超过 10 亿个掩码,比任何现有的分割数据集多400 倍;
3、建立了通用的,全自动的分割模型,零样本灵活转化新任务,新领域,结果甚至优于之前的监督结果。

总结

SAM模型的出现推动了计算机视觉领域对于视觉基础模型的进一步研究,但仍需克服一些关
键技术挑战。未来的工作可以提高SAM的推理速度和精度,特别是在处理大规模数据时,应集中在优化模型结构、推理算法和硬件加速等方面的性能提升。其次,SAM对大量标注数据的依赖成本高昂,限制了其在下游任务上的广泛应用。未来研究可以关注半监督或自监督学习方法,减轻数据标注负担,提高模型泛化能力。


http://www.kler.cn/a/303567.html

相关文章:

  • 领夹麦克风哪个品牌好,手机领夹麦克风哪个牌子好,选购推荐
  • PCA 原理推导
  • Qt 日志文件的滚动写入
  • 【Linux】Linux 权限的理解
  • STM32设计学生宿舍监测控制系统
  • sqlsever 分布式存储查询
  • C语言 | Leetcode C语言题解之第397题整数替换
  • CSS基本布局理解(测试)——WEB开发系列38
  • 静态和动态类型语言
  • Vue入门学习笔记-表单
  • 文本分类场景下微调BERT
  • 【MySQL】敏感数据加密后如何模糊查询?
  • HarmonyOS】ArkTS学习之基于TextTimer的简易计时器的elapsedTime最小时间单位问题
  • Remix 学习 - 路由模块(Route Module)
  • 利用LM-Gaussian增强稀疏视图3D重建:利用大型模型先验实现高质量场景合成
  • ZoneTree: 高性能ACID兼容的.NET有序键值数据库
  • 使用vue2+axios+chart.js画折线图 ,出现 RangeError: Maximum call stack size exceeded 错误
  • 算法提高模板LCA
  • Unity Behavior Designe 可视化有限状态机(Composites篇)
  • Docker和Docker-compose
  • LSS如何创建视锥
  • HAL库学习梳理——UART
  • HarmonyOS NEXT应用开发性能实践总结
  • 太牛了!顺丰丰语大语言模型:已应用于20余个场景
  • 数据结构实验1
  • 电力系统调度控制台的功能有哪些