IterNet- Retinal Image Segmentation Utilizing Structural Redundancy in Vessel Networks

论文阅读 IterNet: Retinal Image Segmentation Utilizing Structural Redundancy in Vessel Networks 利用血管网络中的结构冗余进行视网膜图像分割 摘要:视网膜血管分割对视网膜血管疾病的诊断具有重要意义。为了进一步提高血管分割的性能,

论文阅读
IterNet: Retinal Image Segmentation Utilizing Structural Redundancy in Vessel Networks 利用血管网络中的结构冗余进行视网膜图像分割

        摘要:视网膜血管分割对视网膜血管疾病的诊断具有重要意义。为了进一步提高血管分割的性能,我们提出了基于UNet的新模型IterNet,它能够从分割的血管图像本身而不是原始输入图像中找到模糊的血管细节。 IterNet由mini-UNet的多次迭代组成,其深度比普通UNet的深度大4倍。 IterNet还采用了权重共享和跳跃连接功能,以方便训练;因此,即使具有如此大的体系结构,IterNet仍可以仅从10到20个带有标签的图像中学习,而无需预先训练或任何先验知识。 IterNet在三个主流数据集DRIVE,CHASE-DB1和STARE上分别达到0.9816、0.9851和0.9881的AUC,这是目前文献上最好的分数。
在这里插入图片描述

图1. IterNet在视网膜图像中分析血管网络以进行精细分割。 第一行是整个图像,第二行是亮点附近区域的放大图像。 红色表示像素成为血管一部分的可能性很高,而蓝色表示可能性很小。 我们可以看到IterNet很好地处理了视网膜图像中不完整的细节,并推断出血管的可能位置。 (a)来自DRIVE数据集的示例图像,(b)黄金标准,(c)UNet(AUC:0.9752),(d)变形UNet(AUC:0.9778)和(e)IterNet(AUC:0.9816)。

