U-Net,从2D到3D,以及各种变体总结

U-Net,从2D到3D,以及各种变体总结

    • 原始U-Net
    • 3D U-Net
      • 网络结构
      • 数据方面

原始U-Net

U-Net,从2D到3D,以及各种变体总结_第1张图片
  由一个收缩路径和一个扩张路径组成。收缩路径遵循了经典的CNN结构,每个分辨率层由两个3x3的卷积层+ReLU+以2为步长的最大池化组成。收缩路径一共有4个分辨率层,在每一个分辨率层都将特征图的数量进行加倍(通过设置卷积核的数量)。扩张路径也有4个分辨率层,每个层先进行以2为步长的上采样或者反卷积,然后接两个3x3的卷积+ReLU。在扩张路径的最后一层,通过一个1x1的卷积将输出特征图的数量调整到期望输出的特征图通道数。

3D U-Net

网络结构

U-Net,从2D到3D,以及各种变体总结_第2张图片
  上图描述了这篇论文给出的3D U-Net的网络结构。和标准U-Net类似,它也由收缩路径和扩张路径组成,每个路径都包含四个子块(层)。在收缩路径中,每个子块又包含了两个 3 × 3 × 3 3\times3\times3 3×3×3的卷积层(是因为两个3x3的卷积相当于5x5,且比5x5更有效率吗?),每个卷积层后连接着ReLU激活函数,在卷积后,在三个维度的每个维度上都进行以2为步长的最大池化。在扩张层中,前面的三个子块每个子块先包含了一个步长为2的上采样过程(由反卷积、或是插值实现),随后再跟着两个 3 × 3 × 3 3\times3\times3 3×3×3的卷积层+ReLU。注意这里所使用的 3 × 3 × 3 3\times3\times3 3×3×3的卷积层卷积包含了padding=1,使得卷积操作不改变图像的大小,图像大小的改变完全由池化和上采样进行。扩张层的最后一个子块(即最后一层)仅由一个 1 × 1 × 1 1\times1\times1 1×1×1的卷积层组成,用于减少输出特征图的数量,它的输出channels数即为输出图像的channel数。在收缩路径和扩张路径的具有相同图像大小的对应子块之间进行跳跃连接(channel维度上的级联)。在池化之前,我们将特征图的通道数加倍(通过卷积),来避免网络表达能力的瓶颈。除此之外,还在每个ReLU之前引入了Batch Normalization。

数据方面

  论文中论述的网络输入是132x132x116x3(channels)。输出是44x44x28x2。可以根据代码进行改进。

你可能感兴趣的:(PyTorch)