【论文阅读笔记】MAS-SAM: Segment Any Marine Animal with Aggregated Features

1.论文介绍

MAS-SAM: Segment Any Marine Animal with Aggregated Features
MAS-SAM:利用聚合特征分割任何海洋动物
Paper Code(空的)

2.摘要

最近,分割任何模型(SAM)在生成高质量的对象掩模和实现零拍摄图像分割方面表现出卓越的性能。然而,作为一种通用的视觉模型,SAM主要是用大规模自然光图像训练的。在水下场景中,由于光的散射和吸收,它表现出显著的性能下降。同时,SAM 解码器的简单性 可能会导致丢失细粒度的对象细节。为了解决上述问题,我们提出了一种新的特征学习框架MAS—SAM的海洋动物分割,其中包括整合有效的适配器到SAM的编码器和构建一个金字塔解码器。更具体地说,首先建立了一个新的SAM的编码器与有效的适配器的水下场景。然后,介绍了一个超映射提取模块Hypermap Extraction Module(HEM),以产生多尺度的功能,全面的指导。最后,提出了一个渐进预测解码器(PPD)聚合的多尺度特征和预测最终的分割结果。当嫁接融合注意力模块(FAM),我们的方法能够提取更丰富的海洋信息,从全球上下文线索细粒度的局部细节。

Keywords:适配器,SAM,金字塔解码器,分割海洋动物,LoRA微调

3.Introduction

海洋动物分割(MAS)是视觉智能和水下机器人领域中的关键和基本任务。它旨在从水下图像或视频中识别和分割海洋动物。从功能上讲,海洋动物的准确分割对于包括海洋生物学、生态学和保护在内的各个研究领域都非常重要。但水下环境的特点是复杂的光散射和吸收效应,导致图像质量下降,对比度降低和物体模糊。此外,海洋动物往往表现出伪装的属性,这进一步复杂的分割任务。为了应对这些挑战,需要先进的感知技术。

最近,SAM提出,并在一般的分割任务上已显示出巨大的潜力。然而,SAM的训练场景主要涉及自然光照条件,这限制了其在水下环境中的性能。此外,SAM中过于简单的解码器结构缺乏生成细粒度分割结果的能力。

考虑到上述事实,在这项工作中,本文提出了一种新的基于SAM的特征学习框架命名为MAS-SAM海洋动物分割。更具体地说,通过冻结SAM的编码器的预训练参数,并引入有效的适配器,我们建立了一个Adapter-informed SAM编码器(ASE)从海洋动物图像中提取特征。此外,我们还构造了一个超映射提取模块(HEM),用于从新SAM的编码器中提取多尺度特征映射。它为后续的掩模预测过程提供了全面的指导。为了改进SAM的解码器,我们引入了渐进预测解码器(PPD)来聚合来自原始提示、ASE和HEM的特征。当与融合注意力模块(FAM)嫁接时,我们的PPD可以优先考虑多粒度特征图的重要性,并从全局上下文线索中提取更丰富的海洋信息,以获得细粒度的局部细节。

4.网络结构详解

在这里插入图片描述
本文提出的框架(MAS-SAM)的整体结构。它由三个主要部分组成:适配器通知SAM编码器(ASE)、超映射提取模块(HEM)和渐进预测解码器(PPD)。

适配器通知SAM编码器Adapter-informed SAM Encoder
在这里插入图片描述

保留了原始SAM的核心组件,并利用两个参数高效的微调机制来改进预训练的编码器。如上图所示,我们将LoRA 和适配器分别输入到每个Transformer块的多头自注意(MHSA)和前馈网络(FFN)中。更具体地,令Xi ∈ RN×D为第i个Transformer块的输入。这里,N是令牌的数量,D表示嵌入维数。由LoRA修改的MHSA层可以表示如下:
在这里插入图片描述
其中,Wq、Wk和Wv分别是用于生成原始查询、关键字和值矩阵的三个线性投影层的权重。 W q , v d o w n ∈ R M × D W^{down}_{q,v} ∈ R^{M×D} Wq,vdownRM×D W q , v u p ∈ R M × D W^{up}_{q,v} ∈ R^{M×D} Wq,vupRM×D分别是两个线性投影层的权值,用于降低和恢复特征维数,其中M是向下映射的维度。通过这种方式,可以冻结预训练的权重(Wq、Wk和Wv)和利用秩分解矩阵来大大减少可训练参数的数量。

此外,我们将一个适配器插入到FFN中,如下所示:
在这里插入图片描述
其中LN和MLP代表层归一化(LN)和多层感知器(MLP)。σ是ReLU(Rectified Linear Unit)。 W a d p t d o w n ∈ R P × D W^{down}_{adpt} ∈ R^{P×D} WadptdownRP×D W a d p t u p ∈ R P × D W^{up}_{adpt} ∈ R^{P×D} WadptupRP×D分别是两个线性投影的权值,用于降低和恢复特征维数。P是向下投影维度。与LoRA类似,通过采用极低的参数P值,可以实现参数有效的微调,以使预训练的SAM的编码器适应海洋场景。

