SwinPA-Net: 用于医学图像分割的基于Swin Transformer的多尺度特征金字塔聚合网络【医学图像分割】

目录

一、论文信息

1.1、英文文名称

1.2、论文关键词

1.3、核心概述

二、摘要

2.1、背景挑战

2.2、提出新方法

2.3、总结

三、引言

3.1、引出背景

3.2、目前研究概况

3.3、创新来源

3.4、贡献总结

四、具体方法

4.1、整体架构图

4.2、Swin Transformer编码器

4.3、DMC模块

4.4、LPA模块

4.5、解码器

4.6、损失函数

五、实验过程

5.1、数据集

5.2、实现细节

5.3、实验结果

5.3.1、Polyp 数据集结果

5.3.2、皮肤病灶数据集分割结果

5.3.3、LIVis 数据集分割结果

5.4、消融实验

六、总结


一、论文信息

1.1、英文文名称

        Title:SwinPA-Net: Swin Transformer-Based Multiscale Feature Pyramid Aggregation Network for Medical Image Segmentation

1.2、论文关键词

        医学图像分割、Swin Transformer、多尺度特征金字塔、特征聚合

1.3、核心概述

        本文介绍了 一种新颖的基于 Swin Transformer 的多尺度特征金字塔聚合网络SwinPA-Net,主要用于医学图像分割。SwinPA-Net有效缓解由于各种医学图像中病灶类型差异较大、病灶颜色与周围组织差距较小而难以准确定位病灶的问题

二、摘要

2.1、背景挑战

        医学图像的精确分割是病理学研究和临床实践的关键挑战之一。 然而许多医学图像分割任务存在不同类型病灶之间以及病灶与周围组织之间相似形状和颜色差异较大等问题,严重影响了分割精度的提高。 在本文中提出了一种称为 Swin 金字塔聚合网络(SwinPA-Net)的新颖方法,通过将两个设计的模块与 Swin Transformer 相结合来学习更强大和鲁棒的特征。

2.2、提出新方法

        提出了两个模块,即密集乘法连接(DMC)模块局部金字塔注意(LPA)模块来聚合医学图像的多尺度上下文信息。 DMC模块通过密集乘性特征融合来级联多尺度语义特征信息,最大限度地减少浅层背景噪声的干扰,改善特征表达,解决病灶大小和类型变化过大的问题。 此外,LPA模块通过融合全局注意力和局部注意力来引导网络聚焦于感兴趣的区域,这有助于解决类似的问题

2.3、总结

        所提出的网络在用于息肉分割任务和皮肤病变分割任务的两个公共基准数据集以及用于腹腔镜图像分割任务的临床私有数据集上进行评估。 与现有的最先进(SOTA)方法相比,SwinPA-Net 实现了最先进的性能,并且在三个任务上的平均 Dice 分数分别比第二好的方法高出 1.68%、0.8% 和 1.2%

三、引言

3.1、引出背景

        基于深度学习的图像分割在医学图像分析中发挥着至关重要的作用,并在多种医学任务中取得了令人印象深刻的表现,例如各种类型显微器官和组织的分割图像,结肠镜检查图像中的息肉分割,以及皮肤镜检查图像中的皮肤病变分割。准确高效的医学图像分割不仅可以识别病变区域的特征,还可以为临床诊断和病情研究提供可靠的依据,在手术导航和疾病进展监测中具有潜在的应用价值

