APP下载

基于生成对抗网络的彩色眼底图像硬性渗出检测方法

2019-05-14龙胜春陈嘉莉黄肖肖陈芝清

中国生物医学工程学报 2019年2期
关键词:硬性视盘视网膜

龙胜春 陈嘉莉 黄肖肖 陈芝清

1(浙江工业大学计算机科学与技术学院,杭州 310023)2(浙江大学附属第二医院眼科中心,杭州 310009)

引言

糖尿病视网膜病变(DR)是糖尿病的主要并发症之一,会导致视力严重下降甚至完全丧失。近几年,DR的发病率呈指数级增长,预计到2030年,DR患者的全球人口将增长到1.91亿[1]。定期筛查可以及时发现视网膜病变,降低患者失明的风险,对于及时掌握治疗时机具有重要意义。DR的病变主要表现为动脉瘤、出血斑点、硬性渗出、棉绒斑以及黄斑水肿等。已知硬性渗出(HE)是视力丧失的主要威胁之一,特别是当它们出现在视网膜中央附近或中央凹上时,对视力的影响更加明显[2]。HE出现在非增殖性DR(NPDR)的后期(见图1),呈明显的淡黄色或白色,其形状大小位置皆不一,大小由几个像素到几千个像素。彩色眼底图像中HE的检测在DR诊断和监测治疗进展中起着至关重要的作用,因此HE检测是本研究的重点。

图1 眼底图像渗出Fig.1 Retinal fundus image with exudates regions

现阶段的HE筛查通常是由眼科医生肉眼观察并进行诊断分级,这是相当费时且容易受到观察者主观性的影响,诊断结果也缺乏定量信息,而HE的计算机辅助检测有助于实现快速且准确的诊断。已发表的HE检测算法主要集中为以下4种:阈值法、边缘检测法、区域生长法和分类法。由于渗出物在彩色图像中的强度不均匀且与图像背景的对比度低,所以采用阈值法和边缘检测法准确实现渗出物检测是非常具有挑战性的。近来,有研究者提出了用机器学习方法来实现全自动检测硬性渗出。Niemeijer等提出了一种结合KNN分类器的有监督机器学习方法来实现HE检测[3];Akram等利用贝叶斯分类器,区分渗出物和非渗出物区域[4];Osareh等分别利用SVM和MLP两种分类器,实现了渗出物的提取[5];还有一些其他方法,包括分水岭分割[6]和k均值聚类[7],均被应用于视网膜图像的病变检测。但传统机器学习方法不能准确地提取所有有效的特征,且视网膜眼底图像的质量不一,上述应用于HE检测的算法分类效果在临床上均不够令人满意。而深度学习作为机器学习领域的一个新分支,近年来在计算机视觉、医学影像处理、语音识别与生物信息学等领域都取得了突破性进展。深度学习通过模拟人脑建立分层模型,从数据中获得不同层面的抽象特征并用于分类预测,其最大的优点就在于用非监督式或半监督的特征学习和分层特征提取算法,而非手工设计的特征。深度学习由于基于的是对样例的学习,因此需要大量的医学图像作为基础。目前,深度学习方法的研究主要集中在有较大数据量的几大病症,如肺癌、乳腺癌等。Prentasic等利用卷积神经网络,对彩色眼底图像进行分割,并检测眼底图像中的渗出物[8]。Melinsca等提出,利用深度卷积神经网络实现视网膜血管提取[9]。 Son等针对彩色眼底图像数据集少的问题,提出了用生成对抗网络(GANs)来提取视网膜血管[10]。其中,GANs提供了一种不需要大量标注训练数据就能学习深度表征的方式[11]。学习的表征可用于多种应用,包括图像合成、图像超分辨率技术和语义图像编辑等众多领域。

