【多光谱与高光谱图像融合:金字塔混洗Transformer】

PSRT: Pyramid Shuffle-and-Reshuffle Transformer for Multispectral and Hyperspectral Image Fusion

(PSRT:用于多光谱与高光谱图像融合的金字塔混洗Transformer)

Transformer在计算机视觉中受到了很多关注。由于Transformer具有全局自关注特性,其计算复杂度与令牌数成二次关系,限制了其实际应用。因此,计算复杂度的问题,可以有效地解决通过在较小的固定尺寸窗口的组中计算自注意。在这篇文章中,我们提出了一种新的金字塔Shuffle-and-Reshuffle Transformer(PSRT)的任务,多光谱和高光谱图像融合(MHIF)。考虑到遥感图像中不同斑块之间的强相关性和高相似性斑块之间的互补信息,我们设计了Shuffle-and-Reshuffle(SaR)模块,以有效的方式考虑全局补丁之间的信息交互。此外,使用基于窗口自注意的金字塔结构,支持细节提取。在四个广泛使用的基准数据集上进行的大量实验表明,与几种最先进的方法相比,所提出的PSRT具有一些参数的优越性。

INTRODUCTION

多光谱与高光谱图像融合(MHIF)是计算机视觉中涉及高光谱分辨率高光谱数据的经典任务。其由于某些物理约束而具有有限的空间分辨率。MHIF旨在通过融合高分辨率多光谱图像(HR-MSI)和低分辨率高光谱图像(LR-HSI)来生成高分辨率高光谱图像(HR-HSI)。这些结果可以用于对象识别,分类和分割。尽管最近已经做出了许多努力,但针对手头问题的高效技术的设计仍然是一项具有挑战性的任务。
卷积神经网络(CNN)由于其高精度而在计算机视觉领域大放异彩。虽然卷积运算已被广泛分析和利用,但众所周知的缺点包括卷积核中的冗余和空间不可知。特别地,卷积核在图像的不同位置中被共享。因此,结果是区域独立的,导致难以在特征图中捕获长距离依赖性。最近,Transformers在许多计算机视觉领域都表现良好,主要是因为它们具有强大的能力来表征对MHIF至关重要的长距离关系。
一个Transformer已被广泛使用的建模图像中的非局部关系的目的。在之前的工作中,视觉Transformer(ViT)考虑在自然语言处理(NLP)中使用变换器进行图像分类。它将图像分成固定大小的块,然后将它们嵌入到线性层中。与NLP中Transformer的处理类似,补丁被视为令牌,然后对补丁执行自注意机制。ViT的分层框架启发了Transformer在计算机视觉领域的使用。与ViT相比,pyramid vision Transformer(PVT)引入了用于分割和对象检测的金字塔结构。通过这种方式,PVT可以在密集预测任务中用作骨干,例如CNN。最近,Swin Transformer显示出巨大的潜力和高效率。与PVT类似,Swin Transformer也采用了分层设计,包括四个阶段。与[19]类似,为了扩展CNN中的感受野,每个阶段都会降低特征图的分辨率。Swin Transformer中的窗口自关注使模型能够处理大尺寸图像。Shifted Window操作在每个独立窗口之间建立了一个长范围的依赖关系,而掩蔽则在不改变原有方法的情况下实现了对不规则窗口的注意力计算。高级计算机视觉任务的发展也导致了低级任务的创新。事实上,使用Swin Transformer(SwinIR)的图像恢复借用了Swin Transformer的结构,在低级任务中实现了具有竞争力的性能,例如图像超分辨率,图像去雨,图像去噪和JPEG压缩。SwinIR充分利用Swin Transformer的优势,设计了用于深度特征提取的级联块。
在这篇文章中,我们介绍了金字塔Shuffle-and-Reshuffle Transformer(PSRT),一个新的阶段到阶段的层次框架MHIF设计一种新的方式进行信息交互。综上所述,本文的贡献如下。
1)我们提出了所谓的PSRT MHIF的任务,结合Shuffle-and-Reshuffle(SaR)策略和多尺度特征提取学习本地和更远的表示,并减少计算量相比ViT。
2)自定义的SaR策略可以在不同的窗口之间传播信息,提高建模的长距离依赖的效率。此外,窗口金字塔结构的设计可以捕获不同粒度(分辨率)的特征,以合适的方式恢复MHIF的详细信息。
3)我们在四个常用的数据集上证明了所提出的方法的性能,即,Chikusei,哥伦比亚Imaging and Vision Laboratory(CAVE),哈佛和Pavia。结果表明,该方法可以达到国家的最先进的性能与较少的参数。

