语义分割网络U-Net详解

论文:U-Net: Convolutional Networks for Biomedical Image Segmentation

前言

语义分割(Semantic Segmentation)是图像处理和机器视觉一个重要分支。与分类任务不同,语义分割需要判断图像每个像素点的类别,进行精确分割。语义分割目前在自动驾驶、自动抠图等领域有着比较广泛的应用。

目前已经有不少其他好用的分割网络:Mask RCNN、DeepLabv3+、FCIS等。

U-Net网络结构

语义分割网络U-Net详解_第1张图片
U-Net网络非常简单,前半部分(左边)作用是特征提取,后半部分(右边)是上采样。在一些文献中也把这样的结构叫做Encoder-Decoder结构。因为此网络整体结构类似于大写的英文字母U,故得名U-Net。

每个蓝色框对应一个多通道特征图,其中通道数在框顶标。x-y的大小位于框的左下角。灰色框表示复制和裁剪(Concat)的特征图。箭头表示不同的操作。

该网络由收缩路径(contracting path)和扩张路径(expanding path)组成。其中,收缩路径用于获取上下文信息(context),扩张路径用于精确的定位(localization),且两条路径相互对称。

U-Net网络能从极少的训练图像中,依靠数据增强将有效的标注数据更为有效地使用。

U-Net与其他常见的分割网络(如FCN)有一点非常不同的地方:

  • U-net采用了完全不同的特征融合方式:拼接(Concat),U-Net采用将特征在channel维度拼接在一起,形成更厚的特征。而FCN融合时使用的对应点相加,并不形成更厚的特征。

所以语义分割网络在特征融合时有两种办法:

  1. FCN式的对应点相加。
  2. U-Net式的channel维度拼接融合。

除了上述新颖的特征融合方式,U-Net还有以下几个优点:

  1. 5个pooling layer实现了网络对图像特征的多尺度特征识别。
  2. 上采样部分会融合特征提取部分的输出,这样做实际上是将多尺度特征融合在了一起,以最后一个上采样为例,它的特征既来自第一个卷积block的输出(同尺度特征),也来自上采样的输出(大尺度特征),这样的连接是贯穿整个网络的,你可以看到上图的网络中有四次融合过程,相对应的FCN网络只在最后一层进行融合。

U-Net也有两点明显的不足:

  1. 该网络运行效率很慢。对于每个邻域,网络都要运行一次,且对于邻域重叠部分,网络会进行重复运算。
  2. 网络需要在精确的定位和获取上下文信息之间进行权衡。越大的patch需要越多的最大池化层,其会降低定位的精确度,而小的邻域使得网络获取较少的上下文信息。

该网络没有全连接层,且仅使用每个卷积的有效部分,例如:分割图仅包含在输入图像中可获得完整上下文信息的像素。该策略允许通过重叠-切片(overlap-tile)策略对任意大的图像进行无缝分割,如下图所示。

语义分割网络U-Net详解_第2张图片

为了预测图像边缘区域中的像素的类别标签,通过对输入图像进行镜像操作来推断缺失的上下文信息。这种切片策略对于将网络应用于大型图像是重要的,否则图像的分辨率将受限于显存(the GPU memory)。

与U-Net相关的项目

在卫星图像中找到船,在公开的kernal中最受欢迎的是U-Net,达到了84.7的精度:https://link.zhihu.com/?target=https%3A//www.kaggle.com/c/airbus-ship-detection

卫星图像分割与识别:https://zhuanlan.zhihu.com/p/26377387

广东政务数据创新大赛—智能算法赛:https://link.zhihu.com/?target=https%3A//github.com/LiuDongjing/BuildingChangeDetector

Kaggle车辆边界识别:https://link.zhihu.com/?target=https%3A//github.com/ternaus/TernausNet

你可能感兴趣的:(计算机视觉,U-Net,语义分割,Unet,识别,像素)