原文:U-Net: Convolutional Networks for Biomedical Image Segmentation
代码:U-Net code
Keras版本
前言:之前FCN模型依赖大量数据来训练,除此之外,还有分割结果不精细的弊端。这次要说的U-Net就是受到FCN启发针对医学图像做语义分割,且能利用少量的label数据集学习到一个对边缘提取十分鲁棒的模型,在生物医学图像分割领域有很大作用。
0、 ABSTRACT
人们普遍认为,深度网络的成功训练需要大量已标签数据集,这个网络(U-Net)可以依靠数据增强来充分地使用可用的带label的样本训练网络。该体系结构由捕获上下文的收缩路径和支持精确定位的对称扩展路径组成。该网络属于端对端网络。而且,这个网络在GPU运行且训练得很快,512×512的图片只需要不用一秒即可,最后赢得了2015年ISBI细胞跟踪挑战赛。
1、 INTRODUCTION
在2013-2015年中,深度卷积网络在许多 目标识别 任务中的表现都超过了当前的技术水平,虽然卷积网络已经存在很长时间了,但是由于可用训练集的大小和考虑的网络的大小,它们的成功是有限的,直到ImageNet数据集(百万张图片)的出现。
传统的卷积网络的目标是分类 ,图像的输出是单个类标签。然而,在许多视觉任务中,特别是在生物医学图像处理中,需要的输出还应该包括定位,应该对每个像素分配一个标签。除此之外,医疗图像的训练集都不大。
前人的工作:Ciresan等人通过滑动窗口训练一个网络,通过将像素周围的局部区域(patch)作为输入(通过提高训练数据来获得成功)来预测每个像素的标签。首先,这个网络可以定位。其次,以patch表示的训练数据远远大于训练图像的数量。由此产生的网络以较大优势赢得了 2012年ISBI的EM细分挑战赛 。
Ciresan等人提出的模型两个缺点:
1. 速度非常慢
因为对于每个局部区域(patch)都必须单独运行一次网络,而且局部区域(patch)之间会有重叠,因此计算存在大量冗余。
2. 定位的准确和上下文的使用之间需要取舍
因为较大的局部区域(patch)需要更多的max-pooling层,这会降低定位精度;而较小的局部区域(patch)只让网络看到很少的上下文。
对于第2点缺点有改善方法:最近的一些模型使用了一种考虑多层特征的分类器输出。这样使得好的定位和上下文的使用是可以兼得。
2、 Network Architecture
结构详述:这个网络共有23个卷积层,它由收缩路径(左侧)和扩展路径(右侧)组成。
收缩路径 遵循典型的卷积网络架构(传统卷积网络)。它由两个3x3的卷积(unpadded),每个卷积后面都有一个ReLU和一个max-pooling(大小为2x2,stride=2)来组成,用于下采样。在每个下采样后,我们将特征通道channels数量增加一倍。
扩展路径 则是通过2x2的上卷积对特征图进行向上采样,上卷积后的输出通道数channels变为原先的一半,再与对应的特征图(裁剪后)串联起来(得到和原先一样大小的channels),再经过两个3×3的卷积以及ReLU作用。相应的裁剪特征图是必须的,因为在我们卷积的过程中会有边界像素的丢失。在最后一层通过卷积核大小为1×1的卷积将每个含64分量的特征向量映射到所需的类数。
为了保证输出分段映射的无缝拼接,需要谨慎的选择输入图片的尺寸,以保证所有的Max Pooling操作应用于有偶数的x-size和偶数的y-size的图层。
3、 Train
该论文是基于Caffe,使用动量为0.99的SGD,损失函数为交叉熵,训练输入图片与它们对应的分割图片(输入图片和最后的图片的尺寸不一样)。该训练模型和传统的训练模型没什么不同,都是注意权重初始化随机,数据增强等。