RELATED WORKS

CNNs and MHIF

最近解决MHIF任务的尝试通常基于CNN的使用。空间-光谱重建网络(SSRNet)[53]提出了一种物理直接CNN模型,分别为空间和光谱重建设计了两个损失函数。残差机制[54]被广泛用于优化网络结构,残差双流融合网络(ResTFNet)等方法利用它来避免深度网络引起的模型退化。多光谱和高光谱融合网络(MHFNet)采用卷积扩展优化算法来获得新的网络,目的是提高可解释性。模型引导(MoG)-深度卷积网络(DCN)采用了U-Net DCN,它可以利用HSI的多尺度依赖性。在MoG展开之后,使用基于DCN的去噪器对整个网络进行端到端训练。高光谱超分辨率网络(HSRNet)利用通道注意力[59]和空间注意力模块从不同维度提取信息。虽然CNN是一个强大的结构,但Transformers的使用被证明对计算机视觉有很大的潜力。

Self-Attention in MHIF

Transformer的核心模块是自我注意机制。与CNN中的卷积操作不同,自注意机制理论上可以无限扩展感受野,从而将不同的补丁相互关联。然而,以像素到像素的方式将自注意力直接应用于特征图导致计算负担的急剧增加。ViT巧妙地将特征图分割成固定大小的补丁,线性嵌入每个补丁,并将结果向量的序列馈送到标准的Transformer编码器。PVT继承了CNN和Transformer的优点,为各种视觉任务制作了统一的主干,直接取代CNN主干。PVT与ViT不同,因为它可以在图像的密集分区上进行训练以实现高分辨率输出,并且它利用阶段到阶段的结构来减少计算。在tokens-to-token(T2 T)-ViT 中,已经开发了用于ViT的新的令牌化,其中通过拼接来进一步处理相邻的令牌,以达到聚合信息和减少参数的目的。此外,研究人员还尝试将Transformer应用于低级别任务。例如,SwinIR方法依赖于用于图像恢复的鲁棒模型,其中Swin Transformer的结构已被直接用于构建用于深度特征提取的Transformer块

Shuffle-Wise Operation

近年来,如[62]和[63]中的作品解决了通过Shuffle操作创建跨窗口连接的问题。为了更容易理解,假设输入是1-D序列以保持一般性,并且考虑具有M的窗口大小和N个令牌的输入的基于窗口的自注意。Shuffle Transformer首先使用selfattention,将空间输入重塑为[M和(N/M)],转置,然后将其平坦化以将其作为基于窗口的selfattention的输入。这种类型的操作可以实现远程跨窗口连接,它将来自多个窗口的令牌分组。用于语义分割的对象上下文(OCNet)基于两个阶段,即,局部和全局,以实现跨窗口连接。第一阶段使用基于窗口的自注意来处理局部信息,而另一阶段将输入空间重塑为[(N/M)和M],转置,然后将其平坦化以将其作为基于窗口的自注意的输入。后一种方法显示了一个关键的缺陷;也就是说,如果第一层中的窗口尺寸M小,则窗口的数目(N/M)相当高。

Motivation

在HSI内有许多相似的斑块,它们都密切相关。通过ViT模型,不同位置的面片可以相互关联,达到恢复图像细节的目的,但该方法的计算量与输入成二次关系。窗口自注意的方法解决了高计算量的问题,但限制了对长距离依赖性建模的能力。在这里插入图片描述
(Fig.1 实线将平面分成几个固定大小的窗口,而点网格用于将原始窗口分成四个相等的部分。蓝色块表示窗口中内容的四分之一,例如,它有2 × 2个令牌。(a)应用于Swin Transformer [1]的移位窗口方法将蓝色块移动到相邻窗口。(b)对PSRT块进行Shuffle操作进行相似度计算,将不同窗口的蓝色块聚集到一个窗口中,通过窗口自关注实现局部信息向全局区域的传播。)

