美文网首页深度学习之目标分割
语义分割相关神经网络简析 - U-Net

语义分割相关神经网络简析 - U-Net

作者: 拓季 | 来源:发表于2018-07-30 15:39 被阅读156次

在医学领域的图像分割任务中,几乎随处可见 U-Net 的身影,为此特别去读了原文,也根据原文自己用 Keras 实现 了一下论文中的架构。U-Net 这个架构的提出实际上受到了全卷积网络 FCN 的启发,因此在解释 U-Net 之前,先通过全卷积网络 FCN 做一个铺垫,具体的文章参见 Fully Convolutional Networks for Semantic Segmentation 这篇文章。

全卷积网络 Fully Convolutional Neural Network, FCN

所谓全卷积网络是指网络的所有需要学习的层都是卷积层,没有 GAP,Dense 或 Flatten 这样的大规模维度缩减操作,这样做的一个显而易见的好处就是网络不再对输入的尺寸有任何要求,因而无需再将输入图片裁剪成相同的尺寸。

经典的基于卷积的深度网络的前半部分为通过卷积层堆叠的 Downsampling 层,这一常见的卷积堆叠的结果使得深层网络对于输入图像具有更大的感受野,输入图像中物体的基本特征随着层次的深入得以组合成更加丰富而抽象化(对于人眼识别来说)的识别特征,进而可以利用这些特征进行很好的实现识别类任务。

为了采用全卷积网络实现分割任务,作者主要对于网络做了以下几个设计:

  • In-network Upsampling:在分割任务中,由于我们需要获取的是原始图片中每一个像素点在空间尺度上的分布信息,因此全卷积网络在 Downsampling 后通过 Deconvolution 层对激活图进行 Upsampling,最终保留宽度 x 高度 x 通道数这样的空间信息

  • Layer Fusion:在实际试验中,作者发现仅通过这两项操作得到的图像不能精确的还原原始图像中的像素边界信息,为此,作者在在深层网络的 Feature Maps 基础上叠加了添加了浅层网络的 Feature Maps 信息,作者将这一叠加称之为 Layer Fusion

此后,作者基于全卷积的思想将 3 个经典的骨架网络改造成了 FCN-AlexNet,FCN-VGG16,和 FCN-GoogLeNet (InceptionV1) ,一个有趣的现象是除了 GoogLeNet 外其他两个网络在执行分割任务上都表现出色,对此作者并未找到合理的解释。

U-Net - 2D

事实上在理解了 FCN 的基础上,U-Net 这个架构本身值得讨论的部分就不多了,针对实现和训练有以下几个细节需要注意:

U-net Architecture, picture from the U-net paper
  • U-net 命名:从上图可以看出其架构呈一个 U 型结构,因此作者直接将其命名为 U-net,网络采用基本对称的 Downsampling 和 Upsampling 结构

  • 训练样本:由于医学领域的图像本身在模式分布上具有高度的重复性,因此在很多时候网络的训练仅需要少量的图片即可以完成,这个特性是独立于网络架构而成立的

  • Upsampling 的实现:这一操作既可以通过基于卷积核的 Conv2DTranspose 层实现,也可以通过基于插值的 UpSampling2D 来实现,在实际使用中有研究表明两种实现方式没有明显差异

  • 损失函数的选择:在几篇利用 U-net 实现分割任务的论文中,有的损失函数采用的 Softmax Cross Entropy / Binary Cross Entropy,也有作者采用的是 Dice-Coefficient 函数,具体的优劣由于我现在还没有训练过,并不能简单的说哪一个更好

U-Net - 3D

由于在医疗数据中,很多的影像采集结果都是基于体积而非二维平面的,因此作者在前一篇工作的基础上又进一步对网络的结构进行了改造:将原有结构进行简化,再所有相关的 Conv2DMaxPooling2DUpSampling2D 更换成相对应的 3D 操作,也即 Conv3DMaxPooling3DUpSampling3D,并且在网络中引入了 BatchNormalization 来加速收敛,进而使得这个网络可以实现针对体积数据的分割任务。

由于数据集中的标注相对稀疏,因此作者在训练中采用了基于加权平均的 Weighted Softmax Cross Entropy 损失函数,并且将未标注的像素点的权重设置为 0 ,从而使得网络仅从标注数据中获得学习信息。

参考阅读

  1. A 2017 Guide to Semantic Segmentation with Deep Learning

  2. Semantic Segmentation with U-Net

  3. Practical image segmentation with Unet

  4. Winners of 2018 Data Science Bowl on Unet

  5. Biomedical Image Segmentation with U-Net Upsampling versus Transposed Convolution

  6. DICOM in Python: Importing medical image data into NumPy with PyDICOM and VTK

  7. Dice Coefficient VS Jaccard_index (IOU)

相关文章

  • 语义分割相关神经网络简析 - U-Net

    在医学领域的图像分割任务中,几乎随处可见 U-Net 的身影,为此特别去读了原文,也根据原文自己用 Keras 实...

  • 语义图像分割概览

    摘要:本文讨论如何利用卷积神经网络进行语义图像分割的任务。 语义图像分割,目标是将图像的每个像素标记为所表示的相关...

  • 语义分割

    (一)语义分割和数据集 (1)什么是语义分割? 语义分割将图片的每一个像素分类到对应的类别。神经网络能够在像素级别...

  • 语义分割网络 U-Net 详解

    Unet 背景介绍 Unet 发表于 2015 年,属于 FCN 的一种变体,想了解 FCN 可以看我的另一篇 F...

  • 全连接卷积神经网络 FCN

    (一)全连接卷积神经网络(FCN) (1) 全连接卷积神经网络简介 FCN是深度神经网络用于语义分割的奠基性工作,...

  • CVPR2019|CANet: Class-Agnostic S

    Abstract 深层卷积神经网络和大规模标记图像数据集推动了语义分割的最新进展。然而, 用于像素分割的数据标记是...

  • 基于深度学习的语义分割

    基于深度学习的语义分割 1 什么是语义分割(Semantic Segmentation) 语义分割是在像素层面...

  • 自动驾驶入门日记-5-视频语义分割

    相比于图像语义分割,视频语义分割具有高帧数(15-30帧/s),前后帧之间高相关性的特点。并且在自动驾驶任务中,对...

  • 论文略读--语义分割相关(一)

    一、Global Aggregation then Local Distribution in Fully Con...

  • FCN全卷积网络Fully Convolutional Netw

    语义分割 CNN实现语义分割 FCN 实现语义分割 全连接层 注: 以下内容摘自知乎 全连接层(fully con...

网友评论

    本文标题:语义分割相关神经网络简析 - U-Net

    本文链接:https://www.haomeiwen.com/subject/kpyfvftx.html