摘要
视网膜血管分割对视网膜血管疾病的诊断具有重要意义。 为了进一步提高血管分割的性能,我们提出了基于UNet [1]的新模型IterNet,它能够从分割的血管图像本身而不是原始输入图像中找到模糊的血管细节。 IterNet由mini-UNet的多次迭代组成,其深度比普通UNet的深度大4倍。 IterNet采用了权重共享和跳跃连接功能,以方便训练; 因此,即使具有如此大的体系结构,IterNet仍可以仅从10到20个带有标签的图像中学习,而无需预先训练或任何先验知识。 IterNet在三个主流数据集DRIVE,CHASE-DB1和STARE上分别达到0.9816、0.9851和0.9881的AUC,这是目前文献上的最高分。
        1.引言
        视网膜检查是发现视网膜疾病以及全身性疾病(例如高血压,小动脉硬化和糖尿病性视网膜病变即糖尿病的微血管并发症)的重要诊断手段。实际上,这是医生在体内检查人体血管系统的唯一可行方法。它不仅被眼科医生用作常规检查,而且还被许多其他专家用作常规检查[2]。视网膜检查是非侵入性的并且执行起来很经济,并且已经在全世界范围内广泛进行。但是,与此同时,眼科医师在处理不断增长的视网膜图像的需求和能力之间将存在巨大的差距。在这种情况下,计算机辅助诊断将是一个显著的解决方案,同时血管分割是进行后续分析的必要基础。
        血管分割任务中的一个主要困难是血管与背景的外观没有显着差异,尤其是对于噪声图像中的微血管而言。在不引入太多误报的情况下找到每根血管是具有挑战性的。实际上,如果我们考虑照片成像质量的问题,事情将会更加复杂。由于照明不当,传感器噪声等,许多基本信息可能会丢失。在这种情况下,分割模型的确不可能找到完整而准确的血管网络。例如,在图1(a)中,由于图像中的光盘(亮点),分割结果在其边界附近受到严重破坏:某些像素在亮度的大间隙中“丢失”。

        图1(b)是专家标记的标签(the gold standard marked),他们知道哪些血管应该是线/曲线,并且应该相互连接以形成网络。换句话说,这种结构上的冗余使得专家能够在视网膜图像的模糊区域内插值血管(interpolate vessels(不知道如何翻译,各位看官批评指正))。如果深度学习模型export to大量的没有瑕疵的标记数据(在视网膜图像分割领域中极为受限制),则它们也可能能够学习此类知识。实际上,在公开可用的数据集中,即DRIVE [3] CHASE-DB1 [4] 和 STARE [5]中,用于训练的图像不超过20个。

        现有的方法很难解决数据的缺乏问题。如图1©和(d)所示,性能最好的最新UNet模型UNet[1]和Deform UNet[6]在预测时存在明显的误差。它们要么混淆了血管和视盘的边界,要么未能检测到它们相交处周围的血管,导致分割单个血管被分割成两个不相连的部分。这是医学图像分割中的常见现象,可能导致一组不连通或破碎的片段组成的缺陷血管图。这个问题使得医生或使用分割图像的标准成像方法很难分析血管状况。因此,连通性也是视网膜分割的一个重要问题。

        从图1(C)和(d)中可以观察,人们仍然可以从这些血管图中推断出实际血管的位置。这是因为,像专家一样,我们也可以利用结构冗余。我们可以猜测,如果预测血管的两个部分的边缘很近并且彼此指向,那么这两个部分是连接的。这也适用于深度学习模型。虽然深度学习模型很难直接克服缺失或额外预测的问题,但可以让它们知道哪个分割血管是假的,哪个不是。因此,他们在一定程度上能够学习如何修复分割结果中的错误。在此基础上,我们设计了一个新的基于unet的模型,即IterNet,它可以很好地利用血管系统中的结构冗余。通过IterNet得到的血管图如图1(e)所示,对血管进行了精确的分割,几乎避免了光盘周围的干扰。
        其核心思想是将深度学习模型的重点从处理原始输入图像中的每个像素转移到整个血管网络系统。更具体地说,我们建立了一个模型,将不精确的血管分割结果改进为更精确的血管分割结果,而不是将原始输入图像直接映射为精确的分割结果。为了让模型充分学习实际的血管网络以及分割结果失败的网络。必须为他们提供足够的训练样本。但是,同样,如上所述,没有可用的数据集。

        一种可行的方式是使用某个特定分割模型的输出,该模型实际上是血管图,如图1和2所示。 1(c)和(d),作为细化模型的输入。我们通过在基本模块(UNet)之后添加一些细化模块(mini-UNets)进行初始分割来实现此目的,如图2所示。每个细化模块(refinery module)的输入是其上一个模块的最后一层的输出。每个模块都有一个血管分割输出,该输出具有各自的损失函数。在训练中,基本模块将持续调整其参数以提高其自身的输出。因此,即使有固定数量的训练样本,第一个细化模块也将获得几乎不同的输入。这也适用于其细化模块。在此过程中,细化模块可能会出现大量错误的血管图中,因此可以学习如何对其进行修复,因为它们都已匹配(fix)到正确的标签上。细化模块的数量是一个超参数,可根据训练样本的数量,GPU容量和训练时间进行调整。最后一个模块(图2中的“ Out N”)的输出将是预测中的实际输出,而所有其他输出仅用于训练。另外,为了避免过度拟合的问题并提高训练效率,我们设计了具有权重共享功能和跳过连接结构的IterNet。

        我们工作的主要贡献如下。
        •血管分割模型在所有主流数据集上具有最高的性能。
        •神经网络结构的迭代设计,以学习血管的性质,避免通过权重共享过度拟合。
        •显著提高了分割结果的连通性。

