1. 【前言】

​​​​

结构裂缝在不同场景下的像素级分割仍是一项颇具挑战性的任务。现有方法在有效建模裂缝形态和纹理方面面临困难,同时难以在分割质量与低计算资源使用之间取得平衡。为此,研究者提出了一种轻量级的结构感知视觉Mamba网络(SCSegamba),该网络能够以最小的计算成本,同时利用裂缝像素的形态信息和纹理线索生成高质量的像素级分割图。具体而言,他们开发了结构感知视觉状态空间模块(SAVSS),该模块整合了轻量级门控瓶颈卷积(GBC)和结构感知扫描策略(SASS)。GBC的核心优势在于其对裂缝形态信息的有效建模能力,而SASS通过增强裂缝像素间语义信息的连续性,提升了对裂缝拓扑结构和纹理的感知能力。在裂缝基准数据集上的实验表明,该方法优于其他最先进(SOTA)的方法,仅用280万个参数就实现了最高性能。在多场景数据集上,该方法的F1分数达到0.8390,mIoU达到0.8479。

Performance of SCSegamba on multi-scenario TUT dataset.

2. 【论文基本信息】

论文基本信息

  • 论文标题:SCSegamba: Lightweight Structure-Aware Vision Mamba for Crack Segmentation in Structures
  • 论文链接:https://openaccess.thecvf.com/content/CVPR2025/papers/Liu_SCSegamba_Lightweight_Structure-Aware_Vision_Mamba_for_Crack_Segmentation_in_Structures_CVPR_2025_paper.pdf
  • 项目链接:https://github.com/Karl1109/SCSegamba
  • 核心模块:结构感知视觉状态空间模块(SAVSS)、轻量级门控瓶颈卷积(GBC)、结构感知扫描策略(SASS)、多尺度特征分割头(MFS)

➔➔➔➔点击查看原文,获取更多即插即用模块合集
在这里插入图片描述

3. 【模块创新点】

3.1 结构感知视觉状态空间模块(SAVSS)

  • 核心功能:提取裂缝的形态和纹理线索,增强对不规则裂缝纹理的感知能力。
  • 实现逻辑:融合轻量级门控瓶颈卷积(GBC)和结构感知扫描策略(SASS),先通过GBC捕捉裂缝形态信息,再利用SASS增强裂缝像素间语义信息的连续性;同时结合Pixel Attention-oriented Fusion(PAF)融合初始序列与经二维选择性扫描(SS2D)处理的序列,并通过残差连接保留细节,最后由GBC优化层间输出。
  • 优势:能够有效捕捉裂缝复杂的拓扑结构和纹理特征,在提升对裂缝形态和纹理感知能力的同时,保持模型的轻量级特性,为后续分割提供高质量特征。

3.2 轻量级门控瓶颈卷积(GBC)

  • 核心功能:捕捉裂缝形态线索,动态调整对复杂背景和不同形态的权重,同时减少参数和计算成本。
  • 实现逻辑:嵌入带有低秩近似的瓶颈卷积(BottConv),将矩阵从高维映射到低维以降低计算复杂度;通过门控机制,将经BottConv等处理后的特征进行Hadamard积运算生成门控特征图,再经BottConv细化后结合残差连接输出。
  • 优势:在显著降低参数数量和计算负载的同时,能动态优化主分支的细粒度特征表征,保证对裂缝基本特征的保留,提升在细节区域的分割准确性。

3.3 结构感知扫描策略(SASS)

  • 核心功能:增强对裂缝拓扑结构和纹理的感知,捕捉多方向的纹理连续性。
  • 实现逻辑:包含两条平行蛇形路径和两条对角线蛇形路径,通过多方向扫描建立多向邻接关系,使隐藏状态能捕捉更复杂的拓扑和纹理细节,助力输出更有效地整合多方向特征。
  • 优势:相比现有平行、对角线等扫描策略,能更好地适应不规则、多方向的裂缝像素拓扑结构,有效提取规则裂缝区域的连续语义信息并保留多方向的纹理连续性,提升对复杂裂缝纹理的捕捉能力。

