跳转至

VISTA3D: A Unified Segmentation Foundation Model For 3D Medical Imaging

会议: CVPR 2025
arXiv: 2406.05285
代码: github
领域: 医学图像 / 分割
关键词: 3D医学分割, 基础模型, 交互分割, 零样本分割, 超体素蒸馏

一句话总结

提出VISTA3D,首个统一的3D医学影像分割基础模型,同时支持127类的自动分割、3D交互式编辑和零样本分割,通过从SAM蒸馏的3D超体素技术实现SOTA零样本性能,在14个数据集上达到或超过专门训练的专家模型。

研究背景与动机

  1. 领域现状:3D医学影像分割已有强大的自动分割模型(TotalSegmentator支持117+类),也有基于SAM的交互分割方法。但现有方案要么只支持自动分割(缺零样本能力),要么只支持交互分割(精度不如专家模型),没有统一方案。

  2. 现有痛点:(a) TotalSegmentator等自动模型缺乏零样本能力,遇到未见类别(如罕见病变、动物数据)束手无策;(b) SAM/SAM2直接应用于3D医学图像效果差——3D切片间的空间一致性需求与视频帧间的时间跟踪本质不同;(c) 2D逐层标注对3D体积数据太耗时;(d) 上下文学习/开放词汇分割的精度远低于专家模型。

  3. 核心矛盾:3D医学分割的基础模型需要同时具备"高精度自动分割"(需大量监督训练)和"零样本泛化"(需2D预训练知识),但这两个目标的训练策略本质冲突——3D卷积网络擅长前者,2D ViT-based模型擅长后者。

  4. 本文目标:构建一个统一模型,同时实现SOTA的3D自动分割(127类)、SOTA的3D交互分割和SOTA的3D零样本分割。

  5. 切入角度:基于成熟的3D分割pipeline(SegResNet+滑窗推理)构建主干,通过创新的3D超体素方法将SAM的2D知识蒸馏到3D空间,同时设计双分支架构分别处理自动和交互分割。

  6. 核心idea:双分支共享编码器架构(自动分支用类别嵌入做promptable分割,交互分支用3D点击做编辑)+ 从SAM特征图生成3D超体素训练交互分支获得零样本能力。

方法详解

整体框架

输入为3D CT体积图像,根据用户提供的类别索引(自动分割)或3D点击坐标(交互分割)输出二值分割结果。模型由共享的SegResNet编码器+两个独立的解码器分支组成。四阶段训练策略:(1)训练交互分支→(2)微调交互分支→(3)训练自动分支→(4)微调自动分支。数据包含11454个CT扫描+手动标注+伪标注+SAM超体素。

关键设计

  1. 双分支共享编码器架构:

    • 功能:用一个模型同时支持高精度自动分割和灵活交互分割
    • 核心思路:SegResNet编码器在两个分支间共享。自动分支使用可学习的 \(N \times C\) 类别嵌入 \(E_c\),给定类别索引 \(i\),输出为 \(sigmoid(M(E_c[i]) \times F)\),其中 \(F\) 是解码器输出特征,\(M\) 是MLP。交互分支基于SAM的点编码器,接受3D点击坐标和正负标签,通过cross-attention transformer生成输出。同时引入零样本嵌入和歧义消解嵌入处理特殊情况。
    • 设计动机:promptable自动分割(一次只输出一个类别的二值掩码)相比多类别softmax输出,大幅减少内存消耗且天然避免部分标注数据集的训练问题。共享编码器确保两分支受益于相同的强特征表示。
  2. 3D超体素生成(SAM特征蒸馏):

    • 功能:将SAM的2D图像理解能力蒸馏到3D空间,为交互分支提供大规模多样化训练数据
    • 核心思路:对每个3D CT扫描,从轴状(axial)、冠状(coronal)、矢状(sagittal)三个方向逐层输入SAM的ViT编码器和mask decoder的输出缩放层,得到上采样的2D SAM特征图。将三个方向的特征堆叠为3D特征体积 \(F_{3D} = F_A + F_C + F_S\),然后在3D特征空间上运行SLIC超像素算法生成超体素(100个segments,sigma=3)。为全部11454个CT扫描生成超体素用于训练。
    • 设计动机:SAM的零样本能力来自1100万张图像的全标注训练——3D医学影像无法获得同等规模的标注。超体素蒸馏方法绕开了这个限制,利用SAM已经学到的"什么是物体"的先验知识,在不微调SAM的前提下获得3D零样本训练数据。实验证明比基于graph-cut的低级特征超体素(SegVol)效果显著更好。
  3. 交互式精化算法(Alg. 1):

    • 功能:用点击交互结果修正自动分割结果,避免破坏正确区域
    • 核心思路:计算自动结果和交互结果的差异区域,分解为3D连通分量。只对包含用户点击的连通分量执行添加/删除操作,不影响其他区域。正点击所在的添加连通分量加入最终结果,负点击所在的删除连通分量从最终结果移除。
    • 设计动机:直接将交互结果覆盖自动结果会破坏原本正确的区域(FocalClick已发现此问题)。基于连通分量的局部修改策略精确限制了变更范围。

