U-net论文笔记

    论文:Olaf Ronneberger, Philipp Fischer, and Thomas Brox.U-Net: Convolutional Networks for Biomedical Image Segmentation.


素质三连

1.论文贡献

在FCN的基础上提出了U-net语义分割网络。

应用了Overlap-tile策略、弹力形变数据增强和加权损失                。

2.实验结果

在生物医学图像分割方面的ISBI挑战赛中获得第一。

3.待解决的问题

U-net使用的弹力形变、加权损失等策略很多其它任务上并不适用。


U-net语义分割模型

1.模型提出

    前面写过FCN的阅读笔记,FCNVGG16的FC层转换为1x1卷积层,后接上采样层再加上skip结构。本论文提出的语义分割模型在FCN基础上进行改进,只需很少的样本,就得到更高的分割精度。相比与FCN,本文提出的模型在上采样部分的卷积层有更多的通道,这可以将context信息传播到更高分辨率的层。本文的提出的模型中,用于特征提取的收缩网络,和用于还原分辨率的扩张网络,呈现对称的U型架构,因此称为U-net,如下图:

1.jpg

    就语义分割来说,要预测输入图片每个像素对应的标签。但从如上图可以看到,U-net中所有的卷积层都是unpadded的(猜想:padding太多的话,会引入误差),导致是输入图片和输出分割图的分辨率不同。为了解决这个问题,作者采用Overlap-tile策略:将输入图片进行padding,使模型输出分割图的分辨率符合需求。Padding时缺失数据的部分通过镜像实现。Overlap-tile的实例如下:

2.jpg

    U-Net的提出主要为了解决生物医学图像分割问题,任务数据集一般很小,因此这里主要使用弹性形变(elastic deformations)进行数据增强,这有利于模型学习平移不变性。弹性形变对生物医学分割很有效,因为生物医学图像的组织变化很常见。

    细胞分割任务中的一个难点是分离同类别的相互接触的目标。为此,这里提出了一种加权损失的方法,这样相互接触细胞的分割边界获得更大的权重。如下图所示:

3.jpg


2.详细架构

4.jpg

    整个网络有23层卷积层。网络的左边是收缩网络,右边是扩张网络。

    收缩网络由多组卷积神经网络组成,每组由两层3x3 unpadded卷积层组成,每个卷积层后使用ReLU。每组之间使用size=2,stride=2的最大池化进行下采样。每组第一次卷积时,将特征图通道数增加一倍。

    扩张网络的也是由多组卷积层组成,每组先使用2x2的up-convolution(转置卷积)将分辨率翻倍、通道数减半,然后与收缩网络中对应的层的输出特征图concatenation。但是因为U-net全部使用unpadded卷积的缘故,对应的收缩网络的特征图的分辨率更高,因为使用Overlap-tile策略,因此可以直接将收缩网络对应的特征图四周裁剪后再拼接到扩张网络特征图中。拼接后接两个unpadde的3x3卷积层,每个卷积后接ReLU。扩张网络的最后一层是1x1卷积层,将通道数由64转换为类别数。


3.训练

训练参数

    U-net在Caffe上实现。为了减小开销,batch size设为1。使用SGD的动量系数为0.99。

加权损失

    最后一层使用逐像素的softmax和交叉熵损失。Softmax公式如下:

5.jpg

    其中ak(x)是分割图中像素位置x、通道k激活值;K是通道总数(也就是类别数)。交叉熵损失的计算:

6.jpg

    其中l属于{1,...,K}表示某个像素点的类别,w(x)是x像素点的损失权重。训练之前,先计算每个ground-truth分割图的权重图,用于补偿训练数据集中每类像素的不同频率,使网络更注重学习相互接触的细胞之间的分割边界。如下图:

7.jpg

    使用形态学计算分割边界。计算权重图的公式如下:

8.jpg

    ωc:Ω→R是用来平衡类频率的权重图,d1:Ω→R表示到背景的某个像素点到最近细胞边界的距离,d2:Ω→R表示到背景的某个像素点到第二近的细胞边界的距离。经过实验,作者设置ω0=10,σ≈5个像素。

    权重初始化:使用高斯分布,标准差为(2/N)^-1,N是一个神经元的输入节点的数量。比如3x3、64通道的卷积的N=9*64=576。

数据增强

    当训练样本很少的时候,数据增强是非常必要的。在显微镜图像中,进行平移、旋转、弹力形变和灰度变换,最重要的是弹力形变。这里使用3×3粗网格上的随机位移向量生成平滑形变。位移是从一个10像素标准差的高斯分布中采样的,然后使用双三次插值计算每像素位移。如下图:

9.jpg 增强后 10.jpg


4.实验

    作者在三个不同数据集上进行实验。

    第一个数据集是神经元结构电子显微镜图像,由EM图像分割挑战赛提供。训练集是30张512x512的果蝇一龄幼虫腹神经索(VNC)的切片透射电镜图像,ground-truth map:白色为细胞,黑色为细胞膜。测试集公开,但是分割图保密,因此需要把预测的分割图发给组办方进行评估。结果如下:

11.jpg

    另外两个数据集是细胞光镜图像”PhC-U373”和”DIC-HeLa”,是2014和2015 ISBI细胞跟踪挑战赛的一部分。实例如下:

12.jpg

    结果如下:

13.jpg


参考文献

[0]Olaf Ronneberger, Philipp Fischer, and Thomas Brox.U-Net: Convolutional Networks for Biomedical Image Segmentation.

[1]jianyuchen23.U-Net论文详解.https://blog.csdn.net/jianyuchen23/article/details/79349694 

上一篇:
下一篇:

首页 所有文章 机器人 计算机视觉 自然语言处理 机器学习 编程随笔 关于