3.4 多尺度特征分割头(MFS)

  • 核心功能:整合多尺度裂缝的形态和纹理表征,生成高质量分割图,同时控制计算资源消耗。
  • 实现逻辑:接收SAVSS输出的多尺度特征图,通过高效MLP操作和动态上采样将各特征图恢复至原始尺寸;将上采样后的特征图聚合为单个张量,经GBC和MLP等处理生成最终分割图。
  • 优势:能够有效融合多尺度特征,提升模型对不同尺度裂缝的感知能力,在保证生成高质量分割图的同时,具有较低的计算需求,符合轻量级设计需求。

4. 【算法框架与核心模块】

4.1 算法框架概述

SCSegamba 的整体框架主要包含两个核心部分:结构感知视觉状态空间模块(SAVSS)和多尺度特征分割头(MFS) 。对于输入的单张 RGB 图像 E ∈ R 3 × H × W E\in\mathbb{R}^{3\times H\times W} ER3×H×W,首先会被分割为 n 个图像块,形成序列 { B 1 , B 2 , . . . , B n } \{B_1,B_2,...,B_n\} {B1,B2,...,Bn} 。该序列输入到 SAVSS 模块中进行处理,将关键的裂缝像素线索嵌入到多尺度特征图 { F 1 , F 2 , F 3 , F 4 } \{F_1,F_2,F_3,F_4\} {F1,F2,F3,F4}中。随后,这些多尺度特征图被送入 MFS 模块,经过处理后整合为单个张量,最终生成精细化的分割输出 W ∈ R 1 × H × W W\in\mathbb{R}^{1\times H\times W} WR1×H×W。此外,为了捕捉关键的裂缝区域线索,轻量级门控瓶颈卷积 (GBC)被整合在 SAVSS 的初始阶段和 MFS 的最终阶段。
illustrates the overall architecture of SCSegamba and the processing flow for crack images.

4.2 结构感知视觉状态空间模块(SAVSS)

 displays the structure of the SAVSS block

  • 核心功能:提取裂缝的形态和纹理线索,增强对不规则裂缝纹理的感知能力,为后续分割提供高质量特征。
  • 实现逻辑:SAVSS采用了二维选择性扫描(SS2D),并结合了GBC和结构感知扫描策略(SASS)。输入的RGB裂缝图像经过图像块嵌入和位置编码后,作为序列输入到SAVSS块中,且仅使用4层SAVSS块以保持网络的轻量级特性。其处理过程涉及以下公式:
    P ‾ = e Δ P Q ‾ = ( Δ P ) − 1 ( e Δ P − I ) ⋅ Δ Q z k = P ‾ z k − 1 + Q ‾ w k u k = R z k + S w k \begin{aligned}&\overline{P}=e^{\Delta P}\\&\overline{Q}=(\Delta P)^{-1}(e^{\Delta P}-I)\cdot\Delta Q\\&z_{k}=\overline{P}z_{k-1}+\overline{Q}w_{k}\\&u_{k}=Rz_k+Sw_k\end{aligned} P=eΔPQ=(ΔP)1(eΔPI)ΔQzk=Pzk1+Qwkuk=Rzk+Swk
    其中,输入 w ∈ R t × D w\in\mathbb{R}^{t\times D} wRt×D, P ∈ R G × D P\in\mathbb{R}^{G\times D} PRG×D控制隐藏空间状态, S ∈ R D × D S\in\mathbb{R}^{D\times D} SRD×D用于初始化输入的跳跃连接, z k z_k zk表示时间步 k 的特定隐藏状态, Q ∈ R G × D Q\in\mathbb{R}^{G\times D} QRG×D R ∈ R G × D R\in\mathbb{R}^{G\times D} RRG×D是通过选择性扫描 SS2D 获得的具有隐藏空间维度 G 和时间维度 D 的矩阵, u k u_k uk表示时间步 k 的输出。同时,通过 Pixel Attention-oriented Fusion (PAF) 融合初始序列与经 SS2D 处理的序列,融合信息经残差连接后,由 GBC 优化层间输出。
  • 关键设计:SASS是SAVSS的重要组成部分,它包含两条平行蛇形路径和两条对角线蛇形路径,能够建立多方向的邻接关系,使隐藏状态(z_{k})捕捉更复杂的拓扑和纹理细节,同时让输出(u_{k})更有效地整合多方向特征。
    Illustration of our proposed SASS and other scanning strategies

