IE盒子

搜索
查看: 129|回复: 15

U-Net 论文笔记

[复制链接]

2

主题

7

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2023-1-12 13:05:49 | 显示全部楼层 |阅读模式
论文:Convolutional Networks for Biomedical Image Segmentation
论文最早版本arXiv上的发表时间是2015.05
ICMICCAI 2015收录
下文笔记中的“--”代表论文中的分段
<hr/>Abstract.

成功训练一个深度网络需要大量已标注的训练样本。在这篇论文中,我们提出了一个新的网络和训练策略

  • 为了更有效的利用标注数据,我们使用了数据增强的方法(data augmentation)。
  • 我们的网络由两部分组成:一个收缩路径(contracting path)来获取上下文信息以及一个对称的扩张路径(expanding path)用以精确定位。
我们证明了这种网络可以从很少的图像中进行端到端的训练,并且在电子显微镜层神经元结构分割的ISBI挑战中,它的性能优于现有的最佳方法(滑动窗口卷积网络)。
我们使用这个网络赢得了ISBI cell tracking challenge 2015。不仅如此,这个网络非常的快,对一个512*512的图像,使用一块GPU只需要不到一秒的时间。网络获取地址(基于caffe):http://lmb.informatik.uni-freiburg.de/people/ronneber/u-net.
<hr/>1 Introduction

在过去的两年中,深度卷积网络在许多视觉识别任务中超越了现有技术的水平。虽然卷积网络已经存在了很长一段时间,但由于现有数据集的规模和网络的规模,它们的成功是有限的。Krizhevsky等人的突破是因为在ImageNet数据集上成功实现了一个8层的大网络和数百万个参数的训练,有100万张训练图像。从那时起,更大和更深的网络开始被使用。
--
卷积网络的典型用途是分类任务:

  • 分类任务对一张图像的输出是单个的类别标签。
  • 然而,在许多视觉任务中,特别是在生物医学图像处理中,期望的输出应该包括定位,即应该为每个像素分配一个类别标签。
  • 更重要的是,在生物医学任务中,成千上万的训练图像通常是无法获得的(标注成本太高)。
Ciresan等人通过预测每个像素点的类别来对医学图像进行分割:

  • 首先,这个网络可以完成定位工作。
  • 其次,由于预测时要切patch,所以训练数据量远大于训练图像的数量。
这个网络以绝对优势赢得了ISBI 2012的EM分割挑战赛(EM segmentation challenge)。
--
显然,Ciresan等人的方法有两个缺点:

  • 首先,相当缓慢。因为网络必须对每个块单独运行,并且由于图块存在重叠,所以计算有很多冗余。
  • 第二,在本地化精度和上下文信息的使用之间存在着一种取舍。较大的图块就需要更多的最大池层,降低了定位精度;而小的图块只能允许网络看到很少的上下文。
最近的方法提出了一个分类的输出,它考虑到了来自多个层的特性。这样使得良好的定位和上下文的同时使用变成了可能。
--
在这篇文章中,我们建立了一个更加优雅的框架,通常被称为“全卷积网络”:

  • 我们修改并拓展了这个框架
  • 仅使用少量训练图片就可以工作
  • 获得更高的分割准确率
网络如下图所示:



U-net架构(最低分辨率为32x32像素的示例)。每个蓝色框对应一个多通道feature map。通道数量在框的顶部。框的左下角是x-y大小。白色框表示复制过来的feature map。箭头表示不同的操作。

FCN的思想是:

  • 修改一个普通的逐层收缩网络(指分类网络),用上采样操作(反卷积)代替网络后部的降采样操作。因此,这些(反卷积)层增加了输出的分辨率。
  • 为了使用局部的信息,在网络收缩过程(路径)中产生的高分辨率特征,被连接到了修改后网络的上采样的结果上。
  • 在此之后,一个卷积层基于这些信息进行综合,得到更精确的结果。
--
与FCN不同的是:

  • 我们的网络在上采样部分依然有大量的特征通道,这使得网络可以将空间上下文信息向更高的分辨率层传播。结果是,上采样路径基本对称于下采样路径,并呈现出一个U型。
  • 网络不存在任何全连接层,并且,只使用每个卷积的valid部分,例如,分割图只包含这样一些像素点,这些像素点的完整上下文都出现在输入图像中。这种策略允许使用Overlap-tile策略无缝地分割任意大小的图像(参见下图)。
  • 为了预测图像边界区域的像素点,我们采用镜像图像的方式补全缺失的环境像素。这个tiling方法在使用网络分割大图像时是非常有用的,因为如果不这么做,GPU显存会限制图像分辨率。



Overlap-tile策略可以无缝分割任意大小的图像(这里分割的神经元结构在EM堆叠)。黄色区域是预测的分割,需要蓝色区域内的图像数据作为输入。通过镜像的方式外推缺少的输入数据。

