论文:U-Net: Convolutional Networks for Biomedical Image Segmentation
The u-net is convolutional network architecture for fast and precise segmentation of images。
主要使用数据增强(data augmentation),来更有效地利用已有的标记样本。整个结构由收缩路径(contracting path)来获取上下文的信息,用扩张路径(expanding path)来精确定位。
网络(基于Caffe):u-net
左边是压缩路径,右边是扩张路径。网络总共23层。
压缩路径是典型的卷积神经网络结构
- 架构中含有着一种重复结构,每次重复中都有2个 3*3 卷积层(无padding)、非线性ReLU层和一个 2*2 max pooling层(stride为2)。(图中的蓝箭头、红箭头,没画ReLu)
- 每一次下采样后我们都把特征通道的数量加倍
扩张路径
- 每一步都首先使用反卷积(up-convolution),每次使用反卷积都将特征通道数量减半,特征图大小加倍。(图中绿箭头)
- 反卷积过后,将反卷积的结果与contracting path中对应步骤的特征图拼接起来。(白/蓝块)
- contracting path中的特征图尺寸稍大,将其修剪过后进行拼接。(左边深蓝虚线)
- 对拼接后的map再进行2次3*3的卷积。(右侧蓝箭头)
- 最后一层的卷积核大小为1*1,将64通道的特征图转化为特定类别数量(分类数量,二分类为2)的结果。(图中青色箭头)
Training
在具有多个卷积层和不同路径的深度网络中,权值的初始化是非常重要的。否则,网络的某些部分可能会给出过多的激活,而其他部分则不会作出贡献。理想情况下,应该调整初始权重,使网络中的每个特征映射具有近似的单位方差。
Data Augmentation
在只有少量样本的情况况下,要想尽可能的让网络获得不变性和鲁棒性,数据增强是必不可少的。将训练样本进行随机弹性形变是训练分割网络的关键。
我们使用随机位移矢量在粗糙的3*3网格上(random displacement vectors on a coarse 3 by 3 grid)产生平滑形变(smooth deformations)。
位移是从10像素标准偏差的高斯分布中采样的。然后使用bicubic插值计算每个像素的位移。在contracting path的末尾采用drop-out 层更进一步增加数据。
Conclusion
U-Net结构在不同的生物医学分割应用中都取得了非常好的性能。由于弹性形变的数据增强,它只需要很少的标签图像,并且有一个非常合理的训练时间,在英伟达Titan GPU(6GB)只需10小时。我们提供完整的基于Caffe的实现和经过训练的网络。我们确信,U-Net架构可以很容易地应用于更多的任务。