针对已有方法的不足以及标准训练数据少的问题,本研究提出了一种基于生成对抗网络的眼底视网膜图像硬性渗出的自动检测方法。首先对彩色眼底图像进行预处理,利用定向局部对比度法(DLC)提取视网膜粗血管网络,根据血管分布信息以及视盘周围的亮度特征准确定位视盘中心,再掩盖视盘以消除对后续HE检测的影响;然后,训练GANs实现硬性渗出的提取。GANs有两个主要组成部分:生成器神经网络(G)和判别器神经网络(D)。将预处理后的整幅图像输入到生成网络G中,交替迭代训练生成网络G和判别网络D,最后得到分割效果最佳的模型并保存。该方法能够精确并快速地检测彩色眼底图像中的硬性渗出,在e-ophtha EX数据库和DIARETDB1数据库上都得到很好的检测效果。结果表明,相比一般的卷积神经网络(CNN),生成对抗网络的博弈模式使得生成网络G能够更好地检测硬性渗出。此外,还对实验结果进行了像素级评估,为实现更加精准的渗出提取提供了检验标准。

1 方法

1.1 生成对抗网络

生成对抗网络(generative adversarial networks, GANs)是一种深度学习模型,是近年来深度学习最具前景的方法之一。该方法由Lan Goodfellow等于2014年提出[11],其优秀的性能很快得到了学术界的普遍关注。当前,GANs被应用于各个领域,如通过文本描述合成图像、图像语义编辑等。

1.1.1理论基础

图2 基于生成对抗网络的硬性渗出检测算法框架Fig.2 The proposed Generative Adversarial Networks(GANs)framework for hard exudates detection

GANs启发自博弈论中的二人零和博弈,GANs模型中的两位博弈方分别由生成式模型(generative model)和判别式模型(discriminative model)充当。生成式模型G类似于一个“仿制者”,需要捕捉样本数据的分布来生成一个类似真实训练数据的样本,并且能够尽量不被判别式模型识破;判别式模型D则类似于“警察”,是一个二分类器,需要估计一个样本来自训练数据而非生成数据的概率,如果样本来自真实的训练数据,D就输出大概率,否则D输出小概率。生成网络G和判别网络D在训练过程中,固定一方的权重再更新另一方的网络权重,交替迭代。在这个过程中,生成网络G和判别网络D双方都极力优化自己的网络。当固定判别网络D时,生成网络G就优化自己的网络,使自己输出尽可能和真实数据一样的样本,并使生成的样本经过判别网络D之后,D会输出高概率。当固定生成网络G时,若输入为真实训练数据时,D优化网络结构使自己输出1;若输入为生成数据时,D优化网络结构使自己输出0。这两者之间的博弈与竞争,使得两个模型的能力都不断增强,直到判别网络D无法区分真实样本和生成式模型生成的假样本为止,即达到一个动态的平衡(纳什平衡)。图2为本研究所提出的基于生成对抗网络的硬性渗出检测算法框架。

1.1.2网络结构

在本研究中,用到的深度卷积对抗网络不同于朴素GANs,生成网络G和判别网络D均是由卷积神经网络(CNN)构成的。输入彩色眼底图像,通过生成网络G生成与原图像相同尺寸的视网膜硬性渗出概率图,并将生成的概率图输入至判别网络D中进行判别。其中,概率图中的每个像素值的范围为0~1,其值的大小表示该像素点为硬性渗出的概率。值越大,表示该像素点为硬性渗出的可能性越大;值越小,表示该像素点为硬性渗出的可能性越小。判别网络D的任务:鉴别输入的渗出图像是专家标定的标准渗出图像,还是由生成网络G所生成的渗出概率图。对于一幅彩色眼底图像,需要预测图像中每个像素属于的类别,一般的卷积神经网络(CNN)是预测一张图片的类别,因此本研究中的生成网络G用到的是U-net网络。U-net是基于全卷积神经网络(FCN)的一种网络框架,没有全连接层,输入和输出均是图像。它是2015年由Ronneberger等提出的[12],用于生物图像分割的网络,现也被广泛应用于其他领域。U-net网络结构包括收缩(卷积)和对应的扩展(上采样),收缩主要用于捕捉上下文特征,包括边缘、亮度等,有利于硬性渗出的精确分割,扩展则是用于恢复图像大小。当前专家精确标定的视网膜硬性渗出图像很少,而U-net网络需要很少的训练集即可完成训练,且容易收敛,能够很好地解决训练集小的问题。

