fast segment anything

news2024/12/27 17:42:30

[论文解读]比sam快50倍的通用视觉模型fastsam(Fast Segment Anything) - 知乎MetaAI提出的能够“分割一切”的视觉基础大模型SAM提供了很好的分割效果,为探索视觉大模型提供了一个新的方向。 虽然sam的效果很好,但由于sam的backbone使用了vit,导致推理时显存的占用较多,推理速度偏慢,对…https://zhuanlan.zhihu.com/p/639179724fastsam虽然也叫sam系列,但其实和sam的关系不大,它相当于保存了sam的壳子,把sam里面的组件全换了。

sam是mae提取图像的embeddings,对输入的prompt进行编码,得到tokens,再将image embeddings和prompt tokens输入到mask decoder中解码,解码之后得到两个head,一个输出masks,一个输出iou scores。

fastsam包括两个部分,第一部分是基于yolov8的全实例分割,结果包括检测和分割分支,检测分支输出box和类别cls,分割分支输出k个mask,fastsam中默认是32以及k个mask系数,检测和分割是并行的,fastsam中使用的就是yolov8的segment分支,第二部分是prompt-guided selection,利用prompt挑选出感兴趣的目标,支持point/box/text,point prompt:点prompt用点和示例分割输出的mask进行匹配,和sam一样,利用前景点/背景点作为prompt,如果一个前景点落在多个mask中,可以通过背景点进行过滤,通过使用一组前景/背景点,能够在感兴趣区域选择多个mask,再将这些mask合并为一个mask用于返回,此外利用形态学操作来提高mask合并的性能。box prompt:与实例分割输出的mask的box和输入的box进行iou计算,利用iou得分过滤mask。text prompt:利用clip模型,利用图像编码和文本编码的相似性,提取分数较高的mask,因为引入clip模型,text prompt的运行速度较慢。

总的来说,虽然叫fastsam,其实不过是加了后处理逻辑的yolov8实例分割。至于训练数据只用了SA-1B的2%,数据量是不多,将yolov8的reg_max从16改成26,图像输入改为1024,不同任务使用不同的训练数据在real world data上,说白了就是yolov8在SA-1B数据上训练之后泛化性不错。

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

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

相关文章

Nexus上传jar包到私有Maven仓库的方法: 页面Upload 和命令

Upload和mvn deploy命令两种上传方式的应用场景不同,手动上传适用于工具类的jar包,比如项目需要引入的lib文件,这种可以选择手动上传。复杂的、有较多依赖的jar包则需要连同pom文件一起上传,此时需要使用mvn deploy。 登录Nexus&a…

ESP32 官方AT固件编译(从零开始环境搭建到编译完成全过程)

1、下载VMware免费版 https://download3.vmware.com/software/WKST-PLAYER-1702/VMware-player-full-17.0.2-21581411.exe 2、下载Ubuntu (ubuntu-22.04.2-desktop-amd64.iso)** https://releases.ubuntu.com/jammy/ubuntu-22.04.2-desktop-amd64.iso…

Redis学习2--使用java操作Redis

1、java操作Redis库的比较 Redis有各种语言的客户端可以来操作redis数据库,其中java语言主要有Jedis与lettuce ,Spring Data Redis封装了上边两个客户端,优缺点如下: 2、使用Jedis操作Redis Jedis使用的基本步骤: 引…

python_PyQt5开发工具结构基础

写在前面: 考虑已经陆陆续续在平台写了几篇PyQt5开发的小工具,后续还会继续发布新的新工具,这些工具都基于一个基础结构往上构建,这个基础结构是本人自己开发的习惯,在这里把工具的基础结构代码抽取出来,后…

ARM汇编中预定义的寄存器和协处理器名称

一、是什么? 预定义的寄存器和协处理器名称,汇编代码中直接使用就可以. # 二、使用步骤 1.引入库 代码如下(示例): .global _start _start:mov r0,#0x18LDR R3,=0x55555555mov r1,#0x18LDR R1,=0x55555555mov r2,#

HTML:常用标签归纳(用法 + 代码 + 显示效果)

目录 标签span 文本标签div 竖着布局的标签h1~h6 标题标签p 段落标签a 超链接标签href 资源位置target 打开位置 a 锚点标签固定位置 br 换行标签img 图片标签src 属性altwidth 宽度 height 高度 列表标签ul 无序列表ol 有序标签设置表示顺序 table 表格属性border 边框width 宽…

Unity Shader - if 和 keyword 的指令比较

文章目录 环境TestingIf4Sampleunity shaderlab 中的 TestingIf4Sample.shadergraphics analyzer 中的 TestingIf4Sample.glsl TestingKW4Sampleunity shaderlab 中的 TestingKW4Sample.shadergraphics analyzer 中的 TestingKW4Sample.glsl 比较 环境 Unity : 2020.3.37f1 Pi…

