U-Net : Convolutional Networks for Biomedical Image Segmentation

U-Net: Convolutional Networks for Biomedical Image Segmentation [学习笔记,自我理解,若有错误,希望大家能够帮忙指出,谢谢]

Abstract

能过成功训练出深度神经网络是需要以大量具有标记的数据集为基础的。本篇论文提出一个以强大的数据增强为基础进行网络搭建和网络算法策略。网络由用于捕捉上下文信息的收缩路径(下采样)和能够助于精确定位的扩张路径(上采样)组成。网络使用ISBI分割数据集中电子显微镜下神经元结构图片进行训练和测试,网络中使用较少的图片但获得当前最好的表现成果。使用同样的网络在透视光学显微镜图片上进行训练并赢得了2015 ISBI 细胞跟踪挑战。在最新的GPU上,512x512图像的分割花费不到一秒。

  1. 网络采用了数据增强,提高数据利用率,不需要大量数据
  2. 网络包括收缩路径和扩展路径
  3. 网络成果喜人
  4. 网络分割速度快

Introduction

典型的卷积神经网络一般用于分类。但是在许多视觉任务中尤其是医学图像处理中,预处输出应该包含定位,即对图像中每一个像素进行分类。由此在生物医学任务中需要大量的训练数据。[1]以patch块作为输入使用滑动窗口网络进行每一个像素预测。第一,该网络可实现定位。第二,使用patch块进行网络训练比使用整张图片训练数据集更大。该网络赢得了ISBI 2012 EM分割挑战。
很明显,[1]的网络有两个缺点。第一,由于需要为每一个patch块进行测试以及patch块重叠导致网络速度慢。第二,定位精度和使用上下文信息存在制衡。使用大的patch块需要更多的maxpool层同时导致定位精度下降,但使用小的patch块会使网络得到上下文信息比较局限。最近,[11,4]提出考虑到来自多个层的特性的一种分类器输出。提高定位精度和充分使用上下文信息同时实现。
本篇论文提出更好的网络结构——“完全卷积网络”[9]。我们对[9]中的网络结构进行改进,使其使用更好的数据集进行训练并得到更好的分割结果。[9]主要的想法是使用一组连续层来弥补收缩层带来的图片像素损失,其中maxpool操作被upsampling操作代替。这一组连续层将会提高预测输出的图像分辨率。为了更精确定位,将高分辨率的特征图与上采样的特征图进行级联操作。一组连续层将会学习到更精确的结果。(图1[9]的大体网络结构,同时也为本文网络结构)
U-Net : Convolutional Networks for Biomedical Image Segmentation_第1张图片
U-Net : Convolutional Networks for Biomedical Image Segmentation_第2张图片
本网络中重要改进为在上采样部分使用大数量的特征通道,以便将上下文信息传输到高分辨层上。结果产生了“U”型网络结构。分割映射结果只包含像素,输入图像的完整信息都包含在内。通过重叠策略允许任意大小的图像进行无缝分割。为了预测图像边缘区域像素,缺失的上下文信息是通过镜像输入图像来推断的。(如图2)重叠策略对于大尺寸图像十分重要,免除GPU内存限制。(这句不是很理解,咋就不受内存限制了)
U-Net : Convolutional Networks for Biomedical Image Segmentation_第3张图片
由于训练受到数据集的限制,我们使用了弹性变形进行数据增强,网络可学习图像不变性。这在生物医学分割中尤为重要,因为变形过去是组织和真实变形中最常见的变化,可以有效地模拟。
另一个挑战为清楚分割粘黏同类对象,使其粘黏同类对象的边界清晰。(如图3)为了达到这一目标,本文使用权重损失函数,在粘黏细胞背景标签上获取较大的权重。
U-Net : Convolutional Networks for Biomedical Image Segmentation_第4张图片
由此产生的网络适用于各种生物医学分割问题。结果优于[1]

  1. 使用了上采样层,提高预测输出的图像分辨率
  2. 将高分辨率特征图和上采样图进行级联,提高定位精度
  3. 使用重叠策略预测图像边界
  4. 使用弹性形变进行图像增强,使网络学习图像不变性
  5. 使用权重损失函数,分割粘黏同类对象边界