在这里插入图片描述
Figure 2. The structure of IterNet, which consists of one UNet and iteration of N − 1 mini-UNets.
图2.IterNet的结构,由一个UNet和N−1个迷你UNet的迭代组成。

        2.相关工作
        图像分割:目前,最新(state-of-the-art)的语义分割模型[8,9,10]都来自于全卷积设计,它首先由全卷积网络(FCN)[11]引入。其主要思想是将原始图像编码到特征空间中,并以端到端的方式将特征向量转换为分割后的图像。FCN创新了许多迭代分割方法,这些方法与我们的IterNet有相似的想法,但实现方式完全不同。例如,迭代交互模型[12]多次运行FCN模型,并在每次迭代中接受用户的反馈,以添加更准确的训练标签。Drozdzal的模型使用FCN将输入图像预处理成标准化版本,然后应用全卷机的ResNet迭代细化分割后的图像[13]。UNet[1]是另一个著名的全卷积模型。与FCN不同,UNet有多个解码层来对特性进行取样。它还添加了一些跳过连接,以允许解码层使用编码过程中的特性。

        视网膜图像分割:进行血管分割的传统方法是利用局部信息,例如图像强度或一些手工制作的特征来进行分类。 最早的尝试是使用阈值化和屏蔽。 Roychowdhury等人[14]引入了一种迭代分割方法。 分割算法中的几个进程需要多次运行,这与IterNet非常相似。 他们的方法通过对视网膜图像进行自适应阈值处理,从字面(literately)上寻找可能的血管像素,该图像被上次迭代获得的分割结果掩盖了。

        UNet [1]的出现引领了医学领域图像分割的新时代,并彻底改变了相关领域中的大多数图像分割任务[15、16、17、18、19]。 Kim等人 [20]在类似UNet的模型中采用了迭代学习的概念。与IterNet相似,他们的模型还将最后一个输出用作于下一个输入。与我们的主要区别在于,它们只是多次运行同一模型。编码和解码模块仍然需要处理原始视网膜图像和血管分割结果。相比之下,IterNet是具有迭代mini-UNets的单一模型,它完全分离了原始图像输入和分割结果输入。这是IterNet的关键设计理念,提升了最先进的性能。另一个最近的模型[21,22],称为DenseBlock-UNet,将普通UNet模型中的卷积模块转换为[23]中引入的密集块。密集块可以在某些方面改善UNet,例如减轻梯度消失,强大的特征传播,实现特征重用以及减小整个参数大小。 Deform-UNet [6]是另一个令人惊喜的(encouraging)模型。为了获得更好的性能,作者修改了UNet模型。他们应用了变形卷积网络(deform convolution networks)中的两个关键模块[24],即可变形卷积和可变形RoI池(deformable convolution and deformable ROI pooling),它们替换了标准卷积神经网络(CNN)模型中的原始模块,使其具有根据输入图像中的实际对象动态调整其接受域的能力。
        IterNet与其他基于UNet的模型之间的主要区别之一是,我们的重点不是修改UNet的结构。 我们认为UNet的特征提取能力足以满足血管分割任务。 相反,我们试图更好地利用UNet模型中精心提取的功能来推断其中的缺失部分。
        3. IterNet
        基于第1节中提到的问题,我们设计模型来了解视网膜图像中的人体血管系统的样子,以利用其结构冗余。该网络是通过讲人类注释者牢记于心而设计的。 也就是说,注释者可以在几个阶段中对原始视网膜图像进行分割:第一阶段是制作粗糙的分割图。 在接下来的阶段中,他们将继续使用原始视网膜图像和先前的血管图来改善图谱,直到注释者对生成的血管图满意为止。 这导致了使用从基本模块得到的血管图(如图1(c)所示)作为细化模块的输入,细化模块会对其进行纠正(并学习如何修正其思想)。在这种架构下,细化模块可以基于血管系统的结构来推断缺失/多余的预测。 为了完成校正,我们可以迭代地应用细化模块,如图2所示。
        更具体地说,我们的网络由两种略有不同的体系结构组成:一种是UNet,另一种是简化版本的UNet,称为mini-UNet。我们使用UNet作为我们的基础模块,因为它在各种细分任务中表现出色,特别是在医疗应用中。UNet的输出是血管上像素的概率的单通道地图。细化模块的架构是mini-UNet,它们使用先例模块(precedent module)的最后一层(the second last year)的输出,该模块是一个32通道的特征图,因此与单通道血管概率图相比,可以拥有更多的信息。mini-UNet实际上是UNet架构的轻量级版本,参数更少,因为细化模块的输入是一幅特征图,我们认为这比带有所有背景和噪声的原始视网膜图像更简单。另外,我们进行了一个实验来测试用全尺寸u-net替代mini- unet时的性能,三个数据集的结果都变差了(有关详细结果,请参阅补充材料)。
        如图1(c)所示,从原始视网膜图像到血管图的映射大部分是通过基本模块学习的,而细化模块仅负责血管的一小部分(例如细血管 thin vessels)。因此,如果我们有足够的样本来训练细化模块,IterNet将获得良好的分割结果。在我们的体系结构中,所有细化模块(图2中蓝色标记的模块)都具有相同的权重和偏差。第一个细化模块的输入是基础模块的最后一层的特征映射,其余细化模块遵循类似的过程。本质上,这可以解释为同一模块在单个前向路径(in a single forward path)中运行多次。最明显的好处是它们可以具有不同的输入。如图3所示,在每个细化模块之后,血管图的中间结果始终会发生变化。因此,细化模块在血管分割过程中不断显现出新的失效模式(As a result, the refinery modules are consistently exposed to new patterns of failure in the vessel segmentation. )。这种架构使得仅用20个训练样本就可以训练细化模块。
