2019-05-10|nnU-Net 自适应数据集的医学影像分割

《nnU-Net: Breaking the Spell on Successful Medical Image Segmentation》

总结

在数据集的多样性的推动下,语义分割是医学图像分析中的一个流行子领域,每年都会提出大量的新方法。然而,这种日益增长的方法变得越来越难以理解。同时,许多提出的方法未能在它们被证明的实验之外进行推广,从而妨碍了在新数据集上开发分割算法的过程。在这里,我们提出了nnU-Net('no-new-Net'),这个框架可以自动适应任何给定的新数据集。虽然到目前为止这个过程完全由人为驱动,但我们首先尝试根据给定数据集的属性自动执行必要的调整,例如预处理,精确的补丁大小,批量大小和推理设置。值得注意的是,nnU-Net剥离了文献中通常提出的模型结构中的华丽技巧,只是依赖于嵌入在强大的训练方案中的简单U-Net架构。开箱即用,nnU-Net在六个完善的细分挑战中实现了最先进的性能。源代码可从https://github.com/MIC-DKFZ/nnunet获得。

语义分割仍然是医学图像计算领域的一个热门研究课题,70%的国际竞赛都致力于此[8]。持久兴趣的重要原因当然是医学领域中遇到的成像数据集的多样性和个体特性(详见[14]):在考虑群组大小,图像维度,图像大小,体素时,数据集差别很大的强度范围和强度解释(intensity interpretation)。图像中的类标签可能高度不平衡,标签可能不明确,而专家标注质量从数据集到数据集的变化很大。此外,某些数据集在图像几何形状方面非常不均匀,或者可能表现出切片未对准和极其各向异性的间距。总而言之,这些情况使得将一项任务的结果推广到其他任务变得更加困难,并且当重新应用开箱即用的方法来解决另一个问题时,它们往往不能立即成功。这自然导致近​​年来提出了大量的分割方法。仅举几个突出的例子:U-Net [12]首先介绍的带跳过连接的编码器 - 解码器式架构的变化,包括引入残差连接[9],密集连接[6],注意机制[ 10],额外的损失层[5],特征重新校准[13],以及其他[11]。具体修改彼此大不相同,但它们都特别关注架构修改。鉴于一方面大量与细分相关的出版物以及具体实施和数据集相关挑战的多样性,另一方面越来越难以遵循文献并确定哪些设计原则实际上超出了实验的范围。根据我们自己的经验,许多新的设计概念没有改善,有时甚至恶化了精心设计的基线的性能。

本文试图朝这个方向迈出第一步:我们提出了no-new-Net(nnU-Net),一种包含自动适应新数据集的形式的分割方法。基于对数据集的自动分析,nnU-Net自动设计并执行网络训练流程。围绕标准U-Net架构[12],假设是对所有超参数的系统和谨慎选择仍将产生竞争性能。实际上,在没有任何手动微调的情况下,该方法在几个众所周知的医学分割基准上实现了最先进的性能。

方法

分割算法可以形式化为函数,其中x是图像,y是相应的预测分割,θ是训练和应用该方法所需的超参数集合。 θ的维数可能非常大,涵盖了从预处理到推理的整个实验流程。出版物通常侧重于报告和实质性关于θ的最相关选择,并且理想地提供完全覆盖θ的源代码。但是,如果转换到具有不同属性的新数据集,则此过程缺乏对如何调整θ的深入了解。在这里,我们首次尝试将此过程正式化。具体来说,我们寻找在数据集之间很好地推广的函数。作为第一步,这需要识别那些不需要适应的超参数,在我们的情况下反映强大但简单的分割架构和强大的训练方案,以及那些是动态的,即需要根据X和Y.在第二步中,我们为动态参数定义,在我们的例子中是一组启发式规则,它们适应规范化和重新采样方案,配置补丁(patch size)大小和批量大小(batch size)以及计算精确的网络几何形状,包括集成和推理技术。总而言之,这是nnU-Net,这是一个分割框架,可以在没有任何用户交互的情况下适应自己以前看不见的数据集。

