傅迎华,李 震,张雨鹏,潘东艳
1(上海理工大学 光电信息与计算机学院,上海 200093)2(第二军医大学 长海医院眼科,上海 200433)
随着人们生活水平不断提高和物质条件的改善,糖尿病的发病率在逐年上升.目前,我国已成为全球糖尿病患者人数最多的国家.糖尿病同时也会引起各种的慢性并发症[1],糖尿病视网膜病变(Diabetic Retinopathy,DR)是糖尿病常见的并发症之一,是引起失明的主要的眼病,致盲率较高[2].渗出液(exudates,Es)是DR的早期病灶之一,同时也是评定糖尿病视网膜病变程度的关键指标.
渗出液是由于视网膜血管系统受损漏出富含脂肪和胆固醇而形成的.一般渗出液包括硬性渗出液和软性渗出液,软性渗出液又叫棉絮斑.在眼底图像中,硬性渗出液呈黄色斑点状,有清晰可见的边界;软性渗出液呈黄白色,无明显边界特征.由于渗出液与视盘在亮度特征上很近似,通过计算机辅助的诊断系统很难精确地检测到渗出液.
在现有的文献中,渗出液的检测方法一般可分为以下几类:基于聚类的方法[3]、基于数学形态学的方法[4,5]、基于主成分分析的方法[6]、基于区域生长的方法[7]及基于像素分类的方法[8-16],其中基于像素分类的方法属于监督学习方法,其他方法均属于无监督学习方法.
无监督方法中,基于聚类的方法主要有K均值和模糊C均值方法,选择合适的聚类特征是实现该算法的一个关键步骤.一般通过计算每一个特征属于不同簇的隶属度来对特征分组,再对簇进行判断,分为渗出液与非渗出液,并给出相应的分割.陶静等[3]提出了一种由蜻蜓算法优化的随机森林算法进行渗出液的分割.杨振宇等[4]通过基于遗传算法和熵相结合的方式实现对渗出液的分割形态学方法主要用于确定渗出液的边界.在去除视盘等因素的基础上,段彦华等[5]利用Canny 边缘检测算法,对渗出液的边缘进行提取.该方法对视盘定位要求较高,受光照影响比较大.陈莉等[6]在去除血管、暗病灶和视盘的基础上,根据渗出液的稀疏性等特点,通过稳健主成分分析和低秩分解得到关于渗出液的稀疏矩阵,从而分割渗出液.谢莎等[7]利用自适应阈值法寻找种子点,通过两次连续的区域生长来确定渗出液的位置.相对于监督方法,无监督方法简单高效,处理效率相对快,但漏检率较高,同时在检测血管、视盘和暗病灶区域时受光照和亮度等影响较大.且需要后期对假阳性区域进行排除,在稳定性上表现差异较大,鲁棒性较差,对后期的处理要求较高.
传统的监督学习的检测方法一般基于眼底图像中渗出液的特征,通过分类器判断该像素是否为渗出液来实现渗出液的分割.一般可分为预处理,候选特征检测和分类三个步骤.分类器主要包括有非深度学习的传统机器学习方法[8-10]和深度卷积神经网络(Convolutional Neural Network,CN-N)[11-16].
在传统机器学习方法研究中,王岳等[8]通过提取亮度和颜色等特征,使用均值、标准差等指标对像素点进行统计和聚类算法构造平均亮度等新的特征,利用支持向量机(SVM)和朴素贝叶斯对渗出进行识别.高玮玮等[9]通过颜色特征来检测渗出液,再通过SVM对区域分类.陈宁华等[10]根据渗出液的颜色、亮度、形态、边缘、纹理等特征提取超像素区域,再通过人工神经网络进行分类.
龙胜春等[15]利用GAN网络实现了对渗出液的分割,其主要通过对生成器和判别器的训练,令生成器产生的图片足以被判别器判定为渗出液标注,以此达到渗出液分割的目的,作为一种深度学习模型,该方法需要对视盘等干扰结构去除,对预处理的要求较高.
高玮玮等[16]提出了一种基于RBF神经网络的渗出液自动检测方法.该方法对绿色通道进行粗分割获取病灶候选区域,对红色通道的有效信息缺乏关注导致.
对比现有方法的缺点,本文提出了一种基于U-net网络的渗出液检测方法,U-net的端对端的方式更多考虑了像素类标的空间信息,同时U-net网络借鉴了FCN网络设计的思想,改进了FCN网络的解码过程,有效减少学习过程中的信息丢失.其多尺度的特征提取过程,使不同尺度的底层特征得到了的融合,从而可以在多个层次上进行监督和预测,对医学图像具有较强的学习能力.在对于医学图像检测中,基于U-net网络的病灶和结构检测,都得到了较好的检测结果,尤其在血管检测中达到了较高精度[17],在渗出液等亮病灶的检测中有待进一步讨论和验证.本文在U-net网络的基础上引入残差模块[18],本文称之为Res U-net网络,配合图像增强的预处理算法,在不对视盘等结构进行去除的情况下,实现了对渗出液的分割.
本文使用Kaggle数据集的一部分[19]和DIARETDB1[20]数据集对所提出的算法进行评估.Kaggle数据集包含在不同成像条件下拍摄的高分辨率的45度彩色眼底视网膜图像共有35126张训练集图像和53576 张测试集图像.临床医师根据渗出液等DR病灶的严重程度,将每张图像中DR的严重程度按0至4分进行评分.本文从Kaggle数据集选取了100张视网膜区域完整的图像,并将其进行裁剪和缩放操作.在统一为436×422分辨率后作为本文的数据集.DIARETDB1数据集包含89张分辨率为1500×1152的视网膜眼底图像以及多个专家的标注,数据集的标注经过了多个专家严格的评估.由于kaggle并未给出渗出液标注,同时DIARETDB1缺少像素级的标注,本文对两个数据集进行了像素级标注.标注工作得到了本文第4作者第二军医大学长海医院眼科医师的验证.
由于两个数据集规模较小,网络的训练需要足够样本量,因此在kaggle数据集中,本文选取其中70张作为训练集,50张作为测试集.在DIARETDB1数据集中,本文采用kaggle数据集中的训练模型以验证算法的泛化能力.训练样本均以块的形式从每幅图有渗出的位置随机取样裁剪出10240张,如图1所示.为考验算法对细微特征的检测能力和视盘干扰的排除能力,选取的训练集和测试集图像分别具有不同的DR等级,图像亮度、对比度和渗出液特征均有不同程度的变化.
图1 块的裁剪Fig.1 Cutting of patch
本文所提出的算法分两部分:首先进行掩膜提取,同时进行图像对比度增强和单通道提取,再通过训练的Res U-net模型进行渗出液检测,其算法流程图如图2所示.
图2 算法流程图Fig.2 Algorithm flow chart
视网膜眼底图像的采集受光照的影响对渗出液的分割带来了挑战性,预处理方法对于抑制光照增强特征具有重要的意义.
3.1.1 掩膜提取
在眼底图像中,为了提取包含病理特征的感兴趣区域,消除感兴趣区域外的光照影响,通常采用掩模来对感兴趣区域外的区域进行屏蔽,图3为kaggle数据集中的彩色眼底视网膜图像提取掩模的过程.
首先对图3(a)的原始输入彩色图像进行灰度变换,如图3(b)所示,接着对灰度图像进行高斯滤波处理,以此抑制噪声,如图3(c)所示,再使用Canny边缘检测器获得眼底图像的边缘(图3(d)),最后分别对所检测到的边缘进行了闭运算,以此确保连通域的完整性,如图3(e)所示,进行形态学填充来填充孔洞,以得到完整的掩模,如图3(f)所示.
图3 眼底图像边界检测及掩模提取Fig.3 Boundary detection and mask extraction of fundus images
3.1.2 对比度增强
视网膜眼底成像时由于眼检灯的位置和光照强度不同,造成了不同图像之间亮度不均匀、伪影、失焦、曝光不足或过度曝光等问题,这对渗出液的亮度特征产生了干扰.视网膜色素的沉着等因素进一步影响了渗出液的检测.
本文提出了一种图像对比度增强的方法,首先利用直方图均衡化对图像进行初步对比度增强,如图4(a)所示,并将增强后的图像从RGB色彩空间转换至YIQ色彩空间,如图4(b)所示.选取半径为10个像素的圆形结构元素,分别对图像做顶帽变换和底帽变换,其公式如式(1)、式(2)所示:
图4 图像对比度增强Fig.4 Image contrast enhancement
ITOP=IYIQ-(IYIQ〇S)
(1)
IBOTTOM=(IYIQ⊙S)-IYIQ
(2)
其中IYIQ为YIQ图像,ITOP为顶帽变换后的YIQ图像,IBOTTOM为底帽变换后的YIQ图像,〇为形态学开运算,⊙为形态学闭运算,S为结构元素.将顶帽底帽变换后的YIQ图像按式(3)进行计算:
Ienhance=IYIQ+ITOP-IBOTTOM
(3)
其中Ienhance为增强后的YIQ图像,如图4(c)所示.最后将增强的YIQ图像返回到RGB色彩空间,其过程如图4(d)所示.
由于渗出液的亮度特征主要活跃在RGB图像的红色通道和绿色通道中,因此在对图像进行对比度增强后,本文提取了红色通道和绿色通道,并对其做加权相加处理,其权值关系如式(4)所示:
I=0.25IR+0.75IG
(4)
其中I为Res U-net的输入图像,IR和IG分别为预处理后图像的红色通道和绿色通道.
U-net网络本质上是FCN网络的延续和发展.U-net包括两部分:第1部分为下采样部分,这一部分主要对相关特征进行提取;第2部分为上采样过程,区别于FCN中跳跃连接的相加,U-net仅仅是对下采样中的特征图谱与上采样连接,这使得上采样的特征融合了更多丢失的信息,对语义分割具有重要的意义.
在传统的U-net网络中,随着网络层数的加深,反向传播的链式求导往往出现梯度消失或爆炸现象,残差模块通过对上层网络和下层网络的短跳跃连接,使得网络保留了梯度信息,其结构如图5所示.残差模块在面对特征细微的变化时具有较好的表现.本文在U-net网络的基础上融入残差模块,加强网络对不同亮度渗出液的学习,同时对于视盘这种与渗出液高度相似的特征,Res U-net中的残差模块发挥了重要的作用.
图5 残差模块的结构Fig.5 Structure of residual module
本文的Res U-net如图6所示,其采用了4级结构,在上采样和下采样阶段,每级分别包含3个卷积层、1个最大池化层及1个跳跃连接.其中第1个卷积层与第3个卷积层中的卷积核尺寸均为1×1,第2个卷积层中的卷积核尺寸为3×3,每一级的最后一个卷积层均通过短跳跃连接的残差模块与第1个卷积层相连接.网络中的激活函数为RELU,并使用随机梯度下降对网络的训练速度优化,其Batch Size设为32.
图6 Res U-net网络结构Fig.6 Structure of Res U-net
U-net的下采样过程是个对图像逐步缩放的过程,因此在下采样结束后,图像的分辨率达到最小,这主要是由于卷积操作和池化操作造成的.本文的Res U-net网络在每一级的卷积层中将Padding设为same,以此保证卷积前后的图像尺寸不变,这种设定能减少图像因卷积而造成的分辨率缩小,减少渗出液细微特征的丢失.
本文选取交叉熵作为Res U-net网络的损失函数,其损失计算原理如式(5)所示:
(5)
其中,L表示损失,yi表示样本i的标签,正类为1,负类为0,pi表示样本i预测为正的概率,N为样本量.
本文使用了CPU为酷睿i5-8500,GPU为Nvidia Geforce GTX1080的实验平台对网络进行训练.模型训练过程中使用了Nvidia CUDA GPU并行加速平台.网络算法使用Tensorflow作为后端的Keras框架实现并进行50次迭代.其定量分析在4.1中展示,实验结果在4.2中展示.
医学上一般用阳性(P)和阴性(N)来描述病理现象和正常现象,因此视网膜图像中渗出液的区域通常用P来表示,而未含有渗出液的区域通常用N来表示.渗出液的检测结果通常有4种,即真阳性(TP)、假阳性(FP)、假阴性(FN)和真阴性(TN).TP表示被正确识别为病变的像素.FP表示被错误识别为病变的像素.FN表示被错误识别为正常的像素,TN表示被正确识别为正常的像素.根据这4个参数,可分别计算出灵敏度(Sensitivity)、特异性(Specificity)和准确度(accuracy),计算方法如式(6)、式(7)、式(8)所示:
(6)
(7)
(8)
本文对提出的算法进行统计分析和比较评估,在公开的Kaggle数据集上的检测结果如表1所示,其中本文提出的Res U-net算法的准确度、敏感性和特异性分别达到99.1%、80.3%和99.3%.在DIARETDB1数据集上的检测结果如表2所示,准确度、敏感性和特异性分别达到99.0%、89.3%和99.0%.
表1 自选数据集中对渗出的检测结果Table 1 Detection results of the exudate in the optional dataset
表2 DIARETDB1数据集中对渗出的检测结果Table 2 Detection results of exudate in DIARETDB1 dataset
受试者工作特性曲线(ROC曲线)和精确率召回率曲线(PR曲线)是常用的两种定量评价算法性能的指标.ROC曲线的横坐标为预测为正但实际为负的样本占所有负样本的比例(FPR),纵坐标为预测为正且实际为正的样本占所有正样本的比例(TPR),计算方式如式(9)、式(10)所示.ROC曲线图反映了敏感性与特异性之间的关系,曲线越靠近左上角,算法分割能力越强,一般用曲线下与横轴围成的面积(AUC)衡量.
PR曲线的横坐标为查全率(Recall),纵坐标为查准率(Precision),计算方式如式(11)、式(12)所示.PR曲线反映了精确率和召回率之间的关系,曲线越靠近右上角,算法分割能力越强,同样用曲线下与横轴围成的面积(AUC)衡量.
(9)
(10)
(11)
(12)
本文的Res U-net网络在Kaggle数据集上的ROC曲线和PR曲线如图7所示,其AUC值分别达到了0.98和0.80.
图7 ROC曲线和PR曲线Fig.7 ROC curve and PR curve
本文Res U-net检测结果及其对比如图8所示.本文与迭代200次的GAN网络[13]和KSW熵双阈值算法[8]进行了比较.结果显示,相比其他算法,本文的Res U-net可以在视盘干扰下对渗出液区域进行准确的分割.
图8中的第1行显示了kaggle数据集中一个具有挑战性的分割情况,其中视盘与渗出的亮度特征差异较小,渗出液和背景区域的对比度较差,在此情况下,GAN网络[13]对视盘进行去除后检测结果产生了较多的假阳性噪点.GA-KSW熵双阈值算法[8]同样对视盘进行了去除,但渗出液漏检率较高.在DIARETDB1数据集上,GAN网络分割结果依然出现了较多的假阳性噪点,GA-KSW熵双阈值算法则因为无法提供有效的感兴趣区域定位,导致在渗出液分割的结果中感兴趣区域边缘的背景也被判定为阳性.而本文的Res U-net可以过滤掉视盘和背景干扰,对渗出液做出较为准确的分割.
图8 检测结果Fig.8 Detection results
本文介绍了一种对眼底图像自动分析检测渗出液的计算机算法,该算法基于Res U-net网络,结合图像预处理,实现对渗出液的分割.与其他现有监督算法相比,该算法的Res U-net结构减少了原始样本数据的需求量,加强了U-net的空间一致性和长短跳跃连接对细微特征的提取,提高了模型的泛化能力.本文使用kaggle数据集和DIARETDB1数据集进行了评估,该算法在两个数据集上的准确性普遍达到99%以上.同时,与其他现有无监督算法相比,该方法在视盘抗干扰能力上具有较高的鲁棒性,极大减少了渗出液检测中预处理的工作量.本文对渗出液的检测算法可作为糖尿病黄斑病变分析的工具.