3.2、目前研究概况

        近年来,ResNet等卷积神经网络(CNN)表现出了强大的特征提取能力。 随后,全卷积网络(FCN)创造性地用卷积层替代了CNN中的全连接层,以保留图像的空间信息以用于语义分割任务。 受 FCN 的启发,提出了一种典型的 U 形网络,称为 U-Net ,以克服医学图像分割问题。 通过使用编码器-解码器结构和跳跃连接,该网络可以正确学习多尺度特征,并在许多医学图像分割任务中表现良好,迅速成为比较最先进(SOTA)医学图像分割的基线 算法。 随着U-Net的流行,一些基于U型架构的创新模型被提出并取得了良好的效果,如UNet++SegNetDenseUNetKiU-Net、 和CAB U-Net 。 然而,基于卷积的深度学习网络存在固有的缺陷,例如难以准确定义边界特征和缺乏全局上下文信息,限制了其在生物医学图像分割任务性能的进一步提高。

        为了解决上述问题,近年来开发了几种新方法,例如 Mumford-Shah 模型、对比学习和金字塔结构。 基于Mumford-Shah模型的方法通过分段平滑函数和优化策略提取原始图像的准确边界信息,而基于对比学习的方法通过探索特征之间的像素级关系,调节语义信息之间的距离。然而这些方法的时间复杂度往往非常高,难以准确分割差异较大的不同类型病变。 金字塔结构通过利用不同的卷积率或多分辨率输入特征图来获得多尺度上下文信息。 例如,Deeplab采用不同感受野的多种卷积率来提高模型的多尺度信息提取能力。 SSPP利用不同的步长池化操作来生成多分辨率特征图。 然而这些方法很难有效地识别微小的局部特征,并且这些方法的感知野没有很好地调整以获取每个阶段不同大小病灶的最佳特征。

        受 Transformer 在自然语言处理(NLP)任务中取得的巨大成就的启发,一些具有 Transformer 主干的深度学习网络已被用于计算机视觉(CV)领域。Vison Transformer(ViT)是第一个专为图像分类而设计的Transformer架构,它将输入图像编码为具有位置嵌入的二维扁平化patch,通过在大型数据集上进行预训练在 ImageNet 上产生令人信服的结果。 遵循ViT的技术路线,数据高效的图像变换器(Data-efficient image TransformerDeiT)可以通过蒸馏token学习局部特征,并且由于数据高效的训练策略,它可以在较小的数据集中取得良好的性能。 虽然上述基于Transformer的架构在一些图像识别任务中可以达到SOTA,但这些网络通常对计算机硬件有很高的要求,并且面临泛化能力的缺乏。 为了解决这些问题,Swin Transformer提出了一种基于移位窗口的自注意力机制,提高了模型的泛化性,并通过跨窗口连接大大降低了计算复杂度。 它在图像分类、目标检测和语义分割等不同类型的任务中都实现了 SOTA 性能。

3.3、创新来源

         在本文中,受到 Swin Transformer 和前面提到的其他新颖方法的成功的推动,本文将这项工作应用于医学图像分割领域,并将两个设计的模块引入到以 Swin Transformer 作为骨干的 U 形网络中,以解决在医学图像分割中仍然存在的以下问题: 例如各种医学图像数据集中不同类型的病变之间存在很大差距,病变的形状和颜色与周围组织相似且对比度较低如图1所示。具体来说,这两个模块称为密集乘法提出了连接(DMC)模块和局部金字塔注意(LPA)模块来聚合不同类型医学图像的多尺度上下文信息。 DMC模块通过乘性特征融合将多尺度语义特征信息级联起来,引导网络聚焦不同尺度的特征信息,可以减少浅层特征噪声的干扰,提高特征的表达能力。此外,DMC模块可以帮助网络更好地识别不同尺寸的病灶边缘,解决尺寸变化的问题。LPA模块使用金字塔模块来聚合注意力,在每一层中,特征图被分割成不同的大小和维度,然后获得并整合局部和全局注意力图。 通过不同维度的注意力图的融合,可以引导网络聚焦于目标区域,有利于增强语义特征的区分度,减少低对比度的影响。

图1:医学图像分割中存在的困难

        综合上述描述,本文将该方法命名为Swin金字塔聚合网络(SwinPA-Net)。 所提出的 SwinPA-Net 在三个具有挑战性的医学图像分割任务上进行了测试:结肠镜检查图像中的息肉分割、皮肤镜图像中的皮肤病变分割以及腹腔镜图像中的疏松结缔组织分割。 第一个和第二个任务基于公共基准数据集,而第三个任务基于临床私有数据集。

