segment anything in high quality

news2024/11/24 11:45:04

致力于解决细节分割不好的情况,可以理解为sam的精细分割的微调版本,但是对原始的分割能力也没有丢失,有点像目标检测中的小目标检测优化算法。总的来说,在原始的sam上增加了hq-features和hq output token以及mlp,来做hq mask预测,最终是hq feature和hq output token预测出来的mlp权重相乘得到mask。相当于sam的一个微调版本。

1.introduction

sam存在两个问题:1.粗糙的mask边界,经常会忽略对细物体结构的分割;2.在具有挑战性的场景下,存在错误的损坏的预测,主要与sam对细小结构的错误理解有关,本文主要在解决这两个问题,同时他是基于sam的,不对sam的原始分割能力造成退化和影响,在sam的基础上增加了两个模块来额外处理细小结构分割问题,但是由于保留了原始sam的结构,肯定是比sam要慢的,但是如果结合上mobilesam的vit_t的话,可能效果能平衡一下,增加了不到0.5%的参数。 

上面这张图,原始的sam对结构的理解要差一点,最后一张图sam错误的理解了线。

2.method

数据:由于sam_hq实在sam基础上训练的三个小模块,hq output token,三层mlp以及小的特征融合模块,因此准备的是一部分精细的数据,原始sam在sa-1b上训练的,1100w图和11亿mask,256个gpu,batch为256。sam_hq在HQSeg-44k数据上训练,包括44000个高精度mask合并而来,包括1000个语义类别。

2.1 preliminaries:sam

图像编码器:基于vit,得到64x64的image embedding,prompt编码器:编码来自点框和mask的位置信息,mask解码器:双层transformer的解码器同时使用image embedding和prompt进行最终的mask预测,output token用于mask预测,类似与detr中的learnable object,它预测mlp的权重,然后和mask feat进行逐点乘积。

2.2 hq-sam

引入了hq output token和一个新的用于神女郭恒高质量mask预测的mask预测层(三层mlp),不是直接使用sam的粗糙mask作为输入。

通过重用和固定sam的mask decoder,将一个可学习的hq output token(1x256)与sam的output token(4x256)和prompt token(Nx256)连结在一起,作为输入传递给sam的mask decoder,与原始的output token类似,在每个注意力层中,hq output token先与其它token进行自注意力计算,然后进行token to image和image to token的反向注意力已更新其特征,hq output token在每个解码器层中使用和其他token共享的逐点mlp,进过两个解码器层后,更新后的hq output token可以访问全局图像上下文,prompt token的重要几何类型信息以及其他输出token的隐藏mask信息。最后添加一个新的三层mlp,用于从更新后的hq-output token生成动态卷积核权重,然后和融合的hq特征进行逐点乘积,用于生成高质量的mask。

与直接微调sam或者进一步添加复杂的后处理不同,hq-sam只允许对hq output token及其三层的ml进行训练,已修正sam的output token中的错误mask。

精确的分割还需要输入具有丰富全局语义上下文和局部边界细节的图像特征,不直接使用sam的mask decoder特征,而是从sam模型的不同阶段提取和融合特征来组合新的高质量特征hq-eatures,1.san的vit早期局部特征,大小为64x64,捕获更多通用图像边缘细节,具体来说,提取vit的第一个全局注意力块之后的特征,vit-large的sam,共有24个块,第6个块的输出;2.sam的vit编码器最终层的全局特征,64x64,3.sam的mask decoder中的mask特征,256x256,包含mask形状信息,为了获得输入的hq-features,先通过转置卷积将早期层和最终编码层上采样到256x256,然后进行求和。

3.training

固定sam参数,只让hq output token以及与之关联的三层和mlp和三个简单的用于hq features融合的卷积进行训练。

采用和sam相同的推断流程,但使用hq output token的mask预测作为高质量的mask预测,在推断中奖sam的mask和hq-sam的mask进行logits相加,已修正,分辨率为256x256,在上采样到1024x1024。

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

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

相关文章

【MySQL面试题(66道)】

文章目录 MySQL面试题(66道)基础1.什么是内连接、外连接、交叉连接、笛卡尔积呢?2.那 MySQL 的内连接、左连接、右连接有有什么区别?3.说一下数据库的三大范式?4.varchar 与 char 的区别?5.blob 和 text 有什么区别?6.…

【三次握手】TCP三次握手由入门到精通(完整版)

⬜⬜⬜ 🐰🟧🟨🟩🟦🟪(*^▽^*)欢迎光临 🟧🟨🟩🟦🟪🐰⬜⬜⬜ ✏️write in front✏️ 📝个人主页:陈丹宇jmu &am…

EndNote(三)【阅读+批注、插入文献】