Swin Transformer通过以下步骤解决了这些问题:1)将原始窗口移动半个窗口大小以得到新窗口;并且,在图像边界处,将一些新生成的窗口与原来的四分之一和二分之一窗口组合;2)利用掩模操作来独立地计算原始四分之一和半窗口的自注意;以及3)重新移位所计算的窗口。在图1(a)中,我们可以观察到,在移位和掩蔽操作之后,靠近图像边界的窗口的尺寸变得更小。因此,掩模迫使注意力矩阵的一部分为负数,导致对于位于图像边界处的窗口的不充分的自注意力计算。这个问题削弱了图像边界处的信息交互,从而激励我们通过所提出的SaR策略(其不使用任何掩模来实现全局注意)来改进Swin Transformer。图1(b)示出了在使用所提出的SaR策略之后的窗口的状态。通过按照给定的规则对平面进行洗牌,然后执行窗口自注意,可以实现长距离连接,从而以快速的方式获得全局相关性。多尺度设计对MHIF至关重要,窗口注意力是Swin Transformer的最大优势。因此,我们开发了多尺度窗口注意力(即,给定的PSRT块),以丰富特征并产生更好的信息交互。

METHODOLOGY

Overview在这里插入图片描述

如示于图2,PSRT遵循常用的分层架构,其级联HR-MSI和LR-HSI的上采样版本,并且整个架构学习LR-HSI的上采样版本和地面真值(GT)之间的残差。第一卷积层提取浅层特征并提升通道数量。然后,我们使用PSRT块提取深度信息,其中每个PSRT块具有一个减小的窗口大小的自我注意,以提取不同尺度的信息。最后,卷积层被用作解码器来合并信息。通过将LR-HSI的上采样版本添加到输出来获得结果。

Window Self-Attention

Transformer的特点是建立了令牌间的长距离依赖关系,能够有效地描述全局相关性。对于一幅图像,我们通常会取一个4 × 4的补丁作为令牌,然后将其输入到注意力机制中进行计算。虽然这在一定程度上缓解了计算问题,但它没有解决由于使用原始大小作为输入而导致这种方法昂贵的问题。为了解决这个问题,我们将输入图像划分为空间维度上的较小的非重叠窗口(即,Swin Transformer);然后,我们在每个窗口中实现对令牌的自注意以进行高效计算。窗口自关注可以表示如下:在这里插入图片描述
从第i个键到第j个键的查询的关注结果被标记为δi-j,Vj是第j个令牌的值,并且δi-j通过经由点积、沿着行的softmax函数和缩放因子计算Qi和Kj之间的余弦值来获得。通过这种方式,自我注意的复杂性降低,并且它允许模型获得处理大尺寸特征图的能力,并且可以以局部方式表达原始令牌。

SaR Strategy在这里插入图片描述

1) Shuffle Operation: 本节介绍Shuffle操作,它由两部分组成,即,水平随机Shuffle和垂直随机Shuffle。两个混洗操作的细节在图3中的流程图中描绘。更具体地,空间域中的水平混洗可以由以下等式描述:在这里插入图片描述
为了简单起见,我们将平面标记为V ∈ RH×W,并且将平面中的令牌标记为V~i j~ ∈ R H ∗ W R^{H*W} RHW,i ∈ {1,2,…,H},j ∈ {1,2,…,W}。在上面的公式中,d是Shuffle的长度,其值是(win_size/2),并且在上面的等式中,Spliceh用于水平合并组Gk。然后,我们将V分成(W/d)个群,记为Gk,k ∈ {1,2,…,(W/d)}。该操作如图3(左上角)所示。然后,我们在平面V上执行Shuffle操作,并且该操作的结果如图3(右上角)所示。在得到水平混洗结果Vs之后,我们沿着垂直方向利用与Vs类似的策略来产生最终混洗结果;见图3的第二行。
2) Reshuffle Operation: 我们对混洗的令牌执行窗口自注意,并通过Reshuffle操作反转所获得的结果,其中仍然包含水平和垂直方向。具体操作见图4,并且表征沿着水平方向的算子的方程如下:在这里插入图片描述
其中Vs表示已经被混洗的平面。根据图4,我们首先将Vs分成(W/d)个群,记为Gk,k ∈ {1,2,…,(W/d)},并且通过(8)重排Vs的列以得到V,然后在垂直方向上应用重排操作。Reshuffle的操作是Shuffle的逆操作。通过在Shuffle和Resuffle之间添加窗口自注意,可以扩展原本受窗口限制的感受野。
在这里插入图片描述

PSRT Block

