FAN-UNET:用于生物医学图像分割增强模型
目录
一、论文结构概述
二、创新点详解
三、创新点结构与原理
(1)Vision-FAN Block:全局与周期特征的融合引擎
(2)FANLayer2D:周期性建模的核心
四、代码复现思路
五、仿真结果分析
(1)SOTA模型对比
(2)消融实验
六、应用场景
总结
一、论文结构概述
本文采用经典学术论文框架:
- 摘要(ABSTRACT):概述FAN-UNet的核心贡献——结合Vision-FAN Block与U-Net,解决长程依赖和周期性建模问题。
- 引言(Introduction):阐述医疗图像分割的重要性,分析CNN和Transformer的局限性,并引出FAN在周期性建模的优势。
- 预备知识(Preliminaries):介绍傅里叶分析基础,为方法部分奠定数学基础。
- 方法(Method):详解FAN-UNet架构,包括Vision-FAN Block和FANLayer2D的设计。
- 实验(Experiment):在ISIC2017/2018数据集上对比SOTA模型,并进行消融实验验证组件有效性。
- 结论(Conclusion):总结模型优势,并展望未来方向。
该结构逻辑清晰,层层递进,从问题定义到解决方案再到实证验证。
二、创新点详解
FAN-UNet的三大核心创新:
- Vision-FAN Block:首次将傅里叶分析层(FANLayer2D)与自注意力机制结合,同时捕捉长程依赖和周期性特征。
- 医疗分割首次应用:这是FAN模型在医疗图像分割领域的首次探索,填补了周期性建模的空白。
- 高性能与轻量化:实验显示,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:基于傅里叶分析,显式编码周期性特征(原理见下文)。
- 残差连接与层归一化:确保训练稳定性,避免梯度消失。
该模块的数学表达为:
# 伪代码示意
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的关键步骤:
- 整体架构:继承U-Net的编码器-解码器结构,在跳跃连接处插入Vision-FAN Block。
- FANLayer2D实现:
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) # 通道拼接
- 损失函数:组合Dice Loss和交叉熵:
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 - 结论:FAN-UNet在mIoU和DSC上全面领先,尤其在ISIC17上Accuracy达96.30%,证明其在复杂病变分割中的鲁棒性。
- 结论: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在以下医疗场景潜力突出:
- 皮肤病变分割:如ISIC数据集中的黑色素瘤,其边界纹理常呈周期性,FANLayer2D能精准捕捉此类模式。
- 肿瘤分析:脑瘤(论文提及MRI数据)的形状变异大,但内部纹理有重复性,Vision-FAN Block可联合建模全局结构和局部周期特征。
- 多模态医疗图像:未来可扩展至CT、MRI等多模态数据,傅里叶分析对噪声鲁棒性强,适合低质量临床图像。
实际部署时,需针对特定数据集微调周期参数 T,以适配不同器官的纹理尺度。
总结
FAN-UNet通过傅里叶分析 + 自注意力机制的创新融合,解决了医疗图像分割中的长程依赖和周期性建模难题。实验证明其在精度和泛化性上的显著优势,代码复现也较为直观。未来可探索其在3D分割或实时诊断中的应用。
论文地址:https://arxiv.org/pdf/2410.02675