顶配版SAM:由分割一切迈向感知一切

文章目录

  • 0. 前言
  • 1. 论文地址
    • 1.1 项目&代码
    • 1.2 模型地址
    • 1.3 Demo
  • 2. 模型介绍
    • 2.1 亮点
    • 2.2 方法
  • 3. 量化结果、可视化展示
  • Reference

0. 前言

现有的视觉分割基础模型,如 SAM 及其变体,集中优势在形状、边缘等初级定位感知,或依赖外部模型完成更高级的语义理解任务。然而,迈向更高效的视觉感知则需要在单个模型中实现全面的视觉理解,以助力于更广泛的应用场景,如自动驾驶、安防监控、遥感以及医学图像分析等。

近日,智源研究院视觉团队推出以视觉感知为中心的基础模型 TAP (Tokenize Anything via Prompting), 利用视觉提示同时完成任意区域的分割、识别与描述任务。将基于提示的分割一切基础模型 (SAM) 升级为标记一切基础模型 (TAP),高效地在单一视觉模型中实现对任意区域的空间理解和语义理解。相关的模型、代码均已开源,并提供了 Demo 试用,更多技术细节请参考 TAP 论文。

在这里插入图片描述

1. 论文地址

https://arxiv.org/abs/2312.09128

1.1 项目&代码

https://github.com/baaivision/tokenize-anything

1.2 模型地址

https://huggingface.co/BAAI/tokenize-anything

1.3 Demo

https://huggingface.co/spaces/BAAI/tokenize-anything

2. 模型介绍

2.1 亮点

通用能力:TAP 是一个统一的可提示视觉基础模型,根据视觉提示(点、框、涂鸦)对任意区域内的目标同时进行分割、识别以及描述,最终汇聚成一组可用于综合评估区域内容的输出结果。

通用表征:TAP 将任意区域中的内容表示为紧凑的掩码标记和语义标记,掩码标记负责空间理解,语义标记则负责语义理解。因此,TAP 模型可以替代 SAM,CLIP 作为下游应用的新基础模型。

通用预训练:TAP 利用大量无语义的分割掩码,直接从通用 CLIP 模型中汲取开放世界知识。这种预训练新范式避免了使用与任意数据集相关的有偏差人工标注,缓解了物体在开放语义下的定义冲突与不完备问题。

2.2 方法

在这里插入图片描述

模型架构:为了实现一个统一的模型,TAP 在 SAM 架构的基础上,将掩码解码器升级为通用的图像解码器,同时输出掩码标记与语义标记(图b)。掩码标记负责预测分割掩码,语义标记则用于预测对应的语义标签和文本描述。

数据获取:训练一个多能力的视觉基础模型需要多样化标注的大规模数据集。然而,目前尚无公开的可同时用于分割与区域识别的大规模数据源。SA-1B 构建了 11 亿高质量掩码标注,用于训练分割基础模型,如 SAM。LAION-2B 收集了 20 亿图像-文本对,用于训练图文对齐模型,如 CLIP。

为了解决分割-文本对齐数据缺乏的问题,TAP 引入了 SemanticSA-1B 数据集(图c)。该数据集将来自 LAION-2B 的语义隐式地集成到 SA-1B 的分割数据中。具体而言,TAP 利用在 LAION-2B 数据集上训练的具有 50 亿参数的 EVA-CLIP 模型,预测 SA-1B 中的每一个分割区域在一个概念词汇上的分布。该分布提供信息最大化的语义监督, 避免模型在偏差过大的伪标签上训练。

模型训练:TAP 模型在 256 块寒武纪 MLU370 加速器上进行预训练,并行优化可提示分割与概念预测两个任务。给定一张图片及一个视觉提示,TAP 模型将感兴趣区域表示为一个掩码标记和一个语义标记。基于语义标记,扩展一个 MLP 预测器可实现开放词汇分类任务。同时,扩展一个轻量化的自回归文本解码器即可实现文本生成任务。

3. 量化结果、可视化展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
简单点击或涂鸦图片中感兴趣的目标,TAP 即可自动生成目标区域的分割掩码、类别标签、以及对应的文本描述,实现了一个模型同时完成任意的分割、分类和图像描述。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对于需要全景理解的场景,采用密集网格点作为提示,模型即可对场景内所有的目标进行分割、识别以及描述。

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