3.4、贡献总结

  1. 提出了一种名为 SwinPA-Net 的 U 形网络,它将两个设计的模块引入到以 Swin Transformer 作为骨干的网络中。 在编码过程中,该模型采用Swin Transformer来提取特征,通过自注意力和移位窗口机制使网络具有全局和动态的感受野。 此外,还提出了DMC和LPA模块来增强SwinPA-Net的特征提取能力DMC模块采用DMC方法,可以减少噪声对浅层特征的干扰,从而获得包含更多边界细节的浅层信息。 LPA模块聚合不同尺度的注意力线索,引导网络增强语义特征并强调目标区域,从而准确定位病变。 此外,SwinPA-Net利用CNN作为解码器来恢复和整合局部和全局特征图,以获得更强大和鲁棒的特征

  2. 通过在三个具有挑战性的医学图像分割任务(结肠镜检查图像中的息肉分割、皮肤镜图像中的皮肤病变分割以及松散的腹腔镜图像中的结缔组织),本文证明了其良好的鲁棒性和广泛的实用性。 通过引入所提出的方法,在三个任务上,与第二好的方法相比,平均 Dice 分数分别提高了 1.68%、0.8% 和 1.2%。 实验结果表明,SwinPA-Net 取得了稳健的结果,并且与其他 SOTA 方法具有竞争力。)上评估所提出的方法。

  3. 腹腔镜互操作视觉 (LIVis) 数据集旨在识别直肠系膜的疏松结缔组织,以避免在全直肠系膜切除 (TME) 手术期间对重要组织造成损伤。 它包含15小时的腹腔镜视频和1180张1920×1080像素的高分辨率图像,这些图像是从中国湖南长沙一家医院的手术机器人收集的。 这些图像的参考包含手术不同阶段直肠系膜疏松结缔组织的像素分数,并由外科专家进行注释和交叉验证。 值得注意的是,LIVis 数据集不仅可以作为评估所提出方法性能的基准,而且可以为后续研究提供参考

四、具体方法

4.1、整体架构图

        SwinPA-Net 的整体架构图如下图1所示。它是基于解码器和编码器的U形结构。 首先本文介绍模型中使用的Swin Transformer结构,然后介绍模型的其他重要实现细节,例如DMC模块如何有效地集成上下文多尺度特征信息以及LPA模块如何结合局部和全局特征。

图2:SwinPA-Net结构图

4.2、Swin Transformer编码器

图3:Swin Transformer结构图和基于窗口的自注意力计算

        标准的Transformer结构首先将输入图像均匀地分割成一系列不重叠的块,然后这些块的像素被线性展平为几个一维向量,这些向量通过多头自注意力(MSA)模块来计算自注意力,并最终使用高斯误差线性单元(GELU)非线性层和多层感知(MLP)层进行处理,而每个模块之前都有一个 LayerNorm (LN) 层后跟残差连接。

        由于图像被划分为小块,标准Transformer需要计算这些块之间的关系,这意味着计算成本呈二次方增长。 因此,Swin Transformer采用了基于窗口的MSA(W-MSA)和基于移位窗口的MSA(SW-MSA),改变了常规的窗口划分方法,采用了更高效的移位窗口划分策略,如图3(a)所示 。 它不仅保持非重叠窗口的高效计算,而且还在不同窗口之间建立连接。 两个连续的Swin Transformer块分别使用W-MSASW-MSA模块来建立不同窗口之间的连接,如图3(b)所示。\hat{z^{l}}z^{l}表示第l层W-MSA和MLP的输出,这能由以下等式表示:

通过使用移位窗口划分策略,SW-MSA和MLP模块的输出可以表示为:

在本文中,考虑到复杂度和时间效率,采用Swin-B作为编码器进行特征提取。 输入图像 X \in \mathbb{R}^{H \times W \times 3}被分割成 (\frac{H}{s}) × (\frac{W}{s}) 个不重叠的 patch,其中 s 代表 patch 的大小,这些 patch 被展平并通过线性嵌入层投影到维度 c。 接下来,这些补丁令牌被输入 Swin Transformer 并依次经过四个阶段来提取特征。 每个阶段都有几个连续的 Swin Transformer 块,包括 W-MSA 和 SW-MSA,然后使用补丁合并模块来下采样并将特征维度加倍。每级输出分别为(\frac{H}{s})×(\frac{W}{s})×C、(\frac{H}{2s})×(\frac{W}{2s})×2C、(\frac{H}{4s})×(\frac{W}{4s})×4C、( \frac{H}{8s})×(\frac{W}{8s})×8C。

