彭志浩 陈 辉 张欣鹏 武继刚
(广东工业大学计算机学院 广东 广州 510006)
糖尿病性视网膜病变是一种慢性代谢性疾病,会导致患者的视网膜毛细血管发生变化出现一系列眼底病变,早期病变表现为微动脉瘤、出血点和硬性渗出物[1]。DR已成为导致20岁~70岁人群失明的主要原因,及早对早期病变进行筛查对治疗DR具有重要意义[2]。在眼底图像中,微动脉瘤表现为小尺寸的类圆形斑点,出血点表现为形状不规则的斑点,硬性渗出物表现为高亮区域,如图1所示。临床中,医生多利用彩色眼底图像统计病变数量并对DR进行初步诊断,但该方式既耗时又费力。因此,需要借助计算机视觉和图像处理技术实现对三类早期病变的自动检测。目前,现有检测方法主要分为两类:传统检测方法和基于深度学习的检测方法。
图1 眼底图像中的DR早期病变
传统检测方法主要包括三个阶段,分别是数据预处理、候选区域提取和目标分类。针对检微动脉瘤检测,Rosas等[3]首先利用低帽转换抑制眼底图像中较亮的区域,然后利用形态学检测微动脉瘤。Ganjee等[4]首先采用马尔可夫随机森林对眼底图像进行初步筛选得到候选区域,再提取候选区域的形状、灰度以及高斯特征,但该方法并不适用于对比度低和噪声多的眼底图像。为弥补这一不足,Datta等[5]利用模糊统计技术有效降低了眼底背景噪声的影响。Sreng等[6]采用最大熵阈值与canny算子实现了对边缘清晰微动脉瘤的检测。Zhou等[7]提出了一种基于字典学习的检测方法,通过生成具有表征能力的语义关系准确检测微动脉瘤。Dai等[8]通过分析目标的局部梯度特性分割出出微动脉瘤的候选区域,再利用RUSBoost分类器对这些候选区域进行分类。Dashtbozorg等[9]提取了一组局部收敛的形状特征,并将该特征与形态学、灰度等特征进行融合,并采用RUSBoost分类器实现微动脉瘤的精确分类。针对出血点的检测,García等[10]提取候选目标的颜色和形状等特征,并采用多层感知机、径向基函数、支持向量机以及神经网络对每类特征进行分类,最后使用投票机制得出最终分类结果。Raja等[11]利用局部直方图均衡化方法先对眼底图像进行增强,再使用Gabor变换和SVM分类器对出血点进行分类。Pandey等[12]通过提取病灶区的面积、离心率和周长三种特征初步定位出血点。Kaur等[13]采用形态学算法初步检测出血点,然后设计基于随机森林的分类器对出血点进行精确分类。为了避免眼底图像中血管的干扰,Zhou等[14]依据血管的连续性利用Hessian矩阵先对眼底血管进行分割并移除,再利用支持向量机(Support Vector Machine,SVM)实现对出血点的精确分类。Srivastava等[15]提出了一种改进的Frangi滤波器,并利用Hessian矩阵区分微动脉瘤和血管。Popescu等[16]提出一种投票机制,对图像的每个区域进行投票,将筛选出的高票数区域作为出血点的感兴趣区域(Regions of Interest,ROI),降低组织背景对目标分类的影响。Mumtaz等[17]首先利用形态学算法消除背景噪声,克服光照不均,然后分割并移除血管以降低其对出血点检测的干扰。针对硬性渗出物的检测,Kayal等[18]利用中值滤波对图像进行降噪并移除视盘,并通过阈值分割实现对硬性渗出物进的分类。Haloi等[19]提出基于高斯尺度空间和数学形态学的硬性渗出物检测方法。Asha等[20]在预处理阶段使用HSI转换、局部对比度增强、直方图均衡化和模糊C均值聚类对图像进行增强,初步检测硬性渗出物,然后朴素贝叶斯分类器对候选区域实现分类。Rokade等[21]提出了基于Haar小波变换的方法初步定位目标区域,然后采用KNN(K-Nearest Neighbor)对候选区域进行分类。Singh等[22]通过提取灰度和形态学特征,实现了对硬性渗出物的准确检测。Rajan等[23]通过提取硬性渗出物梯度方向特征,实现对硬性渗出物的检测。Amin等[24]利用Gabor滤波器对眼底图像中的硬性渗出物进行增强,然后提取几何特征实现硬性渗出物的精确检测。Liu等[25]首先分割出图像中的血管和视盘,再利用随机森林对渗出物进行初步定位并提取纹理特征,最后采用分类器实现对硬性渗出物的准确分类。虽然上述方法对单类病变的检测取得了不错的效果,但人工提取特征难度较大、特征表达能力低,当存在噪声干扰时,该类特征难以有效地描述待检测目标的特性。
为了能够同时检测三类DR早期病变,Tan等[35]提出了一种了10层卷积神经网络模型实现了对微动脉瘤、出血点、硬性渗出物的检测。为了能够定位眼底图像中的不同目标,Gondal等[36]提出一种卷积神经网络模型对目标进行定位并提取候选区域。为了寻找在预测中每个待检测目标的关键像素点,Quellec等[37]提出利用卷积神经网络提取出对分类起关键作用的目标像素块,再提取目标像素块的相关特征实现最终分类。Khojasteh等[38]提出了一种改进的卷积神经网络模型,首先利用CLAHE(Contrast Limited Adaptive Histogram Equalization)算法增强眼底图像的对比度,然后将增强结果作为训练样本输入到网络模型中,最终实现眼底病变的多分类。
虽然基于CNN的检测方法有效地提升了眼底病变检测的准确率,但针对DR多类病变的同时检测,实验结果仍然不理想,尤其当提取微动脉瘤和小出血点特征时,池化运算会导致大量的信息丢失,降低分类精度。本文检测的检测目标包括微动脉瘤、出血点、硬性渗出物,均属于眼底图像中的小目标。与自然图像相比,该类小目标具有特殊性,主要包括:(1) 正负样本数量的极不均衡,即负样本的数量远远超过正样本;(2) 目标尺寸较小,与小目标具有相似特征的噪声点均会对检测结果造成影响,降低检测精度;(3) 眼底图像中某些结构与三类小目标的类间差异较小,如细小血管与微动脉瘤、视盘与硬性渗出物、小出血点与微动脉瘤等,均会干扰预测模型对目标的识别与检测。
为了解决上述问题,本文提出了一种反卷积神经网络模型,用反卷积层代替池化层,通过转置卷积核以及“0”填充操作,恢复在卷积操作中丢失的有用信息,提高特征表达能力,增加类间差异,适用于图像小目标的检测。此外,本方法使用RMSprop算法对网络参数进行优化更新可有效地加快网络的收敛速度。实验结果表明,本方法能够准确地检测DR图像中的多种早期病变。
本文提出的反卷积神经网络模型如图2所示,共包含4个卷积层、4个反卷积层、2个全连接层和1个Softmax层。首先,利用卷积层提取目标的深度特征。然后采用反卷积层恢复在卷积运算中丢失的有效信息,利用全连接层提取目标的深层特征,提高特征的表达能力,最后将Softmax层作为分类器对眼底病变进行分类,网络参数如表1所示。
图2 网络结构
表1 参数设置
为了提高眼底图像的对比度和亮度,首先对RGB彩色眼底的绿色通道进行Gamma校正。由于红色通道(R)包含的病变信息相比于蓝色通道(B)和绿色通道(G)通道较少[39],因此本文采用G通道、B通道和Gamma校正结果构建训练集和测试集,最后将三个通道的融合结果作为最终的分类结果F:
F=FG∪FB∪FGamma
(1)
式中:FG表示G通道的分类结果;FB表示B通道的分类结果;FGamma表示Gamma通道的分类结果。
由于微动脉瘤、小出血点尺寸较小而且可训练样本较少,为了防止在网络在训练过程中出现过拟合并加快训练的收敛速度,降低决在训练优化过程中的过度振荡,选用RMSprop算法对网络参数进行优化[40-41]。网络损失函数定义为:
(2)
(3)
(4)
(5)
(6)
(7)
式中:g2是第l层之前梯度总和的二次方运算;β是指数加权平均值并设置为0.98。
本方法在配有Intel Core i7- 6700、工作频率为3.40 GHz的PC机上进行实验,并使用深度学习框架Caffe[42],在MATLAB R2016b平台上搭建网络。
本文首先采用眼底公共数据库DIARETDB1(DB1)[43]进行训练与测试。该数据库包含89幅彩色眼底图像,由眼底相机以50°的视场角度拍摄,图像分辨率为1 500×1 152,由4名眼科专家在该数据库上分别对三类早期病变进行标注,构建概率真值图,图中的区域亮度越大,判断为病变的概率越大。因此,本实验将标注置信率大于50%的区域作为病变区域,并将70%的数据用于训练,30%的数据用于测试,训练集和测试集的数据划分如表2所示。本方法将微动脉瘤、出血点和硬性渗出物三类病变区域以外的区域定义为“背景”,将包含微动脉瘤、出血点或硬性渗出物的样本作为正样本,将背景区域作为负样本。
表2 实验数据集
图3为本方法对三类病变的检测结果,其中:(a)、(b)、(c)为DB1数据库中的原始彩色眼底图像,(d)、(e)、(f)为针对三类病变的检测结果。在原始图中,使用三角形对微动脉瘤、出血点和硬性渗出物进行标注;在结果图中,将分类正确的目标用圆圈标注,分类错误的目标则用叉号标注。具体检测结果如表3所示,本文提出的方法能够有效地检测出眼底图像中的大部分病变,但仍存在少量漏检和误检。
(a) 原始图1 (b) 原始图2 (c) 原始图3
(d) 结果图1 (e) 结果图2 (f) 结果图3图3 检测结果
表3 检测结果
参加训练的图像样本(微动脉瘤、出血点、硬性渗出物)尺寸大小均保持一致。构建样本集时,选择不同的样本尺寸会对检测结果产生一定程度的影响。样本尺寸过大会增加计算量,计算时间也随之增加;反之,如果样本尺寸过小,则无法包含足够的目标信息,难以提取足够的特征。为了选取最佳的训练样本尺寸,本文分别对不同尺寸的样本集进行实验,实验结果如图4所示。结果表明,当样本尺寸(即像素)为33×33时,检测准确率最高。因此,本文选取33×33为样本尺寸。
图4 不同样本尺寸的检测准确率
为了验证网络参数优化算法RMSprop的性能,本文将RMSprop算法和随机梯度下降(Stochastic Gradient Descent,SGD)算法分别在DB1数据库上进行实验并统计两种算法的损失曲线,如图5所示。可以看出,SGD对应的损失函数曲线在第800次迭代时损失值为0.4,而RMSprop对应的曲线在第90次迭代时损失值就已经降至0.4,相比于SGD算法,RMSprop算法显著提升了训练过程的收敛速度。同时,RMSprop在第2 000次迭代时损失值已趋近于0,而SGD在第2 000次迭代时损失值仍为0.3,由此可见RMSprop算法收敛速度更快。
图5 损失曲线
此外,为了评价该方法的检测性能,将灵敏度(Sensitivity)和准确率(Accuracy)作为评价标准。
(8)
(9)
式中:TP表示预测正确的正样本数量;FN表示预测错误的正样本数量;FP表示预测错误的负样本数量;TN表示预测正确的负样本数量。本文比较了采用RMSprop和随机梯度下降(Stochastic Gradient Descent,SGD)两种方法优化后的网络模型分别对三类病变的检测灵敏度,如表4所示。采用SGD算法优化的网络针对微动脉瘤、出血点、硬性渗出物的检测灵敏度分别为0.792、0.919、0.956。而采用RMSprop算法得到的灵敏度分别为0.917、0.970、0.994,均优于SGD算法,特别是针对微动脉瘤的检测灵敏度提升尤为显著。因此,RMSprop算法更适合本文方法的网络参数优化。
表4 优化算法性能对比
为了验证反卷积层的作用,本文在含池化层的网络中进行相同的多目标检测实验,其中反卷积层替换成最大池化层(Max pooling),如图6所示。同时,本文对比了不同方法在DB1数据库上的实验结果,如表5所示。可以看出,本文方法的灵敏度和准确率均要高于含池化层网络,尤其是对微动脉瘤和出血点,同时实验结果也高于其他四种方法。这不仅表明了反卷积层取代池化层后对检测性能提升的有效性,而且体现出本方法在多目标分类上的高效性。
图6 含池化层网络结构
表5 检测结果
针对三类病变检测结果的对比结果如表6至表8所示。表6、表7分别为硬性渗出物和出血点检测方法的对比结果。可以看出,本文方法对硬性渗出物和出血点的单个目标分类效果均优于已有方法,包括传统方法和深度学习方法。表8为微动脉瘤检测方法的对比结果,Dai等[41]提出的检测方法灵敏度略高于本方法,但本方法在准确率上优于该方法。
表6 硬性渗出物检测方法对比
表7 出血点检测方法对比
表8 微动脉瘤检测方法对比
本文采用FROC(Free-Response Operating Characteristic)[44]曲线评价方法的整体性能,FROC曲线描绘了灵敏度与平均每幅图像中的误检数量(False Positives per Image,FPI)之间的关系。图7和图8分别为本方法与含池化层网络检测三种DR早期病变的FROC曲线。可以看出,相比于含有池化层的网络,本方法针对三类病变的检测,均在较小的FPI值时就达到了较高的灵敏度,检测效果优于含池化层网络。
图7 本文方法FROC曲线
图8 含池化层网络FROC曲线
此外,为了充分验证本文方法的性能,选取天津医科大学代谢病医院获取的临床数据集进行训练和测试,共包括300幅眼底图像,分辨率为2 180×2 000,样本集构建如表9所示,检测结果如表10所示,本方法针对三类病变的分类准确率为0.991,对应的FROC曲线如图9所示。从检测结果可以看出,本文方法在检测临床数据上也获得了较高的准确率和灵敏度,并且误检较低。因此,本文方法可适用于临床的DR诊断和评级。
表9 临床数据集
表10 临床数据测试结果
图9 本文方法在临床数据集上的FROC曲线
本文提出了一种反卷积神经网络模型,采用Gamma校正实现了对眼底图像绿色通道的对比度增强,在训练阶段采用RMSprop算法优化模型参数,降低网络训练时间,加快收敛速度,并显著提高了对三类病变的检测精度。为验证本方法的分类性能,采用DB1公共数据库和天津医科大学代谢病医院的临床采集的眼底图像作为训练集和测试集。实验结果表明,针对DB1公共数据库,本文方法能够准确地检测出眼底图像的DR早期病变,检测灵敏度和准确均优于已有方法。同时,针对临床数据集中的三类病变,本文方法同样获得了较高的检测灵敏度和准确率,大大降低了误检率和漏检率。