A Multilevel Multimodal Fusion Transformer for Remote Sensing Semantic Segmentation(论文阅读笔记)

A Multilevel Multimodal Fusion Transformer for Remote Sensing Semantic Segmentation
多级多模态融合变压器遥感语义分割
Xianping Ma,Xiaokang Zhang , Member, IEEE, Man-On Pun , Senior Member, IEEE, and Ming Liu
论文地址
代码地址

1.INTRODUCTION

只有少数工作致力于多模态融合任务(根据不同模态的特性融合多模态信息),强调根据不同模态的特性融合多模态信息。与自然图像相比,高分辨率遥感图像具有更严重的光谱异质性和更复杂的空间结构,此外,遥感数据中的地物在尺寸和形状上表现出更大的变化,这使得定位和识别目标变得困难,结果表明,从CV领域衍生出的基于CNN和Transformer的模型在有效学习判别性综合特征方面仍存在局限性。
解决多模态的三种策略:

  1. 早期融合:需要对多模态数据进行适当的对齐,并且可能缺乏对任务无关信息的鲁棒性。
  2. 晚期融合:利用多模态数据之间的交叉相关性方面能力有限。
  3. 中期融合:能够捕捉特征表示的跨模态依赖关系,使其在表示学习的背景下更加有效。
    现有工作通常基于求和或拼接进行单层特征融合,忽略了不同特征层次上的长距离跨模态依赖关系。

2. 网络结构

请添加图片描述
在CNN主干网络中,SFF模块被用于浅层特征融合,而在FViT中的Ada-MBA层则被设计用于深层特征融合。双模态数据(即可见光图像和DSM数据)被用来详细说明所提出的FTransUNet,可见光图像被视为主要模态,而DMS数据则作为辅助模态,因为主要模态通常比辅助模态为地表分类提高更多的信息。
总体来说,这个网络框架也是一种编码器-解码器的结构,然后引入了自注意力机制、交叉注意力机制、残差网络,其他的就是对特征图的下采样和上采样。对图片的处理利用了两个ResNet分支结构,来分别提取可见光图像特征(VIS)和数字表面模型(DSM)的特征。每次下采样之后会通过SFF模块进行特征增强(特征图的拼接),经过四次下采样之后,将特征图展平(这里就和ViT的处理方式一样,其实我感觉前面的步骤除了SFF(浅特征融合)模块,其他的就和TransUNet的处理方式一模一样),然后将VIS和DSM展开后送入FViT处理,这里面包含了自注意力和交叉注意力,处理完之后就进行解码操作了,我还是觉得主要的变化全是在编码阶段,无论是跳连接还是解码操作和U-Net完全一样。

2.1 CNN融合

请添加图片描述
FTransNet在对图片处理阶段类似于TransUNet,它这里的输入分为了单通道的数字表面模型特征和可见光图片,对于每个分支来说,它通过四次卷积进行下采样,用于提取多尺度特征,特征图一次变为1/2、1/4、1/8,每次卷积操作后有一次SFF(浅特征融合),融合后的特征会被融合到下次的VIS中,并且还会通过跳连接,与解码阶段对应的特征图进行拼接融合。下面是SFF模块图示:
请添加图片描述
SFF模块就比较简单了,对VIS和DSM进行全局平均池化,然后是两个1*1的卷积,以及ReLU和Sigmoid函数,处理完之后,将来自VIS和DSM的特征经过加权并通过逐元素相加的方式融合,从而生成最终的浅层融合特征。

2.2 Fusion Vision Transformer

