UNet++: A Nested U-Net Architecture for Medical Image Segmentation

文章目录


前言

继Unet之后看的第二篇医学图像分割文章,用于记录学习。感谢看过的大佬们一些优秀的博文


一、论文翻译

摘要:在这一篇论文里, 我们展示了一个新的且更强的网络结构UNet++用于医学图像分割.我们的结构本质上是一个深度监督(deeply-supervised)的编码-解码网络,编码和解码的子网络通过一系列嵌套的稠密的跳跃路径来相互连接。这种重新设计的跳跃连接主要是用来降低编码解码子网络中特征图的语义差距。当编码解码网络的特征图语义类似时,我们认为这种优化器可以解决一个更简单的学习任务.我们在多种医学图像分割任务(multiple medical image segmentation tasks)中比较了UNet++、UNet以及UNet衍生网络的预测效果:小剂量的CT胸透扫描瘤分割、显微镜里的细胞核分割、腹部CT的肝脏分割以及结肠息肉分割.我们的实验说明了具有深度监督结构的UNet++取得平均3.9的IoU和3.4 points分别超过了U-Net和U-Net的衍生。

1 介绍

  最先进的图像分割模型是编解码器体系结构的变体,如U-Net[9]和完全卷积网络(FCN)[8]。这些用于分割的编解码网络有一个关键的相似性:跳过连接,它将来自解码器子网的深、语义、粗粒度特征映射与来自编码器子网的浅、低级别、细粒度特征映射相结合。跳过连接已被证明有效地恢复目标对象的细粒度细节;即使在复杂的背景下,也能生成具有精细细节的分割掩码。跳跃连接对于实例级分割模型(如Mask-RCNN)的成功也是至关重要的,它能够分割被遮挡的对象。 可以说,图像分割在自然图像分割达到令人满意的性能水平,但这些模型是否满足医学图像的严格分割要求?
  医学图像中的分割病变或异常需要比自然图像中所需的更高的准确性。而精确的分割掩码在自然图像中可能不是关键,但即使是医学图像中的边缘分割误差也会导致临床环境中用户体验差。例如,结节周围细微的毛刺样可能表明结节恶性;因此,将它们排除在分割掩模之外将降低模型在临床中的可信度。此外,不准确的分割也可能导致计算机生成(computer-generated)的诊断重大变化。例如,纵向研究中对结节生长的错误测量可能导致将不正确的肺-RADS类别分配给筛查患者。因此,需要设计更有效的图像分割体系结构,以有效地恢复医学图像中目标对象的精细细节。
  为了解决医学图像中更精确分割的需要,我们提出了一种基于嵌套和密集跳跃连接的新分割体系结构UNET++。我们架构的基本假设是:当编码器网络的高分辨率特征映射在之前逐渐丰富与解码器网络中相应的语义丰富的特征映射融合时,该模型可以更有效地捕获前景对象的细粒度细节。我们认为,当来自解码器和编码器网络的特征图在语义上相似时,网络将处理一个更容易的学习任务。 这与U-Net中常用的普通跳过连接形成了鲜明的对比,它直接将高分辨率特征图从编码器到解码器网络,从而实现了融合语义上不同的特征图。根据我们的实验,所提出的体系结构是有效的,在U-Net和宽U-Net上产生了显著的性能增益。

