FAN-UNET:用于生物医学图像分割增强模型

目录

一、论文结构概述

二、创新点详解

三、创新点结构与原理

[(1)Vision-FAN Block:全局与周期特征的融合引擎](#(1)Vision-FAN Block:全局与周期特征的融合引擎)

(2)FANLayer2D:周期性建模的核心

四、代码复现思路

五、仿真结果分析

(1)SOTA模型对比

(2)消融实验

六、应用场景

总结


一、论文结构概述

本文采用经典学术论文框架:

  1. 摘要(ABSTRACT)​:概述FAN-UNet的核心贡献------结合Vision-FAN Block与U-Net,解决长程依赖和周期性建模问题。
  2. 引言(Introduction)​:阐述医疗图像分割的重要性,分析CNN和Transformer的局限性,并引出FAN在周期性建模的优势。
  3. 预备知识(Preliminaries)​:介绍傅里叶分析基础,为方法部分奠定数学基础。
  4. 方法(Method)​:详解FAN-UNet架构,包括Vision-FAN Block和FANLayer2D的设计。
  5. 实验(Experiment)​:在ISIC2017/2018数据集上对比SOTA模型,并进行消融实验验证组件有效性。
  6. 结论(Conclusion)​:总结模型优势,并展望未来方向。

该结构逻辑清晰,层层递进,从问题定义到解决方案再到实证验证。


二、创新点详解

FAN-UNet的三大核心创新:

  1. Vision-FAN Block:首次将傅里叶分析层(FANLayer2D)与自注意力机制结合,同时捕捉长程依赖和周期性特征。
  2. 医疗分割首次应用:这是FAN模型在医疗图像分割领域的首次探索,填补了周期性建模的空白。
  3. 高性能与轻量化:实验显示,FAN-UNet在mIoU(78.99%)、DSC(88.25%)、Accuracy(96.30%)等指标上优于主流模型(如HC-Mamba、TransFuse),且模型复杂度可控。

这些创新解决了医疗图像中病变区域周期性模式(如皮肤纹理重复性)的建模难题,显著提升分割鲁棒性。


三、创新点结构与原理

(1)Vision-FAN Block:全局与周期特征的融合引擎

Vision-FAN Block是FAN-UNet的核心模块,其结构如图1(B)所示。它通过多阶段处理整合全局和局部信息:

  • 位置编码(Positional Embed)​:为特征图添加位置信息,增强空间关系理解。
  • 窗口自注意力(Window-based Self-Attention)​:计算特征图不同位置的交互,捕捉长程依赖。例如,在皮肤病变分割中,病变区域可能跨越多个空间位置,自注意力能有效关联这些区域。
  • FANLayer2D:基于傅里叶分析,显式编码周期性特征(原理见下文)。
  • 残差连接与层归一化:确保训练稳定性,避免梯度消失。

该模块的数学表达为:

python 复制代码
# 伪代码示意  
def Vision_FAN_Block(input):  
    x = positional_embed(input)  # 位置编码  
    x = window_self_attention(x)  # 自注意力  
    x = FANLayer2D(x)           # 傅里叶分析层  
    x = layer_norm(x + input)    # 残差连接与归一化  
    return x  
(2)FANLayer2D:周期性建模的核心

FANLayer2D是Vision-FAN的关键组件,其结构如图2所示。原理基于傅里叶级数展开:

  • 数学基础 :将输入函数分解为正余弦分量(见公式5):
    fS(x)=B+Wccos(Winx)+Wssin(Winx)
    其中 B,Win,Wc,Ws 为可学习参数,T 为周期。
  • 处理流程
    • 步骤1:计算周期分量 P=Wp∗X+bp 和非线性分量 G=Wg∗X+bg。
    • 步骤2:对 G 应用非线性激活(如ReLU),生成 Gact=ϕ(G)。
    • 步骤3:对 P 应用傅里叶激活,得到 Pcos=cos(P) 和 Psin=sin(P)。
    • 步骤4:沿通道维度拼接 Pcos、Psin 和 Gact,形成输出特征。
  • 优势:显式学习周期性模式(如医学图像中组织的重复纹理),提升模型泛化能力。

四、代码复现思路

基于PyTorch实现FAN-UNet的关键步骤:

  1. 整体架构:继承U-Net的编码器-解码器结构,在跳跃连接处插入Vision-FAN Block。
  2. FANLayer2D实现
python 复制代码
import torch  
import torch.nn as nn  

class FANLayer2D(nn.Module):  
    def __init__(self, in_channels, out_channels):  
        super().__init__()  
        self.conv_p = nn.Conv2d(in_channels, out_channels // 2, kernel_size=3, padding=1)  # 周期分量卷积  
        self.conv_g = nn.Conv2d(in_channels, out_channels // 2, kernel_size=3, padding=1)  # 非线性分量卷积  
        self.act = nn.ReLU()  # 非线性激活  

    def forward(self, x):  
        P = self.conv_p(x)  # 周期分量  
        G = self.conv_g(x)  # 非线性分量  
        G_act = self.act(G)  # 激活  
        P_cos = torch.cos(P)  # 余弦激活  
        P_sin = torch.sin(P)  # 正弦激活  
        return torch.cat([P_cos, P_sin, G_act], dim=1)  # 通道拼接  
  1. 损失函数 :组合Dice Loss和交叉熵:

    python 复制代码
    def combined_loss(input, target, alpha=0.5):  
        ce_loss = nn.CrossEntropyLoss()(input, target)  
        dice_loss = 1 - (2 * (input * target).sum() / (input.sum() + target.sum() + 1e-5))  
        return (1 - alpha) * ce_loss + alpha * dice_loss  

    五、仿真结果分析

    实验基于ISIC2017/2018皮肤病变数据集,关键结果如下:

    (1)SOTA模型对比
    数据集 模型 mIoU(%) DSC(%) Accuracy(%)
    ISIC17 FAN-UNet 78.99 88.25 96.30
    HC-Mamba 77.88 87.38 95.17
    ISIC18 FAN-UNet 78.74 88.11 94.31
    Med-TTT 78.59 88.01 94.30
  2. 结论:FAN-UNet在mIoU和DSC上全面领先,尤其在ISIC17上Accuracy达96.30%,证明其在复杂病变分割中的鲁棒性。

  3. 结论:Vision-FAN Block贡献最大(mIoU提升0.88%),位置编码次之,验证了周期性建模和空间关系的关键性。

(2)消融实验
配置 mIoU(%) DSC(%)
完整FAN-UNet(Proposed) 78.74 88.11
移除Vision-FAN Block 77.86 87.55
移除位置编码 78.42 87.89

六、应用场景

FAN-UNet在以下医疗场景潜力突出:

  1. 皮肤病变分割:如ISIC数据集中的黑色素瘤,其边界纹理常呈周期性,FANLayer2D能精准捕捉此类模式。
  2. 肿瘤分析:脑瘤(论文提及MRI数据)的形状变异大,但内部纹理有重复性,Vision-FAN Block可联合建模全局结构和局部周期特征。
  3. 多模态医疗图像:未来可扩展至CT、MRI等多模态数据,傅里叶分析对噪声鲁棒性强,适合低质量临床图像。

实际部署时,需针对特定数据集微调周期参数 T,以适配不同器官的纹理尺度。

总结

FAN-UNet通过傅里叶分析 + 自注意力机制的创新融合,解决了医疗图像分割中的长程依赖和周期性建模难题。实验证明其在精度和泛化性上的显著优势,代码复现也较为直观。未来可探索其在3D分割或实时诊断中的应用。

论文地址:https://arxiv.org/pdf/2410.02675