超地图提取模块
在这里插入图片描述

由于复杂的水下环境,利用局部的细节和全局的背景下,鲁棒性和准确的MAS十分重要。不同的Transformer层捕获不同级别的语义,通常,浅层保留更多的局部细节,深层表达更多的上下文信息。因此,为了使我们提出的模型利用更丰富的海洋信息,提出了一个超地图提取模块(HEM)考虑ASE的多尺度特征地图。然后,它作为后续掩模预测过程的综合指导。更具体地说,我们首先将图像 I ∈ R H × W × 3 I ∈ R^{H×W×3} IRH×W×3送入ASE(编码器),并获得不同Transformer层的输出。在这项工作中,我们选择了3-6-9-12层,并得到多尺度表征特征,即,Xi(i = 3,6,9,12)。然后,我们将它们重塑为空间特征映射 F i ∈ R H / 16 × W / 16 × D F_i ∈ R^{H/16×W/16×D} FiRH/16×W/16×D。为了同时考虑这些多尺度特征图,我们执行以下特征聚合:
在这里插入图片描述
其中ϕ1×1和ϕ3×3分别是具有1×1和3×3核的卷积层。为了提高训练的稳定性,在卷积层之后引入了批归一化(BN)和RELU激活函数。[·]是通道中的级联。
然后,我们引入通道注意层以生成超映射Hj,如下所示:
在这里插入图片描述
其中GAP是全局平均池(GAP),δ是Sigmoid函数,ψ2×2是具有2×2核的反卷积层。这样可以获得多比例尺的超图。这些超地图在提高MAS的性能方面起着至关重要的作用。

渐进预测解码器
在这里插入图片描述

由于海洋动物的外观变化很大,SAM中简单的解码器设计很难实现准确的分割掩模。为此提出了一种渐进预测解码器(PPD)来有效地提高预测能力。它具有金字塔结构,从原始提示、ASE和HEM中逐步聚合多源特征,并获得最终的分割预测。

在这里插入图片描述
如上图所示,提出了一个融合注意力模块(FAM)来完全聚合多源特征。更具体地说,我们开始对来自ASE的特征进行上采样,并将输入特征缩放为相同的大小。然后,我们将它们融合如下:
在这里插入图片描述
其中Ui是通过利用双线性插值Φ的上采样特征。Dj是所提出的PPD中的第j个金字塔级的输出。对于FAM,我们利用通道注意力来优先考虑多源功能的重要性。还部署了残差结构,以加强代表能力。该过程可以表述为:
在这里插入图片描述
GMP是Global Max Pooling(GMP)。通道权重可以突出相关特征并抑制不相关特征。同时,我们的FAM所采用的注意力机制有助于捕捉不同尺度的特征之间的复杂关系,从而产生更连贯和信息量更大的特征表示。因此,FAM可以有效地集成和细化多源功能。

最后,为了实现渐进式预测,我们构建了与FAM嫁接的PPD,如下所示:
在这里插入图片描述
其中Pj是第j个金字塔级的预测掩码。PPD推进原始提示,ASE和HEM的无缝聚合,从而产生更丰富的海洋信息,从全局上下文线索细粒度的局部细节。

为了进一步改善预测结果,我们在不同阶段进行所有预测,并生成最终预测,如下所示:
在这里插入图片描述
通过金字塔结构和FAM的协同使用,我们的MAS-SAM可以有效地利用各种信息,并为各种海洋动物形状和大小产生高度精细和详细的分割掩模。

损失函数
从三个层面进行深度监管,像素级监督(二进制交叉熵损失)、区域级监督(SSIM损失)和全局级监督(IoU损失)。因此,我们将Lf或Lj定义为具有三项的组合损失:
在这里插入图片描述
其中Lf和Lj分别是最终预测和第j级输出的损失。

问题

代码也没公开,中间的cross attention没有提,CMP也没有提,应该是最后金字塔解码器的每一级输出到最终输出P的过程。
文章提到解码器接收原始提示、ASE编码器和HEM的特征,但实际上只接收了HEM的Hi和ASE的Fi进行上采样处理,并没有接收原始提示,应该是ASE编码器与原始提示(也就是默认提示,因为文章没有对提示编码器进行更改)的最终输出,进行cross attention,作为D0。

总体来说创新点在于SAM中增加LoRA和适配器微调而冻结原SAM的图像编码器;增加了超地图提取模块把编码器的不同层特征提出来进行处理;解码器金字塔型,增加接收不同层的特征。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

