【论文阅读笔记】Lite-SAM Is Actually What You Need for Segment Everything

news2024/11/16 0:19:36

1.论文介绍

Lite-SAM Is Actually What You Need for Segment Everything
Lite-SAM是您实际上所需的分割一切的工具
2024年 arxiv
Paper

2.摘要

Segment Anything模型(SAM)以其优越的性能给分割领域带来了重大变化,但其对计算资源的巨大需求仍然是一个限制因素。 MobileSAM、Edge-SAM、MobileSAM-v2等许多作品都探索了轻量级解决方案。 然而,他们使用传统的网格搜索采样策略或两阶段串联方法,不允许端到端训练,严重限制了分段一切(SegEvery)的性能。 本文介绍了 Lite-SAM,这是一种针对 SegEvery 任务的高效端到端解决方案,旨在降低计算成本和冗余。 Lite-SAM由四个主要组件组成:精简的CNNTransformer混合编码器(LiteViT)、自动提示提议网络(AutoPPN)、传统提示编码器和掩码解码器。 所有这些组件都集成在 SAM 框架内。 我们的LiteViT是一个高性能的轻量级骨干网络,参数只有1.16M,比现有最轻的骨干网络Shufflenet减少了23%。 我们还推出了 AutoPPN,这是一种用于提示框和积分生成的创新端到端方法。 这是对传统网格搜索采样方法的改进,其独特的设计可以轻松集成到任何 SAM 系列算法中,从而扩展了其可用性。 我们在大量公共和私人数据集上对 Lite-SAM 进行了彻底的基准测试。 评估涵盖了广泛的通用指标,包括参数数量、SegEvery 执行时间和准确性。 研究结果表明,Lite-SAM 以精简的 4.2M 参数运行,显着优于同类产品,与 SAM、MobileSAM、Edge-SAM、EfficientViT-SAM 和 EfficientViT-SAM 相比,性能提高了 43 倍、31 倍、20 倍、21 倍和 1.6 倍 MobileSAM-v2 分别始终保持有竞争力的准确性。 这凸显了 Lite-SAM 在实现性能和精度之间的最佳平衡方面的能力,从而在该领域树立了新的最先进 (SOTA) 基准。

Keywords: SAM,轻量级SAM,SegEvery

3.Introduction

SAM 代表了视觉框架的重大进步,与 GPT 在 NLP 中的影响类似。 它包含两个关键组件:基于 ViT 的图像编码器和提示引导掩模解码器,它们协同工作。 SAM 旨在处理两个分段任务:SegAny 和 SegEvery。 这两项任务都涉及与类别无关的掩模分割,但目标不同。 SegAny 使用特定提示(例如点或框)来隔离和分割图像中感兴趣的特定项目。 相比之下,SegEvery 的目标是描绘图像中所有可辨别的主题。

张超宁等提出了一种“解耦蒸馏”,旨在蒸馏 SAM 的 ViT-H 解码器,从而产生更高效的轻量级编码器,可以与 SAM 解码器集成。 然而,该算法模型缺乏平台适配的鲁棒性,并且在翻译过程中表现出相当大的准确性损失,使其不太适合在移动设备上部署。 赵等人介绍了基于 YOLOv8 [15] 构建的 Fast-SAM 模型,该模型展示了卓越的分割能力。 然而,它的主要局限性是缺乏全方位的交互方式,特别是缺乏专用的框和点功能。 李等人设计了 ​​SemanticSAM,这是一种增强不同尺度图像的分割和识别多功能性的模型。 但必须强调的是,其大量参数导致推理时间更长。 韩才等人提出了 EfficientViT,引入了一种新颖的轻量级算法,该算法取得了有希望的结果。 周崇等人。 提出了 Edge-SAM ,这是一种在 iPhone 上实现 SegAny 任务实时执行的算法。 所有上述方法[4,16,18,45,49,56,57]都针对SegAny进行了评估; 然而,SegEvery 仍然非常耗时。