损失函数 / 训练策略

四阶段训练策略: - Stage 1(交互分支训练):大迭代次数,融合手动/伪标注+超体素训练,SAM式迭代训练(5次迭代采样false positive/negative区域) - Stage 2(交互分支微调):数据集过采样解决类别不平衡,去除超体素和无标注数据 - Stage 3(自动分支训练):冻结编码器,只训练自动分支解码器和类别头 - Stage 4(自动分支微调):使用MAISI合成数据增广稀有类别(肿瘤/病变)

使用128立方patch训练和滑窗推理,标准BCE+Dice损失。

实验关键数据

主实验

14个数据集、127类自动分割(平均Dice):

方法 MSD09脾脏 BTCV腹部 骨病变 肺肿瘤 类别数
nnUNet (专家) 0.967 0.807 0.396 0.554 逐任务
Auto3DSeg (专家) 0.965 0.807 0.343 0.562 逐任务
TotalSegmentator 0.966 - - - 117
VISTA3D auto 0.952 ~0.80 0.491 0.613 127
VISTA3D auto+point 0.954 ~0.82 0.585 0.719 127

消融实验

配置 零样本Dice↑ 说明
无超体素训练 ~0.30 零样本能力几乎为零
Graph-cut超体素 (SegVol式) ~0.38 低级特征超体素
SAM特征超体素 (VISTA3D) ~0.57 SAM语义特征超体素,提升50%+

关键发现

  • VISTA3D是唯一在自动分割精度上与nnUNet/TotalSegmentator可比的同时还支持交互和零样本的模型
  • SAM特征蒸馏的3D超体素是零样本能力的关键——比graph-cut超体素提升50%
  • 仅需1个点击修正,VISTA3D auto+point就能在多个任务上超过专家模型
  • 随机初始化的类别嵌入略优于CLIP嵌入,说明对于固定词汇量的自动分割,text embedding并无优势
  • 推理速度比TotalSegmentator(5模型集成)快得多

亮点与洞察

  • 分阶段训练策略非常实用:先训练编码器和交互分支获得通用特征→冻结编码器训练自动分支避免灾难性遗忘→微调解决长尾类别。这种策略对多任务基础模型具有普遍参考价值。
  • 超体素作为SAM知识蒸馏的载体是核心创新:不微调SAM权重,只用其特征图做3D聚类→得到训练标签→训练原生3D模型。这避免了2D→3D adaptor的性能瓶颈。
  • 可学习类别嵌入优于CLIP嵌入这个发现很重要——说明在闭集自动分割场景下,task-specific学习比预训练语义表示更有效。

局限与展望

  • 仅支持CT模态,未扩展到MRI等其他3D医学影像
  • 127类虽多但仍是闭集,真正的开放词汇分割尚未实现
  • 超体素训练数据的质量受SAM在医学影像上表现的限制
  • 四阶段训练流程较复杂,需要精心调整各阶段超参数
  • 未来可以探索引入文本开放词汇能力和MRI支持

相关工作与启发

  • vs TotalSegmentator: 同为3D自动分割基础模型,VISTA3D额外支持交互编辑和零样本,且单模型(vs 5模型集成)
  • vs MedSAM: MedSAM微调SAM做2D医学分割,不支持3D且缺乏自动分割能力
  • vs SegVol: SegVol也支持3D语义+交互分割但自动分割性能差距大,且graph-cut超体素不如SAM特征超体素

评分

  • 新颖性: ⭐⭐⭐⭐⭐ SAM特征蒸馏生成3D超体素的策略极具创造性,双分支统一架构设计精巧
  • 实验充分度: ⭐⭐⭐⭐⭐ 14个数据集127类对比3个强基线,消融诊断清晰
  • 写作质量: ⭐⭐⭐⭐ 工作流图和架构图清晰,四阶段训练的动机解释充分
  • 价值: ⭐⭐⭐⭐⭐ 对3D医学影像分割社区的实际贡献极大,开源且可直接部署