凡科建站怎么导出,营销网站建设的目的,小熊源码网,页面设计理念0 论文信息
论文标题: MFmamba: A Multi-function Network for Panchromatic Image Resolution Restoration Based on State-Space Model中文标题#xff1a;MFmamba#xff1a;基于状态空间模型的全色图像分辨率恢复多功能网络论文链接论文代码论文出处#xff1a;AAAI
0…0 论文信息论文标题: MFmamba: A Multi-function Network for Panchromatic Image Resolution Restoration Based on State-Space Model中文标题MFmamba基于状态空间模型的全色图像分辨率恢复多功能网络论文链接论文代码论文出处AAAI0 引言遥感图像在军事、资源勘探等领域应用广泛但单一传感器难以同时获取高空间分辨率和高光谱分辨率的图像。全色PAN图像空间分辨率高但为灰度多光谱MS图像色彩丰富但空间分辨率低。现有方法通常将图像超分辨率Super-Resolution, SR与图像着色作为独立任务处理前者无法提升光谱信息后者无法提升空间细节而全色锐化等融合方法又需要配准的图像对作为输入。为解决这一困境本文提出了一种名为 MFmamba 的多功能网络。该网络构建于 UNet 架构之上创新性地集成状态空间模型State-Space Model旨在仅通过单张 PAN 图像输入实现超分辨率、光谱恢复即着色、以及二者联合的高质量图像复原。本文的主要贡献在于设计了基于 Mamba 的高效上采样模块MUB提出了用于浅层特征提取的多尺度混合交叉块MHCB并引入双池化注意力机制DPA以优化特征表示从而在一个统一框架内高效协同地完成多项分辨率复原任务。1 Motivation技术痛点现有方法无法同时解决 PAN 图像的空间分辨率提升与光谱分辨率恢复问题超分与彩色化技术相互独立pansharpening 需双输入且不支持超分难以满足实际遥感应用需求。性能缺陷传统 CNN、Transformer 或扩散模型 - based 方法存在细节特征提取不足、颜色失真、计算效率低等问题无法兼顾多任务性能与运行速度。需求导向遥感图像在军事、资源勘探、城市规划等领域应用广泛亟需一种单输入、多功能、高精度的分辨率恢复方案简化数据处理流程。2 创新点3.1 多尺度混合交叉块 (MHCB)核心功能: 作为网络的初始特征提取单元旨在高效捕获输入图像的局部细节和多尺度上下文信息。该模块并行设置了多个不同感受野的卷积路径。具体而言它同时使用 3x3 卷积和 5x5 卷积分别提取局部和全局特征并结合残差连接增强信息流。随后通过 1x1 卷积对不同尺度的特征进行融合并再次进行多尺度提取与融合从而强化关键特征的持久性。其核心计算过程如下{ X 1 ReLU ( 3 × 3 Conv ( X ) ) ⊕ X , X 2 ReLU ( 5 × 5 Conv ( X ) ) ⊕ X , \begin{cases} X_1 \text{ReLU}(3 \times 3\text{Conv}(X)) \oplus X, \\ X_2 \text{ReLU}(5 \times 5\text{Conv}(X)) \oplus X, \end{cases}{X1ReLU(3×3Conv(X))⊕X,X2ReLU(5×5Conv(X))⊕X,X 3 1 × 1 Conv ( Concat ( X 1 , X 2 , X ) ) , X_3 1 \times 1\text{Conv}(\text{Concat}(X_1, X_2, X)),X31×1Conv(Concat(X1,X2,X)),{ X 4 ReLU ( 3 × 3 Conv ( X 3 ) ) , X 5 ReLU ( 5 × 5 Conv ( X 3 ) ) , \begin{cases} X_4 \text{ReLU}(3 \times 3\text{Conv}(X_3)), \\ X_5 \text{ReLU}(5 \times 5\text{Conv}(X_3)), \end{cases}{X4ReLU(3×3Conv(X3)),X5ReLU(5×5Conv(X3)),MHCB out 1 × 1 Conv ( ( Concat ( X 3 , X 4 , X 5 ) ) ⊕ X , \text{MHCB}_{\text{out}} 1 \times 1\text{Conv}((\text{Concat}(X_3, X_4, X_5)) \oplus X,MHCBout1×1Conv((Concat(X3,X4,X5))⊕X,优势相比单一尺寸的卷积核MHCB能够同时关注不同范围的图像信息有效提升了模型对复杂细节的提取能力并利用密集的残差分组设计保证了梯度在网络中稳定传播。importtorchimporttorch.nnasnnfrommodelimportnet_commonascommonclassMDCB(nn.Module):def__init__(self,ch_in,ch_out,biasTrue,activationnn.ReLU(inplaceTrue)):super(MDCB,self).__init__()kernel_size_13kernel_size_25self.conv_3_1common.default_conv(ch_inch_in,ch_outch_in,kernel_sizekernel_size_1,biasbias)self.conv_3_2common.default_conv(ch_inch_out,ch_outch_out,kernel_sizekernel_size_1,biasbias)self.conv_5_1common.default_conv(ch_inch_in,ch_outch_in,kernel_sizekernel_size_2,biasbias)self.conv_5_2common.default_conv(ch_inch_out,ch_outch_out,kernel_sizekernel_size_2,biasbias)self.confusion_3nn.Conv2d(ch_in*3,ch_out,1,padding0,biasTrue)self.confusion_5nn.Conv2d(ch_in*3,ch_out,1,padding0,biasTrue)self.confusion_bottlenn.Conv2d(ch_in*3ch_out*2,ch_out,1,padding0,biasTrue)self.activationactivationdefforward(self,x):input_1x output_3_1self.activation(self.conv_3_1(input_1))output_3_1x output_5_1self.activation(self.conv_5_1(input_1))output_5_1x input_2torch.cat([input_1,output_3_1,output_5_1],1)input_2_3self.confusion_3(input_2)input_2_5self.confusion_5(input_2)output_3_2self.activation(self.conv_3_2(input_2_3))output_5_2self.activation(self.conv_5_2(input_2_5))input_3torch.cat([input_1,output_3_1,output_5_1,output_3_2,output_5_2],1)outputself.confusion_bottle(input_3)returnoutput3.2 双池化注意力 (DPA)Dual Pool AttentionDPA采用自适应全局平均池化与最大池化双分支动态调整通道权重聚焦关键特征通道提升特征表示能力。核心功能用于替代UNet中的标准跳跃连接旨在通过动态调整通道权重来优化特征传递使模型能聚焦于更重要的特征通道。实现逻辑DPA采用双池架构进行通道特征校准。它并行使用自适应全局平均池化Adaptive Average Pooling和最大池化Maximum Pooling压缩全局空间信息生成两个不同的通道描述符经Sigmoid函数激活后生成两组通道权重分别与输入特征相乘最后将两个加权特征图相加得到最终输出。核心计算过程{ A s q 1 AP ( i , j ) 1 H × W ∑ h 1 H ∑ w 1 W X h , w , c , A s q 2 MP ( c , j ) max p , q ∈ { 1 , . . . , h } X p , q , c \begin{cases} A_{sq1} \text{AP}(i,j) \frac{1}{H \times W} \sum_{h1}^{H} \sum_{w1}^{W} X_{h,w,c}, \\ A_{sq2} \text{MP}(c,j) \max_{p,q \in \{1,...,h\}} X_{p,q,c} \end{cases}{Asq1AP(i,j)H×W1∑h1H∑w1WXh,w,c,Asq2MP(c,j)maxp,q∈{1,...,h}Xp,q,c{ A e x 1 sigmoid ( A s q 1 ) , A e x 2 sigmoid ( A s q 2 ) \begin{cases} A_{ex1} \text{sigmoid}(A_{sq1}), \\ A_{ex2} \text{sigmoid}(A_{sq2}) \end{cases}{Aex1sigmoid(Asq1),Aex2sigmoid(Asq2)DPA out ( X ⊙ A e x 1 ) ⊕ ( X ⊙ A e x 2 ) \text{DPA}_{\text{out}} (X \odot A_{ex1}) \oplus (X \odot A_{ex2})DPAout(X⊙Aex1)⊕(X⊙Aex2)优势传统注意力机制常单独用平均池化DPA额外引入最大池化能更好捕捉特征图中显著、高激活度的信息如边缘和纹理与平均池化关注的全局平滑信息互补实现更全面的特征信息保留和增强。importtorchimporttorch.nnasnnclassMulti_SEAttention(nn.Module):def__init__(self,in_planes,reduction16):super(Multi_SEAttention,self).__init__()self.avg_poolnn.AdaptiveAvgPool2d(1)self.max_poolnn.AdaptiveMaxPool2d(1)self.fc1nn.Sequential(nn.Linear(in_planes,in_planes//reduction,biasFalse),nn.ReLU(inplaceTrue),nn.Linear(in_planes//reduction,in_planes,biasFalse),nn.Sigmoid())self.fc2nn.Sequential(nn.Linear(in_planes,in_planes//reduction,biasFalse),nn.ReLU(inplaceTrue),nn.Linear(in_planes//reduction,in_planes,biasFalse),nn.Sigmoid())defforward(self,x):b,c,_,_x.size()yself.avg_pool(x).view(b,c)yself.fc1(y).view(b,c,1,1)zself.max_pool(x).view(b,c)zself.fc2(z).view(b,c,1,1)x1x*y.expand_as(x)x2x*z.expand_as(x)x_sumx1x2xreturnx_sum3.3 Mamba上采样模块MUB核心功能承担图像的上采样和分辨率恢复任务利用状态空间模型的长序列建模能力来提升上下文信息的感知和重建效果。实现逻辑MUB的核心是二维选择性扫描机制2D-SSM源于Mamba模型。该机制将一维序列输入 ( x(t) ) 通过隐状态 ( h(t) ) 映射到输出 ( y(t) )其连续形式由线性常微分方程ODE定义h ′ ( t ) A h ( t ) B x ( t ) , y ( t ) C h ( t ) D x ( t ) , h(t) Ah(t) Bx(t),\quad y(t) Ch(t) Dx(t),h′(t)Ah(t)Bx(t),y(t)Ch(t)Dx(t),通过零阶保持ZOH离散化后得到适合深度学习模型的离散形式h τ A ˉ h τ − 1 B ˉ x τ , y τ C h τ D x τ , h_\tau \bar{A}h_{\tau-1} \bar{B}x_\tau,\quad y_\tau Ch_\tau Dx_\tau,hτAˉhτ−1Bˉxτ,yτChτDxτ,在MUB中该机制被应用于2D图像特征将传统4个扫描方向扩展到6个新增2个对角线方向以更全面捕捉空间依赖关系特征图在每个方向上被展平为1D序列处理最终结果整合回2D特征图。优势相比Transformer处理长序列时的高计算复杂度基于状态空间模型的Mamba具有线性计算复杂度更高效同时其选择性扫描机制能根据输入动态调整参数更灵活地捕捉长距离依赖关系有助于在分辨率恢复过程中重建更精准的全局结构和纹理。importmathimporttorchimporttorch.nnasnnimporttorch.nn.functionalasFfromeinopsimportrepeatfrommamba_ssm.ops.selective_scan_interfaceimportselective_scan_fnclassSS2D(nn.Module):def__init__(self,d_model,d_state16,d_conv3,expand2.,dt_rankauto,dt_min0.001,dt_max0.1,dt_initrandom,dt_scale1.0,dt_init_floor1e-4,dropout0.,conv_biasTrue,biasFalse,deviceNone,dtypeNone,**kwargs):super().__init__()self.d_modeld_model self.d_stated_state self.d_convd_conv self.expandexpand self.d_innerint(self.expand*self.d_model)self.dt_rankmath.ceil(self.d_model/16)ifdt_rankautoelsedt_rank self.in_projnn.Linear(self.d_model,self.d_inner*2,biasbias)self.conv2dnn.Conv2d(self.d_inner,self.d_inner,groupsself.d_inner,biasconv_bias,kernel_sized_conv,padding(d_conv-1)//2)self.actnn.SiLU()self.x_proj_weightnn.Parameter(torch.empty(4,self.d_inner,(self.dt_rankself.d_state*2)))self.dt_projs_weightnn.Parameter(torch.empty(4,self.d_inner,self.dt_rank))self.dt_projs_biasnn.Parameter(torch.empty(4*self.d_inner))self.A_logsnn.Parameter(torch.log(repeat(torch.arange(1,d_state1,dtypetorch.float32),n - d n,dself.d_inner)))self.Dsnn.Parameter(torch.ones(4*self.d_inner))self.selective_scanselective_scan_fn self.out_normnn.LayerNorm(self.d_inner)self.out_projnn.Linear(self.d_inner,self.d_model,biasbias)self.dropoutnn.Dropout(dropout)ifdropout0.elseNonedefforward_core(self,x:torch.Tensor):B,C,H,Wx.shape LH*W K4x_hwwhtorch.stack([x.view(B,-1,L),torch.transpose(x,2,3).contiguous().view(B,-1,L)],dim1).view(B,2,-1,L)xstorch.cat([x_hwwh,torch.flip(x_hwwh,dims[-1])],dim1)x_dbltorch.einsum(b k d l, k c d - b k c l,xs.view(B,K,-1,L),self.x_proj_weight)dts,Bs,Cstorch.split(x_dbl,[self.dt_rank,self.d_state,self.d_state],dim2)dtstorch.einsum(b k r l, k d r - b k d l,dts.view(B,K,-1,L),self.dt_projs_weight)xsxs.float().view(B,-1,L)dtsdts.contiguous().float().view(B,-1,L)BsBs.float().view(B,K,-1,L)CsCs.float().view(B,K,-1,L)Dsself.Ds.float().view(-1)As-torch.exp(self.A_logs.float()).view(-1,self.d_state)dt_projs_biasself.dt_projs_bias.float().view(-1)out_yself.selective_scan(xs,dts,As,Bs,Cs,Ds,zNone,delta_biasdt_projs_bias,delta_softplusTrue,return_last_stateFalse).view(B,K,-1,L)inv_ytorch.flip(out_y[:,2:4],dims[-1]).view(B,2,-1,L)wh_ytorch.transpose(out_y[:,1].view(B,-1,W,H),2,3).contiguous().view(B,-1,L)invwh_ytorch.transpose(inv_y[:,1].view(B,-1,W,H),2,3).contiguous().view(B,-1,L)view5_ytorch.transpose(out_y[:,3].view(B,-1,W,H),2,3).contiguous().view(B,-1,L)inv_view5_ytorch.flip(view5_y,dims[-1]).view(B,-1,L)view6_ytorch.transpose(out_y[:,3].view(B,-1,W,H),2,3).contiguous().view(B,-1,L)inv_view6_ytorch.flip(view6_y,dims[-1]).view(B,-1,L)returnout_y[:,0],inv_y[:,0],wh_y,invwh_y,inv_view5_y,inv_view6_ydefforward(self,x:torch.Tensor,**kwargs):B,H,W,Cx.shape xzself.in_proj(x)x,zxz.chunk(2,dim-1)xx.permute(0,3,1,2).contiguous()xself.act(self.conv2d(x))y1,y2,y3,y4,y5,y6self.forward_core(x)yy1y2y3y4y5y6 ytorch.transpose(y,1,2).contiguous().view(B,H,W,-1)yself.out_norm(y)yy*F.silu(z)outself.out_proj(y)ifself.dropoutisnotNone:outself.dropout(out)returnout3 模块适用任务核心应用场景: 本方法主要针对遥感全色图像的分辨率复原。具体涵盖三个子任务 1. 单图像超分辨率 (Single Image Super-Resolution)提升灰度PAN图像的空间分辨率。 2. 光谱恢复 (Spectral Recovery)为灰度PAN图像进行着色。 3. 联合超分与光谱恢复 (Joint SR and Spectral Recovery)同时提升PAN图像的空间分辨率和光谱分辨率即从低分辨率灰度图生成高分辨率彩色图。方法论核心: 其核心思想是在一个统一的深度网络框架内集成多功能模块以协同解决耦合的图像复原任务。它通过专门设计的特征提取、注意力机制和基于状态空间模型的重建模块实现了从单一输入源到多重增强输出的高效转换避免了传统多阶段方法的误差累积。启发性拓展: 1. 推广至其他医学/自然图像复原: MFmamba 的框架设计具有普适性其集成的 MHCB、DPA 和 MUB 模块可被迁移至其他领域的图像复原任务如医学图像去噪、常规照片的低光增强或伪影去除。 2. 轻量化与实时化: 尽管 Mamba 比 Transformer 高效但整个网络的参数量和计算成本仍是挑战。未来的研究可以探索模型剪枝、知识蒸馏等技术开发适用于星上实时处理或移动端应用的轻量级版本。