MobileSAM-v2 为 YOLOv8提出了一种创新的训练方法,使用预先生成的提示(对象感知提示采样)代替传统的 Gridsearch 采样策略,提高了 SegEvery 过程的效率。 尽管有这样的改进,但这种方法需要使用单独的模型,这被认为是权宜之计。 由于YOLOv8固有的推理和训练需求,总体节省的时间可能有限。 为了解决上述问题,我们的贡献可总结如下:

  • 我们推出了 LiteViT,这是一种轻量级 CNN-Transformer 编码器,通过减少参数来提高准确性,非常适合有限的计算环境。
  • 开发 AutoPPN,一个自动提示提案网络,提高了网格搜索方法的效率,并与 SAM 系列算法轻松集成。
  • 通过实验验证了 Lite-SAM 的性能,如图 1 所示,显示了 SegEvery 上的加速结果,同时保持了准确性。

4.网络结构详解

在这里插入图片描述
Lite-SAM架构,该架构由四个主要组件组成:LiteViT编码器、AutoPPN网络、标准提示编码器和掩码解码器。该配置如图(a)所示。新的AutoPPN模块专门设计用于简化自动化提示任务。该算法以端到端的方式同时对边界框提示和点提示进行回归,与已有的密集位置编码方案相比,显著减少了SegEvery任务的推理时间。这一进步是实现实时分割的关键。

Lite-SAM架构
标准的自注意力token混合器以其高计算成本而闻名。相比之下,组合CNN-Transformer混合结构在制作轻量级Vision Transformer(ViT)网络中发挥着重要作用。这种混合平衡了模型精度和计算效率。受现有研究中自注意力层的有效变化的启发,作者开发了LiteViT图像编码器,从PoolFormer-S12 基线开始。将图像编码器模型建立在一个称为LiteViT Block的新型构建模块上。详细的体系结构规范见图(b)。为了克服捕捉局部特征的挑战,本文将多尺度池化整合到了轻量级注意力模块中。具体地说,引入了多尺度池化模块(MSPM),以有效地增强网络架构的每个阶段的感受野。在LiteViT模块中,输入首先由MSPM模块处理,然后由卷积MLP(多层感知器)模块处理;每一级都通过跳跃连接进行连接。为了便于下采样和调整各级的输出通道,采用了一个称为补丁合并模块的专用模块,该模块可有效地充当主干卷积层。
在这里插入图片描述

AutoPPN
对提示使用密集位置编码的标准方法可能不适合实时分割任务。为了增强SegEvery任务的推理性能,引入了AutoPPN模块,该架构在图(c)中详细描述。用位于边界框中心的单个点表示对象是一种简单有效的技术。基于这一概念,AutoPPN框架以端到端的方式从输出特征图中预测提示点和边界框。相应的损失由两个元素组成:点提示的置信度和边界框回归的准确性。我们已实施三项重大修改以完善我们的方法,详情如下:
(1)通过用更复杂的主干MSPM网络取代基本的主干卷积网络来增强我们的网络。这种更新的网络有效地整合了多尺度空间信息,大大提高了对天空、建筑物和水体等大型物体或实体的检测召回率。
(2)为了估计点提示的置信度,我们结合了距离变换的使用,以便于计算点与其对应掩模之间的距离。如果一个点位于多个掩模内,我们会选择面积最小的掩模。不同于基于高斯的方法,我们的技术能够在前景和背景之间创建柔和的逐点真值区分,而非生硬的二元分割。此外,本文的方法优先识别对象或实体的最中心点,而不是简单地关注其边界框的中心。这种修改有助于减轻在涉及不清楚的点提示的场景中存在的模糊性。在计算损失时,我们选择了MSE(Mean Squared Error)。
同时,对于边界框回归,采用平滑L1损失。同样重要的是要注意,任何未标记的区域都被排除在损失计算过程之外。在推理过程中,我们只应用基于点的非最大值抑制(Point-NMS),并坚持选择前N个点的做法。
(3)在端到端回归阶段,我们根据边界矩形的大小将目标掩蔽区域分为三组:大(max(h Himg,w Wimg)≥ 0.25
),中等(max(h Himg,w Wimg)∈(0.05,0.25))和小(max(h Himg,w Wimg)≤ 0.05)。对每组进行单独的损失计算。这三项改进极大地提高了性能。
在这里插入图片描述