4.3、DMC模块

        在医学图像分割任务中,本文希望网络能够聚焦于目标区域,但是由于目标的大小不同,特别是当一些病灶区域或者解剖标志比较小时,很难准确定位目标区域 。 主要原因是编码器生成的特征图由于连续下采样而变得越来越粗糙。 对于较小的目标区域,深层特征图中的边界信息会变成几个像素甚至完全丢失,这对医学图像分割的准确性有很大影响。 一种简单的方法是输入大尺寸图像以获得更大的特征图,尽可能保留病变区域的信息,但这会产生巨大的计算成本。 另一种方法是融合浅层特征和深层特征,其中浅层特征图包含大量详细的边界信息。然而,由于浅层特征图同时保留了一些噪声,并且大多数特征融合方法会在融合浅层特征图时会混合一些不相关的信息,融合图像一般含有一定量的噪声,这也会影响分割结果。 因此本文提出DMC模块来降低浅层特征的噪声,如图4(d)所示。

图4:不同风格的特征融合

        在DMC模块中,本文将不同尺度的特征图与更高层次的语义特征融合,引导网络关注浅层和深层特征,以获得更全面的特征感知。 同时受已有方法的启发,乘法方法可以放大噪声区域与正常区域的差异,减少特征融合过程中浅层特征带来的噪声干扰。 具体来说,编码器的输出定义为E_{m}(m = 1, ... , 4),特征融合阶段m的输出F_{m}为本阶段编码器输出与其余阶段编码器输出的乘积 4-m阶段,这可以表示为:

其中g(·)表示特征变换,使用1×1卷积来减少通道数,并使用上采样来恢复分辨率。 图4说明了乘法特征融合方法与其他三种融合方法之间的差异图4(a)采用了U-net的跳跃连接方法,没有进行特征融合,会引入浅层信息的噪声,使得该方法对图像分割的效果没有太大改善图4(b)和(c)分别采用了加法和级联的融合方法,使得浅层和深层特征仅仅结合起来,但是使用这两种策略会忽略多尺度特征之间的相关性。 上述三种方式可以表示为:

当神经网络反向传播计算梯度时,计算可以用以下方程表示:

        由(9)和(10)可知,当使用加法和串联方法时,每个分支的梯度是恒定的,并且与其他分支没有相关性。 因此,一个分支的结果不会影响其他分支,网络无法平滑地学习多个分支之间的相关性。 在乘法中,每个分支的梯度不是固定的,会受到其他分支的影响。 在这种情况下,如果其中一个分支无法获得优异的特征,则使用乘法融合会放大该分支的误差,导致梯度很大。 因此,乘法特征融合方法可以在训练过程中极大地约束各个分支,使每个分支都能获得更好的特征,并且不同分支可以相互促进,从而滤除噪声,获得更准确的预测结果。

4.4、LPA模块

        在医学图像分割任务中,理想的分割网络将仅关注病变的目标区域。 然而,由于各种医学图像中病灶类型差异较大,且病灶颜色与周围组织差异较小,网络很难准确识别病灶位置。 同时,网络需要学习不同大小病变的复杂结构。为了克服这些困难,引入注意力机制来解决这个问题,它可以帮助网络定位感兴趣的区域并抑制无用的信息,并已广泛应用于深度学习中。 例如双边注意力解码器采用轻量级双边解码器来更准确地捕获语义和空间信息。 SAB Net提出了一种语义注意力增强(SAB)网络,该网络通过语义正则化自适应地迭代融合跨层上下文信息。 在本文中提出了LPA模块引导网络增强语义特征的区分度并强调目标区域。 LPA模块的结构如图5所示。

图5:LPA模块的架构图

        注意力机制由两个注意力模块组成:空间注意力(SA)和通道注意力(CA)模块。并非图像中的所有区域对任务的贡献都同等重要,因此,SA 模块被用作 SA 块,通过使用空间信息来查找特征的任务相关部分。 给定输入特征,SA AS 定义为:

其中 σ 是 sigmoid 函数,P_{max}P_{avg} 分别表示跨通道函数的自适应最大池化和自适应平均池化。\xi(\cdot) 是带有 7 × 7 滤波器的卷积。

        CA模块通过为通道分配不同的权重来衡量特征的重要性。 在本文中,我们采用“挤压和激励”块(SE层)作为CA模块,它由一个全局平均池化层和两个全连接层组成,CA A_{C}定义为:

其中FC_{1}FC_{2}代表两个全连接层,Pool_{avg}代表平均池化层。

        假设输入特征图 X \in \mathbb{R}^{H \times W \times C}具有高度 H、宽度 W 和多个输入通道 C,然后采用金字塔结构 P_{i} 来学习多尺度特征图X的信息,其中P_{i}表示第i层金字塔。 首先,通过金字塔的第一层获得全局注意力图。 随后,金字塔的剩余层将特征图分割成更小的维度,并通过局部注意机制获得更准确的病变边界预测。 然后,将局部信息合并到当前层的注意力图中。 最后,将不同层P_i(X)的注意力图相互融合,得到最终的注意力图。

        P_{i}的详细运行主要分为三个阶段。 首先,将输入特征图X沿H、W方向分割成n个大小相等的特征向量。 向量的数量 n 基于层数 i 并呈二次方增长。 随着金字塔层数 i 的增加,将获得 n=i^{2} 个更细化的特征向量 f_{j} ( j = 1, ... , n) 的数量。 其次,得到特征向量后,通过CA块学习每个特征向量,然后将特征向量f_{j}与CA向量W_{cj}相乘,就可以得到通道权重向量W_{cj}( j = 1, ... , n) 获得 CA 映射 W_{cj}( j = 1, ... , n)。 接下来,将CA映射W_{cj}依次经过SA块,得到对应的SA矩阵W_{sj}(j=1,...,n),然后将CA映射W_{cj}乘以SA矩阵W_{sj},得到SA 映射 W_{sj} ( j = 1, ... , n)。 最后,根据分裂时特征图的空间位置编码信息,将所有SA图W_{sj}j通过分裂的逆操作重新整合,得到当前第i个金字塔级别对应的注意力图P_i(X), 其中注意力图 P_i(X)的大小与原始特征图 X 的大小相同。

        通过同样的操作,可以引导网络找到不同层的注意力图P_i(X),并最终合并得到最终的注意力图。 这可以有效增强特征学习中各个特征的判别能力,提高网络识别目标区域的能力。 同时,我们将所提出的 LPA 结构嵌入到 DMC 模块的四个输出中。

4.5、解码器

        解码器部分结合卷积块、上采样和跳跃连接来逐步恢复特征图的分辨率,如图2所示。具体来说,在每个阶段,中间特征图首先与级联的特征信息融合 同一阶段通过DMC和LPA模块输出,通过3×3卷积调整并使用双线性插值进行上采样,最后使用3×3卷积获得该阶段的输出以改善上采样结果。 特别是,在编码器路径的最后阶段,通过上采样操作和通道数的1×1卷积调整,将前一阶段处理的特征图恢复到与输入图像相同的大小。

4.6、损失函数

        医学图像分割通常存在前景和背景分布不平衡以及病灶形状大小不一的问题。 为了更好地训练和优化我们的模型,我们将 Dice 损失和二元交叉熵(BCE)损失结合起来形成一个新的损失函数,可以定义为:

其中y和p分别表示图像的真实标签和预测结果,ε是设置为1以提高稳定性的参数。 通过组合损失函数,网络能够快速稳定收敛,在不同的医学图像数据集上都能取得良好的效果。 同时,在对比实验中,我们使用该损失函数对所有对比方法在不同分割任务中进行训练。

五、实验过程