Reference

[1] Alexander Kirillov, et al. Segment anything. ICCV, 2023.

[2] Alec Radford, et al. Learning Transferable Visual Models from Natural Language Supervision. ICML, 2021.

[3] Sun, et al. EVA-CLIP: Improved Training Techniques for CLIP at Scale. arXiv:2303.15389, 2023.

[4] Schuhmann, et al. LAION-5B: An Open Large-scale Dataset for Training Next Generation Image-Text Models. arXiv:2210.08402, 2023.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Android】使用android studio查看内置数据库信息

背景 需要用到android db 逻辑存储用户信息等等。 使用 在 App inspection 工具中查看该 app 内的 db 数据 sql执行 在新的查询框内解析查询即可知道当前的数据信息。 官方文档-使用 Database Inspector 调试数据库

【计算机毕业设计】SSM医疗药品采购系统

项目介绍 ssm医疗药品采购系统。主要功能有: 用户管理:管理员列表; 采购管理:采购列表; 药品出库:药品出库; 库存管理:库存统计; 数据维护:药品列表、仓库…

【Unity入门】PlayerPrefs的简介与使用

目录 PlayerPrefs储存位置用例注意事项 PlayerPrefs PlayerPrefs 是Unity内置的一个静态类,可以用于存储一些简单的数据类型:int ,string ,float。 分别对应的函数为: SetInt():保存整型数据GetInt():读取整形数据Se…

MSF(Metasploit Framework)详细教程

一. 简介 Metasploit 是一个开源的渗透测试开源软件,也是一个逐步发展成熟的漏洞研究与渗透测试代码开发平台,此外也将成为支持整个渗透测试过程的安全技术集成开发与应用环境,2009年10月,Metasploit项目被一家渗透测试技术领域的…

GO学习记录

一、Go语言的源文件的拓展是.go 开发环境和工具:GOLAND 个人版开发: 企业版开发: 二、Go语言结构 1、package main 定义一个名为main的包名 2、import "fmt" 添加fmt包 3、func main() 是程序开始执行的函数 4、定义变量&a…

《对话品牌》——活到老“养”到老

本期节目《对话品牌》栏目组邀请到了深圳壹常青健康管理有限公司董事长邬锡娣女士参加栏目录制,分享其企业故事,树立品牌形象,提升品牌价值! 节目嘉宾:邬锡娣女士 节目主持人:董倩 节目播出平台&#xf…

【K8S 二进制部署】部署单Master Kurbernetes集群