PPN回归的总损失,其中LH-MSE表示硬挖掘MSE损失,LS-L1表示盒回归的平滑L1损失。

Loss
对于Lite-SAM的综合训练,结合了掩码损失,它结合了SAM中的原始焦点损失和骰子损失。这种组合量化了预测掩模和真值之间的逐像素对齐。此外,均方误差损失测量IoU预测与预测掩码与真实掩码的交集之间的差异。mask损失正式表示为:
在这里插入图片描述
总的训练损失由 L t o t a l = L p p n + L m a s k L_{total} = L_{ppn} + L_{mask} Ltotal=Lppn+Lmask定义。

说明

这个轻量化SAM的创新在于:

  1. 改掉原来的image encoder,创新一个LiteViT:它由多尺度池化和MLP代替自注意力,且每一层都用残差连接,还设计了一个patch merge模块,neck也是conv1*1+LN。
  2. 设计一个AutoPPN端到端地自动生成点提示或者框提示,并增加了点置信度损失和框回归损失以校正。有个问题在于它描述位置编码太过复杂费劲所以设置AutoPPN,但是位置编码是在mask decoder中使用的,如果说AutoPPN出来的点和框已经包含位置信息,那么提示编码器和mask decoder也会有改变,但文章中没有描述,所以这里存疑。

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

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

相关文章

设置浏览器ie兼容模式

点击设置 设置IE模式

VMware安装(有的时候启动就蓝屏建议换VM版本)

当你开始使用虚拟化技术来管理和运行多个操作系统时,VMware 是一个强大且广泛使用的选择。本篇博客将指导你如何安装 VMware Workstation Pro,这是一个功能强大的虚拟机软件,适用于个人和专业用户。 一、下载 VMware Workstation Pro 访问官网…

使用EasyAR打包安卓操作注意

EasyAR for Scene 4.6.3 丨Unity2020.3.15f2 打包Unity注意事项 一、默认渲染管线 官方参考链接:ARFoundation 简单注意 1.打包设置为Android平台 2.PackageName和EasyAR中保持一致 3.Scripting Backend设置为IL2CPP,以及设置为ARM64 4.取消Auto …

【虚拟化】虚拟化简介 | Hypervisor介绍

目录 一、什么是虚拟化? 二、虚拟化的优点 三、Hypervisor 3.1 Hypervisor概述 3.2 Hypervisor 分类 3.3 Hypervisor 与虚拟机协作技术路线 (1) 全虚拟化 (2) 硬件辅助虚拟化 (3) 半虚…

电梯节能设备 安装现场

夏天到了,高温来了。电梯修理升级,安装 电梯节能设备。可立即降温, 节能率达 15%-45%。 为电梯加装节能设备,都在行动。 跟【523】一起绿色低碳范儿,欢迎私询哦

springboot高校学生技能成长档案管理系统71080

目 录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2 高校学生技能成长档案管理系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 操作可行性分析 2.2 系统流程分析 2.2.1数据增加流程 2.2.2 数据修改…

Hbase简介和快速入门

一 Hbase简介 1 HBase定义 Apache HBase™ 是以hdfs为数据存储的,一种分布式、可扩展的NoSQL数据库。 2 HBase数据模型 HBase的设计理念依据Google的BigTable论文,论文中对于数据模型的首句介绍。Bigtable 是一个稀疏的、分布式的、持久的多维排序map…

玩转usbserver之usbserver日志报警

一、graylog 介绍 graylog是一个简单易用、功能较全面的日志管理工具,graylog也采用Elasticsearch作为存储和索引以保障性能,MongoDB用来存储少量的自身配置信息,master-node模式具有很好的扩展性,UI上自带的基础查询与分析功能比…

maven项目如何将自定义的jar引入本地仓中,并编译通过

只需3步&#xff0c;轻松实现自定义jar包引入本地仓。 1、在pom.xml文件中加入坐标 <dependency><groupId>com.hicap.echannelservice.ncclib</groupId> //随便写<artifactId>ncclib-jar</artifactId> //随便写<version>1.0</version…