在这里插入图片描述图3. IterNet的输出1、2和3的结果。 相应的AUC分别为0.9793、0.9812和0.9815。

        该体系结构的另一个原因是使用迭代预测(iterative prediction),这可以提高分割性能。我们观察到单个模型通过微小的差异对结果进行修改,并且迭代预测的概念已在许多现有方法中使用[14,20]。即使使用相同的细分模型,迭代的应用仍然可以获得更好的结果。因此,我们可以说,迭代应用相同的模型,可以在不明确建模其结构冗余的情况下,改进血管网络的缺失部分。在图3中,我们显示了基本模块的输出以及以下三个细分模块的三个输出。第四个输出如图1(e)所示。我们可以看到,通过细分模块的迭代预测,IterNet逐渐将分裂的微型血管连接在一起。
        一个重要的问题是,IterNet是一个多层前馈网络。通常,多层网络的上层几乎无法访问输入(或接近输入层的层中的特征),而它可以作为一个重要的参考,供mini-unet查看原始血管的样子,并根据它做出决定。即使是人类的标注者,在细化血管网络的某些非常模糊的部分时,也需要检查原始血管图像中的特定区域。因此,我们应该使较高层能够利用较低层的特性。此外,深度学习模型在深度学习时可能会遇到梯度消失的问题。因此,为了有效地反向传播,IterNet需要从上层到下层的路径。
        因此,我们在IterNet中添加了一些跳跃连接,类似于普通的UNet。在iternet中有三种跳跃式连接。第一种是模块内部连接,用于将每个模块的编码层连接到解码层。第二个是从基本UNet到所有细化的mini-UNet。该连接提供了从基UNet的第一层访问该特征的途径,该特征非常接近于输入视网膜图像。该功能与每个mini-UNet的第一层的功能连接在一起。第三个是mini-unet之间的连接,灵感来自于密集网络[23]的密集连接。下层模块的特性与上层模块的特性连接在一起。
为了保持相同的结构并在mini-UNets之间进行权重共享,我们添加了一个1×1卷积层,在图2中以黄色标记,用于降维。这是mini-unets中唯一具有私有参数的组件。
        为了训练IterNet,我们对每个输出Out i都采用了损失。 我们使用Sigmoid形交叉熵,定义为:
在这里插入图片描述
其中yi表示二进制指示符(0或1),该标记对于像素i是否正确,而pi像素i是血管像素的预测概率,然后将它们与某些权重相加如下:
在这里插入图片描述
其中wi设置为1,因为我们没有特别重视任何输出。

       4.实施细节
       4.1.数据扩充(Data Augmentation)
       由于在公共数据集中训练图像的数量不超过20张,需要一些增强技术来避免过拟合。我们尝试为IterNet模型提供所有可能的变化,包括颜色,形状,亮度和位置,以使该模型适应各种成像传感器,环境,颜色范围等。我们使用训练样本生成器在训练过程中一致地生成随机修改的样本。
       4.2.训练和预测中的图像patches
       通常将输入图像在规则的网络上分割成相同大小的图像块,这会增加了可用训练样本的数量。由于IterNet对输入图像大小的一致性没有要求。有三种不同的训练和预测方式:
       •使用图像patch进行训练和测试,将最终获得的图像patch conquering在一起。该策略可以充分利用训练材料,并给出最精确的预测结果。但是,这将比其他两种方法花费更多的时间,因为推断过程必须进行多次(有关详细的时间成本,请参见补充材料)。
       •在训练中只使用图像patch,并在预测中使用整个图像直接获得最终结果。该策略还可以使用增强的训练数据。但是,由于模型是使用图像patches(块)训练的,所以它在预测时效果可能无法达到第一种策略的效果。
       •在训练或预测中都使用原始图像,由于可用的视网膜数据非常有限,因此很少采用原始图像;因此,数据扩充通常会有所帮助。
