U-Net理解

原Blog链接:https://www.cnblogs.com/fourmi/p/8985333.html
论文链接:U-Net: Convolutional Networks for Biomedical Image Segmentation

U-Net和FCN的区别

在计算机视觉领域,全卷积网络(FCN)是比较有名的图像分割网络,医学图像处理方向,U-Net可以说是一个更加炙手可热的网络,基本上所有的分割问题,我们都会拿U-Net先看一下基本的结果,然后进行“魔改”。

U-Net和FCN非常的相似,U-Net比FCN稍晚提出来,但都发表在2015年,和FCN相比,U-Net的第一个特点是完全对称,也就是左边和右边是很类似的,而FCN的decoder相对简单,只用了一个deconvolution的操作,之后并没有跟上卷积结构。第二个区别就是skip connection,FCN用的是加操作(summation),U-Net用的是叠操作(concatenation)。这些都是细节,重点是它们的结构用了一个比较经典的思路,也就是编码和解码(encoder-decoder)结构,早在2006年就被Hinton大神提出来发表在了nature上.

当时这个encoder-decoder结构提出的主要作用并不是分割,而是压缩图像和去噪声。输入是一幅图,经过下采样的编码,得到一串比原先图像更小的特征,相当于压缩,然后再经过一个解码,理想状况就是能还原到原来的图像。这样的话我们存一幅图的时候就只需要存一个特征和一个解码器即可。同理,这个思路也可以用在原图像去噪,做法就是在训练的阶段在原图人为地加上噪声,然后放到这个编码解码器中,目标是可以还原得到原图。

后来把这个思路被用在了图像分割的问题上,也就是现在我们看到的FCN或者U-Net结构,在它被提出的三年中,有很多很多的论文去讲如何改进U-Net或者FCN,不过这个分割网络的本质的拓扑结构是没有改动的。举例来说,去年ICCV上凯明大神提出的Mask RCNN. 相当于一个检测,分类,分割的集大成者,我们仔细去看它的分割部分,其实使用的也就是这个简单的FCN结构。说明了这种“U形”的编码解码结构确实非常的简洁,并且最关键的一点是好用。

此外, 由于UNet也和FCN一样, 是全卷积形式, 没有全连接层(即没有固定图的尺寸),所以容易适应很多输入尺寸大小,但并不是所有的尺寸都可以,需要根据网络结构决定, 在U-Net中, 池化是2x2的且是valid策略,即没有padding,因此要保证输入的图像在经过每一次池化的时候都要是边长偶数。所以要特别注意输入图像的尺寸。一个比较好的方法是从最小分辨率(分辨率就是feature map的尺寸)出发沿收缩路径的反方向进行计算,得到输入图像的尺寸。

正文

首先作者开头就提到了,通过使用数据增强可以更加高效的使用标记的样本。结构包括一个压缩路径 用于捕捉上下文信息,还有一个对称的展开路径 用于精确的定位。这种网络的特点就是可以对很少的几张图片进行end-to-end训练并且表现的较好。在医学图像上需要对每个像素进行分类,有位大佬提出了用滑动窗口的方法,通过一个patch(该像素周围)的类别对像素进行分类,要求是一是网络可以进行定位,二是patch的数量远大于训练的图片,结果还是喜人的。但接下来,作者就开始进行批斗了,首先作者认为这个做法很慢,网络必须经过每个patch,这就会因为很多重叠造成很多冗余。再就是,在定位的准确性和上下文的使用二者要进行权衡,更大的pathc需要更多的最大池化层来减少定位精度,而小的patch包含的上下文信息就较少。

然而作者想到了机智的方法可以解决上述问题,作者提出的 结构是建立在全卷积网络。作者对其进行修改和扩展,使其可以在很少的训练图像下 进行工作,同时产生更精确的分割。

网络结构如下:
在这里插入图片描述

全卷积网络的主要思路是通过连续层来补充通常 的压缩网络。这里池化操作被上采样取代。这些层增加了输出的分辨率,因此,为了定位,从压缩路径中获得的高分辨率特征与上采样的输出结合。一系列卷积层会根据这些信息组合学习到更精确的输出。

作者在结构的上采样部分进行了修改,有大量特征通道,允许网络将上下文信息传播到更高分辨率的层。结构上,压缩路径与展开路径或多或少的有些对称,形成一个U形。这个U网比较奇葩,没有全连接层,而且仅使用每个卷积层的有效部分通过重叠+平铺,可以实现任意大小图片的无缝分割。为了预测图像边界区域中的像素,可以通过输入图像的镜像操作来推断遗失的上下文。前面说的这个策略很适合于大的图片。作者将训练图片进行弹性变换(个人感觉是各种图像处理的套路)来实现数据增强。

下面大体说一说网络的结构,摆在你面前的有两条路,一条为压缩路径,另一条为扩展路径,压缩路径的结构和卷积结构相同,包括两次33卷积,每个卷积后接一个RELU,和一个22的最大池化层(stride=2)用于下采样。在每个下采样的过程中,将特征通道数加倍,扩张路径中的每一步都包括上采样,然后进行22的反卷积,其特征通道数减半,与来自压缩路径中相对应的裁剪feature map级联,同时进行两个33的卷积,并捎带个RELU。由于卷积边界上像素有丢失,因此,进行裁剪是必要的。在最后一层,用大小为1*1的卷积将64维的特征向量映射到目标的类别数目上。次网络总共有23个卷积层。

Unet网络介绍到这里,这里提一下,Unet网络十分适合于生物医学上的处理,同时由于医学影像较少,因此作者进行了数据增强,使Unet能够发挥的更加出色。

附飞桨课件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u013547284/article/details/121454404