在本节中,我们将详细介绍作为一个模块添加到主网络架构的PSRT模块。在这项工作中使用的金字塔结构与阶段到阶段的结构不同,例如PVT和Swin Transformer 。我们的PSRT块具有图5(a)所示的窗口金字塔结构。不难看出,窗口的大小逐阶段减小以创建多尺度窗口。在PSRT块中,窗口的大小在每个阶段是固定的,并且每个窗口独立于其他窗口。前一级的输出用作下一级的输入。同时,窗口的大小减少到前一阶段的一半。具体地,PSRT块由三个阶段组成,以分层的方式通过多尺度窗口提取不同的信息,以恢复局部细节。特别地,在第一阶段中,输入特征的大小为H × W× C,并且窗口的大小为W1 × W1(W1等于8)。当特征到达最后一级时,窗口的大小衰减到(W1/4)×(W1/4),但特征的形状保持不变。多尺度设计对MHIF很重要,窗口注意力是Swin Transformer的最大优点。因此,我们设计了一个独特的模型。我们开发了多尺度窗口注意(即,所提出的PSRT块)的灵感来自于经典的金字塔结构,以提供更大的感受野和丰富的特征,从而产生更好的信息交互。

One Stage in PSRT Block在这里插入图片描述

在非重叠窗口中使用自注意被视为局部信息的融合。为此,我们为PSRT块的每个阶段设计了一个类似汉堡包的结构。PSRT块中的一个阶段包含三个窗口自注意层,其在图5(b)中示出。每个阶段主要由一个窗口多头自注意(W-MSA)模块,一个多层感知器(MLP),和两个LayerNorm(LN)层。第二个块中的S代表Shuffle,第三个块中的R表示在W-MSA模块之前考虑Reshuffle。此外,非线性(即,高斯误差线性单元(GELU))和残差连接在每个阶段中被利用。更具体地说,我们有以下内容:在这里插入图片描述
其中W-MSA是基于窗口的自注意; z l − 1 z^{l-1} zl1是前一级的输出; z l z^{l} zl z l + 1 z^{l+1} zl+1 z l + 2 z^{l+2} zl+2代表每个阶段的结果。我们将“窗口自我注意+ Shuffle +窗口自我注意+Resuffle+窗口自我注意”基线作为PSRT块的一个阶段。首先对混洗后的窗口进行自注意,以构建不同窗口之间的全局依赖关系。然后对重排后的窗口进行自注意,在一个窗口中构造局部依赖关系。通过上述两种SaR策略,实现了不同窗口间的信息传播。
整个网络架构如图2所示。

Loss Function

  1. L1 Loss:我们以逐像素方式计算网络输出IMHIF和GT IHR之间的L1距离在这里插入图片描述
  2. SSIM Loss:结构相似度(SSIM)可以比较IMHIF和IHR之间的结构差异,包括亮度对比度函数和结构对比度函数。SSIM函数定义如下:在这里插入图片描述
    整体损失函数:我们以统一和端到端的方式优化网络的参数。总损失函数由两个损失的加权和组成在这里插入图片描述