1.1.3目标函数

GANs的训练目的就是获得令判别网络D分类准确率最大化的参数,以及获得最大化欺骗判别网络D的生成网络G的参数。对于训练生成网络G,输入彩色眼底图像x,生成网络G输出硬性渗出概率图G(x)。生成网络G的训练目的就是优化网络结构,使得G(x)与专家标定的标准渗出图像y尽可能相似。判别网络D对于输入y,D(y)的输出是0~1范围内的一个实数,用来判断这个输入图片是一个真实图像的概率。令pr和pg分别代表真实图像的分布和生成图像的分布,判别网络D的目标函数[11],可表示为

(1)

判别网络D的训练目标是:当输入为专家标定的标准数据集图像y时,Dx,y需要被最大化;当输入为由生成网络G所生成的渗出概率图G(x)时,Dx,G(x)应该被最小化。类似地,生成网络G的目标就是让判别网络D无法区分真实图像和生成图像,那么GANs的优化目标函数如下:

(2)

为了计算生成网络和判别网络的效率,需要加入损失函数,其定义如下:

LSEGG=Ex~Pr-ylogGx-

(1-y)log1-Gx

(3)

最后,整个GANs的目标函数如下:

(4)

式中,λ为正则项系数,这里设定为0.1。

1.2 图像预处理

视网膜图像往往具有较差的对比度,原因包括成像采集过程中引入的噪声,以及相机闪光等因素。另外,不均匀的光照会增加视盘附近的亮度,而削弱远离视盘位置的亮度,这些因素对HE的检测都有着显著的影响。首先,需要将所有图像大小统一为800像素×800像素。Clara等提出通过增强YIQ颜色空间中的亮度来改善上述光照不均匀问题[13],过程如下:

Ymod=aY+bI+cQ

(5)

再将修改后图像转换回RGB颜色模型,其中a、b、c分别设定为1.8、-0.9和-0.9。

1.2.1血管提取

从绿色通道可以看出,图像中血管亮度一般要比邻近的背景区域暗,且血管边缘处的灰度变化最为明显,而背景和病变区域的亮度则比较亮。将梯度向量场原理应用于绿色通道图像,计算各像素的向量场散度值。从梯度向量场分布图中可以看出,非血管区域的散度值等于或小于零,梯度向量场无变化或向内收缩。在血管区域,靠近中心线的梯度向量向外发散的数量较多,因此散度值大于零且值较大。通过计算图像向量场散度值的正负符号可以判断对比度明显的血管,即可提出较完整的视网膜图像血管中心线。获得大部分中心线后,接着采用定向局部对比度(DLC)方法来检测中心线两侧的血管像素。

关于DLC算法的定义和性质描述如下:假设像素p的亮度为Ip,沿着方向角θ的像素p的DLC定义为

Npθ,r=xq,yq)|xq=xq-ksinθ,

yq=yq+kcosθ,k=1,…,r

(8)

DLC为负值表明当前检测到的像素灰度值要低于邻域平均灰度值,而图像中血管像素灰度值一般低于邻域背景灰度值,因此能满足如下公式则表明当前检测到的像素为血管像素,有

DLCqθ≤T

(9)

式中,T为指定的非正阈值。

图3为两幅眼底图像血管提取结果。

图3 两幅质量不同的眼底图像血管的提取结果。(a)和(c)原图;(b)和(d)相应的血管提取结果Fig.3 Examples of retinal blood vessels extraction on two retinal images with different illumination conditions. (a)(c)Original images; (b)(d)Results of blood vessels extraction

1.2.2视盘定位

视盘(OD)是视神经的始端,也是眼底血管的起始点。在正常的彩色眼底图像中,视盘通常是呈亮黄色或白色的圆盘状结构,直径约1.5 mm,其颜色特征和硬性渗出十分相似。为避免对后续HE检测的干扰,本研究对彩色眼底图像中的视盘进行掩盖。通过观察发现,视盘中心位置的血管最密集且亮度较大。结合视网膜血管分布信息和灰度值信息,可以准确定位视盘中心点,具体操作如下:

IOD(r,c)=IBV′r,c-1.2IG′r,c

(10)

式中,IG'是对绿色通道图像IG进行均值滤波后的图像。

再对血管图像IBV求滑动窗口大小为N×M像素内的灰度均值,得到IBV′。首先,根据多次实验,N设定在50~60像素之间、M设定在20~25像素之间效果最佳。然后,遍历上述所得到的图IOD,其值最小的像素点即为视盘中心位置。根据所得到的视盘中心位置,得到以OD为中心的感兴趣区域(ROI)。最后,应用霍夫圆检测算法来检测OD边界,再掩盖视盘,以避免对后续HE检测的干扰。

1.3 GANs实验

1.3.1材料及实验设备

本实验选用了两个公开的视网膜图像数据库(DIARETDB1[14]和e-ophtha EX[15])所提供的眼底图像。DIARETDB1数据库包含89张彩色眼底图像,分辨率为1 500像素×1 152像素,50°视场(FOV)。在这个数据库中,每个图像的不同区域由4名专家手动标记,以确定视网膜图像是否包含渗出物。e-ophtha EX数据库包含47张具有渗出区域的图像和35张没有渗出的图像,本研究仅使用47张具有渗出区域的图像。由于DIARETDB1数据库中的人工标定是基于图像层次的,e-ophtha EX是唯一一个公开提供用于硬性渗出分割的像素级标定的数据库,所以选择e-ophtha EX数据库中的28张图像来训练生成对抗网络模型,剩余19张图像用于验证本研究所提出算法的性能,而DIARETDB1数据库则被用于另外的独立测试来检测视网膜图像是否包含渗出物。实验系统配置为Windows 10操作系统,2.9 GHz Intel Core i5 CPU和16 GB内存的计算机,编程语言Python3.6,基于Tensorflow框架,所有的卷积运算均在显卡NVIDIA Tesla K80 下进行。

1.3.2实验操作过程

本研究选择e-ophtha EX数据库中的28张图像来训练生成对抗网络模型,剩余19张图像以及DIARETDB1数据库的全部图像用于验证所提出的算法性能。首先,对每一张训练集图像进行归一化操作,将图像每个像素点的值转换到0~1之间;再将归一化的图像通过翻转和旋转(旋转步长设定为15°)来达到数据集扩增的目的,其中彩色眼底图像和对应的人工标定渗出图都需要旋转。扩增后的训练集总共包含437张图像,按照20∶1的比例分为训练集和验证集,迭代循环训练生成网络G和判别网络D。每次循环先经过生成网络生成渗出概率图,判别网络再进行判别。然后计算损失函数,并通过反向传播算法优化权重参数,开始下一次循环。本研究采用Kingma等提出的Adam优化算法[17]来优化学习率的梯度方向,因为它是一种可以替代传统随机梯度下降过程的一阶优化算法,能基于训练数据迭代更新神经网络权重,并最小化下一步损失。本研究学习Hinton等提出的通过防止特征检测器的共适应[18]来改善神经网络,采用固定学习率0.000 2(即学习率在训练过程中并不会改变),通过Adam优化器生成梯度的方向。下一步输入损失函数和权重参数,通过更新权重参数来最小化损失值,同时把更新好的权重参数用于下一次卷积运算。这样,通过反向传播算法,每次结合学习率更新梯度,然后根据模型损失,最小化下一次循环的模型损失。最后,保存在验证集上分割效果最佳的模型。经过多次实验总结,本实验设定的最大迭代次数为2万次,总共重复实验5次,每次平均训练时间为9 h。对于生成网络G输出的渗出概率图,采用Otsu阈值法对其进行阈值分割,得到最后的渗出检测结果。

1.4 评价标准

