【医学图像处理】V-Net:用于体积医学图像分割的全卷积神经网络

论文:https://arxiv.org/pdf/1606.04797

代码:https://github.com/faustomilletari/VNet

1. 研究概述

作者在本文中提出了一种基于全卷积神经网络的 3D 图像分割方法。此外,本文引入了一个新的基于 Dice 系数的目标函数,以处理前景和背景体素数量严重不平衡的情况。为了解决带注释的训练集有限的问题,本文应用随机非线性变换直方图匹配来增强数据。实验结果表明,本文的方法在测试数据上取得了良好的性能,而所需的处理时间仅为其他方法所需时间的一小部分。

2. 研究方法

2.1 V-Net 网络结构

V-Net 网络结构示意图

压缩路径

网络的左侧分为几个不同的阶段,每个阶段包括 1-3 个卷积层。借鉴残差网络的思想,每一级的输入一方面经过卷积层处理,另一方面被添加到该级最后一个卷积层的输出,以便能够学习残差。这样的结构比没有学习残差的网络结构收敛得更快。

每个阶段使用大小为 5×5×5 的卷积核。当图像沿着压缩路径经过不同阶段时,其分辨率会逐渐降低。这是因为第二次操作使用大小为 2×2×2、步长为 2 的卷积核,得到的特征图大小减半。在降低特征图的分辨率同时,特征通道的数量加倍。PReLu 激活函数应用于整个网络。

降采样会减小输入的尺寸,并增加后续网络层特征图的感受野

解压缩路径

网络的右侧部分提取特征并扩展低分辨率特征图的空间支撑,以收集和组合必要的信息来输出两个通道的体积分割(因为是二分类问题)。最后一个卷积层计算得到的两个特征图通过应用 softmax 函数转换为前景和背景区域的概率分割。在 softmax 之后,输出由背景和前景的概率图组成。属于前景的概率大于属于背景的概率的体素被认为是解剖结构的一部分。

每个阶段的最后使用反卷积操作增加输入的大小,随后是 1-3 个卷积层,卷积核大小为 5×5×5,卷积核的数目是上一层的一半。与网络左侧类似,在网络右侧的卷积阶段学习残差。

降采样和反卷积

跳跃连接

与 U-Net 网络相似,将网络左侧提取的特征连接到网络右侧。通过这种方式收集在压缩路径中可能丢失的细粒度,并提高最终预测的质量。此外,还观察到这些连接改善了模型的收敛时间。

下表显示了每个网络层的感受野大小,表明网络最深层的部分能捕获整个输入的内容。作者认为,这一特征在分割不太明显的解剖结构时很重要:在最深层计算的特征能感知整个感兴趣的解剖结构,因为它们是从比我们试图描绘的解剖结构的尺寸大得多的数据中计算出来的。

We report in Table 1 the receptive fields of each network layer, showing the fact that the innermost portion of our CNN already captures the content of the whole input volume. We believe that this characteristic is important during segmentation of poorly visible anatomy: the features computed in the deepest layer perceive the whole anatomy of interest at once, since they are computed from data having a spatial support much larger than the typical size of the anatomy we seek to delineate, and therefore impose global constraints.

 2.2 目标函数

网络预测由两个与原始输入数据分辨率相同的体积块组成,通过 softmax 层输出每个体素属于前景和背景的概率。在医学图像分割中,经常遇到感兴趣的解剖结构仅占整个扫描区域非常小的部分的情况。这通常会导致学习过程陷入损失函数的局部极小值,从而产生预测强烈偏向背景的网络,导致前景区域经常缺失或仅被部分检测到。在这项工作中,我们提出了一个新的基于 Dice 系数的目标函数,我们的目标是最大化这个目标函数。

使用这个公式,我们不需要在前景和背景体素之间建立正确的平衡,例如通过给不同类别的样本分配损失权重。 

2.3 数据集

数据集:https://pan.baidu.com/s/1E5YN6lwPfRyxaSQQaNjYbw 提取码:bvj3

使用 MRI 前列腺扫描数据训练网络,所有体积块都有 128×128×64 个体素和 1×1×1.5 mm 的空间分辨率。由于数据集较小,因此有必要进行数据增强

在每次训练迭代中,通过使用由 2×2×2 的控制点网格和 B 样条插值得到的密集变形场将训练图像进行随机变形,作为网络输入。这些增强的数据是在程序运行过程中创建的,以减轻存储需求。

During every training iteration, we fed as input to the network randomly deformed versions of the training images by using a dense deformation field obtained through a 2 × 2 × 2 grid of control-points and B-spline interpolation. These augmentations were performed ”on-the-fly”, prior to each optimisation iteration, in order to alleviate the otherwise excessive storage requirements.

此外,我们在训练中改变数据的强度值(灰度值)以模拟来自扫描仪的各种数据情况。为此,我们使用直方图匹配每次迭代中使用的训练体积块的强度分布调整为数据集中随机选择的其他体积块的强度分布。

Additionally, we vary the intensities of the data during training to simulate the variety of data appearance from the scanner. To this end, we use histogram matching to adapt the intensity distributions of the training volumes used in each iteration to the ones of other randomly chosen scans belonging to the dataset.

2.4 训练参数

批次大小:2;

动量:0.99;

学习率:初始学习率为 0.0001,每迭代 25000 次衰减一个数量级。

3. 实验结果

在 50 个体积块上训练网络,在 30 个体积块上测试网络。所有的训练和实验都在标准的工作台上运行(64 GB RAM, 3.30GHz Intel Core i7-5820K CPU, NVidia GTX 1080 with 8 GB VRAM)。模型训练持续了 48 小时,或大约 3 万次迭代。

利用 Dice 系数、网络预测和真值之间的 Hausdorff 距离以及在 “PROMISE 2012” 挑战赛上获得的分数评估了不同方法的性能,结果如下表所示。

4. 思考

1. 为什么在降采样过程中使用步长为 2 的卷积而不是池化?

作者在本文中提到,压缩路径中使用步长为 2 的卷积而不使用池化的理由是一些研究结果表明池化可以被简单地替换为具有增加步长的卷积层,而不会损失准确性。(参考https://arxiv.org/pdf/1412.6806.pdf

此外,作者认为用卷积操作代替池化操作在训练阶段会占用更小的内存。这是因为使用卷积不需要为了反向传播而存储将输出映射成输入的转换关系。同时,这也是为什么在上采样过程中使用反卷积而不是上池化。 

Replacing pooling operations with convolutional ones also results in networks that, depending on the specific implementation, can have a smaller memory footprint during training. This is due to the fact that switches, which map the output of pooling layers back to their inputs, do not need to be stored for back-propagation. In particular, this can be analysed and better understood when applying only de-convolutions instead of un-pooling operations.

2. 怎么理解感受野以及怎么计算感受野的大小?

感受野(Receptive Field)指的是卷积神经网络每一层输出的特征图(Feature Map)上的像素点在输入图片上映射的区域大小。

感受野的计算公式如下:

例如,L-Stage 1 的 RF1 = 1 + ( 5 - 1 ) * 1 = 5;对于 L-Stage 2,5 + ( 2 - 1) * 1 * 1 = 6,6 + ( 5 - 1 ) * 1 * 1 * 2 = 14,RF2 = 14 + ( 5 - 1 ) * 1 * 1 * 2 * 1 = 22,以此类推。

想了解更多关于不同操作后感受野大小的变化,可以参考下列资料:

1. https://distill.pub/2019/computing-receptive-fields/

2. http://www.vlfeat.org/matconvnet/matconvnet-manual.pdf 第五章

  • 6
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值