APP下载

基于密集循环网络的视网膜图像分割方法

2021-12-16周舒婕李程辉张娟娟

液晶与显示 2021年12期
关键词:视网膜卷积函数

杨 云, 周舒婕, 李程辉, 张娟娟

(1. 陕西科技大学 人工智能研究所,陕西 西安 710021; 2. 陕西科技大学 电子信息与人工智能学院,陕西 西安 710021)

1 引 言

眼底视网膜血管作为人体中唯一可以直接肉眼观察到的血管,是许多慢性疾病诊断的一项重要指标。传统方法凭借医生的个人经验和主观判断对视网膜血管分割存在诸多的弊端,如研究人员前期需要花费大量的时间和精力学习微细血管和整体结构的分割工作、不同研究人员在分割同一张视网膜血管图像时往往存在较大的差异性等。因此,将计算机作为辅助技术对于准确、快速分割视网膜血管图像起着至关重要的作用。

目前研究人员根据是否需要人工标记训练集,将眼底视网膜图像的血管分割方法大致分为两类:无监督学习方法和监督学习方法。常见的无监督学习方法有血管跟踪法[1]、形态学处理方法[2]、匹配滤波方法[3]等。基于深度学习的分割方法是一种常见的监督学习方法,例如:Oliveira[4]等人提出了将平稳小波变换提供的多尺度分析与多尺度全卷积神经网络相结合的方法来分割视网膜血管,从而提高网络性能;Guo[5]等人提出了基于全卷积U-Net的网络结构,该方法摒弃了传统卷积神经网络的Dropout层,而是使用正则化方法来提高模型性能;Roy[6]等人提出了ReLayNet网络结构,该网络在训练过程中同时使用了交叉熵和Dice损失函数进行优化;Gu[7]等人提出了上下文编码器网络来捕获更多的深层信息,该网络结构在特征编码和特征解码器之间加入了上下文提取器,该方法不仅适用于视网膜图像的分割还可以用于其他医学图像的分割。

由于视网膜血管中布满了丰富的细小血管,上述方法在分割过程中容易出现边缘细节粗糙、梯度复杂、识别分辨率低等问题。因此,本文在循环生成对抗网络的基础上进行改进设计,具体工作如下:

(1)使用生成对抗网络的特殊变体循环生成对抗网络框架,通过两个生成器、两个判别器进行对抗训练,优化分割模型并设计一种全新的基于循环分割对抗网络的视网膜血管分割方法。

(2)将生成网络替换成改进后的分割网络,分割网络的编码器、解码器部分的网络结构替换成U型网络和密集连接相结合的模型结构,保证在提高分割精度的同时减少模型分割所需要的时间。

(3)将对抗损失函数替换为最小二乘损失函数,在还原图像分割细节的同时,保留血管末梢的细节信息,提高分割效率。

2 相关知识

2.1 循环生成对抗网络

近些年,由Goodfellow[8]等人提出的生成对抗网络(Generative Adversarial Network,GAN)超越了传统神经网络,可以生成更加真实、清晰的图像。在此基础上,研究人员对GAN的改进模型进行了设计与研究,例如CGAN[9]、DCGAN[10]、WGAN[11]等不同的模型结构,在图像处理任务中可获得更好的性能。2017年由Zhu[12]等人提出的循环生成对抗网络(Cycle-consistent Generative Adversarial Networks,CycleGAN)是传统生成对抗网络的变体,它包含两个相互对称的生成对抗网络,并通过共用两个生成器、两个判别器来实现图像端到端的相互映射。CycleGAN对架构的扩展之处在于使用了循环一致性,其第一个生成器输出的图像可以用作第二个生成器的输入图像,第二个生成器的输出图像应与原始图像匹配,反之亦然。它最大的特点是不需要图片的一对一配对,就能将一张图像从源领域映射到目标领域,以此方式来提高训练网络的稳定性。

2.2 生成器以及判别器

CycleGAN网络结构是由生成器模型和判别器模型组成。生成器包括编码器、转换器以及解码器。编码器通过卷积层提取图像的特征信息;转换器由6个残差块组成,每个残差块包含两个卷积层,可以保留更多图像的原始信息;解码器使用3层反卷积操作将图像还原为原始尺寸。

CycleGAN网络的判别器由5层卷积神经网络组成,可以从图像中提取特征信息并且预测其为原始图像或是生成器生成的图像。

3 本文方法

3.1 基于改进的DU-CycleGAN网络模型