为了避免过拟合,我们使用128像素的图像patch大小来训练IterNet。对于预测,我们同时测试了整个图像预测和图像patch预测。
在这里插入图片描述
       5.实验
       在本节中,我们将详细介绍实验设计,结果,比较并讨论IterNet的优缺点。 所有实验都是在GPU服务器上执行的,该服务器具有四个NVIDIA Tesla V100 SXM2 GPU(每个32GB内存)和两个Intel Xeon Gold 5122 CPU。 对于每种模型,我们仅使用一个GPU进行公平比较。 将mini-UNet的迭代次数设置为三(图2中的N = 4),因为我们发现,对于这三个数据集,较大的迭代次数只会带来较小的性能改善,但代价是需要更长的训练和预测时间。
在这里插入图片描述

图5.三个数据集上的ROC曲线(with masks)a.DRIVE, b.CHASE_DB1,c.STARE
       如图4的第一行所示,我们使用了三个流行的数据集,即DRIVE [3],CHASE-DB1 [4]和STARE [5]。 它们都具有不同的格式和不同大小的图像。 图像分别为.tif(565×584)、. jpg(999×960)和.ppm(700×605)。 我们使用这三个数据集训练三个不同的IterNet模型。 由于UNet不需要固定输入图像的大小,所以我们可以对这三种模型使用相同的模型配置。 该模型也可以将整幅图像或图像块作为输入。 为了训练,我们从图像中随机提取图像patch。 为了进行预测,用步幅为3的提取重叠的图像块(我们将补充材料中步幅3和8进行了比较),并使用所有重叠图像块的平均值作为预测。
       图4的第二行是视网膜图像的view(FoV)mask。虽然DRIVE数据集为测试图像提供了官方的mask,但其他两个数据集没有这样的mask。为了保证公平比较,我们还为CHASE_DB1和STARE生成了FoV masks。FoV masks
可以通过对原始图像进行简单的颜色阈值来实现,因为FoV之外的像素通常接近黑色。在FDRVE数据集中,我们使用20张图像进行训练,使用20张图像进行测试。在CHASE-DB1和STARE中,没有关于训练和测试分割的正式描述,因此我们分别制作了20和16张图像作为训练集,剩余的8和4张图像作为测试集。我们不使用任何验证图像.
(FoV masks制作,CHASE_DB1和SHARE训练和测试)。

       我们将我们的模型与一些最新技术进行了比较其中UNet [1],DenseBlock-UNet [21、22]和Deform-UNet [6]。我们自己在三个数据集上使用它们的公共代码来训练和评估这些模型,因为对于CHASE_DB1和STARE而言,训练和测试分割是未知的,我们希望生成the receiver operating characteristics(ROC)曲线,如图5所示。从图中可以看出,在大多数情况下,IterNet显示出比其他三种模型更好的性能。由于所有最新的模型都已经具有良好的性能(AUC> 0.97),因此性能提升很小。然而,结果证明我们的模型在所有三个数据集上均具有稳定的性能。其中,IterNet在STARE数据集上运行良好,该数据集的训练和测试样本较少。该结果表明,即使训练图像有限,IterNet仍可以在血管网络中找到合适的特征和模式。相比之下,所有其他模型的STARE数据集都会遭受严重破坏。在其他三个最新模型中,Deform-UNet通常由于其动态感受野而表现出明显更好的性能。但是,STARE数据集降低了其优于DenseBlock-UNet的优势,因为denseblock模块使模型不太容易过拟合。
       我们还将结果与现有模型进行了比较,包括上述三种基于UNet的模型,Residual UNet[25]、Recurrent (递归)UNet[25]、R2UNet[25],以及第二节介绍的迭代预测方法Iter-Seg[14]。只有UNet、DenseBlock-UNet和Deform-UNet的结果来自我们的重复测试,其他结果均来自相应的论文。DRIVE数据集上的结果如表1所示。我们展示了IterNet的两种变体的结果。这两种方法都使用128大小的图像patch进行训练。在预测中,一个将整个图像作为输入并输出最终结果,而另一个(用“patches”表示)使用图像patches进行训练和预测,并将得到的血管图进行连接。我们可以看到,基于图像patch的预测带来了一些改进,但运行时间较长(具体时间成本见补充材料)。这两个变体显示出优于所有其他模型的AUC。实际上,它们是我们测试中唯一具有高于0.98的AUC的模型。
       我们还对CHASE-DB1和STARE进行了对比实验,这两个实验没有官方指定的训练和测试集,也没有FoV masks。因此,我们只将结果与我们在相同设置下复现模型(reproduced models)的结果进行比较。结果见表2和表3。为了确保公平的比较,我们列出了使用或不使用FoV masks的性能。可以看出,在这两个数据集上,所提出的IterNet在大多数指标上都有最好的性能。
       但是,上述指标都是像素级的,不能反映血管网络级别的分割性能。因此,我们采用了一种新的度量,即连通性[26,27],这是临床医生使用一些血管相关模式(如交叉或分支[28])对视网膜图像进行分析的重要要求。连通性C的定义如下。