4.3 轻量级门控瓶颈卷积(GBC)

  • 核心功能:捕捉裂缝形态线索,动态调整对复杂背景和不同形态的权重,同时减少参数和计算成本。
  • 实现逻辑:输入特征 x ∈ R C × H × W x \in \mathbb{R}^{C \times H \times W} xRC×H×W 被保留为 x r e s i d u a l = x x_{residual} = x xresidual=x 以方便残差连接。之后,特征 x 经过 BottConv 层,再经过归一化和激活函数处理,得到相关特征:
    g 1 ( x ) = ReLU ( Norm 1 ( f 1 ( x ) ) ) g_1(x) = \text{ReLU}(\text{Norm}_1(f_1(x))) g1(x)=ReLU(Norm1(f1(x)))
    x 1 = ReLU ( Norm 2 ( BottConv 2 ( g 1 ( x ) ) ) ) x_1 = \text{ReLU}(\text{Norm}_2(\text{BottConv}_2(g_1(x)))) x1=ReLU(Norm2(BottConv2(g1(x))))
    g 2 ( x ) = ReLU ( Norm 3 ( BottConv 3 ( x ) ) ) g_2(x) = \text{ReLU}(\text{Norm}_3(\text{BottConv}_3(x))) g2(x)=ReLU(Norm3(BottConv3(x)))
    接着, x 1 x_1 x1 g 2 ( x ) g_2(x) g2(x) 通过 Hadamard 积结合生成门控特征图:
    m ( x ) = x 1 ⊙ g 2 ( x ) m(x) = x_1 \odot g_2(x) m(x)=x1g2(x)
    门控特征图 m ( x ) m(x) m(x) 再经过 BottConv 进一步细化粒度细节,应用残差连接后得到输出:
    y = ReLU ( Norm 4 ( BottConv 4 ( m ( x ) ) ) ) y = \text{ReLU}(\text{Norm}_4(\text{BottConv}_4(m(x)))) y=ReLU(Norm4(BottConv4(m(x)))),Output = y + x r e s i d u a l = y + x_{residual} =y+xresidual
    其中,BottConv 采用低秩近似,将卷积响应从 z = Q s + c z = Qs + c z=Qs+c(Q 为 f × ( p 2 × d ) f \times (p^2 \times d) f×(p2×d) 大小的矩阵,f 为输出通道数,c 为原始偏置项)简化为 z = L M T s + c ′ z = LM^T s + c' z=LMTs+c L ∈ R f × f 0 L \in \mathbb{R}^{f \times f_0} LRf×f0 M ∈ R ( p 2 d ) × f 0 M \in \mathbb{R}^{(p^2d) \times f_0} MR(p2d)×f0 为低秩投影矩阵),从而降低计算复杂度。
    在这里插入图片描述
  • 优势体现:BottConv 的设计显著降低了参数数量和计算负载,由于 f 0 < f f_0<f f0<f,计算复杂度从 O ( f p 2 d ) O(fp^2d) O(fp2d)降至 O ( f 0 p 2 d ) + O ( f f 0 ) O(f_{0}p^{2}d)+O(ff_{0}) O(f0p2d)+O(ff0),且 O ( f f 0 ) ≪ O ( f p 2 d ) O(ff_{0})\ll O(fp^{2}d) O(ff0)O(fp2d);而门控机制和残差连接的结合,使模型在保留基本裂缝特征的同时,能动态优化主分支的细粒度特征表征。

Performance comparison between using BottConv and raw convolution in GBC on the TUT dataset.