2 Related Work 相关工作

  Long et al [8]第一次提出FCN,同一年(2015)Ronneberger et al. [9]提出了UNet。他们都用一个关键的想法:跳跃连接(操作不同)。在FCN中,上采样时的特征图是用来自编码的特征图进行像素点的加操作(summation),而U-Net进行维度拼接的叠操作(concatenation),并在每个上采样步骤之间添加卷积和非线性激活函数。无论是哪种跳跃连接,都说明了它在网络的输出中可以帮忙恢复丰富的空间分辨率,使得全卷积方法适合语义分割。受到 DenseNet architecture [5]的启发,Li et al. [7] 提出H-denseunet用于肝脏和肝瘤的分割。同样受到启发,Drozdzalet al. [2]系统性地研究分析了跳跃连接的重要性,而且介绍了在编码里的短跳跃连接。尽管上述体系结构之间存在微小的差异,但它们都倾向于融合来自编码器和解码器子网络的语义上不同的特征图,根据我们实验验证,这样的方式降低了分割的表现。
  最近另外两个相关工作是GridNet [3] 和 Mask-RCNN [4].GridNet是一个编码-解码结构,里面的特征图被线连成网格型,形成了数个类分割结构。然而GridNet在跳跃连接间缺乏上采样层;因此,它不能代表UNet++。Mask-RCNN也许对于目标检测、分类以及分割是最重要的框架。我们想UNet++可以很容易地部署为Mask-RCNN中的骨干架构,通过简单地用嵌套稠密的跳跃路径取代朴素跳跃连接。由于空间有限,我们无法包括以UNET++为骨干架构的Mask RCNN的结果,然而, 有兴趣看更多细节的读者可以查阅到补充资料。
UNet++: A Nested U-Net Architecture for Medical Image Segmentation

3提出的神经网络结构: UNet++

  Fig. 1a 展示了UNet++的一个总体的概述.我们可以看到,UNet++用一个编码子网络来或者用跟随这一个解码子网络的骨干来开始.UNet++和U-Net的区别(在Fig.1a中的黑色部分)就是重新设计的跳跃路径(绿色和蓝色),它用来连接两个子网络和深度监督的使用部分(红色)

3.1 Re-designed skip pathways

  这种重新设计的跳跃路径改变了编码和解码子网络的连接性.在U-Net中,解码是直接获取编码中的特征图;然而,在UNet++中,它们经过一个稠密卷积块,这个块的卷积层数量取决于“金字塔”的级别。例如,节点 X0,0 和 节点 X1,3之间的跳跃路径是由一个有3层卷积的稠密卷积块,每一层卷积都领先于一个连接层,这个连接层结合将相同稠密块的前一个卷积层的输出与相应的上采样低稠密块的输出进行融合。本质上,密集的卷积块使得编码器的特征映射的语义级别更接近于解码器中等待的特征映射的语义级别。假设当接收到的编码器特征映射和相应的解码器特征映射在语义上相似时,优化器将面临更容易的优化问题。
  从公式上表示跳跃路径如下:让xi,j表示节点 Xi,j的输出.i指的是沿着编码方向的哪个下采样层,j指的是沿着跳跃路径方向上稠密块的那个卷积层.这一堆特征图用 xi,j 表示,计算如下:
UNet++: A Nested U-Net Architecture for Medical Image Segmentation
  函数H(·)是一个卷积操作,且紧跟着一个激活函数.U(·)表示一个上采样层,[ ]表示连接层。基本上,级别j=0的节点从编码的先前的层只接收一个输入;级别j=1的节点接收两个输入,它们都来自编码子网络且是两个连续的层;层j>1的节点接收j+1输入,输入j是先前节点j的输出在相同的跳跃路径,而最后一个输入是从更低的跳跃路径的上采样的输出。所有先前的特征图积累并达到正确节点是因为我们沿着每一个跳跃路径上利用一个稠密卷积块。Fig.1b 通过展示特征图如何经历UNet++的最顶端跳跃路径,更加地理清楚Eq.1

3.2深度监督

  我们建议在UNet++中使用深度监督[6],使模型能够在两种模式下运行: 1)精确模式,其中输出从所有分割分支平均;2)快速模型,其中最终的分割图只选择分割分支的一个,这个选择确定模型修剪的程度和速度增益.图1c 显示了快速模式下分割分支的选择是如何导致不同复杂度的架构的。

  由于嵌套的跳过路径,UNET++在多个语义级别生成全分辨率特征映射{x0,j,j∈{1,2,3,4},这些映射是可以接受的深度监督。我们将二元交叉熵和Dice系数的组合作为损失函数添加到上述四个语义层次中的每一个,描述如下:
UNet++: A Nested U-Net Architecture for Medical Image Segmentation
其中Yˆb和Yb分别表示bth图像的平坦预测概率和flatten ground truths,N表示批处理大小。
  总结,正如图1a描述的UNet++不同于原来U-Net有三个方面:1)在跳跃路径上有卷积层(绿色表示),连接编码器和解码器特征图之间的语义鸿沟;2)在跳跃路径上有密集的跳跃连接(如蓝色所示),这改善了梯度流;3)进行深度监控(如图所示),如第4节所示,可以进行模型修剪和改进,或者在最坏的情况下,可以获得与只使用一个损失层相当的性能。