Network Architecture

U-Net : Convolutional Networks for Biomedical Image Segmentation_第5张图片
为了实现无缝平铺,需要输入图像的尺寸为2的指数次幂。

Training

网络使用随机梯度下降。由于在卷积时不使用padding,输出图像比输入图像小。为最大限度减少开销同时最大限度利用GPU的内存,我们使用大输入块而不是大批量处理,因此将批处理减少到单个图像。最后一层特征图使用像素级别的softmax激活函数输出,同时使用交叉熵损失函数。交叉熵损失函数为:
E = ∑ x ∈ Ω ω ( x ) l o g ( p l ( x ) ( x ) ) . E=\sum_{x \in \Omega}\omega (x)log(p_{l(x)}(x)). E=xΩω(x)log(pl(x)(x)).
其中w是权重映射,给予重要的像素点更大的权重(论文中有关于符号的解释,但由于不好编辑,此处略)
我们提前计算权重映射图,补偿训练数据集中某类像素的不同频率,使网络着重学习粘黏细胞之间的边界。
分割边界使用型态学操作获得,权重映射图计算公式为:
ω ( x ) = ω c ( x ) + ω 0 ⋅ e x p ( − d 1 ( x ) + d 2 ( x ) 2 ) 2 σ 2 ) . \omega (x)=\omega_{c}(x)+\omega_{0}\cdot exp(-\frac{d_1(x)+d_2(x)^2)}{2\sigma ^2}). ω(x)=ωc(x)+ω0exp(2σ2d1(x)+d2(x)2)).
其中 w c w_{c} wc平衡类别权重映射, d 1 d_{1} d1为像素离最近细胞的距离, d 2 d_{2} d2为像素离最二近细胞的距离,在实验中 w 0 = 10 w_{0}=10 w0=10以及 σ ≈ 5 \sigma \approx 5 σ5
【越是在细胞间的像素 e x p ( − d 1 ( x ) + d 2 ( x ) 2 ) 2 σ 2 ) exp(-\frac{d_1(x)+d_2(x)^2)}{2\sigma ^2}) exp(2σ2d1(x)+d2(x)2))越接近1】

  1. 大图像块输入,小批量训练
  2. 使用权重交叉熵损失函数

Data Augmentation

在训练数据集较少的情况下,数据增强十分重要。本文将图片进行平移和旋转变换。在3*3的网格上使用随机位移,位移从高斯分布中采样,标准差为10像素。然后用双三次插值计算每像素的位移。同时,在收缩路径最后使用了dropout,对网络也起到了隐式的数据增强。

  1. 使用平移旋转进行数据增强
  2. 使用dropout

Experiments

我们将使用U-net网络进行三中不同分割任务进行测试。第一个在电子显微镜下的神经元细胞。数据样本以及获得的分割结果如下图。
U-Net : Convolutional Networks for Biomedical Image Segmentation_第6张图片
数据集为EM分割挑战,30张训练图像,尺寸为512*512。评估指标为:“warping error”、 “Rand error” 、 “pixel error”
U-net使用超过7种旋转变形的图片作为输入,且没有使用预处理和后处理,结果优于[1],具体结果如下表:
U-Net : Convolutional Networks for Biomedical Image Segmentation_第7张图片
光学显微镜下细胞分割结果,数据集为“PhC-U373”,包括35个带标签的训练数据;以及数据集 “DIC-HeLa”,包括20个带标签的训练数据,评估指标为IOU,具体结果如下:
U-Net : Convolutional Networks for Biomedical Image Segmentation_第8张图片

Conclusion


评价指标见另一篇博文

你可能感兴趣的:(神经网络)