深度学习之目标分割

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

2018-07-30  本文已影响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 层,这一常见的卷积堆叠的结果使得深层网络对于输入图像具有更大的感受野,输入图像中物体的基本特征随着层次的深入得以组合成更加丰富而抽象化(对于人眼识别来说)的识别特征,进而可以利用这些特征进行很好的实现识别类任务。

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

此后,作者基于全卷积的思想将 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 - 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)

上一篇 下一篇

猜你喜欢

热点阅读