Qwen2模型Text2SQL微调​以及GGUF量化

Qwen2-1.5B微调 准备python环境 conda create --name llama_factory python3.11 conda activate llama_factory部署llama-factory git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory pip3 install -e ".[torch,metrics]" # 如果…

【全面讲解下Docker in Docker的原理与实践】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步! 👉目录 👉前言👉原理👉实践👉安全和最佳实践👉前言 🦛…

【保姆级教程】免费内网穿透,手把手搭建,三步搞定

在内网部署的一个应用&#xff0c;想分享给外网的小伙伴玩玩&#xff1f; 学校实验室有一台高性能服务器&#xff0c;在外网就无法使用&#xff1f; 来吧&#xff0c;内网穿透&#xff0c;了解一下&#xff1f; 1. 关于内网穿透 1.1 什么是内网穿透 且看百度百科的说法&am…

【AI人工智能】文心智能体,00后疯感工牌生成器,低代码工作流的简单应用以及图片快速响应解决方案,干货满满,不容错过哦

背景 文心智能体平台&#xff0c;开启新一轮活动&#xff0c;超级创造营持续百日活动。 在AI 浪潮席卷的今天&#xff0c;如雨后春笋般丛生的 AI 应用&#xff0c;昭告着时代风口显然已随之到来。 如何能把握住时代红利&#xff0c;占据风口&#xff0c;甚至打造新风向&#x…

深入探讨单元测试:概念、作用及应用实例

目录 前言1. 单元测试的概念1.1 单元测试的特点1.2 单元测试的组成部分 2. 单元测试的主要作用2.1 确保代码正确性2.2 提高代码质量2.3 促进重构2.4 支持持续集成 3. 单元测试在整个测试中的地位3.1 单元测试 vs 集成测试3.2 单元测试 vs 系统测试3.3 单元测试 vs 验收测试 4. …

VulnHub靶机入门篇--Kioptrix4

1.环境配置 下载地址&#xff1a; https://download.vulnhub.com/kioptrix/Kioptrix4_vmware.rar 下载完解压之后是一个vdmk文件&#xff0c;我们需要先创建一个新的虚拟机&#xff0c;将vdmk文件导入就行了 先移除原先硬盘&#xff0c;然后再进行添加&#xff0c;网络连接为…

Computer Software Copyright Registration Certificate

Computer Software Copyright Registration Certificate 计算机软件著作权登记证书

项目实战--JUC之CompletableFuture温故

CompletableFuture温故 一、前言二、Future三、CompletableFuture3.1 CompletableFuture定义3.2 CompletableFuture使用场景3.3 CompletableFuture 常见操作3.3.1 创建CompletableFuture3.3.2 使用CompletableFuture3.3.3 异常处理3.3.4 注意事项 四、CompletableFuture处理工具…

51单片机嵌入式开发:21、STC89C52R控制抢答器+数码管+后台显示+LCD1602x显示

配套程序 STC89C52R控制抢答器数码管后台显示LCD1602x显示 STC89C52R控制抢答器数码管后台显示LCD1602x显示1 概述1.1 项目概述1.2 项目组成部分1.3 功能描述 2 开发环境2.1 支持设备2.2 硬件电路 3 软件代码工程4 演示Proteus仿真5 总结 配套程序 STC89C52R控制抢答器数码管后…

oracle登录报“ORA-27101: shared memory realm does not exist”

oracle登录报“ORA-27101: shared memory realm does not exist” 问题&#xff1a; 1、使用ip:1521/服务名方式连库报错" ORA-27101: shared memory realm does not exist Linux-x86_64 Error: 2: No such file or directory" 2、sqlplus XX/密码 可以登录数据库 …

linux下使用yum安装mysql

本文使用常规方式手动安装mysql 第一步 下载mysql的repo源 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm第二步 安装mysql-community-release-el7-5.noarch.rpm包 rpm -ivh mysql-community-release-el7-5.noarch.rpm第三步 安装mysql-server yum -y…