论文: MaIR: A Locality- and Continuity-Preserving Mamba for Image Restoration作者: Boyun Li, Haiyu Zhao, Wenxin Wang, Peng Hu, Yuanbiao Gou, Xi Peng发表: CVPR 2025论文链接: https://openaccess.thecvf.com/content/CVPR2025/papers/Li_MaIR_A_Locality-_and_Continuity-Preserving_Mamba_for_Image_Restoration_CVPR_2025_paper.pdf代码链接: https://github.com/XLearning-SCU/2025-CVPR-MaIR一、引言图像修复(Image Restoration)旨在从退化的观测图像(如噪声、模糊、雾霾等)中恢复出高质量图像。近年来,基于CNN和Transformer的方法取得了显著进展,但它们在捕捉长距离依赖关系方面仍存在局限——CNN受限于局部感受野,Transformer受限于窗口大小。Mamba作为新一代状态空间模型(SSM),凭借其在长序列建模中接近线性的复杂度而备受关注。然而,现有Mamba-based图像修复方法在处理2D图像时存在两个关键问题:局部性与连续性被破坏:将2D图像展平为1D序列时,破坏了图像固有的局部结构(邻近像素的相关性)和空间连续性(平滑过渡)序列聚合方式粗糙:不同扫描方向产生的序列具有不同的上下文信息,简单求和忽略了序列间的差异针对这些问题,本文提出MaIR(Mamba-based Image Restoration),其核心组件VMM(Visual Mamba Module)通过以下创新实现突破:NSS(Nested S-shaped Scanning):嵌套S形扫描策略,同时保留局部性和连续性,且零额外计算成本SSA(Sequence Shuffle Attention):序列洗牌注意力模块,自适应聚合不同扫描方向的序列信息在14个基准数据集上超越40个基线方法,涵盖超分、去噪、去模糊、去雾四大任务VMM模块核心作用:作为即插即用的视觉Mamba核心算子,可替代Transformer中的自注意力层或CNN中的卷积层,在保持线性计算复杂度的同时捕捉全局依赖关系。二、核心动机一个核心痛点:现有Mamba方法将2D图像展平为1D序列时,如图1(a)-©所示,Z字形扫描(Vmamba/Vim)同时破坏了局部性和连续性;窗口扫描(LocalMamba)保留了局部性但破坏了连续性;S形扫描(ZigMa)保留了连续性但忽略了局部性。关键观察:图像修复任务高度依赖结构一致性(即局部细节的保真度和全局纹理的平滑过渡),而现有的扫描策略无法同时满足这两个要求。解决思路:将图像划分为多个不重叠的条带(stripe),在每个条带内和条带间采用S形扫描路径,从而同时保留局部性和连续性。三、方法3.1 模块整体设计图1MaIR整体架构。(a) 总体网络结构,核心为Residual Mamba Group (RMG);(b) Residual Mamba Block (RMB);(c) Visual Mamba Module (VMM)VMM在MaIR中的位置:MaIR的整体架构遵循"浅层特征提取 → 深层特征提取 → 重建"的三阶段设计。深层特征提取阶段堆叠多个RMG,每个RMG包含若干RMB,每个RMB的核心即为VMM模块。VMM的前向流程:输入特征经过LayerNorm后,通过线性投影(in_proj)拆分为x和z两条分支x分支经深度可分离卷积(DWConv)+ SiLU激活后,进入MaIRM核心单元MaIRM核心包含:NSS展平→SSO选择性扫描→SSA序列聚合输出经序列求和(4方向融合)+ LayerNorm后,与z分支做门控(SiLU)最后通过线性投影(out_proj)输出核心公式如下:F i , j M = Φ i , j S S A ( Φ i , j S S O ( Φ i , j N S S ( F i , j ) ) ) F_{i,j}^{M} = \Phi_{i,j}^{SSA}(\Phi_{i,j}^{SSO}(\Phi_{i,j}^{NSS}(F_{i,j})))Fi,jM=Φi,jSSA(Φi,jSSO(Φi,jNSS(Fi,j)))其中Φ N S S \Phi_{NSS}ΦNSS、Φ S S O \Phi_{SSO}ΦSSO、Φ S S A \Phi_{SSA}ΦSSA分别代表NSS、SSO和SSA操作。3.2 NSS:嵌套S形扫描策略图2(a) Nested S-shaped Scanning (NSS) 策略;(b) Shift-stripe机制NSS的核心思想是将图像划分为多个不重叠的条带(stripe),并在条带内和条带间采用S形扫描路径:条带划分:将特征图沿宽度方向划分为宽度为w s w_sws的不重叠条带条带内S形扫描:在每个条带内,按S形路径(之字形)逐行扫描,确保相邻像素在序列中保持邻近条带间S形扫描:跨条带同样采用S形路径,确保条带边界处的连续性四方向扫描:沿四个方向(左上→右下、右下→左上、右上→左下、左下→右上)分别扫描,充分捕获空间信息Shift-stripe机制:相邻模块之间,条带划分位置偏移w s / 2 w_s/2ws/2,使得上一个模块的边界区域在当前模块中位于条带中部,从而保证边界处的局部性不受损失。3.3 SSA:序列洗牌注意力图3Sequence Shuffle Attention (SSA) 结构示意图SSA的核心操作步骤如下:池化压缩:对四个SSO处理后的序列{ X i } i = 1 4 \{X_i\}_{i=1}^4{Xi}i=14分别做空间平均池化,降低计算量拼接:将四个池化特征拼接为X ~ \tilde{X}X~序列洗牌:按通道维度重新排列,使不同序列的同通道特征相邻(即[ x 1 1 , x 1 2 , x 1 3 , x 1 4 , x 2 1 , x 2 2 , . . . ] [x_1^1, x_1^2, x_1^3, x_1^4, x_2^1, x_2^2, ...][x11,x12,x13,x