--
采用弹性形变的方式增加数据:

  • 可以增加训练数据
  • 可以让模型学习得到形变不变性。这对医学图像分割是非常重要的,因为组织的形变是非常常见的情况,并且计算机可以很有效的模拟真实的形变。
  • 别的研究指出了在无监督特征学习中,数据增强以获取不变性的重要性。
--



DIC(差分干涉反差)显微镜记录的玻璃上的HeLa细胞。(a)原始图像 (b)GT分割叠加不同的颜色表示HeLa细胞的不同实例 (c)生成的分割掩模(白色:前景,黑色:背景) (d)像素级损失权重图,以迫使网络学习边界像素

改进loss:

  • 在细胞分割任务中的另一个挑战是,如何将同类别的相互接触的目标分开,如上图。
  • 我们提出了使用一种带权重的损失(weighted loss)。
  • 在损失函数中,分割相互接触的细胞会获得更大的权重。
<hr/>2 Network Architecture



上图展示了网络结构,它由contracting path 和 expansive path组成。
contracting path是典型的卷积网络架构:

  • 架构中含有着一种重复结构,每次重复中都有2个 3*3 卷积层(无padding)、非线性ReLU层和一个 2*2 max pooling层(stride为2)。(图中的蓝箭头、红箭头,没画ReLu)
  • 每一次下采样后我们都把特征通道的数量加倍。
expansive path也使用了一种相同的排列模式:

  • 每一步都首先使用反卷积(up-convolution),每次使用反卷积都将特征通道数量减半,特征图大小加倍。(图中绿箭头)
  • 反卷积过后,将反卷积的结果与contracting path中对应步骤的特征图拼接起来。(白/蓝块)
  • contracting path中的特征图尺寸稍大,将其修剪过后进行拼接。(左边深蓝虚线)
  • 对拼接后的map再进行2次3*3的卷积。(右侧蓝箭头)
  • 最后一层的卷积核大小为1*1,将64通道的特征图转化为特定类别数量(分类数量,二分类为2)的结果。(图中青色箭头)
网络总共23层。
--


为了允许输出分割图的无缝拼接(上图),重要的是要选择输入块大小,以便将所有2x2最大池化操作应用到具有对应x和y大小的层。
<hr/>3 Training

我们采用随机梯度下降法训练,框架是Caffe。
由于卷积没有使用padding,输出图像总是比输入图像小一个恒定的宽度。
为了最小化开销并最大限度地利用GPU内存,我们更喜欢大的输入图块而不是大的batch size,从而将批处理减少到单个图像。
对应的我们使用了很高的momentum(0.99),这样很多之前步的训练样本也会参与到当下步下降方向的决定中。
最后一层使用交叉熵函数与softmax。
--
交叉熵函数如下所示


为了凸显某些像素点更加重要,我们在公式中引入了 \omega(X) 。
我们对每一张标注图像预计算了一个权重图,来补偿训练集中每类像素的不同频率,使网络更注重学习相互接触的细胞之间的小的分割边界。
我们使用形态学操作计算分割边界。权重图计算公式如下:


\omega_{c} 是用于平衡类别出现频率的权重, d_{1} 代表到最近细胞的边界的距离, d_{2} 代表到第二近的细胞的边界的距离。基于经验我们设定 \omega_{0}=10,\sigma≈5像素。
--
在具有多个卷积层和不同路径的深度网络中,权值的初始化是非常重要的。
否则,网络的某些部分可能会给出过多的激活,而其他部分则不会作出贡献。
理想情况下,应该调整初始权重,使网络中的每个特征映射具有近似的单位方差。
我们的网络的权重进行高斯分布初始化,分布的标准差为 \sqrt{\frac{2}{N}} ,N为每个神经元的输入节点数量。例如,对于一个上一层是64通道的3*3卷积核来说,N=9*64。
<hr/>3.1 Data Augmentation

在只有少量样本的情况况下,要想尽可能的让网络获得不变性和鲁棒性,数据增强是必不可少的。
因为本论文需要处理显微镜图片,我们需要平移与旋转不变性,并且对形变和灰度变化鲁棒。
将训练样本进行随机弹性形变是训练分割网络的关键。
我们使用随机位移矢量在粗糙的3*3网格上(random displacement vectors on a coarse 3 by 3 grid)产生平滑形变(smooth deformations)。
位移是从10像素标准偏差的高斯分布中采样的。然后使用bicubic插值计算每个像素的位移。在contracting path的末尾采用drop-out 层更进一步增加数据。
<hr/>4 Experiments

我们演示了U-Net在三种不同的分割任务中的应用。
第一项任务是电子显微镜记录的神经元结构的分割:


我们提供了完整的结果作为补充材料。数据集是由在ISBI 2012开始的EM分割挑战提供的,并且仍然开放给新的贡献者。训练数据为透射电镜拍摄的30幅果蝇幼虫腹神经索(VNC)的连续切片图像(512×512像素)。每张图像都附有相应的完整细胞(白色)、细胞膜(黑色)的GT分割图。测试集是公开可用的,但其分割结果是保密的。通过向组织者发送预测的分割图,可以得到评估结果。评估的方法是将图设为10个不同的级别,并计算 “warping error”、“Rand error”、“pixel error”。

U-Net(平均超过7个旋转版本的输入数据)在没有任何预处理或后处理的情况下实现了0.0003529的warping error(新记录,见下表)和0.0382的rand-error。



EM分割挑战排名(2015年3月6日),按warping error排序

这比Ciresan等人的滑动窗口卷积网络的结果要好得多,后者的最佳提交值的warping error为0.000420,rand-error为0.0504。在rand-error方面,该数据集上唯一性能较好的算法采用了大量后处理方法,应用于Ciresan等人的概率图(为了达到这个结果,该算法的作者已经提交了78种不同的解决方案。)。
--
我们还将U-Net应用于光学显微图像中的细胞分割任务。
这一分割任务是2014和2015年ISBI细胞跟踪挑战的一部分。
第一个数据集“PhC-U373”包含由相差显微镜记录的聚赖氨酸基底上的胶质母细胞瘤-星形细胞瘤U373细胞(见下图a、b和Supp.Materials)。



ISBI细胞跟踪挑战的结果。(a)“PhC-U373”数据集的输入图像的一部分 (b)分割结果(青色掩模)和人工标注的GT(黄色边框) (c)“DIC-HeLa”数据集的输入图像 (d)分割结果(随机彩色掩模)和人工GT(黄色边框)

它包含35个部分注释的训练图像。在这里,我们实现了92%的平均IOU,这比83%的次优算法要好得多(见下表)。


第二个数据集“DIC-HeLa”是由差分干涉对比度(DIC)显微镜记录的平板玻璃上的HeLa细胞(见下图,上图c,d和SuppMaterials)。


它包含20个部分注释的训练图像。本算法的平均IOU为77.5%,明显优于46%的次优算法。
<hr/>5 Conclusion

U-Net结构在不同的生物医学分割应用中都取得了非常好的性能。由于弹性形变的数据增强,它只需要很少的标签图像,并且有一个非常合理的训练时间,在英伟达Titan GPU(6GB)只需10小时。我们提供完整的基于Caffe的实现和经过训练的网络。我们确信,U-Net架构可以很容易地应用于更多的任务。
<hr/>完
回复

使用道具 举报

2

主题

8

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2023-1-12 13:06:20 | 显示全部楼层
翻译的好仔细
回复

使用道具 举报

3

主题

8

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2023-1-12 13:07:13 | 显示全部楼层
翻译的很棒,拯救了步履维艰的我
回复

使用道具 举报

3

主题

4

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2023-1-12 13:08:13 | 显示全部楼层
大佬 有个地方看不懂 我们更喜欢大的输入图块而不是大的batch size,从而将批处理减少到单个图像 这是表示输入不是图像而是图像中的部分区域块不
回复

使用道具 举报

3

主题

12

帖子

24

积分

新手上路

Rank: 1

积分
24
发表于 2023-1-12 13:08:20 | 显示全部楼层
是处理过的原图(例如用了overlap-tile策略做了数据增强),不是很小的那种区域块。
原句:To minimize the overhead and make maximum use of the GPU memory, we favor large input tiles over a large batch size and hence reduce the batch to a single image.我翻译的时候把tile翻译成图块了,可能产生了歧义,实际上可以理解为图像。论文中Fig.1.结构图中就管输入图像叫input image tile。
回复

使用道具 举报

2

主题

10

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2023-1-12 13:09:19 | 显示全部楼层
求问一个地方,交叉熵那里,真实分布看起来是当1处理了?K层每个都是1?不是应该有0有1,真实层才是1吗?我错在哪里了请问
回复

使用道具 举报

0

主题

5

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2023-1-12 13:10:14 | 显示全部楼层
为什么最后上采样的输出和输入不一样大?
回复

使用道具 举报

2

主题

10

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2023-1-12 13:10:42 | 显示全部楼层
预测时要切patch这句话是什么意思呢,给图像做了什么操作,是给图像分块吗
回复

使用道具 举报

0

主题

6

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-1-12 13:11:23 | 显示全部楼层
很棒啊!!爱你!!比其他人的详细多了!!
回复

使用道具 举报

1

主题

5

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2023-1-12 13:11:31 | 显示全部楼层
谢谢作者!高中生刚刚入门,请问损失函数中提到的"momentum=0.99"是什么意思?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表