预处理

Image Normalization
nnU-Net需要输入通道的模态信息。如果模态不是CT,则nnU-Net通过减去平均值并除以标准偏差来标准化强度值。如果模态是CT,则收集训练集中的所有前景体素,并且基于这些值的0.5和99.5百分位执行强度值的自动化水平窗口剪切。为了符合典型的权重初始化方法,然后使用全局前景均值和标准偏差对数据进行归一化。所描述的方案独立地应用于每种情况和每种模态。

Voxel Spacing
nnU-Net收集训练数据中的所有间距,并且每个轴选择中位数作为目标间距。然后使用三阶样条插值对所有训练案例进行重新采样。各向异性间距(这里面外间距比面内间距大三倍)会引起插值伪影。在这种情况下,使用最近邻居完成平面外插入。对于相应的分割标签,通过使用线性插值分别重新采样每个标签来替换样条插值。

训练过程

Network Architecture
三个U-net模型彼此独立配置,设计和训练:2D U-Net,3D U-Net和两个3D U-Net模型的级联,其中第一个以低分辨率生成分段,随后由第二个模型改进。原始U-Net架构唯一值得注意的变化是使用填充卷积(padded convolutions)来实现相同的输出和输入形状,实例归一化和Leaky ReLU而不是ReLU。 ñ
Network Hyperparameters
根据预处理的训练数据的形状,调整U-Nets的特定实例。具体来说,nnU-Net会自动设置每个轴(axis)上的批量大小,patch size大小和池化操作数,同时将内存消耗保持在一定的预算范围内(12 GB TitanXp GPU)。因此,较大的批量大小(最小批量大小为2)优于大的patch大小,以最大化可捕获的空间上下文的量。完成沿每个轴的汇集,直到进一步汇集将该轴的空间大小减小到4个体素以下。所有U-Net架构在第一层使用30个卷积滤波器,并在每个池操作时将此数量加倍。如果在典型的训练案例中所选择的补丁大小覆盖的体素少于25%,则另外在训练数据的下采样版本上配置和训练3D U-Net级联。如果补丁大小太小而无法覆盖整个分辨率,则级联旨在使nnU-Net仍能获得足够的上下文。
Network Training
所有U-Net架构都经过五重交叉验证训练。一个epoch被定义为处理250 batches。交叉熵损失和dice损失之和用作损失函数。 Adam被用作随机梯度下降的优化器,初始学习率为3×10-4,l2权重衰减为3×10-5。每当训练损失的指数移动平均值在最近30个epoch内没有改善时,学习率下降0.2倍。当学习率降至10-6以下或超过1000个epoch时,停止训练。我们使用批量生成器在训练期间动态应用数据增强。具体来说,我们使用弹性变形,随机缩放和随机旋转以及伽玛增强。如果数据是各向异性的,则空间变换在平面内应用为2D变换。

Inference

使用滑动窗口方法预测病例,其中一半的patch大小在预测之间重叠。这增加了相对于边界靠近中心的预测的权重。通过沿所有轴镜像来应用测试时间数据增强。 nnU-Net集合两个U-Net配置(2D,3D和级联)的组合,并基于交叉验证结果自动选择用于测试集预测的最佳单个模型或集合。对于所选配置,nnU-Net还使用交叉验证产生的五个模型进行集成。

2019-05-10|nnU-Net 自适应数据集的医学影像分割_第1张图片

2019-05-10|nnU-Net 自适应数据集的医学影像分割_第2张图片
2019-05-10|nnU-Net 自适应数据集的医学影像分割_第3张图片

欢迎关注微信公众号,关注最新资讯和技术分享,谢谢!


2019-05-10|nnU-Net 自适应数据集的医学影像分割_第4张图片

你可能感兴趣的:(2019-05-10|nnU-Net 自适应数据集的医学影像分割)