gin框架内容(三)--中间件

gin框架内容(三)--中间件 Gin框架允许开发者在处理请求的过程中,加入用户自己的函数。这个函数就叫中间件,中间件适合处理一些公共的业务逻辑,比如登录认证、权限校验、数据分页、记录日志、耗时统计等 即比如&#x…

虚拟个家用服务器集群(2):PVE 系统安装启动

风无痕 July 26,2023 前言 很多人想建个人博客类的网站,这就需要网站服务器;需要管理手机、电脑中积累的照片,每张照片可都是人生一个片段的记录,需要管理微信中收发的各种文档等等,这就需要一台 NAS 即 Network Att…

【JMeter】JMeter添加插件

目录 一、前言 二、插件管理器 三、推荐插件 1.Custom Thread Groups (1)Ultmate Thread Group (2)Stepping Thread Group 2.3 Basic Graph 资料获取方法 一、前言 ​ 在我们的工作中,我们可以利用一些插件来帮…

【机器学习】西瓜书学习心得及课后习题参考答案—第3章线性模型

过了一遍第三章,大致理解了内容,认识了线性回归模型,对数几率回归模型,线性判别分析方法,以及多分类学习,其中有很多数学推理过程以参考他人现有思想为主,没有亲手去推。 术语学习 线性模型 l…

网站构建说明

一、网站中的web构建 HTML 4.01CSS 的使用 (样式表)XHTMLXML 和 XSLT客户端脚本服务器端脚本通过 SQL 管理数据Web 的未来 HTML 4.01 通过 HTML 4.01,所有的格式化信息可以被移出 HTML 文档,转而放入一个独立的样式表中。 层叠样…

linux实现运行java分包部署

1.打好包之后 找到bin文件夹下的 startup.sh文件 2.cd 进入bin文件夹下 3.执行 sh startup.sh 运行命令 4.如果出现此错误 是Windows和Linux的.sh脚本文件格式不同,如果在脚本中有空行,脚本是在Windows下进行编辑之后上传到linux上去执行的话&#xff0c…

httpclient 小案例(未完待续)

为了调用微信小程序接口,我们可以使用httpclient 导入依赖: java通过编码方式里发http请求,步骤: 创建http client 对象创建http请求对象(get或post)调用http client excute方法 httpGet请求方法 Test…

Pandas时序数据分析实践—概述

时序数据,作为一种时间上有序的数据形式,无疑是我们日常生活中最常见的数据类型之一。它记录了事件、现象或者过程随时间的变化,是对于许多实际场景的忠实反映。而在众多时序数据的应用领域中,跑步训练记录莫过于是一项令人着迷的…

美容店预约小程序制作教程详解

现在,制作一个专属于美容店的预约小程序不再需要编程经验,通过乔拓云网提供的后台管理系统,你可以轻松地完成整个制作过程。下面,我将为你详细介绍如何DIY一个美容店预约小程序。 首先,登录乔拓云网的后台管理系统&…

高阶C语言|C语言文件管理--输入输出流

文件管理 一、为什么使用文件二、什么是文件2.1程序文件2.2数据文件2.3文件名 三、文件的打开和关闭3.1文件指针3.2文件的打开和关闭 四、文件的顺序读写4.1顺序读写函数介绍4.1.1fgetc4.1.2fputc4.1.3fgets4.1.4fputs4.1.5fscanf4.1.6fprintf4.1.7fread4.1.8fwrite 4.2对比一组…

pg三种插件验证

sr_plan 创建extension, 他会创建保留执行计划的表 创建表并插入数据 开启sr_plan.write_mode, 允许sr_plan收集SQL和执行计划 查看QUERY 1的执行计划 PostgreSQL支持merge join、GroupAggregate(通过INDEX SCAN),所以这个CASE,非常快,并不需要b对所有数据进行聚合。查看…

linux 动态库so相关操作

1. 查看库版本号 一般在文件名上有版本号,若文件名上没有版本号,使用如下命令查看: readelf -d libstdc.so 2. 查看库内函数 a) nm -d libstdc.so | grep 内容 b) objdump -tT libstdc.so | grep 内容 c) readelf -s libstdc.so | grep…

第十章:重新审视扩张卷积:一种用于弱监督和半监督语义分割的简单方法

0.摘要 尽管取得了显著的进展,弱监督分割方法仍然不如完全监督方法。我们观察到性能差距主要来自于它们在从图像级别监督中学习生成高质量的密集目标定位图的能力有限。为了缓解这样的差距,我们重新审视了扩张卷积[1]并揭示了它如何以一种新颖的方式被用…