医学分割论文:nnU-Net: Self-adapting Framework for U-Net-Based Medical Image Segmentation
Auther: Fabian Isensee, Institution:German Cancer Research Center, Publish year: 2018
论文地址:https://arxiv.org/abs/1809.10486
https://github.com/MIC-DKFZ/nnUNet
目前存在的问题:
- UNet在图像分割领域具有广泛应用,然而在将UNet框架应用于新的分割问题是,需要考虑网络结构,预处理,训练和预测等多个方面的问题。因此需要花费大量的时间用于数据预处理和调优。
作者提出的方案:
- 作者提出了一个可适用于多种数据,并可以自我调优的网络结构:nnUNet(no-new UNet),仅使用最典型的二维和三维UNet网络,在不使用手动优化的情况下,在多个数据集中获得了最高平均得分
- 没有添加最近的UNet改进:residual connection,dense connection,attention module
- 关注了除网络结构之外的其他方面的优化-> 图像预处理(重采样和归一化),训练(loss,优化器选择,数据增强),预测(patch-based,TTA和模型集成),后处理
研究方法:
- 网络结构:2D 和 3D UNet以及多尺度UNet。网络中的小改动:使用 leaky ReLUs 代替ReLU作为卷积中的激活函数,并使用instance normalization代替batch normalization
- 2D UNet: 虽然医学分割数据集均为3D数据集,但是在数据集存在空间各向异性的情况下,3D网络存在性能下降的问题
- 3D UNet:天然适合3D数据集,但是对GPU显存消耗巨大
- 级联UNet:低分辨率后接高分辨率UNet
预处理:
- 裁剪:去掉0区域
- 重采样:统一pixel spacing
- 正则化:对于CT,将数据集中所有CT值的[0.5, 99.5]进行标准化,根据平均值和标准差进行z评分标准化;对于MR,对每个病人数据进行z评分标准化
训练:
- 所有训练均使用5折交叉验证
- 使用dice和交叉熵作为损失函数
- 使用Adam优化器,初始学习率为3e-4,每个epoch设为250个train batches。在训练中计算验证集和训练集的loss的滑动平均值,当30个epoch训练集loss(acc)提升小于5e-3时,将学习率调小,学习率最小为1e-6
- 数据增强:随机旋转,随机缩放,随机弹性变形,伽马校正增强和镜像
- patch sampling:为了提高网络训练的稳定性,在batch中超过三分之一的样本包含至少一个随机选择的前景类
预测:
- 基于patch训练,同样基于patch预测,对于不同patch重叠部分,中心pixel的权重高于边缘部分
- 在预测时使用数据增强,使用5折训练的5个模型的进行预测
- 将多个模型进行集成
后处理:
- 对训练数据进行了ground truth的连通分量分析。如果一个类在所有情况下都位于一个连接的组件中,那么这个行为就被定义为数据集的一个通用属性。因此,在相应数据集的预测图像上,除了最大的连接组件外,该类的所有连接组件都会自动删除