U-net,及其和FCN的区别

很多分割网络都是基于FCNs做改进,包括Unet。

 Unet包括两部分,可以看右图,

  • 第一部分,特征提取,VGG类似。

  • 第二部分上采样部分。由于网络结构像U型,所以叫Unet网络。 

U-net,及其和FCN的区别特征提取部分,每经过一个池化层就一个尺度,包括原图尺度一共有5个尺度。
上采样部分,每上采样一次,就和特征提取部分对应的通道数相同尺度融合,但是融合之前要将其crop。这里的融合也是拼接。


个人认为改进FCN之处有:

  • 多尺度

  • 适合超大图像分割,适合医学图像分割

FCN的主要思想

是使用连续的层补充通常的收缩网络,其中的池化层被上采样层取代。因此这些层增加了输出层的分辨率。为了定位,来自收缩路径的高分辨率与上采样输出相结合。基于这个信息,一个连续的卷积层可以学习组装(集成)更精确的输出。

  U-net 与 FCN 的不同在于,U-net 的上采样依然有大量的通道,这使得网络将上下文信息向更高层分辨率传播。作为结果,扩展路径多多少少与收缩路径对称,形成一个U的形状。网络没有全连接层并且只是用每一个卷积层的有效部分,例如分割图(指图像的输出)只包含这样的一些像素点,它们的上下文(它周围的像素点)都出现在了输入图像中。这种策略使得我们通过一个 Overlap-tile 策略可以使得任意大小的输入图像都可以获得一个无缝分割。

U-Net的结构如下图所示,左侧可视为一个编码器,右侧可视为一个解码器。

encoder有四个子模块,

每个子模块包含两个卷积层,每个子模块之后有一个通过max pool实现的下采样层。 

输入图像的分辨率是572x572, 第1-5个模块的分辨率分别是572x572, 284x284, 140x140, 68x68和32x32。由于卷积使用的是valid模式,故这里后一个子模块的分辨率等于(前一个子模块的分辨率-4)/2。

解码器包含四个子模块,分辨率通过上采样操作依次上升,直到与输入图像的分辨率一致(由于卷积使用的是valid模式,实际输出比输入图像小一些)。该网络还使用了跳跃连接,将上采样结果与编码器中具有相同分辨率的子模块的输出进行连接,作为解码器中下一个子模块的输入。 

U-net,及其和FCN的区别

 

上一篇:LeetCode 352. 将数据流变为多个不相交区间(map二分查找)


下一篇:C++ const 记录