赞
踩
本文提出的 nnU-net
(no-new U-net
),是在 2D & 3D 经典 U-net 的基础上, 稳健而又自适应的框架。nnU-net
移去了冗余的部分,着重于剩下的对模型表现和泛化能力起作用的部分
原论文链接:
nnU-Net: Self-adapting Framework for U-Net-Based Medical Image Segmentation
U-Net
凭借其直接和成功的架构,迅速发展成为医学图像分割领域的一个常用基准。然而,U-Net
对新问题的适应性包括关于确切的架构、预处理、训练和推理的几个自由度。这些选择并不是相互独立的,而是对整体性能有很大影响。本文介绍了 nnU-Net
(no-new-Net
),它是指在二维和三维虚构 U-Net
的基础上建立的一个稳健和自适应的框架。本文论证了在许多提议的网络设计中去掉多余的 bells
和 whistles
,转而关注其余的方面,这些方面决定了一个方法的性能和可推广性。
本文提出了 nnU-Net
(no-new-Net
)框架。它基于一组相对简单的 U-Net
模型,只包含对原始U-Net
的微小修改。本文省略了最近提出的扩展,例如使用 residual connections
、dense connections
或 attention mechanisms
。nnU-Net
可以自动将其架构适应给定的图像几何,更重要的是,它彻底定义了围绕他们的所有其他步骤。这些步骤包括:
U-Net
是一个成功的 encoder-decoder
网络:
U
的底部接收语义信息,并将其与通过跳过连接直接从编码器获得的高分辨率特征图重新组合医学图像通常包括第三维,本文提出了一套包括由 2D U-Net
,3D U-Net
和 U-Net cascade
组成的基本 U-Net
架构:
U-Net
的比较:
encoder
部分,本文在池化层之间使用简单的卷积层,在 decoder
部分,本文使用转置卷积U-Net
不同的是,本文使用的激活函数是 leaky ReLU
而不是 ReLU
(-1e-2);用 instance normalization 替换更加流行的 batch normalization当数据是各向异性的时候,传统的 3D 分割方法就会很差,所以在这里给出了 2D U-Net
的网络架构
网络特征:
heatmap
更多关于 U2-Net
网络结构的讲解,可以参考我的另一篇 blog:SS-Model【6】:U2-Net
3D 网络的效果好,但是太占用 GPU 显存。一般情况下,可以使用小一点的图像块去训练,但是当面对比较大的图像如肝等,这种基于块的方法就会阻碍训练。这是因为受限于感受野的大小,网络结构不能收集足够的上下文信息去正确的识别大图像的特征
网络内容:
2D slices
,去生成密集的立体分割网络特征:
analysis path
)包含如下卷积操作
Batch Normalization
(为了让网络能更好的收敛)ReLU
max_polling
,步长 stride = 2
synthesis path
)则执行下面的操作
analysis path
上相对应的网络层的结果作为 decoder
的部分输入,这样子做的原因跟 U-Net 博文 中提到的一样,是为了能采集到特征分析中保留下来的高像素特征信息,以便图像可以更好的合成softmax
损失函数将未标记像素的权重设置为零可以仅从已标记像素学习。降低了频繁出现的背景的权重,增加了内管的权重,以达到小管和背景体素对损失的均衡影响。为了解决 3D U-Net
在大图像尺寸数据集上的缺陷,本文提出了级联模型:
3D U-Net
在下采样的图像上进行训练,然后将结果上采样到原始的体素spacing。3D U-Net
,并使用基于图像块的策略在全分辨率的图像上进行训练由于输入图像大小的不同,输入图像块大小和每个轴池化操作的数量(同样也是卷积层的数量)必须能够自适应每个数据集去考虑充足的空间信息聚合。除了自适应图像几何,还需要考虑显存的使用。
指导方针是动态平衡 batch size 和网络容量:
网络初始配置:
nnU-Net
的预处理是在没有任何用户干预的情况下执行的
所有数据都被裁剪到非零值区域
CNN
本身并不理解体素间距。 在医学图像中,不同的扫描仪或不同的采集协议通常会产生具有不同体素间距的数据集
为了使我们的网络能够正确学习空间语义,所有患者都被重新采样到各自数据集的中值体素间距,其中三阶样条插值用于图像数据,最近邻居插值用于相应的分割掩码
是否需要经过 U-Net cascade
模型,由以下方法确定:
3D U-Net
中的输入图像(batch size = 2)的 4 倍以上,则使用 U-Net cascade
模型,且数据集需要重新采样到较低的分辨率
CT
图像,训练集中所有 segmentation mask 中的 value 会被收集,整体的数据集会先被 clip 到
[
0.5
,
99.5
]
[0.5, 99.5]
[0.5,99.5] 百分位,然后通过收集的数据的 mean 和标准差进行 z-score
正则化
MRI
图像以及其他图像,直接进行 z-score
标准化所有模型都从头开始训练,并在训练集上使用五折交叉验证进行评估
结合 dice 和交叉熵损失来训练网络:
L
t
o
t
a
l
=
L
d
i
c
e
+
L
C
E
\mathcal{L}_{total} = \mathcal{L}_{dice} + \mathcal{L}_{CE}
Ltotal=Ldice+LCE
3D U-Net
(如果不需要 cascade,则是 U-Net cascade 的第一阶段和 3D U-Net),计算 batch 里每个样本的 dice 损失,并计算 batch 中的平均值对于目前大多数的图像分割任务来说,使用最多评价指标就是 dice 相似系数 (Dice Similarity Coefficient) 。Dice 系数是计算两个样本之间的相似度,即考察两个样本之间重叠的范围,范围通常在0-1之间。
计算方法如下:
D
i
c
e
(
P
,
T
)
=
2
T
P
F
P
+
2
T
P
+
F
N
Dice(P, T) = \frac{2TP}{FP + 2TP + FN}
Dice(P,T)=FP+2TP+FN2TP
其中:
TP (True Positive)
为判定为正样本,事实上也是正样本TN (True Negative)
为判定为负样本,事实上也是负样本FP (False Positive )
为判定为正样本,事实上为负样本FN (False Negative)
为判定为负样本,事实上为正样本分母即:
dice 的损失函数为:
L
d
i
c
e
=
−
2
∣
K
∣
∑
k
∈
K
∑
i
∈
I
u
i
k
v
i
k
∑
i
∈
I
u
i
k
+
∑
i
∈
I
v
i
k
\mathcal{L}_{dice} = - \frac{2}{|K|} \displaystyle\sum_{k \in K} \frac{\sum_{i \in I}u_i^k v_i^k}{\sum_{i \in I}u_i^k + \sum_{i \in I}v_i^k}
Ldice=−∣K∣2k∈K∑∑i∈Iuik+∑i∈Ivik∑i∈Iuikvik
参数含义:
u
是网络的 softmax 输出v
是 ground Truth 的 one hot 编码k
为类别数u
和 v
都具有形状
I
×
K
I \times K
I×K优化器:Adam,初始学习率 3e-4,每个 epoch 有 250 个 batch
学习率调整策略:计算训练集和验证集的指数滑动平均 loss,如果训练集的指数滑动平均 loss 在近 30 个 epoch 内减少不够 5e-3,则学习率衰减 5 倍
训练停止条件:当学习率大于 10-6 且验证集的指数滑动平均 loss 在近 60 个 epoch 内减少不到 5e-3,则终止训练
从有限的训练数据训练大型神经网络时,必须特别注意防止过度拟合。 本文在训练期间动态应用了如下所示的多种增强技术来解决这个问题:
需要注意的是,如果 3D U-Net
的输入图像块尺寸的最大边长是最短边长的两倍以上,这种情况对每个 2 维面做数据增广,然后逐个切片地将其应用于每个样本
U-Net cascade 的第二级接受前一级的输出作为输入的一部分,为了防止强 co-adaptation,应用随机形态学操作(腐蚀、膨胀、开运算、闭运算)去随机移除掉这些分割结果的连通域
为了增强网络训练的稳定性,强制每个 batch 中超过 1/3 的样本包含至少一个随机选择的前景
本文提出了用于医疗领域的 nnU-Net
分割框架,该框架直接围绕原始 U-Net
架构构建,并动态调整自身以适应任何给定数据集的细节。 基于本文的假设,即非架构修改可能比最近提出的一些架构修改更强大,该框架的本质是自适应预处理、训练方案和推理的彻底设计。 适应新分割任务所需的所有设计选择均以全自动方式完成,无需手动交互。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。