HE检测的评价标准可以分为两个级别:像素级别和图像级别。e-ophtha EX数据库提供了像素级的人工标定,因此可以将实验结果图像的每个像素与数据库提供的人工标定图像进行比较。在图像级HE检测中,基于分类结果是否存在HE来确定DIARETDB1数据库中的图像是否具有硬性渗出。

1.4.1e-ophtha EX数据库评估

典型的像素级评估方法是计算正确分类像素的数量,然而不适合硬性渗出检测的评估。在不同观察者的测定之间,渗出物的轮廓并不一定完全匹配,导致渗出物检测的一致性不足。在这项研究中,使用了一种混合验证方法,需要计算人工标定结果和实验所得结果之间的最小重叠比率。

给定实验结果渗出连通区域集D1,D2,…,DN和人工标定渗出连通区域集G1,G2,…,GM,若满足下列公式,则这个像素被认为真阳(TP),即

(11)

式中,·表示一个集合的基数,σ是一个范围0~1的参数,这里σ被设置为0.2[14]。

若满足式(12),则这个像素被认为假阳(FP);若满足式(13),则这个像素被认为假阴(FP);而其余的像素被认为是真阴(TN),有

(12)

(13)

式中,Ø表示为空集。

1.4.2DIARETDB1数据库评估

从临床角度来看,图像级评估渗出物的存在也是有意义的,特别是对于DR筛选的应用。为了评估算法鲁棒性,本研究提出的算法在DIARETDB1数据库中被独立地测试,以确定测试图像是否包含渗出物。如图4所示,数据库中每个图像由4位专家标记,如果人工标定置信度大于或等于75%,则图像被诊断含HE。在图像级别上,如果本算法和专家人工标定的图像都含有渗出物区域,则将该视网膜图像的分类结果作为TP来记录。然后,使用3种不同的评估参数,包括灵敏度(SE)、特异性(SP)和准确性(AC)来确定HE检测的总体性能,计算公式如下:

图4 专家标定示例。(a)彩色眼底图像; (b)DIARETDB1数据库人工标定图像Fig.4 Example of ground truth. (a)color retinal image; (b)The ground truth image in DIARETDB1 database

(14)

(15)

2 结果