5.1、数据集

        Polyp 数据集:息肉数据集由五个公共数据集组成,名为 Kvasir、CVC-ClinicDB、CVC-ColonDB 、EndoScene 和 ETIS 。 这些数据集包含 2248 张不同尺寸的图像,来自不同的医疗机构。 为了保证公平性,我们在PraNet 中采用了划分方法,将来自Kvasir和CVC-ClinicDB数据集的图像随机分为90%用于训练(总共1450张图像)和10%用于测试(总共162张图像) 。 为了确认该方法的泛化能力,未出现在训练集中的CVC-ColonDB、EndoScene和ETIS数据集(总共636张图像)也被用作测试集。

        ISIC 2018数据集:ISIC 2018数据集来自ISIC-2018挑战赛中的病变边界分割任务,其中包含由几个领先的国际临床中心收集的来自不同类型皮肤病变的2594张图像。 这些不同分辨率的皮损图像都有相应的手动标签作为分割评估的参考标准,并且标签经过专家的不断确认和固定。 实验中进行了五重交叉验证数据集,将数据集分为 2075 张图像用于训练,519 张图像用于测试

        LIVis 数据集:LIVis 数据集是从使用手术机器人对 6 名患者进行的 6 次现场 TME 手术中收集的临床私人数据集,如图 6 所示。TME 手术通过解离直肠系膜中的疏松结缔组织来去除骨盆内筋膜将心尖平面和内脏平面分开,从而最大限度地降低环切缘阳性的风险,并对局部复发具有很强的预后意义。 然而,为了避免游离游离结缔组织时损伤直肠系膜内血管、神经等重要组织,腹腔镜检查时准确分割视野内的疏松结缔组织非常重要。 因此,我们创建了手术不同阶段疏松结缔组织的数据集。 具体来说,我们从约15小时的TME手术视频中分阶段采样了1180幅腹腔镜视频图像,这些图像的标签经过外科专家仔细的交叉验证,可以作为评估的参考标准。 在实验中,数据集被分为 844 张图像用于训练,236 张图像用于测试

图6:手术机器人数据采集流程

5.2、实现细节

        由于上述三个数据集中的图像在图像大小、分辨率和病变特征方面存在显着差异,因此在实验中分别在不同数据集上对所提出的SwinPA-Net和其他SOTA分割方法进行了训练和测试。 由于GPU资源的限制,本文没有使用原始图像作为网络的输入,而是将输入图像的大小调整为384×384像素进行训练和测试。 数据增强用于扩展训练集并增强分割性能,包括沿不同维度的随机翻转和随机移位。 在训练阶段,采用AdamW优化器权重衰减为0.0005,最大训练epoch为100,在20和60个epoch后分别减少十倍,而初始学习率等于0.0001。 网络架构使用PyTorch框架实现,所有实验均在配备NVIDIA GeForce GTX 3090 GPU、Intel Core 4215R CPU128G RAM的标准工作站上进行。

        采用通用评估指标来量化我们提出的算法的分割性能。 对于 Polyp 数据集,我们使用与 PraNet 中相同的评估指标,包括平均 Dice 系数 (mDice)平均交并集 (mIoU) 平均绝对误差 (MAE)。 此外,还采用 mDice、mIoU 和召回等指标对 ISIC 2018 数据集进行定量评估。 对于 LIVis 数据集,我们使用与 CPFNet 相同的评估指标。 指标的详细定义如下:

其中,真阳性(TP)表示被正确分割为病变的像素数,假阳性(FP)表示被正确分割为病变像素的背景像素数,真阴性(TN)表示被正确分割为正常的像素数 组织,假阴性 (FN) 是未如此分割的真实病变像素的数量。 MAE表示真实值与预测值之间的绝对误差的平均值。 值越小,分割效果越好。 对于其他指标,值越大表示分割性能越好。

5.3、实验结果

5.3.1、Polyp 数据集结果

表1:测试在KVASIR-SEG 和 CLINICDB数据集上结果

表2:测试在COLONDB、ETIS 和 ENDOSCENE数据集上结果

图7:SwinPA-Net 和其他方法在息肉分割任务中的定性结果

5.3.2、皮肤病灶数据集分割结果

表3:ISIC 2018 数据集的定量结果

图8:SwinPA-Net 和其他模型在 ISIC 分割数据集上的定性结果

5.3.3、LIVis 数据集分割结果

表4:LIVIS 数据集的定量结果