<think>嗯,用户想了解高光谱图像重建的技术、实现方法和算法。根据提供的引用,我需要先理解高光谱图像重建的基本概念和应用场景。高光谱图像重建是通过多光谱图像(MS)来生成高分辨率的高光谱图像(HSI),这样可以降低成本,提高空间分辨率。 首先,用户的问题涉及技术、方法和算法。引用中提到的SPECAT和PSJN是两个主要的方法。SPECAT使用了注意力机制,比如CAB模块,来提高重建效率,同时减少参数和计算量。而PSJN则是通过空间-光谱联合网络,渐进式地提取特征。需要比较这两种方法的优缺点,以及它们的应用场景。 接下来,我需要考虑如何将这些方法的技术细节用中文清晰地表达出来。比如,SPECAT的Mask-guided Spectral-wise Transformer和CAB模块的作用。还有PSJN的模块组成,比如二维空间特征提取、三维渐进式特征构造,以及网络更新机制。 用户可能还想知道具体的实现步骤,比如数据准备、模型构建、训练策略等。可能需要提到使用的框架,比如PyTorch或TensorFlow,以及如何处理HS-MS数据集。此外,优化方法如学习率调整、损失函数设计也是关键点。 还需要注意引用文献中的关键贡献,比如SPECAT首次达到40 dB PSNR,参数减少,这对用户来说可能是重要的性能指标。而PSJN在多个数据集上的有效性验证也是需要强调的。 可能用户的实际需求是实现这些算法,因此需要提供一些代码示例或伪代码,但根据系统指令,数学公式要用$...$,独立公式用$$...$$。例如,光谱响应模型可以写成数学公式,帮助理解。 另外,用户可能对如何选择模型结构、数据预处理、调参等实际操作有疑问,这些问题需要在相关部分进行解答,或者生成相关问题供用户进一步探索。 最后,确保回答结构清晰,分点说明关键技术、算法流程、实现步骤,以及相关的问题,帮助用户逐步理解和应用高光谱重建技术。</think>### 高光谱图像重建技术实现方法详解 高光谱图像重建技术通过**多光谱图像(MS)的光谱扩展**生成高分辨率高光谱图像(HSI),核心挑战在于恢复光谱细节并保持空间一致性。以下从技术原理、主流算法及实现步骤展开说明。 --- #### 一、关键技术原理 1. **光谱响应建模** 基于光学滤波器的快照式成像系统模型可表示为: $$ Y = HX + N $$ 其中$Y$为观测的多光谱图像,$H$为光谱响应矩阵,$X$为目标高光谱图像,$N$为噪声[^2]。 2. **空间-光谱联合优化** 需同时提取二维空间特征(如边缘、纹理)和三维光谱特征(如波段间相关性),通过渐进式融合提升重建精度[^3]。 --- #### 二、主流算法实现 ##### 1. **SPECAT(Mask-guided Spectral-wise Transformer)[^1]** - **核心创新** - **光谱注意力块(CAB)**:通过非局部注意力机制捕获跨波段的长程依赖 $$ \text{Attention}(Q,K,V) = \text{Softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V $$ 其中$Q,K,V$为查询、键、值矩阵,$d_k$为维度缩放因子。 - **掩膜引导机制**:动态调整光谱权重,聚焦关键波段 - **代码实现框架(PyTorch伪代码)** ```python class CAB(nn.Module): def __init__(self, channels): super().__init__() self.conv = nn.Conv3d(channels, channels, kernel_size=1) self.attn = nn.MultiheadAttention(channels, num_heads=4) def forward(self, x): b, c, d, h, w = x.shape x_flat = x.view(b, c, -1).permute(2, 0, 1) # (h*w*d, b, c) attn_out, _ = self.attn(x_flat, x_flat, x_flat) return self.conv(attn_out.permute(1, 2, 0).view(b, c, d, h, w)) ``` ##### 2. **PSJN(渐进式空间-光谱联合网络)[^3]** - **三阶段架构** 1. **2D空间特征提取**:使用CNN提取浅层空间特征 2. **3D渐进式特征构造**:金字塔结构逐步融合相邻波段 $$ F_{out} = \text{Conv3D}(F_{in} \oplus F_{prev}) $$ 其中$\oplus$表示特征拼接 3. **谱后处理模块**:通过反卷积恢复高频细节 - **实现要点** - 使用U-Net作为骨干网络 - 引入动态权重更新机制:对重建误差大的样本增加训练权重 --- #### 三、实现步骤指南 1. **数据准备** - 数据集:使用CAVE、Harvard HS-MS等公开数据集 - 预处理: - 归一化到$[0,1]$ - 生成模拟MS图像(通过光谱降维) 2. **模型构建(以SPECAT为例)** ```python class SPECAT(nn.Module): def __init__(self, in_channels=3, out_channels=31): super().__init__() self.encoder = nn.Sequential( nn.Conv2d(in_channels, 64, 3, padding=1), nn.ReLU(), CAB(64) ) self.decoder = nn.Conv3d(64, out_channels, (1,3,3), padding=(0,1,1)) def forward(self, x): x = self.encoder(x) # (b,64,h,w) x = x.unsqueeze(2).repeat(1,1,31,1,1) # 扩展为(b,64,31,h,w) return self.decoder(x) ``` 3. **训练策略** - 损失函数: $$ \mathcal{L} = \lambda_1 \text{MSE} + \lambda_2 \text{SSIM} + \lambda_3 \text{光谱角损失} $$ - 优化器:Adam(lr=1e-4,β=(0.9,0.999)) - 数据增强:随机旋转、翻转、添加高斯噪声 --- #### 四、性能优化方向 1. **计算效率提升** - 通道剪枝:移除冗余的注意力头 - 知识蒸馏:用大模型指导轻量模型训练 2. **精度改进** - 引入物理先验:将光谱响应矩阵$H$编码到网络结构中 - 多尺度融合:在浅层/深层特征间建立跳跃连接 --- §§ 相关问题 §§ 1. 如何评估高光谱重建质量?常用指标有哪些? 2. 在计算资源有限时,如何实现实时高光谱重建? 3. 如何处理实际场景中的光谱畸变问题? 4. 基于深度学习的方法传统稀疏编码方法有何本质区别? [^1]: SPECAT算法首次在模拟基准测试中实现40 dB平均PSNR,参数减少50%以上 [^2]: 快照成像系统模型是光谱重建的物理基础 : PSJN通过渐进式特征构造提升跨波段相关性建模能力
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值