DU-CycleGAN网络训练图如图1所示。该网络由两个分割器G和F、两个判别器DX和DY组成,该模型包含G:X→Y的映射以及F:Y→X的逆映射,并且加入一个循环一致性损失函数以确保F(G(X))≈X。同时将原始图像和分割图像送入DX和DY中来判别分割网络分割的真伪,这种循环的训练模式,分割器和判别器通过博弈式动态竞争,使判别器无法区分是真实的图像还是分割的图像,最终达到网络的动态均衡状态。

(a) DU-CycleGAN模型结构(a) DU-CycleGAN model structure

(b) 正向训练过程(b) Positive training process

(c) 反向训练过程(c) Reverse training process图1 DU-CycleGAN网络训练图Fig.1 DU-CycleGAN network training diagram

本文使用了由两个1×1卷积层和一个3×3卷积层组成的固定残差块。如图2所示,改进后的残差块具有一个瓶颈结构可以进行降维操作,减少图像的通道数。与原模型相比,通过修改残差块的数目和结构,在提高输出图像质量的同时减少了参数,从而减少了计算量和处理时间。

图2 ResNet网络结构Fig.2 ResNet network structure

3.1.1 U型分割网络

U型卷积神经网络(U-Net)是由Ronneberger[13]等人提出,其方法特点就是通过上、下采样以及跳跃连接将浅层特征信息和深层特征信息融合,扩充特征信息,从而减轻训练负担,使图像中的边缘信息更加准确。由于视网膜血管具有复杂的表现特征,在分割的过程中容易产生血管不连续、边缘区域分割较为模糊等问题。因此,本文将DU-CycleGAN网络的分割器替换成改进后的U-Net网络,以此提高模型的分割准确率。

图3 DU-CycleGAN分割器网络结构Fig.3 Network structure of DU-CycleGAN splitter

本文改进后的分割器模型如图3所示,分割器网络由编码器、转换器和解码器组成。编码器包含3个密集连接模块和3个下采样卷积操作,每经过一次下采样操作其特征图会缩小为原图像的1/2,经过3次下采样操作之后,特征图缩小为原图的1/8并输入到转换器中。特征转换器由6个残差块构成,它不改变特征图大小,特征图经过残差模块后输出到解码器部分。解码器同样包含了3个密集连接模块,采用了与下采样对称的反卷积操作,其特征通道的变化与下采样操作相反,每次经过反卷积层后特征图的尺寸都会变为原来的2倍,最终特征图像还原到原始尺寸。当编码阶段和解码阶段特征图像尺寸相同时,会通过跳跃连接将深层特征信息和浅层特征信息融合,从而增强细节信息的补充。

与此同时,为了加快网络模型的收敛,在每一层卷积操作后使用批量归一化(BN)层。BN可以对网络的输入数据归一化,使得特征输入值的均值与方差都在规定范围内,在一定程度上缓解了梯度消失现象。激活函数每一层均使用LReLU激活函数来替代原模型中的ReLU激活函数。ReLU激活函数在训练过程中很可能会导致神经元死亡,相应的参数无法更新。本文所使用的LReLU激活函数在特征输入小于0时会有一个负数的输出,可以缓解神经元死亡的问题。公式定义如下:

(1)

DU-CycleGAN分割网络在训练过程中的各层参数的设置以及具体输出如表1所示。

表1 DU-CycleGAN分割网络各层参数设置Tab.1 Parameter setting of each layer of DU-CycleGAN

3.1.2 密集连接网络

U-Net通过下采样减少空间维度,通过上采样恢复图像的细节及空间维度,经过上、下采样操作后会对数据信息造成一定的损失并且训练精度和测试精度会呈下降趋势。针对上述问题,本算法引入了密集卷积网络(Densely Connected Convolutional Networks,DenseNet)[14],它在减少了参数数量的同时加强了特征信息的传播和重复利用。

传统的卷积网络有L层时会有L个网络连接,而DenseNet有L层时包含L(L+1)/2个连接,可以更好地加强特征传播以及特征重复利用,提高网络的分割准确率[15]。DenseNet改变了网络模型结构的梯度流动方式,将每层网络的最初输入信息和损失函数直接连接起来,使得整个网络模型结构更加清晰。DenseNet公式定义如下:

xl=Hl([x0,x1,…,xl-1]),

(2)