目录 一、基本架构和系统初始化 1、集群架构: 2、操作系统初始化配置: 2.1、关闭防火墙和安全机制: 2.2、关闭swap 2.3、根据规划设置主机名 2.4、三台主机全部互相映射 2.5、调整内核参数 3、时间同步(所有节点时间必须同…

iframe展示pdf、png、jpg

iframe展示pdf、png、jpg&#xff1a; 1、前端定义div&#xff1a; <div id"pdf-container"></div>/*dpf的div*/ <iframe id"imageFrame"></iframe>/*图片的div*/2、后端查询base64的流&#xff0c;前端页面初始化js方法&#x…

upset 绘制

好久没有更新,今天来一个upset图的绘制 1.1 安装包 #绘制upset的包现在看来有三个 ## UpSet ### 最基本的upsetR包,使用方便,但是扩展不方便 devtools::install_github("hms-dbmi/UpSetR") ## complex-upset ### UpSet的升级款 支持ggplot2 devtools::install_git…

什么是服务器迁移?

服务器迁移一般来说是将物理服务器从一个地点&#xff08;物理机房&#xff09;移动到另一个地点&#xff0c;或将数据从一台服务器移动到另一台服务器的过程。 机房搬迁&#xff1a;当公司办公场所发生变化&#xff0c;原有机房无法继续使用时&#xff0c;需要将服务器迁移到…

计算机报错x3daudio1_7.dll怎么修复,其实很简单

游戏已经成为了人们休闲娱乐的重要方式之一。然而&#xff0c;有时候我们在玩游戏的过程中会遇到一些错误提示&#xff0c;比如“玩游戏报错x3daudio1_7.dll怎么办”。这个问题可能会导致游戏无法正常运行等问题。x3daudio1_7.dll是DirectX Audio API的一部分&#xff0c;它是D…

腾讯云跨云迁移工具案例实践:阿里云迁移到腾讯云

对于阿里云批量迁移到腾讯云&#xff0c;HyperMotion可以支持批量一键式安装Agent软件&#xff0c;做到了操作步骤简单化、自动化&#xff0c;可以满足常见源端操作系统类型。 例如&#xff1a;Windows 2003-2019&#xff0c;CentOS、RedHat 6.x-7.x、Ubuntu 14.x - 16.x、SUS…

为什么TCP会粘包

硬核图解|tcp为什么会粘包&#xff1f;背后的原因让人暖心 数据包报文格式&#xff08;IP包、TCP报头、UDP报头&#xff09; TCP&#xff0c;Transmission Control Protocol。传输控制协议&#xff0c;是一种面向连接的、可靠的、基于字节流的传输层通信协议。 TCP粘包是指发…

【五】【C语言\动态规划】删除并获得点数、粉刷房子、买卖股票的最佳时机含冷冻期,三道题目深度解析

动态规划 动态规划就像是解决问题的一种策略&#xff0c;它可以帮助我们更高效地找到问题的解决方案。这个策略的核心思想就是将问题分解为一系列的小问题&#xff0c;并将每个小问题的解保存起来。这样&#xff0c;当我们需要解决原始问题的时候&#xff0c;我们就可以直接利…

fork函数详解【Linux】

fork函数详解【Linux】 fork函数的概念fork调用后的底层细节解释fork学习中的一些笔记和问题fork的写实拷贝深拷贝的策略 fork调用失败的原因 fork函数的概念 调用fork函数可以在已存在的进程中创建一个子进程&#xff0c;此时&#xff0c;新进程叫做子进程&#xff0c;原进程叫…

k8s二进制部署--部署高可用

连接上文 notready是因为没有网络&#xff0c;因此无法创建pod k8s的CNI网络插件模式 1.pod内部&#xff0c;容器与容器之间的通信。 在同一个pod中的容器共享资源和网络&#xff0c;使用同一个网络命名空间。 2.同一个node节点之内&#xff0c;不同pod之间的通信。 每个pod都…

element ui Checkbox 多选框组件 lable不支持Object类型的值的问题

浅浅记录一下&#xff0c;遇到这个问题的心理路程吧&#xff0c;首先我遇到的问题是多选框的值回显不打对勾&#xff0c;&#xff08;例如&#xff1a;你新增的时候多选&#xff0c;然后点击编辑的时候选过的值没有被勾选&#xff0c;其实是被勾选上了&#xff0c;但是没有显示…

Linux操作系统——进程(六) 进程地址空间

进程地址空间 C/C程序员一般将我们所写的程序看成如下这种结构&#xff1a; 我们所写的程序通过编译编译之后就可以以这样的方式进行分布. 我们先通过编写一段C语言代码来进行验证&#xff1a; 运行结果&#xff1a; 我们可以看出来上述地址遵循的就是我们上面画的一种结构。…

【附视频解析】Jmeter接口之间关联调用(获取上一个接口的返回值作为下一个接口的请求参数)

正则表达式&#xff1a; 具体如何操作&#xff1a; 1. 草稿保存&#xff0c; 此请求的响应数据的id 为发布总结的请求参数draft_id 2. 草稿保存的响应数据 3.在草稿保存的请求中&#xff0c;添加后置处理器- 正则表达式提取器&#xff0c; 提取响应数据的id信息 4. 发布总结请…

Java 缓存中间件

Java 缓存中间件 关键词&#xff1a;Spring Cache、J2Cache、JetCache 一 、JSR 107 JSR107 中制订了 Java 缓存的规范。 因此&#xff0c;在很多缓存框架、缓存库中&#xff0c;其 API 都参考了 JSR 107 规范。 img Java Caching 定义了 5 个核心接口 CachingProvider - 定义…