4.4 多尺度特征分割头(MFS)

  • 核心功能:整合多尺度裂缝的形态和纹理表征,生成高质量分割图,同时控制计算资源消耗。
  • 实现逻辑:SAVSS 输出的四个特征图 F 1 , F 2 , F 3 , F 4 ∈ R C ^ × H ^ × W ^ F_1,F_2,F_3,F_4\in\mathbb{R}^{\hat{C}\times\hat{H}\times\hat{W}} F1,F2,F3,F4RC^×H^×W^输入到 MFS 后,分别经过高效的 MLP 操作
    和动态上采样,恢复到原始尺寸,得到 F 1 u p , F 2 u p , F 3 u p , F 4 u p ∈ R C × H × W F_1^\mathrm{up},F_2^\mathrm{up},F_3^\mathrm{up},F_4^\mathrm{up}\in\mathbb{R}^{C\times H\times W} F1up,F2up,F3up,F4upRC×H×W,公式如下:
    F i u p = D y S a m p l e ( M L P i ( F i ) ) F_i^\mathrm{up}=\mathrm{DySample}(MLP_i(F_i)) Fiup=DySample(MLPi(Fi))(i 表示层索引)。
    之后,这些特征图被聚合为单个张量,通过以下过程得到高质量的裂缝分割图 o ∈ R 1 × H × W : o\in\mathbb{R}^{1\times H\times W}: oR1×H×W:
    o 1 = G B C ( C o n c a t ( F 1 u p , F 2 u p , F 3 u p , F 4 u p ) ) o = M L P ( C o n v ( o 1 ) ) \begin{aligned}&o_{1}=GBC(\mathrm{Concat}(F_{1}^{\mathrm{up}},F_{2}^{\mathrm{up}},F_{3}^{\mathrm{up}},F_{4}^{\mathrm{up}}))\\&o=MLP(Conv(o_{1}))\end{aligned} o1=GBC(Concat(F1up,F2up,F3up,F4up))o=MLP(Conv(o1))
  • 优势体现:借助MLP快速学习特征与标签间映射关系的特点降低模型复杂度,同时通过多尺度特征整合和GBC的应用,在保证分割质量的前提下,有效控制了计算资源的使用。

5.【适用任务】

5.1 结构裂缝像素级分割任务

  • 适用场景:各类结构(如沥青路面、混凝土、金属等)在不同环境条件下产生的裂缝分割,包括存在复杂背景干扰、低对比度、阴影等情况的场景。
  • 核心作用:通过提取裂缝的形态信息和纹理线索,生成高质量的像素级分割图,精准区分裂缝像素与背景像素。
  • 示例:对沥青路面上因长期车辆碾压产生的裂缝进行分割,清晰呈现裂缝的走向和范围。

5.2 多场景裂缝统一分割任务

  • 适用场景:包含多种材质和环境的裂缝分割场景,如同时涉及沥青、水泥、砖块、金属等不同结构的裂缝分割。
  • 核心作用:凭借对不同形态和纹理裂缝的感知能力,在多样化场景中保持稳定的分割性能,无需针对单一场景进行特殊调整。
  • 示例:对机场跑道(水泥)、工厂金属管道、建筑砖块墙面等不同场景下的裂缝进行统一分割。

5.3 轻量级裂缝分割任务

  • 适用场景:资源受限的边缘设备(如便携式检测设备)部署场景,对模型参数、计算资源和内存占用有严格限制的情况。
  • 核心作用:以较少的参数(2.8M)和较低的计算成本(18.16G FLOPs)实现高性能分割,满足边缘设备的部署需求。
  • 示例:在便携式路面检测设备中部署该算法,实时对检测到的路面裂缝进行分割处理。

6.【实验结果与可视化分析】

6.1 与现有SOTA方法的性能对比结果

  • 主要结果:在Crack500、DeepCrack、CrackMap、TUT四个公开数据集上,SCSegamba均取得最佳性能。其中,在DeepCrack数据集上,F1分数和mIoU分别超过次优方法1.50%和1.09%;在CrackMap数据集上,F1分数和mIoU分别超过次优方法2.06%和1.65%;在多场景TUT数据集上,F1分数达0.8390、mIoU达0.8479,分别超过次优方法2.21%和1.74%。

  • 意义:证明了SCSegamba在不同类型、不同复杂度的裂缝分割任务中均具有优势,尤其在多场景和复杂裂缝形态下的分割性能突出,验证了其对裂缝形态和纹理的有效感知能力。
    Comparison with 9 SOTA methods across 4 datasets. Best results are in bold, and second-best results are underlined.