在这里插入图片描述
其中SP(θ)是预测分割中以阈值θ二值化的分割数,SG为金标准(the gold standard)分割数。SMax是一张血管图允许的最大分割数。由于最大分割数涉及血管总长度L,因此根据L定义,可以通过对金标准(the gold standard)进行skeletonizing 和计算skeletonizing pixels的数量来计算。本实验设SMax = αL,使α = 0.05。根据这个定义,我们画了一条θ对C(θ)的关系曲线(一些例子请参阅补充材料)。我们采用这条曲线下的面积作为连通度(连通性度量标准)(缩写为Conn.)。如表1、表2、表3所示,IterNet在三个数据集中达到了最高的连接性。
在这里插入图片描述
       我们在图6中给出了一些示例结果。我们可以看到(As we can see),在所有三个数据集上,我们的IterNet模型效果(works)最好。我们认为这是由于IterNet的迭代架构对血管网络的深刻了解:它知道如何将血管片段连接在一起,即使它们在原始视网膜图像上看起来是不连贯的。
       如第3节中所述,mini-unet之间的权重分配有助于避免训练过程中的过度拟合。 我们进行了一项实验测试,看看在没有权值共享的情况下,IterNet的实际性能。 当N = 1时,不存在mini-UNets,可以将IterNet训练为通用UNet; 当N = 2时,mini-UNet只运行一次,并且在DRIVE数据集上获得的AUC为0.9795,这与IterNet在N = 3时Out1的性能非常相似; 当N≥2时,IterNet会遇到严重的过拟合问题,即损失可能在训练集上达到低水平,而在测试集上却保持较高水平。 我们还进行了一个实验来测试IterNet在没有跳跃连接的情况下的性能,三个数据集的AUC分别降至0.9799、0.9770和0.9808(更多结果请参阅补充材料)。
在这里插入图片描述
       6. 结论
       在本文中,针对目前视网膜图像分割中存在的一些问题,提出了一种名为IterNet的图像分割模型。我们使用一个标准的UNet来分析原始输入图像,并将它们映射到血管网络的初始预测。为了消除现有血管分割模型中常见的血管不一致、像素缺失等错误,我们在UNet之后增加了一个mini-UNet的迭代,并将UNet的输出作为后续mini-UNet的输入。通过在mini-unet和跳跃连接中引入权重共享,我们成功地使用了IterNet查找中间结果中可能存在的缺陷并以合理的方式对其进行修复。实验结果表明,该算法在三个常用数据集上均取得了最好的性能。
       致谢
       本研究得到了美国科学技术与创新委员会(CSTI)、跨部级战略创新促进计划(SIP)、“创新型人工智能医院系统”(资助机构:美国国立生物医学创新、健康与营养研究所(NIBIOHN))的支持。

知秋君
上一篇 2024-07-28 20:36
下一篇 2024-07-28 20:02

相关推荐