U-Net学习笔记

为什么做这篇工作?

我近期的工作是做医学图像插帧,第一个接触的框架就是unet。此次做学习笔记是为了更透彻的了解unet,在之后我将尝试unet的复现。我的朋友兼没拜过的师傅(csdn:Ryuzhihao123)一直跟我说自己真正的复现一个基础的网络才会更透彻的了解,个人深以为然。希望自己能踏踏实实走好每一步,为以后的研究工作打下坚实的基础。

文章阅读以及理解

Abstract
在这篇文章中,作者提出了利用数据增强来更有效的应用样本的网络和训练策略。算法包括两部分:第一部分是用来获取上下文的提取部分;第二部分是与提取部分对称的扩展部分用来进行精确地定位。此网络能够用较少的图片来进行端到端的训练,并且效果超过了这篇文章之前最好的工作。
一.introduction
卷积网络传统的应用领域是分类任务,其中图像的输出是单个的类标签。但是在许多CV任务尤其是生物医学图像领域, 所需的输出应该包括定位——类标签应该分配给每个像素。此外,得到成千上万的图像数据集在生物医学领域是很难实现的.我们在全卷积网络的基础上做了修改和扩展,以此能够用更少的训练图像并获得更高的精度。

U-Net学习笔记_第1张图片
为了定位,从收缩部分出来的高分辨率特征与上采样的输出进行结合。
本文算法中一个重要的修改是上采样层同样有较多的通道,这样就允许网络向高分辨率的网络层传递上下文信息。因此,扩展路径或多或少与收缩路径对称从而形成一个U型结构。网络没有全连接层,只使用每个卷积的有效部分,即分割映射只包含像素,对于这些像素,完整的上下文在输入图像中。 这种策略允许通过重叠子策略对任意大图像进行无缝分割(参见图2)。
U-Net学习笔记_第2张图片
为了预测图像边界区域的像素,通过镜像输入推测丢失的上下文。 这种平铺策略对于将网络应用于大图像很重要,否则,分辨率将受到GPU内存的限制。
因为我们的数据集数据量非常小,所以我们用了非常多的数据增强:用可伸缩的形变来获取训练数据。这使得网络能够学习这种形变的不变性。 这在生物医学分割中尤为重要,因为变形过去是组织中最常见的变化,这样我们就可以有效的模拟真实的形变。
许多单元分割任务中的另一个挑战是分离同一类的接触对象(参见图3)。
U-Net学习笔记_第3张图片
为此,我们建议使用加权损失,其中接触细胞之间的分离背景标签在损失函数中获得更大的权重。
二.网络算法
网络分为两部分:第一部分是收缩路径(左边部分);第二部分是扩展路径(右边部分)。收缩部分采用了传统的卷积网络算法。收缩部分由两个3 3卷积(unpadding)重复组成,接上Relu和一个22的最大池化层以及步长为2的下采样层。在每个下采样层我们将特征图的通道数扩充为两倍。在扩展路径的每一步我们采用特征图的上采样,后接上22的卷积层从而将特征图的通道数减半。 从收缩路径与相应裁剪的特征映射的级联,以及两个3*3卷积,*每个卷积后面都是ReLU。因为边界像素的损失发生在每个卷积层所以剪裁是不要的。在最后一层,使用1x1卷积将每个64分量特征向量映射到所需的类数。 网络总共有23个卷积层。
三.训练
基本配置:使用momentum=0.99的SGD进行训练,momentum取0.99是作者希望梯度能结合尽量多的之前的动量。为了尽可能利用GPU,作者选用的网络输入图像尺寸是尽可能大。
损失函数:网络输出388×388×2 的数据后,将388×388的每个像素经过softmax操作,然后对每个像素求取交叉熵损失。其中,每个像素的交叉熵损失是带有权重的,正如上文所述,重合的边界权重较大。权重的计算和设计可以参见论文,这里不详细展开了。
网络参数的初始化:对于深度较深的神经网络,参数初始化是非常重要的。作者采用 高斯分布作为参数初始化方式,其中N表示一个神经元的输入参数数量,如3×3×64 的卷积操作,N=3×3×64=576 N=3×3×64=576。
数据增广
图像平移;
图像旋转;
图像弹性变形,使用双三次插值进行变形后的填充;
压缩路径最后使用了dropout层;

你可能感兴趣的:(U-Net学习笔记)