论文精读及分析:U-Net: Convolutional Networks for Biomedical Image Segmentation

Abstract

在本文中我们提出了一种依赖于使数据更有效率从被利用到的增强方法。在U-net的结构中,包括捕获一个上下文信息的收缩路径和一个允许精确定位的对称拓展路径。这种方法可以使用非常少的数据完成端到端的训练,并获得最好的效果。

Introduction

CNN 存在很久了,但是已知受限于对于数据量要求过大和神经网络的规模,并没有获得很大的成功,直至 Krizhevsky 才开始成功。但是想将 CNN 用于生物医学图像存在着两点困难,首先CNN常用于分类,但是生物医学往往关注的是分割之类的定位任务;其次医学图像很难获得那么大规模的数据。

解决上面两点困难的方法是使用滑窗的方法,为每一个待分类的像素点取周围的一部分邻域输入。这样的方法有两点好处,首先它完成了定位的工作,其次因为每次取一个像素点周围的邻域,所以大大增加了训练数据的数量。但是这样的方法也有两个缺点,首先滑窗取的块之间具有较大的重叠,所以会导致速度变慢(由FCN的论文分析可知,前向传播和反向传播的速度都会变慢);其次是网络需要在局部准确性和获取上下文之间进行取舍。因为更大的块需要更多的池化层进而降低了定位的准确率,但是小的快使网络只看到很小的一部分上下文。现在一种常见的作法是将多个层放在一起进行考虑(比如说FCN)。

我们修改并延展了FCN的网络结构,使之在仅使用少量的数据进行训练的情况下获得精确的分割结果,具体结构如下图所示
论文精读及分析:U-Net: Convolutional Networks for Biomedical Image Segmentation
如上图所示,这里我们假设U- net 的最低分辨率为 32*32。每一个蓝色的块代表一个多通道的特征图。特征图的通道数被标注在块的顶部。X-Y尺寸设置在盒的左下边缘。箭头代表着不同的操作。其中左半部分是收缩路径,右半部分扩展路径

FCN的主要思想是使用连续的层补充通常的收缩网络,其中的池化层被上采样层取代。因此这些曾增加了输出层的分辨率。为了定位,来自收缩路径的高分辨率与上采样输出相结合。基于这个信息,一个连续的卷积层可以学习组装(集成)更精确的输出。

U-net 与 FCN 的不同在于,U-net 的上采样依然有大量的通道,这使得网络将上下文信息向更高层分辨率吧传播。作为结果,扩展路径多多少少与收缩路径对称,形成一个U的形状。网络没有全连接层并且只是用每一个卷积层的有效部分,例如分割图(指图像的输出)只包含这样的一些像素点,它们的上下文都出现在了输入图像中。这种策略使得我们通过一个 Overlap-tile 策略可以使得任意大小的输入图像都可以获得一个无缝分割。

Overlap-tile 策略如下图所示
论文精读及分析:U-Net: Convolutional Networks for Biomedical Image Segmentation
上图是针对任意大小的输入图像的无缝分割的 Overlap-tile 策略。如果我们要预测黄色部分区域部分(即对黄色的部分进行分割),需要将蓝色的部分作为输入。缺失的数据使用镜像进行补充。因为进行的是 valid 卷积(即上文讲的只取有效部分,可以理解为 0 padding),所以需要取比黄色框大的图像来保证上下文的信息是有意义的,确实的部分用镜像的方法补充是填充上下文信息最好的方法了~

或许你会有一个问题,为什么作为一种全卷积神经网络不直接输入整张图像,还在做分块呢?答案是因为内存限制,所以还是需要分块处理,只不过比之前的滑窗区块要很多,不用取那么多块,块之间也没有那么大的区域重叠。通过Overlap-tile 策略可以将图像分块输入,否则的话就只能对图像进行 resize 了。