双频Transformer网络:频域视角下的高光谱图像分类新范式 1. 项目概述从光谱空间到频率空间的思维跃迁高光谱图像分类这个听起来就充满技术感的领域本质上是一场关于“如何让机器看懂复杂世界”的探索。想象一下你手中有一张特殊的照片它不仅记录了物体在二维平面上的样子还为每一个像素点记录了上百个不同波长的光反射强度。这就好比给每个像素点做了一次“光谱CT扫描”生成了一条独一无二的光谱曲线。我的工作就是教会计算机如何根据这些海量的、高维的光谱“指纹”去识别这片土地上是小麦、玉米还是裸露的土壤是健康的森林还是遭受病害的树木。在过去很长一段时间里无论是传统的机器学习方法如支持向量机SVM还是后来兴起的卷积神经网络CNN大家的研究焦点都集中在两个维度空间域和光谱域。空间域关注像素之间的位置关系比如纹理、形状光谱域则分析每个像素点在不同波段上的强度变化。这就像我们看一幅画既看整体的轮廓和构图空间也看每一处色彩的细微差别光谱。然而我一直在思考一个问题我们是否遗漏了另一个理解图像的绝佳视角这个视角就是频域。频域分析是信号处理领域的基石。简单来说任何复杂的信号比如一段音频、一张图像都可以被分解为一系列不同频率的正弦波叠加。高频分量通常对应信号中快速变化的部分比如图像的边缘、纹理、噪声低频分量则对应信号中缓慢变化、平滑的部分比如图像的整体亮度、大块均匀区域。把这个概念迁移到高光谱图像上我意识到光谱曲线本身也是一种信号。一条复杂的光谱曲线其高频波动可能揭示了特定矿物的精细吸收特征而低频趋势则可能反映了地物的大类属性如植被、水体、人造建筑。传统的空间-光谱方法在处理这种嵌套的、多尺度的频率信息时往往力有不逮。因此我决定跳出固有的思维框架尝试从频域的角度重新审视高光谱图像分类问题。这不仅仅是换个“算法锤子”而是一种根本性的视角转换。我提出的双频Transformer网络DFTN其核心思想就是同时、显式地建模高光谱数据中的高频细节信息和低频结构信息并将两者有机融合从而构建出判别力更强的特征表示。这个想法听起来很直观但实现起来却需要精巧的设计以平衡模型的表达能力、计算效率以及对高光谱数据特性的适配性。2. 核心思路拆解为什么是“双频”与“Transformer”的结合在深入代码和实验细节之前我想先花些时间拆解一下这个项目的核心设计逻辑。这有助于理解每一个技术选择背后的“为什么”而不仅仅是“是什么”。2.1 为何选择频域视角首先我们必须正视高光谱数据的两个核心挑战高维性和复杂性。上百个波段带来了丰富的信息但也伴随着巨大的计算负担和“维度灾难”风险。更重要的是不同地物的光谱特征差异可能非常细微且受光照、大气、物候期等因素影响而存在大量类内差异和类间相似性。频域分析为我们提供了一个强大的降维和特征解耦工具。通过傅里叶变换我们可以将一条光谱曲线从“波长-反射率”空间转换到“频率-能量”空间。在这个新空间里高频成分对应光谱曲线的快速震荡部分。这可能是某种特定化学键的精细吸收峰例如在特定波长处植被叶绿素的吸收谷或者是由于微小空间结构如叶片间隙、矿物颗粒边界引起的散射特征。捕捉高频信息相当于抓住了区分相似地物的“微观指纹”。低频成分对应光谱曲线的整体趋势和缓慢变化。这反映了地物的宏观类别属性比如植被在近红外波段的高反射平台水体在可见光波段的吸收特性。捕捉低频信息相当于把握了地物的大类归属和整体结构。传统CNN通过局部卷积核也能隐式地学习到一些频率特征浅层网络对应高频边缘深层网络对应低频语义但这种学习是间接的、黑箱的。我们提出的DFTN则希望显式地、有指导地分离和强化这两种频率信息让模型的学习目标更加清晰。2.2 为何采用Transformer架构Transformer尤其是Vision TransformerViT在计算机视觉领域的成功关键在于其全局自注意力机制。它允许序列中的任何一个元素对于图像就是一个个图像块与所有其他元素直接交互从而建立长距离依赖关系。这对于理解图像的全局上下文至关重要。然而标准的全局自注意力机制计算复杂度高与序列长度的平方成正比且对所有位置“一视同仁”在捕捉局部高频细节方面并非最优。高光谱图像分类任务中局部邻域内的光谱-空间关联往往包含极强的判别信息比如作物行与土壤的边界。因此我们的设计哲学是扬长避短分而治之。对于低频全局信息我们确实需要Transformer的全局建模能力来理解整幅图像或大块区域的整体结构和光谱趋势。但为了效率我们不能直接用标准的、计算昂贵的多头自注意力MHSA。对于高频局部信息我们不需要全局交互更需要聚焦于局部窗口内的精细关联。标准的MHSA在这里是“杀鸡用牛刀”且可能引入不必要的全局噪声。这就引出了我们网络的核心模块——频域特征提取FDFE块。它采用双分支结构分别处理高、低频信息并针对各自特点进行了定制化设计。2.3 网络整体架构蓝图在动手实现之前我们需要一个清晰的顶层架构。DFTN的整体流程可以概括为以下几步我将其绘制成一个简单的流程图来帮助理解flowchart TD A[输入高光谱图像块] -- B[像素嵌入模块br1x1卷积 BN] B -- C[Stage 1: FDFE Block] C -- D[Stage 2: FDFE Block] D -- E[Stage 3: FDFE Block] subgraph C [FDFE Block 详解] C1[输入特征] -- C2{通道分割} C2 -- C3[高频分支 HiFE] C2 -- C4[低频分支 LoFE] C3 -- C5[多头邻域注意力 MHNA] C5 -- C6[前馈网络 FFN] C4 -- C7[全局滤波器块 GF] C7 -- C8[前馈网络 FFN] C6 -- C9[特征拼接] C8 -- C9 end E -- F[全局平均池化 GAP] F -- G[全连接层 FC] G -- H[分类结果输出]如图所示DFTN是一个三阶段的层级式网络。输入是一个以目标像素为中心的图像块例如11x11大小包含所有光谱波段。每个阶段都包含一个像素嵌入模块和一个FDFE块。特征图经过三个阶段通道数逐级减少例如64-32-16空间尺寸保持不变实现从低层到高层特征的抽象。最后通过全局平均池化和全连接层输出分类结果。这个设计借鉴了经典CNN和Transformer的层级思想确保模型能学习到多尺度的频域特征。3. 核心模块深度解析与实现细节有了清晰的蓝图接下来我们深入最核心的两个模块像素嵌入模块和频域特征提取块。我会结合代码片段和设计思考详细解释它们是如何工作的。3.1 像素嵌入模块为Transformer准备“语言”标准的Vision Transformer将图像切割成不重叠的块Patch然后通过一个线性投影层将每个块展平为一个向量Token。但对于高光谱图像分类我们通常处理的是以像素为中心的小块例如11x11其空间尺寸本身已经很小。如果再切割成更小的块会破坏宝贵的局部空间结构信息。因此我们没有采用传统的Patch Embedding而是设计了像素嵌入模块。它的目标是将原始的3D高光谱数据块P x P x B B为波段数转换成一个更适合Transformer处理的、具有更高维特征表示的3D张量P x P x C。实现要点1x1卷积层这是核心操作。一个1x1卷积层具有Ci个滤波器例如第一阶段C164沿着光谱维度进行卷积。它的作用是什么特征重组与升维它将原始的B个光谱波段的信息线性组合成Ci个新的“特征波段”。这相当于对原始光谱信息进行了一次可学习的编码提取出更紧凑、更具判别性的光谱特征。保持空间结构1x1卷积在空间上是点对点的操作不改变特征图的空间尺寸P x P完美保留了每个像素及其邻域的空间位置关系。批归一化Batch Normalization, BN在卷积后立即进行BN。这能加速训练收敛稳定梯度并带来一定的正则化效果。在高光谱数据中不同波段的值范围可能差异很大BN能有效缓解这一问题。代码示意PyTorch风格import torch import torch.nn as nn class PixelEmbedding(nn.Module): def __init__(self, in_channels, embed_dim): super().__init__() # 1x1卷积进行像素级嵌入 self.proj nn.Conv2d(in_channels, embed_dim, kernel_size1) # 批归一化 self.norm nn.BatchNorm2d(embed_dim) def forward(self, x): # x 形状: (B, Bands, H, W) x self.proj(x) # 输出: (B, embed_dim, H, W) x self.norm(x) return x实操心得这里in_channels就是输入高光谱图像的波段数Bembed_dim是设定的嵌入维度Ci。在实际调试中我们发现这个简单的设计比先展平再线性投影的方式效果更好因为它最大程度地保留了输入数据的空间拓扑信息这对于后续提取空间-频率特征至关重要。3.2 频域特征提取块双管齐下的特征工匠FDFE块是DFTN的灵魂。它的输入是像素嵌入模块的输出X_hat形状为(P, P, Ci)。其核心思想是将特征图在通道维度上一分为二分别送入高频分支和低频分支进行加工最后再将结果融合。第一步通道分割# 假设输入 X_hat 形状为 [batch_size, Ci, P, P] # 将其在通道维度上平均分成两份 split_dim Ci // 2 X_high X_hat[:, :split_dim, :, :] # 高频分支输入 X_low X_hat[:, split_dim:, :, :] # 低频分支输入这里有一个关键设计选择为什么是平均分割而不是自适应学习在初始版本中我们尝试过让网络自行学习分割比例例如通过注意力机制分配通道但发现这增加了不稳定性且容易导致某个分支退化。平均分割是一种简单、对称且有效的先验它强制两个分支都必须学习有用的特征。后续的消融实验也证明两个分支缺一不可。3.2.1 高频分支多头邻域注意力高频信息关乎局部细节。标准的全局自注意力MHSA会让每个像素与所有像素交互这虽然能建立全局联系但也会让局部细节被全局平均所“稀释”并且计算代价高昂。我们的解决方案是多头邻域注意力。其核心是在计算某个像素Query的注意力时只关注其在一个固定大小窗口例如3x3内的邻居像素Keys而不是全局所有像素。MHNA的计算过程生成Q, K, V与MHSA类似对输入X_high通过线性变换生成查询Q、键K、值V矩阵并分割成h个头。邻域注意力计算对于第i个头中的第μ个查询向量Q_i,μ我们只计算它与以它为中心的k个邻域内键向量K_i,μ,1 ... K_i,μ,k的相似度得分。加入相对位置偏置为了保留空间位置信息我们为邻域内的每个相对位置引入一个可学习的偏置B_i,μ,j加到注意力得分上。这告诉模型“左上角的邻居”和“右下角的邻居”是不同的。加权求和对注意力得分进行Softmax归一化得到权重然后对邻域内的值向量V_i,μ,1 ... V_i,μ,k进行加权求和得到该像素在该注意力头下的输出。多头合并将所有头的输出拼接起来再经过一个线性投影得到MHNA的最终输出。与MHSA的关键区别计算复杂度MHSA复杂度为O(N² * D)其中NP*P是像素总数。MHNA复杂度为O(N * k * D)其中k是邻域大小如9。当P11时N121计算量显著降低。感受野MHSA是全局感受野MHNA是局部感受野。后者更专注于挖掘局部窗口内像素间的精细关联这正是高频细节所在。代码示意简化版class MultiHeadNeighborhoodAttention(nn.Module): def __init__(self, dim, num_heads, window_size): super().__init__() self.num_heads num_heads self.window_size window_size self.scale (dim // num_heads) ** -0.5 # 定义QKV投影和输出投影 self.qkv nn.Linear(dim, dim * 3) self.proj nn.Linear(dim, dim) # 定义相对位置偏置表形状为 (2*window_size-1, 2*window_size-1, num_heads) self.relative_position_bias_table nn.Parameter(...) def forward(self, x): B, N, C x.shape # N P*P qkv self.qkv(x).reshape(B, N, 3, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4) q, k, v qkv[0], qkv[1], qkv[2] # 每个形状 [B, num_heads, N, head_dim] # 计算邻域注意力此处为简化示意实际需实现滑动窗口 # ... 复杂的窗口划分、相对位置索引计算、注意力掩码生成 ... attn (q k.transpose(-2, -1)) * self.scale attn attn relative_position_bias # 加上相对位置偏置 attn attn.softmax(dim-1) x (attn v) # 加权求和 # ... 窗口反转、拼接 ... x self.proj(x) return x注意事项MHNA的实现涉及复杂的窗口划分、循环或移位操作以确保覆盖所有像素。在实际编码中我们参考了Swin Transformer中的移位窗口机制但将全局自注意力替换为邻域自注意力。调试时需特别注意边界像素的处理以及确保计算的高效性。3.2.2 低频分支全局滤波器低频信息关乎全局平滑结构。我们既需要全局感受野又希望避免MHSA的平方复杂度。这里我们借鉴了“全局滤波器网络”的思想巧妙地在频率域进行全局操作。全局滤波器块的三步走空间域 - 频率域对输入特征X_low的空间维度H, W进行2D快速傅里叶变换FFT。由于输入是实值利用共轭对称性我们只需保留一半的频率分量即可恢复全部信息节省计算和存储。变换后得到复数特征X_low_freq。频域滤波我们定义了一个可学习的、与X_low_freq形状相同的复数全局滤波器G。这个滤波器在频率域与X_low_freq进行逐元素复数乘法。这一步是核心滤波器G的参数直接学习如何调制不同频率分量的幅度和相位从而有选择地增强或抑制特定的低频全局模式。这是一个参数效率极高的全局操作。频率域 - 空间域对滤波后的结果进行逆FFT变换回空间域得到处理后的特征。为什么高效标准MHSA需要学习Q、K、V和输出投影四个大矩阵参数量为4*D^2。我们的全局滤波器参数量仅为P * (P/2) * D因为利用了共轭对称。在高光谱任务中特征通道数D通常远大于空间尺寸P例如D32 P11因此全局滤波器的参数量远小于MHSA。FFT/逆FFT的计算复杂度为O(P^2 log(P))对于较小的P如11来说非常高效。代码示意import torch.fft class GlobalFilterBlock(nn.Module): def __init__(self, dim, spatial_size): super().__init__() # 初始化一个可学习的复数滤波器形状为 [spatial_size, spatial_size//21, dim] # 只需保留一半频率利用共轭对称性 self.complex_filter nn.Parameter(torch.randn(spatial_size, spatial_size//2 1, dim, 2) * 0.02) # 参数解释最后一个维度‘2’代表实部和虚部 def forward(self, x): # x 形状: [B, D, H, W] B, D, H, W x.shape x x.to(torch.float32) # FFT需要float32 # 1. 空间维度FFT (rfft2用于实输入自动利用共轭对称) x_fft torch.fft.rfft2(x, dim(2,3)) # 输出形状: [B, D, H, W//21] (复数) # 2. 频域滤波复数乘法 # 将可学习滤波器扩展到batch维度 weight torch.view_as_complex(self.complex_filter) # 转换为复数张量 x_fft_filtered x_fft * weight.unsqueeze(0) # [B, D, H, W//21] # 3. 逆FFT回到空间域 x_out torch.fft.irfft2(x_fft_filtered, s(H, W), dim(2,3)) # 输出形状: [B, D, H, W] return x_out实操心得全局滤波器块是模型的一个创新点。在训练初期我们发现直接使用未经初始化的复数滤波器容易导致训练不稳定。后来我们采用了一个小技巧用较小的标准差如0.02随机初始化滤波器的实部和虚部这相当于在频域初始化了一个接近“全通”的滤波器即所有频率分量几乎平等通过然后让网络根据任务需求去调整它。训练收敛更快效果也更稳定。3.2.3 分支融合与后续处理两个分支分别输出处理后的高频特征F_H和低频特征F_L它们的形状都是(P, P, D)。我们直接在通道维度上进行拼接Concat得到F Concat(F_H, F_L)形状恢复为(P, P, C_i)。每个分支内部都遵循Transformer编码器的经典结构注意力/滤波层 - 残差连接 - 层归一化 - 前馈网络 - 残差连接。层归一化LN放在注意力/滤波层和前馈网络之前有助于稳定训练。前馈网络FFN由两个点卷积1x1卷积层和一个GELU激活函数组成。点卷积在保持空间结构的同时进行通道间的信息融合与非线性变换。残差连接缓解深层网络梯度消失问题保留原始特征信息。4. 实验配置、调优与结果分析理论设计和代码实现之后最关键的一环是实验验证。我们选择了三个公开的高光谱数据集Pavia大学场景UP、休斯顿大学场景UH和特伦托大学场景UT。它们具有不同的空间分辨率、波段数量和地物类别能较好地检验模型的泛化能力。4.1 实验设置与调参细节硬件与框架实验在配备Nvidia V100 GPU的高性能计算平台上进行使用PyTorch深度学习框架。数据预处理归一化这是至关重要的一步。我们对每个光谱波段进行最小-最大值归一化将像素值缩放到[0, 1]区间。公式为X_norm (X - X_min) / (X_max - X_min)。这样做可以消除不同波段间量纲和数值范围的差异加速模型收敛。样本划分采用非重叠划分方式将带有真实标签的像素点按固定比例如UP数据集约10%训练90%测试划分为训练集和测试集。确保训练和测试样本在空间上不重叠能更真实地评估模型的泛化性能。图像块提取以每个中心像素及其标签为中心裁剪固定空间大小如11x11的立方体块作为网络输入。标签即为中心像素的类别。训练策略损失函数分类任务标配的交叉熵损失。优化器Adam优化器初始学习率设置为1e-3或1e-4具体根据数据集调整。学习率调度采用余弦退火Cosine Annealing或ReduceLROnPlateau策略。当验证集损失在连续多个epoch如10个不再下降时降低学习率。早停为了防止过拟合我们设置了早停机制。如果验证集损失连续50个epoch没有下降则停止训练并回滚到验证损失最低的模型 checkpoint。正则化除了BN和LN我们还使用了权重衰减Weight Decay通常设为1e-4以及Dropout在FFN中丢弃率设为0.1。批次大小根据GPU内存通常设置为64或128。避坑指南高光谱数据类别不平衡是常见问题。例如某些地物类别如道路的样本数可能远少于其他类别如植被。我们尝试过在损失函数中使用类别权重与类别样本数成反比但发现效果并不总是正向的有时会引入不稳定。更稳健的做法是在数据层面进行过采样或欠采样或者在评估时更关注平均精度AA而非单纯的整体精度OA。4.2 消融实验验证设计有效性任何新模型都需要通过严格的消融实验来证明其各个组件的必要性。我们设计了以下几组实验实验一双分支的必要性我们构建了两个变体模型DFTN-H只保留高频分支HiFE移除低频分支。DFTN-L只保留低频分支LoFE移除高频分支。在UP数据集上的结果对比如下模型整体精度 (OA)平均精度 (AA)Kappa系数DFTN (完整)94.14%93.25%92.12%DFTN-H (仅高频)92.95%91.88%90.67%DFTN-L (仅低频)91.06%89.71%88.34%结果分析完整DFTN的性能显著优于两个单分支变体证明了同时利用高、低频信息的有效性。高频和低频特征具有互补性。DFTN-H的性能优于DFTN-L。我们分析认为这可能与数据集的空间分辨率有关。UP数据集分辨率较高1.3米/像素包含更丰富的纹理和边缘细节高频信息因此高频分支贡献更大。这也提示我们在实际应用中可以根据数据特性微调两个分支的“权重”例如通过通道注意力机制。实验二FDFE块数量的影响我们测试了在三个阶段中分别使用1个和2个FDFE块堆叠的效果。结果发现使用1个块的效果略好于2个块。这可能是由于高光谱图像块本身尺寸较小11x11经过多层复杂变换后特征图的有效信息可能被过度压缩或扭曲反而容易导致过拟合。因此我们最终采用了“每个阶段一个FDFE块”的轻量级设计。实验三像素嵌入方式对比我们对比了标准像素嵌入1x1卷积与分组像素嵌入Grouped Convolution组数2。结果显示标准卷积在多数数据集上略胜一筹。分组卷积虽然减少了参数量但限制了卷积核感受野的范围可能损失了部分全局光谱关联信息。而标准卷积能跨所有输入通道进行融合学习到更丰富的特征表示。考虑到模型参数量本身不大我们选择了表达能力更强的标准卷积。4.3 频谱可视化看看模型学到了什么为了直观验证HiFE和LoFE分支是否真的如其名分别聚焦于高、低频信息我们对Stage 3输出的特征图进行了频谱分析。方法分别取出HiFE和LoFE分支输出的特征图例如最后4个通道。对每个通道的2D空间特征图进行2D傅里叶变换FFT得到其频率谱。对频率谱进行中心化将零频分量移到中心。计算幅度谱取模并进行可视化。观察结果以UP数据集为例HiFE分支特征图的频谱能量更多地分布在频谱图的外围区域即高频区域。颜色较浅表示幅度较大。这说明该分支提取的特征包含更多细节和快速变化的成分。LoFE分支特征图的频谱能量高度集中在频谱图的中心区域即低频区域。这说明该分支提取的特征确实以平滑的、全局的结构信息为主。这个可视化实验有力地证实了我们设计的双分支结构是成功的它们各自承担了不同的特征提取职责。4.4 与前沿方法的对比我们将DFTN与9个先进的对比方法进行了全面比较包括5个CNN模型3D-CNN SSRN 3DOC-SSAN SPRN FSKNet和4个Transformer模型SSTN SSFTT GAHT MorphFormer。定量结果关键指标OA摘要数据集最佳CNN模型精度最佳Transformer模型精度DFTN (Ours)精度UPSPRN91.43%GAHT92.40%94.14%1.74%UH3DOC-SSAN80.48%SSFTT85.21%86.92%1.71%UTFSKNet95.01%SSFTT95.56%96.72%1.16%分析全面领先DFTN在三个数据集的所有评价指标OA AA Kappa上均取得了最优结果证明了其综合优势。超越特定频域方法特别值得注意的是我们显著超越了同样专注于频域特征的CNN方法3DOC-SSAN在UH上领先6.44%。这凸显了Transformer架构在建模全局低频信息方面的优势其全局注意力在我们的LoFE分支中以全局滤波器形式实现比CNN的局部卷积更能有效地捕获长距离依赖。超越其他Transformer我们也超越了其他先进的Transformer变体如GAHT和MorphFormer。这表明我们显式分离并强化高、低频特征的设计是有效的比单纯在空间-光谱域使用注意力机制能学到更具判别力的表示。定性结果分类图 观察生成的分类地图可以发现DFTN的结果图中同类区域更均质不同类别的边界更清晰椒盐噪声明显更少。例如在UP数据集的“沥青路”和“裸土”交界处其他方法存在较多错分点而DFTN的边界保持得非常好。计算效率分析 我们对比了模型参数量和单张图像块的平均推理时间。DFTN的参数量仅为~0.5M远低于许多对比模型如SSFTT约4M推理时间也处于中游水平。这表明DFTN在保持高性能的同时具备了良好的轻量化和实用性潜力。4.5 小样本下的鲁棒性测试在实际遥感应用中带标签的训练样本往往非常稀缺。我们模拟了这一挑战性场景随机从原始训练集中抽取1% 3% 5% 7% 9%的样本作为新训练集进行实验。结论随着训练样本减少所有模型的精度都有所下降但DFTN的下降幅度相对较小且在多数情况下尤其是在UH和UT数据集上仍然保持性能领先。这证明了DFTN从频域提取的特征具有较好的鲁棒性和泛化能力即使在样本极少时也能学习到有效的特征表示。5. 总结、局限与未来展望回顾整个工作双频Transformer网络DFTN的核心贡献在于将频域分析的思想系统性地引入基于Transformer的高光谱图像分类框架。我们不是简单地将FFT作为预处理或后处理而是将其深度嵌入到网络的核心模块中通过多头邻域注意力MHNA和全局滤波器GF这两个定制化组件分别高效、精准地捕获了高频局部细节和低频全局结构。实验在多个数据集上验证了其有效性、高效性和鲁棒性。我个人在实际操作中的几点深刻体会视角转换的价值从空间-光谱域跳到频域是一次非常有益的思维突破。它迫使我们去思考数据更本质的数学特性而不仅仅是像素和波段。这种视角往往能催生出更简洁、更强大的模型结构。简单与有效的平衡DFTN中很多设计如通道平均分割、1x1卷积嵌入、固定大小的邻域窗口看起来都很简单甚至有些“粗暴”。但在复杂的深度学习模型中这种基于强先验的简单设计往往比复杂的自适应机制更稳定、更容易训练效果也出乎意料地好。先让模型在正确的轨道上运行再考虑精细化调整。可视化是理解模型的钥匙频谱分析的可视化不仅是为了论文的佐证更是我们在调试过程中理解模型行为、验证设计假设的关键工具。当你看到HiFE和LoFE的频谱图呈现出预期的分布时那种“设计被验证”的成就感是无与伦比的。当然这项工作也有其局限性这也指明了未来的改进方向高、低频通道的固定划分目前我们简单地将通道数对半拆分。但不同的高光谱场景如城市、农田、森林对高、低频信息的依赖程度可能不同。一个更优雅的方案是引入一个轻量的门控或注意力机制让网络根据输入内容自适应地决定分配给高、低频分支的通道比例或特征权重。邻域大小的选择MHNA中的邻域窗口大小如3x3是一个超参数。对于不同空间分辨率的图像最优的窗口大小可能不同。未来可以探索多尺度邻域注意力或者在网络中自适应地学习每个像素的邻域范围。更高效的频域操作虽然全局滤波器已经很高效但对于更大的图像块或更高维的特征FFT/逆FFT的计算仍可优化。可以探索使用可学习的离散余弦变换DCT基或其他正交变换来近似或替代FFT进一步降低计算成本。高光谱图像分析是一个充满魅力的领域频域与Transformer的结合才刚刚打开一扇门。希望DFTN的设计思路能给大家带来一些启发也期待与同行们一起在这个方向探索出更多有趣且实用的成果。