图5(a)是经过本文第1.3.2节的步骤迭代循环2000次的结果,其中除了硬性渗出,还有一些眼底图像的边缘及背景被提取。经过14 000次循环的结果如图5(f)所示,此时能够有效地辨识眼底图像中的局部亮斑和硬性渗出之间的差异,实现硬性渗出的精确提取。在图6中,(a)给出了一张眼底图像的部分渗出区域,(b)为专家人工标定结果,(c)为本方法的检测结果,(d)为像素级评估的结果。其中,(d)中的绿色、红色、蓝色和黑色分别代表TP、FP、FN、TN,分别由本文第1.4.1节所给出的评估公式(式(11)~(13))计算得到。从图6(d)结果可以看出,仅有一些细小且较暗的硬性渗出未被检测出(图中蓝色部分),有少量的非渗出物质被识别为硬性渗出(图中红色部分)。表1(右)还显示本算法在相同的e-ophtha EX数据库上与其他公布的算法结果相比,3个评估指标(SE、PPV、F-Score)都比其他现有的算法好,结果表明本方法可以更有效地区分HE和其他明亮的病变,体现了本算法的可行性和优越性。表1(左)列出了本研究提出的算法在DIARETDB1数据库中的整体评估性能,其中整体平均灵敏度(SE)、特异性(SP)和准确性(AC)分别为100%、96.2%和97.8%,由本文第1.4.2节所给出的评估公式((式(14)、(15))计算得到。

图5 不同训练次数的结果。(a)输入到生成网络的彩色眼底图像;(b)生成对抗网络训练2 000次的结果;(c)~(h)分别为生成对抗网络训练5 000、8 000、11 000、14 000、17 000和20 000次的结果Fig.5 The results of different training times. (a)The input of generator G; (b)The result of training 2 000 times; (c)~(h)The result of training 5 000, 8000, 11 000, 14 000, 17 000 and 20 000times

图6 像素级评估。(a)原图;(b)专家标定结果;(c)本方法的检测结果;(d)像素级评估结果Fig.6 Example of pixel level validation. (a)Original image; (b)The ground truth image in e-ophtha EX dataset; (c)The segmented result with our algorithm; (d)The result of pixel level validation

表1 不同方法对DIARETDB1数据库图像以及e-ophtha EX数据库图像的检测结果Tab.1 Detection results of DIARETDB1 database and e-ophtha EX dataset with different methods

3 讨论

生成对抗网络模型(GANs)是基于深度学习的一种强大的生成模型。相比较朴素GANs,将卷积神经网络引入生成器和判别器的深度卷积对抗网络具有更强的特征表达能力,极大增强了GANs的数据生成质量。本研究基于深度卷积生成对抗网络,提出了一种新颖且有效的视网膜眼底图像硬性渗出检测方法,并通过多次重复实验来研究其有效性。在预处理阶段,由于视盘OD和硬性渗出HE的颜色和亮度都很相似,因此在进一步检测渗出之前掩盖OD是十分重要的步骤,这将提高HE检测的准确度。本研究通过观察眼底图像的灰度信息以及视网膜血管的分布,提出了一种快速且精确的OD定位方法。本方法受Medhi等的研究[19]启发,他们利用垂直sobel算子来检测血管,将垂直像素最多的区域视为OD。相比其他方法,本方法只需遍历两次图像,找到灰度值最大、血管最密集的像素,就实现了OD的快速定位,准确率达到93.5%。在渗出检测阶段,笔者受Jaemin son等研究[10]的启发,将GANs应用到硬性渗出检测中去。目前,GANs已在计算机图像生成等任务中取得了极大的成功,并且正在不断地深入,从传统的计算机视觉向其他领域扩展。最重要的是,GANs不需要大量标注训练数据就能学习图像的深度表征,能够很好地进行图像分割。因此,在基于视网膜病变图像集很少的前提下,GANs比其他深度学习展现出更大的优势。此外,在本研究的生成对抗网络中,生成网络G用到的是U-net网络,而U-net在图像分割中十分受欢迎,经常用于生成器的体系结构。表1显示,在相同的数据库中,本研究提出的基于深度卷积对抗网络的硬性渗出检测算法比其他已有的算法更加有效,体现了该算法的优越性和可行性。

本研究所提出的方法虽然取得了一定的成效,但仍然存在一些不足之处。首先,在预处理阶段,采用霍夫圆检测对视盘进行掩盖。若视盘周边出现硬性渗出,则会被掩盖而不能检测到。其次,所提出的算法只在e-ophtha EX和DIARETDB1两个数据集上进行了测试,没在其他数据集上进一步验证算法的泛化能力。

4 结论

本研究开发并评估了一种视盘定位和硬性渗出自动检测算法,利用生成对抗网络来检测眼底图像中的硬性渗出。实验结果表明,所提出的基于生成对抗网络的硬性渗出自动检测方法在两个公开获得的数据库(DIARETDB1和e-ophtha EX)都取得了非常好的检测效果,说明该算法具有很大的应用价值。本研究对提出的算法进行了多次实验,证明该算法在重复性方面可靠;并对结果进行了像素级和图像级评估,结果表明该算法实现了精确检测HE,这将为临床DR诊断提供有效的科学依据。

猜你喜欢

硬性视盘视网膜
深度学习在糖尿病视网膜病变诊疗中的应用
家族性渗出性玻璃体视网膜病变合并孔源性视网膜脱离1例
高度近视视网膜微循环改变研究进展
14Cr17Ni2材料淬硬性研究
球结膜下注射庆大霉素致视网膜损伤1例
视盘水肿患者频域光学相干断层扫描测量结果分析
伴视盘出血的埋藏性视盘玻璃疣患者的临床特点和眼底影像特征陈秀丽
视盘内出血伴视盘旁视网膜下出血1例
硬性角膜接触镜在矫正屈光参差中的应用
浅谈学好高中英语几个硬性要求