其中:x表示特征信息的输出,l表示网络结构层数,Hl(·)代表非线性转化函数,它包括3个相同的3×3卷积操作,同时在每个卷积层后添加了BN层以及ReLU激活函数进行激活操作,以此提高密集连接模块的性能。DenseNet网络结构如图4所示。

图4 DenseNet网络结构Fig.4 Densenet network structure

3.1.3 判别网络

判别器模型由5层卷积神经网络构成,其主要目的是预测分割的结果是真实图像还是分割网络分割的图像。判别器实际相当于二分类器,用来判断图像的分布是否一致,判断为真实图像输出结果为1,判断为生成图像输出结果为0。判别器网络结构如图5所示。

图5 DU-CycleGAN判别器网络结构Fig.5 Network structure of DU-CycleGAN discriminator

3.2 损失函数

损失函数可以衡量吻合度、调整参数以及权重,使得映射的结果和实际类别相吻合,训练的结果更加准确。本文中损失函数是由对抗损失和循环一致性损失两部分组成。

3.2.1 对抗损失函数

传统生成对抗网络使用的损失函数在训练过程中容易出现梯度弥漫、网络训练不稳定等问题。本文使用最小二乘损失函数来构成对抗损失,使分割结果更加接近于真实图像。最小二乘损失函数定义如下:其中,Ey~Pdata(y)表示样本Y分布的期望值,Ex~Pdata(x)表示样本X分布的期望值,分割模型G:X→Y及对应的判别模型DY,式(3)代表映射函数X→Y的过程。

LGAN(G,DY,X,Y)=Ey~Pdata(y)[(DY(y)-1)2]+
Ex~Pdata(y)[(DY(G(x)))2].

(3)

对于分割模型F:Y→X及对应的判别模型DX,式(4)代表映射函数Y→X的过程:

LGAN(F,DX,Y,X)=Ex~Pdata(x)[(DX(x)-1)2]+
Ey~Pdata(y)[(DX(F(y)))2].

(4)

3.2.2 循环一致性损失函数

为了保持原始图像和转换后图像的高度一致性,本文采用了循环一致性损失函数。目标域X的图像通过循环性可以将图像转换为原始图像,公式可表示为F(G(x))≈x;同理,对于向后的循环一致性可采用公式G(F(y))≈y表示[12]。本文引入L1范数来衡量原始图像和生成图像之间的差距,公式定义如下:

Lcyc(G,F)=[Ex~Pdata(x)‖F(G(x))-x‖1]+
Ey~Pdata(y)[(‖G(F(y))-y‖1].

(5)

综上,本文网络的复合损失函数用公式(6)表示:

L(G,F,DX,DY)=LGAN(G,DY,X,Y)+
LGAN(F,DX,Y,X)+λLcyc(G,F),

(6)

最终对网络的损失函数进行优化,为使分割图像与真实图像达到最大相似性,网络的总训练目标如下:

(7)

4 实验结果与分析

4.1 实验环境与参数分析

实验平台基于Python3.6环境搭建,使用TensorFlow来构建网络框架,实验环境均在Intel(R) i7-8565U CPU以及显卡RTX2080Ti进行,使用MATLAB R2017b对图像进行预处理操作。网络采用Adam优化算法,学习率Lr设为0.000 2,以指数衰减的方式迭代更新学习率,网络迭代次数设为200个周期,训练时batch_size设为1。

4.2 数据集以及数据增强

为了验证本文算法的有效性和实用性,采用DRIVE和CHASE_DB1公共视网膜数据集。DRIVE数据集目前在视网膜图像处理领域中应用较为广泛。该数据集共包含40张眼底彩色视网膜图像,图像的分辨率为584×565大小像素,其中20张用于训练,其余20张用于测试。CHASE数据集共有28张眼底彩色视网膜图像,收集自14名儿童的双眼,每幅图像的分辨率为999×960,其中14张用于训练,其余14张用于测试。

在深度学习中,需要大规模的训练样本才能提升模型的鲁棒性,使模型具有更强的泛化能力。由于视网膜血管样本集数量较少,在网络模型的训练过程中,极易出现过拟合现象。因此,为了获得显著的训练结果,需要对数据集进行数据增强操作,通过图像的旋转、平移变换等操作对训练集进行扩充。此外,对于扩充后的图像进行剪裁,通过向四周平移像素点将每张图像随机剪裁,最终DRIVE和CHASE数据集分别得到15 620张和12 000张尺寸大小为512×512的patch块,其中90%用作网络训练,10%用作网络验证。

4.3 数据预处理

由于原始视网膜图像存在噪声干扰、光照不均以及血管特征不明显等现象,直接分割会影响图像的分割效果。为了改善模型性能,需要对视网膜图像进行如下预处理操作:

(1)为了提高血管树对比度,本文提取视网膜绿色通道。由图6(c)可以看出视网膜血管在绿色通道中血管轮廓与背景的对比度较为明显。

(2)为了加快模型的收敛速度,让训练数据分布一致,需要对视网膜图像数据进行归一化处理,使像素在(0,1)的范围内。归一化公式如下:

(8)

其中:xi表示图像的像素点,max(x)和min(x)分别代表图像的最大像素点和最小像素点。

(3)为了增强图像的对比度突出血管轮廓,本文使用MATLAB语言对图像进行自适应直方图均衡化操作。图像预处理前后效果对比如图6(e)、(f)所示。

图6 图像预处理前后效果对比图。(a) 原图像;(b) 红色通道;(c) 绿色通道;(d) 蓝色通道;(e) 预处理前;(f) 预处理后。Fig.6 Image preprocessing before and after the effect comparison. (a) Original image;(b) Red channel;(c) Green channel;(d) Blue channel;(e) Before pretreatment;(f) After pretreatment.

4.4 评价指标

为了系统验证本文算法对视网膜血管分割的效果,实验采用分割准确性(Accuracy,Acc)、特异性(Specificity,Spe)和敏感性(Sensitivity,Sen)对网络性能评估。

Acc可以预测正确的血管数目占总样本数目的百分比,它的取值范围为0~1,Acc的值越接近1,分割的准确率越高。公式如下:

(9)

在公式(9)中,真阳性(True Positive,TP)表示将视网膜血管图像正确分类的像素个数;真阴性(True Negative,TN)表示将非血管正确分类的像素个数;假阳性(False Positive,FP)表示将非血管错误分类为血管的像素数量;假阴性(False Negative,FN)表示将血管错误分类为非血管的像素数量。同时,上述4个值也用于计算特异性以及敏感性。特异性是指实际为非血管的样本占非血管总样本数目的百分比;敏感性是指正确的血管数目占血管总样本数目的百分比。特异性、敏感性的计算如公式(10)、(11)所示:

(10)

(11)

除此之外,本文还引入模型评估指标AUC(Area Under Curve)。AUC的值可以判断模型的性能,AUC的值越大,正确率就越高,它的取值范围为[0,1]。

4.5 实验结果分析

本实验使用DU-CycleGAN网络、U-Net以及DenseNet和U-Net(DU-Net)相结合的网络模型进行分割效果对比。考虑到实验严谨性,在训练网络模型时,采用与本文方法相同的数据扩充和数据预处理方法。实验结果如表2所示。在DRIVE数据集中,本文网络模型分割的准确性较U-Net提高了1.31%,达到了96.93%;本文提出的算法在敏感性、特异性以及AUC指标上均有所提升,优于U-Net以及其他算法,说明本算法改进网络的有效性。同理,表3列举了CHASE数据集实验对比结果,从中可以看出,本文算法的评估指标要略高于其他算法,其中,准确性具有一定的优势。实验结果表明该网络模型具有较好的视网膜血管图像分割性能。

表2 DRIVE数据集上的分割结果Tab.2 Segmentation results on the DRIVE dataset

表3 CHASE数据集上的分割结果Tab.3 Segmentation results on CHASE dataset

为了更直观地表现出DU-CycleGAN算法的优越性,图7、图8是本文算法与DU-Net、U-Net算法分别在DRIVE和CHASE数据集的受试者工作特征曲线(ROC)对比图,从图中可以看出本文算法的AUC面积要大于DU-Net以及U-Net网络。本算法最靠近左上角的临界值,纵坐标的真阳性率(True Positive Rate, TPR)较高,横坐标的假阳性率(False Positive Rate, FPR)低,表明本实验正确分割血管图像的可能性高,实验的诊断更有价值。

为了对DU-CycleGAN算法进行更加详细的比较和分析,图9从左到右分别列出了原始图像、金标准图像、基于U-Net算法、基于DU-Net算法以及本文算法的微细血管末端局部放大图。通过局部分析3种不同模型的分割结果可得出,U-Net算法以及DU-Net算法对于视网膜血管的细小区域处理效果不佳。由于血管树的形态结构过于复杂,U-Net算法在经过上、下采样操作后会对血管的细节特征以及空间维度造成一定的损失,从而出现漏分割、分割断裂等现象。如图9(e)所示,本文经过优化改进后的模型可以捕捉更多微细血管的特征信息,不仅可以分割出粗细合理的血管树,还可以有效缓解漏分割现象。

图7 DRIVE数据集ROC曲线对比图Fig.7 ROC curve comparison chart of DRIVE dataset

图8 CHASE数据集ROC曲线对比图Fig.8 ROC curve comparison chart of CHASE dataset

图9 各分割算法末端微细血管局部放大。(a) 原图像;(b) 金标准图像;(c) U-Net算法;(d) DU-Net算法;(e) 本文算法。Fig.9 Each segmentation algorithm enlarges the end microvascular. (a) Original image;(b) Gold standard image;(c) U-Net algorithm;(d) DU-Net algorithm;(e) Our algorithm.

图10 视网膜分割效果图。(a) 原图像;(b) 预处理后图像;(c) 金标准图像;(d) U-Net算法;(e) 本文算法。Fig.10 Effect picture of retinal segmentation. (a) Original image;(b) Preprocessed image;(c) Gold standard image;(d) U-Net algorithm;(e) Our algorithm.

图10列举了本文算法以及U-Net算法在DRIVE和CHASE数据集上视网膜血管分割的效果图。从图10(d)可以看出,U-Net分割结果会将部分细小血管划分到背景区域中,虽然图像中含有的噪声较少,但血管连续性较差,对于血管末端的分叉处无法进行准确的分割,同时会出现血管断裂、细小血管分割较为模糊等细节问题。图10(e)列出了本文的分割结果,DU-CycleGAN网络在上、下采样过程中添加了密集连接结构,进一步提高了分割精度,使分割器可以更加有效地训练数据;同时,改进后的分割模型增加了网络的层数,使网络模型可以提取并拟合更多用于分割的特征信息。如图10(e)所示,DU-CycleGAN网络可以更完整地对细小血管及其分叉处进行分割,网络模型准确地拟合了特征信息,保留了更多的血管细节信息,使血管具有较好的连续性,更加接近金标准图像。

为了更好地体现DU-CycleGAN算法的有效性,表4、表5分别列举了不同分割算法使用DRIVE和CHASE数据集的性能指标。如表4所示,在DRIVE数据集中,本文算法无论在准确性还是特异性上都具有一定的优势,尤其是敏感性比文献[16]高了7.39%。而在CHASE数据集中,文献[19]提出了一种基于U-Net模型的递归残差卷积神经网络,该算法的特异性指标相比于其他算法具有较好的表现,但该算法分割的准确度不够高,对于细小血管的分割容易出现断裂现象。文献[22]提出了基于U-Net的多分支卷机神经网络,并且增加了特征信息流路径,该模型与其他算法相比具有较好的分割性能,在CHASE数据集中AUC值也达到了98.39%,但在具体分割过程中,该算法存在微细血管分割较为模糊的现象。本文算法与文献[19]、文献[22]的算法模型相比,在总体性能指标相差不大的情况下,可以准确地拟合特征信息,保留更多的血管细节信息。由此可见,本文网络模型具有良好的鲁棒性和泛化能力。

表4 DRIVE数据集分割结果比较

表5 CHASE数据集分割结果比较

续 表

5 结 论

本文提出了一种基于循环分割对抗网络的视网膜图像分割算法,使用了U型网络和密集连接相结合的模型作为分割器的网络模型结构,并添加了最小二乘损失函数。实验结果证明,所改进的网络模型在DRIVE和CHASE数据集中,两者分割的准确性、敏感性分别达到了96.93%、84.30%以及96.94%、79.92%,说明同其他深度学习算法模型相比,本文网络模型分割效果更为精细。但在具体实验中,本文的网络模型过于复杂,对实验设备有着较高的要求,并且网络因为层数过多导致分割效率低于预期。在未来的工作中还需要对网络模型进一步优化,在不影响性能的情况下,降低网络复杂度,从而获得更优的分割结果。

猜你喜欢

视网膜卷积函数
深度学习在糖尿病视网膜病变诊疗中的应用
二次函数
基于3D-Winograd的快速卷积算法设计及FPGA实现
第3讲 “函数”复习精讲
家族性渗出性玻璃体视网膜病变合并孔源性视网膜脱离1例
高度近视视网膜微循环改变研究进展
二次函数
函数备考精讲
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法