图9:SwinPA-Net 和其他方法在 LIVis 数据集分割的定性结果

5.4、消融实验

表5:所提出方法的消融实验

图10:DMC和LPA的特征图

六、总结

        本文介绍了 SwinPA-Net,这是一种新颖的基于 Swin Transformer 的多尺度特征金字塔聚合网络用于医学图像分割。 SwinPA-Net的核心思想是通过Swin Transformer编码器以及设计的DMC和LPA模块聚合医学图像的上下文和边界信息,同时滤除浅层特征中的噪声和不相关信息。 所设计的模块可以有效缓解由于各种医学图像中病灶类型差异较大、病灶颜色与周围组织差距较小而难以准确定位病灶的问题

      本文大量的对比实验结果表明,所提出的方法可以在大多数测试数据集上达到SOTA结果,这充分展示了SwinPA-Net在医学图像分割方面优异的学习能力和强大的鲁棒性。 例如,在息肉分割实验中,本文的方法可以在三个未见过的数据集中出色地分割目标区域,说明本文的方法对不同病变的强大适应性。 但本文方法参数较多,需要一定数量的高精度医学图像进行标注。 未来的工作将更多地关注术中分割,这对实时性能提出了更高的要求。 此外,获得大量准确标记的医学图像也具有挑战性。 因此,下一步将尝试在该方法的基础上探索一种轻量级的无监督分割方法,以满足术中场景的需求。

### Swin Transformer 中的多层特征聚合Swin Transformer 架构中,为了有效地进行多层特征聚合,采用了类似于卷积神经网络(CNN)中的层次化结构设计[^2]。这种设计允许模型逐步降低输入图像的空间维度的同时增加通道数,从而形成不同抽象级别的特征表示。 #### 层次化的特征提取过程 Swin Transformer 使用分层的方式处理数据,在每一层内部采用固定大小的不重叠窗口来进行局部建模,并通过移位窗口自注意力机制(SW-MSA)增强跨窗口的信息交互能力。具体来说: - **窗口划分**:将输入划分为多个互不交叠的小区域(窗口),这些窗口内的token之间可以相互作用。 - **移位操作**:每隔一层执行一次水平或垂直方向上的窗口偏移,使得相邻两层间存在部分共享边界像素点参与计算的机会,进而促进更广泛的感受野覆盖范围扩展。 #### 特征金字塔网络(FPN) 除了上述提到的基础组件外,还可以借鉴FPN的思想进一步加强多尺度上下文感知力。对于Swin Transformer而言,则是在各个stage之后接入额外的上采样模块以及横向连接路径完成这一目标。例如,在第n个Stage产生的高维低分辨率特征图基础上,经过一系列反卷积/插值放大后与前一Stage输出相融合得到更加丰富的中间表征形式供后续任务调用[^3]。 ```python import torch.nn as nn class FPN(nn.Module): def __init__(self, in_channels_list, out_channel=256): super().__init__() self.lateral_convs = nn.ModuleList() self.output_convs = nn.ModuleList() for ch_in in reversed(in_channels_list): # 自顶向下构建侧边分支 lateral_conv = ConvBNReLU(ch_in, out_channel, kernel_size=1) output_conv = ConvBNReLU(out_channel, out_channel, kernel_size=3, padding=1) self.lateral_convs.append(lateral_conv) self.output_convs.append(output_conv) def forward(self, features): results = [] prev_feature = None for feature, lat_conv, out_conv in zip( reversed(features), self.lateral_convs, self.output_convs): if prev_feature is not None: upsampled_prev = nn.functional.interpolate(prev_feature, scale_factor=2, mode='nearest') feature += upsampled_prev lateral_out = lat_conv(feature) result = out_conv(lateral_out) results.insert(0, result) prev_feature = result return tuple(results) def build_fpn(swin_transformer_outputs): fpn = FPN([96 * (2**(i)) for i in range(len(swin_transformer_outputs))]) enhanced_features = fpn(swin_transformer_outputs) return enhanced_features ``` 此代码片段展示了如何利用FPN来增强来自不同Stages的Swin Transformer输出之间的联系,最终获得具有更强表达能力和鲁棒性的多层次特征集合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值