将文献导入EndNote了,右侧就能看当前文献的内容了,比如preview、pdf查看等: 当然,如果你觉得这样看有点不大气哈哈,你可以双击:(这是第一种方法) 他就会弹出一个窗口: (这…

要跟静音开关说再见了!iPhone15新变革,Action按钮引领方向

有很多传言称iPhone 15 Pro会有很多变化,但其中一个变化可能意味着iPhone体验从第一天起就有的一项功能的终结。我说的是静音开关,它可以让你轻松地打开或关闭iPhone的铃声。 根据越来越多的传言,iPhone 15 Pro和iPhone 15 Pro Max将拆除静音…

C++------利用C++实现二叉搜索树【数据结构】

文章目录 二叉搜索树概念二叉搜索树的操作查找插入删除 二叉搜索树的应用 二叉搜索树 概念 什么是二叉搜索树,二叉搜索树就是指左孩子永远比根小右孩子永远比根大。这个规则适用于所有的子树。 上面的就是一棵二叉搜索树,我们还可以发现这棵树走一个中…

C语言之整数_数据存储篇(1)

目录 数据类型 整形家族 浮点型家族 构造类型 指针类型 空类型 整形在内存中的存储(原反补) NO1. NO2. NO3. NO4. NO5. NO6. 大端小端字节序 NO.1 NO.2 NO.3 NO.4 练习题 NO1. NO2. NO3. NO4. NO5. NO6. 总结 数据类型 …

Unity 之 变量修饰符public 与private 以及默认

文章目录 publicprivate默认情况的成员变量 public 当在Unity中使用public修饰符时,它将变量声明为公共变量,这意味着该变量可以在Unity编辑器中进行设置,并且可以从其他脚本中访问和修改。公共变量在Unity中广泛用于在脚本之间共享数据&…

4.Linux下Cmake交叉编译Qt项目到Jetson Orin Nano(arm)

由于3:Ubuntu上配置QT交叉编译环境并编译QT程序到Jetson Orin Nano(ARM)_月上林梢的博客-CSDN博客 这一篇文章只用手动配置,一直在点、点、点。比较 LOW,现在在Ubuntu上使用Cmake实现交叉编译QT程序到Jetson Orin Nano…

电脑技巧:电脑关机、休眠、睡眠之间如何选择,看完你就懂了

目录 一、关机、休眠、睡眠的区别? 1.关机 2.休眠 休眠的优点 休眠的缺点 3.睡眠 睡眠的优点 睡眠的缺点 二、什么时候关机/休眠/睡眠? 什么时候需要关机? 什么情况下使用休眠模式? 什么情况下使用睡眠模式&…

Linux之维护基本存储空间

目录 维护基本存储空间 1.查看磁盘信息(块设备)信息 2.创建分区 (1)MBR分区 标准MBR结构如下 为什么MBR最多只能有4个主分区 (2)GPT分区 优点 3.分区工具 1.使用fdisk管理MBR分区 语法格式 参数及作用 2.使用gdisk管理GPT分区 操作步骤 3.使用pa…

Java项目之基于ssm框架的社区生活超市管理系统(附源码)

基于ssm框架的社区生活超市管理系统设计与实现(程序源码毕业论文) 大家好,今天给大家介绍基于ssm框架的社区生活超市管理系统设计与实现,本论文只截取部分文章重点,文章末尾附有本毕业设计完整源码及论文的获取方式。更…

右值及右值引用

右值引用主要是为了优化。 在函数返回值没有打开-fno-elide-constructors时&#xff0c;函数返回值会调用拷贝构造函数 class X { public:X(){cout << "X ctor" << endl;}X(const X& x){cout << "X copy ctor" << endl;}~X()…

【数据库】表字段设计时不推荐使用可空值(NULL)

【Mysql】数据库系列 文章目录 前言一、表和数据准备二、验证1.NOT IN子查询在有NULL值的情况下返回永远为空结果2.使用&#xff01;去查询可空值字段时&#xff0c;数据中存在NULL&#xff0c;NULL记录查询不到3.如果在两个字段进行拼接&#xff1a;比如前缀名字&#xff0c;字…

Azure虚拟网络对等互连

什么是Azure虚拟网络对等互联 Azure虚拟网络对等互联&#xff08;Azure Virtual Network peering&#xff09;是一种连接两个虚拟网络的方法&#xff0c;使得这两个虚拟网络能够在同一地理区域内进行通信。它通过私有IP地址在虚拟网络之间建立网络连接&#xff0c;不论是在同一…

Java 项目日志实例:LogBack

点击下方关注我&#xff0c;然后右上角点击...“设为星标”&#xff0c;就能第一时间收到更新推送啦~~~ LogBack 和 Log4j 都是开源日记工具库&#xff0c;LogBack 是 Log4j 的改良版本&#xff0c;比 Log4j 拥有更多的特性&#xff0c;同时也带来很大性能提升。LogBack 官方建…

华为OD机试 - 全量和已占用字符集 - 数据结构map(Java 2022 Q4 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#xff09;》…

基于51单片机直流电机PWM调速液晶1602显示设计

一、系统方案 本文主要研究了利用MCS-51系列单片机控制PWM信号从而实现对直流电机转速进行控制的方法。本文中采用了三极管组成了PWM信号的驱动系统&#xff0c;并且对PWM信号的原理、产生方法以及如何通过软件编程对PWM信号占空比进行调节&#xff0c;从而控制其输入信号波形等…

Endnote在线链接pubmed的时候报错12057:不能连接到吊销服务器,或者未能获得最终响应?

​嘎嘎嘎问题如下&#xff1a; 解决办法&#xff1a; 打开控制面板: ok,完了之后再去EndNote就不会出现此问题了。&#xff08;有的可能需要重启电脑&#xff0c;重启EndNote才会生效&#xff09;

基于MOEA/D求解电力系统中环境经济调度问题(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

三维重建_基于图像的三维重建_面片/光度一致性

参考: 深蓝学院 基于图像的三维重建 1. 三维重建的流程回顾 基于深度图的三维重建:从无序图像获取稀疏点云和位姿,然后进行多视角立体重建。 多视角立体重建包含:(输入稀疏点云、各个图像位姿、图像)先进行立体对(3D-2D,2D-2D)的选择,然后计算深度图,接着进行深度图…