U-Net论文详解

U-Net:生物医学图像分割的卷积神经网络

U-net 是基于FCN的一个语义分割网络,适合用来做医学图像的分割。
摘要
有许多成功利用大量带标注训练数据的神经网络。在这篇论文里,我们提出一个网络和训练策略,更有效的利用了数据增强来使用可获得的带标注数据。这个算法包括一个收缩路径来捕捉语义和一个扩展路径来精准定位。这个网络可以端到端训练非常少的图片,但是在ISBI(电子显微镜的细胞图像分割)挑战中表现超越了之前最好的网络。另外,这个网络很快,512*512图像花费少于1s。

1 介绍

卷积网络的典型利用是在分类任务,输出任务的单个类标签。然而,在许多视觉任务,尤其是生物医学图像处理,目标输出应该包括定位等,每个像素都应该有类标签。另外,大量的训练图片往往超过生物医学图像的任务要求。所以,Ciresan等训练了一个神经网络,用滑动窗口来预测每个像素的类标签,提供像素的周围区域(patch)作为输入。首先,这个网络可以定位。第二,输入的是patches,这样训练数据就比图片数据多很多。这个网络大幅度赢得了ISBI2012。

明显的,Ciresan的方法有两个缺点。第一,它很慢,因为这个网络必须训练每个patch,并且因为patch间的重叠有很多的冗余(冗余会造成什么影响呢?卷积核里面的W,就是提取特征的权重,两个块如果重叠的部分太多,这个权重会被同一些特征训练两次,造成资源的浪费,减慢训练时间和效率,虽然说会有一些冗余,训练集大了,准确率不就高了吗?可是你这个是相同 的图片啊,重叠的东西都是相同的,举个例子,我用一张相同的图片训练20次,按照这个意思也是增大了训练集啊,可是会出现什么结果呢,很显然,会导致过拟合,也就是对你这个图片识别很准,别的图片就不一定了)。第二,定位准确性和上下文间不可兼得。大的patches需要更多的max-pooling层这样减小了定位准确性(为什么?因为你是对以这个像素为中心的点进行分类,如果patch太大,最后经过全连接层的前一层大小肯定是不变的,如果你patch大就需要更多的pooling达到这个大小),因为Pooling层会降低分辨率,丢失信息),而小的patches只能看到很小的局部信息,包含的背景信息不够。许多现在的方法使用不同层的特征来同时兼容定位和利用context。
在这篇论文,我们建立了一个更好全卷积方法。我们定义和扩展了这个方法它使用更少的训练图片但产生更精确的分割。
U-Net论文详解_第1张图片
(1)使用全卷积神经网络。(全卷积神经网络就是卷积取代了全连接层,全连接层必须固定图像大小而卷积不用,所以这个策略使得,你可以输入任意尺寸的图片,而且输出也是图片,所以这是一个端到端的网络。)
(2)左边的网络contracting path:使用卷积和maxpooling。
(3)右边的网络expansive path:使用上采样与左侧contracting path ,pooling层的featuremap相结合,然后逐层上采样到392X392的大小heatmap。(pooling层会丢失图像信息和降低图像分辨率且是不可逆的操作,对图像分割任务有一些影响,对图像分类任务的影响不大,为什么要做上采样?:因为上采样可以补足一些图片的信息,但是信息补充的肯 定不完全,所以还需要与左边的分辨率比较高的图片相连接起来(直接复制过来再裁剪到与上采样图片一样大小),这就相当于在高分辨率和更抽象特征当中做一个折衷,因为随着卷积次数增多,提取的特征也更加有效,更加抽象,上采样的图片是经历多次卷积后的图片,肯定是比较高效和抽象的图片,然后把它与左边不怎么抽象但更高分辨率的特征图片进行连接)
(4)最后再经过两次卷积,达到最后的heatmap,再用一个1X1的卷积做分类,这里是分成两类,所以用的是两个神经元做卷积,得到最后的两张heatmap,例如第一张表示的是第一类的得分(即每个像素点对应第一类都有一个得分),第二张表示第二类的得分heatmap,然后作为softmax函数的输入,算出概率比较大的softmax类,选择它作为输入给交叉熵进行反向传播训练

卷积层的数量大约在20个左右,4次下采样,4次上采样。输入图像大于输出图像,因为在本论文中对输入图像做了镜像操作。
我们方法对于FCN的的重要改进是上采样部分我们有大量的特征通道,使得传播语义信息到高分辨率层。结果,扩展层或多或少对称于收缩层,产生了一个u型的结构。该网络没有任何的全连接层,每个像素都利用了输入图像的full context。该方法允许任意大图片的无缝分割通过一个overlap-tile策略。为了预测框中图像,缺失区域通过镜像输入图像扩张。这种tiling方法对于应用网络到大图像很重要,因为否则结果会被gpu内存限制。为了预测黄色区域的分割,需要蓝色区域作为输入。
U-Net论文详解_第2张图片
因为我们的任务只能获得很少的训练数据,我们通过弹性变形来数据增强。这在生物医学图像分割是很重要的,因为变形很常见。
另一个细胞分割的挑战是同一类别连接物体的分离。如图三。为此,我们使用加权损失函数,连接细胞间的背景标签分离获得较大的权重。
我们的方法在ISBI取得了很好的效果。

训练
该论文是基于Caffe,使用动量为0.99的SGD,损失函数为交叉熵,训练输入图片与它们对应的分割图片(输入图片和最后的图片的尺寸不一样)。该训练模型和传统的训练模型没什么不同,都是注意权重初始化随机,数据增强等。
U-Net论文详解_第3张图片
公式1 这是softmax函数,ak(x)表示每一像素点对应类的得分
公式2 给像素分配权重然后进行加权,d1(x)表示图中某一背景像素点到离这个点最近的细胞边界的距离,d2(x)表示离这个像素点第二近的细胞的距离,你们可以举一下特例算一下这个权重公式会发现(带入数字算很简单,我就不举例子了),即在细胞边界附近的像素点给的权重会大一些,离细胞比较远的像素点的权重会小一些,为什么这么做呢?因为,如果同类细胞贴的比较近,可能就会增大训练的难度,减少准确率,毕竟卷积会考虑该像素点周围的一些特征,而两个相同的类的细胞贴在一起,就容易误判,所以对这种两个相同类贴在一起的细胞边界,给予较大的权重,使的训练之后分类分割更准确

数据增强

数据增强在训练样本比较少的时候,能够让神经网络学习一些不变性,弹性变换是本文使用的方法。(因为弹性形变是实际细胞中比较常见的一种形变,如果我们能采取数据增强的算法去使网络学习这种形变的不变性,就可以在分割数据集很小的情况下,使网络具有遇见弹性形变还是可以准确的检测出,相当于就是把原图,做了下弹性变形,然后,就相当于扩大了数据集嘛,自然网络就能适应这种弹性变化了,在遇见弹性变形的时候一样可以正确的分类分割)

U-Net论文详解_第4张图片
U-Net论文详解_第5张图片

总结

u-net网络在不同的生物医学图像分割中有很好的表现。数据增强使得只需很少的带标注数据,只需训练十小时。我们确信u-net网络可以很容易的应用到更多的任务。

你可能感兴趣的:(深度学习算法,图像处理,语义)