请添加图片描述
接着上面的下采样过程后,最后一次采样后的特征图进行了Embedding(这里是ViT里面的操作),传入到FViT中的特征图分别为xI(VIS)和yl(DSM),原文中是这么说的“ x l x_l xl y l y_l yl首先通过两个嵌入层和一个重塑操作进行标记化处理。嵌入层将输入的通道数从 C l C_l Cl改变为 C h i d C_{hid} Chid,随后重塑操作将嵌入层的输出战平为两个二维补丁序列,分别记为 z x 0 z_x^0 zx0 z y 0 z_y^0 zy0,其大小为 C h i d × L C_{hid} \times L Chid×L,其中 L = ( H × W ) / ( 2 I − 1 × 2 I − 1 ) L=(H \times W)/(2^{I-1} \times 2^{I-1}) L=(H×W)/(2I1×2I1)是序列长度。为了保留位置信息,特定的位置嵌入被添加到向量化补丁 z x 0 z_x^0 zx0 z y 0 z_y^0 zy0中。之后,标记 z x 0 z_x^0 zx0 z y 0 z_y^0 zy0被输入到FViT中”。简单来说就是下采样结束后将特征图进行PatchEmbedding,这里就是ViT中的操作。接下来是FViT中的具体操作:
在FViT中以此有有 N 1 N_1 N1个SA操作、 N 2 N_2 N2个Ada-MBA操作、 N 3 N_3 N3个SA操作,SA层是用于深层特征增强的自注意力层,Ada-MBA是用于深层特征融合,SA层用于融合特征增强。下图是SA和Ada-MBA的具体操作:请添加图片描述
这里的 z x n z_x^n zxn z y n z_y^n zyn分别为第 n n n层在VIS分支和DSM分支中的隐藏特征,其中 n ∈ { 1 , 2... , N 1 + N 2 + N 3 } n \in \{1,2...,N_1+N_2+N3\} n{ 1,2...,N1+N2+N3}(最开始我懵了一下,为什么 n n n的大小可以到 N 1 + N 2 + N 3 N_1+N_2+N_3

### 单层多级实现或解释 单层多级调度(Single-Level Multilevel Implementation)通常指的是操作系统中的进程调度策略之一。这种机制通过多个队列来管理不同优先级的任务,从而优化资源分配和提高系统性能[^2]。 #### 基本概念 在单层多级调度中,所有的任务被划分为不同的优先级类别,并放置到对应的队列中。每个队列可以采用独立的调度算法进行处理。例如,高优先级队列可能使用先来先服务(First Come First Served, FCFS),而低优先级队列则可能应用轮转法(Round Robin)。当某个队列为空时,调度器会自动切换至下一个较低优先级的队列继续执行任务[^2]。 #### 实现细节 以下是单层多级调度的一个典型实现方式: 1. **队列划分**: 将所有待处理的任务按照其重要性和紧急程度分成若干个等级,并分别放入相应的队列。 2. **时间片设置**: 对于每一个级别的队列设定特定的时间片长度。较高优先级的队列往往拥有更短但更为频繁的时间片,以便快速响应关键操作;而对于较不重要的后台作业,则给予较长却较少触发的机会去占用CPU周期。 3. **动态调整**: 如果某项工作未能在一个固定时间段内完成计算需求,则它可能会降级进入下一层更低优序别的等待序列里重新排队等候再次获得运行权限直到最终结束为止。 下面是一个简单的伪代码表示如何基于Python模拟这样的一个多级别反馈队列(Multilevel Feedback Queue): ```python class Process: def __init__(self, pid, burst_time): self.pid = pid self.burst_time = burst_time self.remaining_time = burst_time def round_robin(queue, time_quantum): current_time = 0 while any(proc.remaining_time > 0 for proc in queue): for i in range(len(queue)): if queue[i].remaining_time > 0: if queue[i].remaining_time <= time_quantum: current_time += queue[i].remaining_time print(f"Process {queue[i].pid} completed at time {current_time}") queue[i].remaining_time = 0 else: current_time += time_quantum queue[i].remaining_time -= time_quantum print(f"Time quantum expired for process {queue[i].pid}, remaining time={queue[i].remaining_time}") # Example usage processes = [Process(1, 10), Process(2, 5), Process(3, 8)] round_robin(processes, 2) ``` 此脚本展示了基本的轮询方法论应用于一组假定进程中所遵循的原则——即轮流给各个程序分配一定量的工作时段直至它们全部消耗完毕各自所需的总耗时为止。 尽管上述例子仅演示了一个单独层次上的循环安排过程,但在实际应用场景当中我们还可以进一步扩展成包含多层次结构的形式以适应更加复杂的情况下的负载均衡考量因素等等诸多方面的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值