UNet++: A Nested U-Net Architecture for Medical Image Segmentation

4 实验

数据集:表1所示,我们使用了四种医学图像数据集用来模型的评估,包括来自不同医学成像模态的病变/器官。有关数据集和相应数据预处理的进一步详细信息,请参阅补充资料。
基准模型:为了比较,我们使用了原始的U-Net和wide U-Net.我们选择U-Net,因为它是图像分割的通用性能基准.我们也设计一个具有相似参数的数量wide U-Net作为我们的建议的架构.这是为了确保我们的体系结构产生的性能收益不仅仅是由于参数数量的增加。表2详细说明了U-Net和wide U-Net体系结构。
实现细节:我们监控了Dice系数和Intersectionover Union (IoU),并在验证集上使用了提前终止机制。我们还使用了学习率为3e-4的Adam optimizer。UNet和wide U-Net的架构细节如表2所示。UNet++是由原来的U-Net架构构建的。所有的卷积层 沿着跳跃路径(Xi,j)使用大小为3×3(或3×3的k核进行三维肺结节分割),其中k=32×2i。为了实现深度监控,在每个目标节点上附加1×1的卷积层和一个sigmoid激活函数。结果,UNet++生成四个分割图给定一个输入图像,这将进一步平均,以生成最终的分割图。更多详情请访问github.com/Nested-UNet。
结果:表3比较了U-Net、wide U-Net和UNet++在肺结节、结肠息肉、肝脏和细胞核的数量参数和分割准确性。从图中可以看出,wide U-Net的性能一直都比U-Net好,除了肝脏部分,这两种架构的性能比较接近。这种改进是由于wide U-Net中参数数目较多。UNet++在没有深度监督的情况下,在UNet和宽U-Net上都获得了显著的性能提升,IoU平均提高2.8和3.3分。有深度监督的UNet++平均比没有深度监督的UNet++提高0.6分。具体来说,使用深度监督可以明显改善肝、肺结节的分割,但这种改善消失在细胞核和结肠息肉的分割上。这是因为息肉和肝脏在视频帧和CT切片中以不同的尺度出现。因此,使用所有分割分支(深度监督)的多尺度方法对于精确分割至关重要。图2是U-Net、wide U-Net和UNet++的定性比较结果。
UNet++: A Nested U-Net Architecture for Medical Image Segmentation
UNet++: A Nested U-Net Architecture for Medical Image Segmentation
模型剪枝:UNet++经过不同程度的剪枝后,其分割性能如图3所示。我们用UNet++ Li表示第i级修剪的UNet++(详见图1c)。由此可见,UNet++ L3平均推理时间减少32.2%,IoU仅减少0.6分。更积极的剪枝进一步减少推断时间,但代价是显著的准确性下降。

5 结论

  为了解决更精确的医学图像分割的需要,我们提出了UNet++。建议的架构利用了重新设计的跳跃路径和深度监督。重新设计的跳跃路径旨在减少编码器和解码器子网的特征映射之间的语义差距,从而为优化器解决一个可能更简单的优化问题。深度监控还可以更准确地分割病变,特别是出现在多个尺度上的病变,如结肠镜检查视频中的息肉。我们使用四组医学成像数据集对UNet++进行了评估,包括肺结节分割、结肠息肉分割、细胞核分割和肝脏分割。我们的实验表明,UNet++在深度监管下,比U-Net和宽U-Net的平均IoU增益分别为3.9和3.4分

二、补充

作者个人知乎讲解专栏Unet++研习
Unet系列视频讲解添加链接描述


上一篇:高级基础_常见常量类的设计方式(入门篇)


下一篇:UTNet: A Hybrid Transformer Architecture for Medical Image Segmentation