端侧AI从“芯”开发机会到来,MediaTek举办天玑开发者大会MDDC2024

MDDC2024速览: 发布芯片新品MediaTek天玑9300旗舰5G生成式AI移动芯片、生态发布天玑AI先锋计划、for开发者的生成式AI端侧“天玑AI开发套件”、发布《生成式AI手机产业白皮书》、for游戏的MediaTek星速引擎技术…… MediaTek 5月27日举办天玑开发者大会2024&#xf…

shell脚本编写-测试同一网段内主机是否在线

除了可以使用ansible自动化运维工具判断主机是否在线以外,还可以通过编写Shell脚本来实现。 1、编写脚本 #! /bin/bash #测试192.168.81.0/24网段中哪些主机处于开机状态,哪些主机处于关机状态# #方法一:使用for循环判断 # for i in {1..25…

PyRun_SimpleString(“import cv2“); 报错解决

#include <Python.h> #include <iostream>using namespace std;int main() {Py_Initialize();if (!Py_IsInitialized()){printf("初始化失败&#xff01;");return 0;}PyRun_SimpleString("import sys");PyRun_SimpleString("sys.path.ap…

苍穹外卖项目---------收获以及改进(3-4天)

①公共字段填充----mybatis 第一步&#xff1a;自定义注解 /*** 自定义注解用于标识某个方法需要进行功能字段的填充*/ Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) public interface AutoFill {//枚举&#xff1a;数据库操作类型&#xff1a; update ins…

Redis学习4——Redis应用之限流

引言 Redis作为一个内存数据库其读写速度非常快&#xff0c;并且支持原子操作&#xff0c;这使得它非常适合处理频繁的请求&#xff0c;一般情况下&#xff0c;我们会使用Redis作为缓存数据库&#xff0c;但处理做缓存数据库之外&#xff0c;Redis的应用还十分广泛&#xff0c…

STM32接入CH340芯片的初始化进入升级模式(死机)问题处理

目录 1. 问题描述2. 问题分析2.1 CH340G/K 的初始化波形2.2 第1种USB升级电路2.3 第2种USB升级电路2.4 第3种USB升级电路2.5 第4种USB升级电路 3. 总结 1. 问题描述 我所用的CH340G&#xff08;CH340K也用过&#xff09;接在MCU的电路中&#xff0c;在插入CH340G/K 的接插件&a…

java10基础(this super关键字 重写 final关键字 多态 抽象类)

目录 一. this和super关键字 1. this关键字 2. super关键字 二. 重写 三. final关键字 四. 多态 五. 抽象类 1. 抽象方法 2. 抽象类 3. 面向抽象设计 一. this和super关键字 1. this关键字 this 当前对象的引用 this.属性 this.方法名() this() -- 调用构造函数 …

windows安装ElasticSearch以及踩坑

1.下载 elasticsearch地址&#xff1a;Past Releases of Elastic Stack Software | Elastichttps://www.elastic.co/cn/downloads/past-releases#elasticsearch IK分析器地址&#xff1a;infinilabs/analysis-ik: &#x1f68c; The IK Analysis plugin integrates Lucene IK…

【容器】k8s获取的节点oom事件并输出到node事件

在debug k8s node不可用过程中&#xff0c;有可能会看到: System OOM encountered, victim process: xx为了搞清楚oom事件是什么&#xff0c;以及如何产生的&#xff0c;我们做了一定探索&#xff0c;并输出了下面的信息。&#xff08;本文关注oom事件是如何生成&传输的&a…

每日一题(PTAL2):列车调度--贪心+二分

选择去维护一个最小区间 代码1&#xff1a; #include<bits/stdc.h> using namespace std; int main() {int n;cin>>n;int num;vector <int> v;int res0;for(int i0;i<n;i){cin>>num;int locv.size();int left0;int rightv.size()-1;while(left<…

2024/5/7 QTday2

练习&#xff1a;优化登录框&#xff0c;输入完用户名和密码后&#xff0c;点击登录&#xff0c;判断账户是否为 Admin 密码 为123456&#xff0c;如果判断成功&#xff0c;则输出登录成功&#xff0c;并关闭整个登录界面&#xff0c;如果登录失败&#xff0c;则提示登录失败&a…

【一看就懂】UART、IIC、SPI、CAN四种通讯协议对比介绍

UART、IIC、SPI、CAN四种通信协议对比 通信方式传输线通讯方式标准传输速度使用场景UARTTX(发送数据线)、RX(接收数据线)串行、异步、全双工115.2 kbit/s(常用)计算机和外部设备通信&#xff08;打印机&#xff09;IICSCL(时钟线)、SDA(数据线)串行、同步、半双工100 kbit/s(标…