6.2 模型复杂度分析结果

  • 主要结果:SCSegamba仅含2.80M参数、模型大小37MB,参数数量和模型大小分别比次优方法低52.54%和13.95%;FLOPs为18.16G,仅比侧重计算效率的Crackmer高3.22G。
    Comparison of complexity with other methods. Best results are in bold, and second-best results are underlined.

  • 意义:表明该模型在保持高性能的同时,实现了轻量级设计,能够满足资源受限边缘设备的部署需求,解决了分割质量与计算资源消耗难以平衡的问题。

6.3 消融实验结果

  • 主要结果:使用MFS时,模型在F1和mIoU上比次优分割头分别高1.57%和1.21%;整合GBC、PAF和残差连接的SAVSS性能最佳,GBC使F1和mIoU分别提升1.57%和1.42%;SASS比对角线蛇形扫描策略在F1和mIoU上分别提升0.30%和0.33%。
     Ablation study

  • 意义:验证了各核心模块(MFS、GBC、SASS等)的有效性,说明各模块在提升分割性能、保持模型轻量级方面发挥了关键作用,为模型设计的合理性提供了支撑。
     Ablation studies with different four-route scanning strategies in the SAVSS block

6.4 可视化结果分析

  • 主要结果:在水泥、沥青等典型场景及塑料跑道、金属材料、地下管道等复杂场景中,SCSegamba生成的分割图更清晰,能有效捕捉裂缝细节并抑制背景噪声,误识区域更少。
  • 意义:直观展示了模型在实际场景中的分割效果,证明其在复杂干扰条件下仍能精准分割裂缝,进一步验证了模型的 robustness和实用性。
    Visual comparison of typical cracks with 9 SOTA methods across four datasets. Red boxes highlight critical details, and green boxes mark misidentified regions

7.【即插即用模块代码】

7.1 PAF(Progressive Attention Fusion)模块

功能:融合不同特征图,通过计算相似度图来加权融合基础特征和引导特征。
核心代码段(即插即用关键)

class PAF(nn.Module):
    def __init__(self,
                 in_channels: int,
                 mid_channels: int,
                 after_relu: bool = False,
                 mid_norm: nn.Module = nn.BatchNorm2d,
                 in_norm: nn.Module = nn.BatchNorm2d):
        super().__init__()
        self.after_relu = after_relu
        self.feature_transform = nn.Sequential(
            BottConv(in_channels, mid_channels, mid_channels=16, kernel_size=1),
            mid_norm(mid_channels)
        )
        self.channel_adapter = nn.Sequential(
            BottConv(mid_channels, in_channels, mid_channels=16, kernel_size=1),
            in_norm(in_channels)
        )
        if after_relu:
            self.relu = nn.ReLU(inplace=True)

    def forward(self, base_feat: torch.Tensor, guidance_feat: torch.Tensor) -> torch.Tensor:
        base_shape = base_feat.size()
        if self.after_relu:
            base_feat = self.relu(base_feat)
            guidance_feat = self.relu(guidance_feat)
        guidance_query = self.feature_transform(guidance_feat)
        base_key = self.feature_transform(base_feat)
        guidance_query = F.interpolate(guidance_query, size=[base_shape[2], base_shape[3]], mode='bilinear', align_corners=False)
        similarity_map = torch.sigmoid(self.channel_adapter(base_key * guidance_query))
        resized_guidance = F.interpolate(guidance_feat, size=[base_shape[2], base_shape[3]], mode='bilinear', align_corners=False)
        fused_feature = (1 - similarity_map) * base_feat + similarity_map * resized_guidance
        return fused_feature

即插即用优势:该模块可以方便地集成到不同的特征融合任务中,通过简单的输入基础特征和引导特征,就能输出融合后的特征,无需对原有模型结构进行大规模修改。

7.2 DySample(Dynamic Sampling)模块

功能:根据输入特征动态调整采样过程,通过计算偏移量来进行采样。
核心代码段(即插即用关键)

class DySample(nn.Module):
    def __init__(self, in_channels, scale=2, style='lp', groups=4, dyscope=False):
        super().__init__()
        self.scale = scale
        self.style = style
        self.groups = groups
        assert style in ['lp', 'pl']
        if style == 'pl':
            assert in_channels >= scale ** 2 and in_channels % scale ** 2 == 0
        assert in_channels >= groups and in_channels % groups == 0
        if style == 'pl':
            in_channels = in_channels // scale ** 2
            out_channels = 2 * groups
        else:
            out_channels = 2 * groups * scale ** 2
        self.offset = nn.Conv2d(in_channels, out_channels, 1)
        normal_init(self.offset, std=0.001)
        if dyscope:
            self.scope = nn.Conv2d(in_channels, out_channels, 1, bias=False)
            constant_init(self.scope, val=0.)
        self.register_buffer('init_pos', self._init_pos())

    def forward(self, x):
        if self.style == 'pl':
            return self.forward_pl(x)
        return self.forward_lp(x)

即插即用优势:可以灵活地应用于不同的模型中,只需将其插入到需要动态采样的位置,通过调整输入通道数、采样比例等参数,就能适应不同的任务需求。

7.3 GBC(Group Bottleneck Convolution)模块

功能:通过分组瓶颈卷积结构对输入特征进行处理,增强特征表达能力。
核心代码段(即插即用关键)

class GBC(nn.Module):
    def __init__(self, in_channels, norm_type='GN'):
        super(GBC, self).__init__()
        self.block1 = nn.Sequential(
            BottConv(in_channels, in_channels, in_channels // 8, 3, 1, 1),
            get_norm_layer(norm_type, in_channels, in_channels // 16),
            nn.ReLU()
        )
        self.block2 = nn.Sequential(
            BottConv(in_channels, in_channels, in_channels // 8, 3, 1, 1),
            get_norm_layer(norm_type, in_channels, in_channels // 16),
            nn.ReLU()
        )
        self.block3 = nn.Sequential(
            BottConv(in_channels, in_channels, in_channels // 8, 1, 1, 0),
            get_norm_layer(norm_type, in_channels, in_channels // 16),
            nn.ReLU()
        )
        self.block4 = nn.Sequential(
            BottConv(in_channels, in_channels, in_channels // 8, 1, 1, 0),
            get_norm_layer(norm_type, in_channels, 16),
            nn.ReLU()
        )

    def forward(self, x):
        residual = x
        x1 = self.block1(x)
        x1 = self.block2(x1)
        x2 = self.block3(x)
        x = x1 * x2
        x = self.block4(x)
        return x + residual

即插即用优势:该模块结构相对独立,只需要输入特征和指定归一化类型,就能输出增强后的特征,可以方便地插入到不同的卷积神经网络中,提升模型性能。

7.4 BottConv(Bottleneck Convolution)模块

功能:通过点卷积和深度卷积的组合,减少计算量的同时保持特征表达能力。
核心代码段(即插即用关键)

class BottConv(nn.Module):
    def __init__(self, in_channels, out_channels, mid_channels, kernel_size, stride=1, padding=0, bias=True):
        super(BottConv, self).__init__()
        self.pointwise_1 = nn.Conv2d(in_channels, mid_channels, 1, bias=bias)
        self.depthwise = nn.Conv2d(mid_channels, mid_channels, kernel_size, stride, padding, groups=mid_channels, bias=False)
        self.pointwise_2 = nn.Conv2d(mid_channels, out_channels, 1, bias=False)

    def forward(self, x):
        x = self.pointwise_1(x)
        x = self.depthwise(x)
        x = self.pointwise_2(x)
        return x

即插即用优势:是一个轻量级的卷积模块,可以方便地替换传统的卷积层,在不增加太多计算量的情况下,提升模型的特征提取能力,适用于各种卷积神经网络。

➔➔➔➔点击查看原文,获取更多即插即用模块合集
在这里插入图片描述

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