实验设计与结果分析
(一)实验数据集
使用Kaggle DR眼底图像质量数据集验证所提出方法的有效性。训练集包含2 894个样本,测试集包含2 170个样本。对于训练集,有1 607个样本标签为1,1 287个样本标签为0。数据扩增后,共有26 046幅眼底图像用于训练卷积神经网络。测试集包含1 085个标签为1的样本和1 085个标签为0的样本。测试集中质量好和质量差的样本数为1∶1。对测试集样本不做数据扩增处理。
(二)训练策略
本算法通过微调的方法训练网络。如果从头开始训练网络,网络中参数的初始化值是随机的。由于CNN中参数量很大,我们提供的样本数量较小,因此从头开始训练网络会使得模型的泛化能力较差。我们知道浅层神经网络提取的是轮廓、边缘之类的基本特征,深层网络提取的是更加抽象的特征,而全连接层可以对整体的特征进行整合从而产生评估结果。通过微调的方法,用一个在较大数据集上训练好的网络参数初始化我们的网络权重。虽然数据集之间存在较大差异,而且学习任务也不相同,但其较浅层的卷积层所提取的特征都为边缘和轮廓的基本特征。这些层的网络参数在大的数据集上已经被很充分地训练过了,可以在我们的学习任务中直接使用。我们去除了最后一个全连接层,并用一个具有2个输出神经单元的新的全连接层代替。在学习率的设置上,将最后一个全连接层的学习率提高了10倍,新的全连接层参数更新会更快,以便对新的任务更好地学习。此外,前两个卷积层的参数学习率为0,对前两层的卷积层参数不做更新,其余每层的学习率都保持不变。本算法使用Image Net上训练好的网络来初始化权重,使网络具有良好的初始设置。
对于Alex Net、Goog LeNet、VGG16、Res Net-50和Inception-Res Net-V2网络结构,训练数据直接输入到具有预训练权重参数的网络中。对于输入数据的尺寸,Alex Net的为227×227,其他网络为224×224。我们提出的FA-Net网络,其输入数据大小为224×224。此外,我们使用随机梯度下降来优化网络的损失函数,训练过程在安装有NVIDIA-GTX1080 GPU的工作站上进行。使用的深度学习平台为Tensor-Flow,数据预处理等过程调用了OpenCV工具包。
(三)实验结果与分析
首先,将五种经典的CNN(Alex Net、Goog LeNet、VGG、ResNet和Inception-Resnet-V2)应用于眼底图像质量分类任务。这些CNN架构分别在2012年、2013年、2014年、2015年和2016年提出,并在诸多领域取得了优异的成果。对于所有的网络都采用了图像归一化预处理、数据扩增和微调训练的方法。
表4-3为基于不同卷积神经网络模型得到的眼底图像质量评估的ACC和AUC。从实验结果可以看出,通过微调方法训练的网络都能够具有较好的性能,这表明了从自然图像分类任务中学习到的知识可以有效地迁移到视网膜图像质量分类任务上,虽然二者之间的数据集存在一定差异。不同经典CNN的实验结果对比可以看出,VGG19对于眼底图像质量评估任务有着更好的性能,实现了97.21%的分类准确率,略优于VGG16。
表4-3 基于CNN的眼底图像质量评估算法的结果
实验中的所有深度学习算法都是基于注意力机制的,综合考虑了影响眼底图像质量的多个因素,由于不依赖人工设计的特征,所以基于深度学习的眼底图像质量评估方法具有更好的泛化性能。但是这些CNN模型没有对人类的视觉注意力加以考虑。例如,对于眼底图像质量的判断,人类会更加关注图像中的病变区域、血管等是否清晰无遮挡。FA-Net模型将人类的视觉注意机制引入到CNN体系结构中,优于现有方法,实现了97.65%的最高分类准确率。与单纯的VGG19相比,高出0.44%,实验结果验证了加入注意力网络的有效性。FA-Net网络可以增加对视网膜图像中前景区域特征信息的学习,更适用于眼底图像质量评估。
FA-Net网络和基于人工设计特征的非深度学习算法的ACC和AUC值如表4-4所示。实验结果可以看出,基于深度学习的方法要优于传统的方法。图4-15为三种不同方法的ROC曲线图,红色曲线为FA-Net的ROC曲线。蓝色和绿色曲线为两种传统方法的ROC曲线。传统的方法通过人工设计特征,不需要大的数据集训练网络,但这种手工设计的特征很难泛化到新的数据集。并且容易忽略眼底图像质量评估中的结构图像质量参数,即眼底图像中的基本结构如血管、视盘、黄斑等主要区域的清晰度。从ROC曲线中可以看出FA-Net具有更好的性能,取得了97.65%的分类准确率和0.995的AUC值。
表4-4 FA-Net网络分类结果与传统算法评估结果
图4-15 不同眼底图像质量评估算法的ROC曲线图
此外,为了评估数据归一化和数据扩增对眼底图像质量评估模型性能的影响,使用Goog LeNet作为默认的模型框架,分别测试其去除数据归一化和数据扩增后的分类准确率。在所有CNN中,Goog LeNet的参数量最小,同时具有相对较高的准确率。表4-5为Goog LeNet、Goog LeNet-NP(没有数据归一化的模型)、Goog LeNet-NA(没有数据扩增的模型)的准确率。在眼底图像归一化处理的帮助下,模型的精度提高了0.92%,验证了归一化处理的有效性。由于不同眼底图像光照差异较大,因此眼底图像归一化预处理是必要的。此外,数据扩增对模型也有一定的提升作用,数据扩增和没有数据扩增的分类准确率分别为97.04%(GoogLeNet)、96.49%(GoogLeNet-NA)。
表4-5 GoogLeNet、GoogLeNet-NP、GoogLeNet-NA的分类准确率
图4-16显示了一幅眼底图像中不同区域位置所对应的不同权重。0代表重要性最低,用深蓝色表示,255代表重要性最高,用深红色表示。从图4-16b中可以看出,一幅眼底图像中大部分区域的权重非常低,权重较大的区域所占面积是相对较小的。这也符合人类的视觉注意力机制。在DR患者的眼底图像中,具有较大值的权重主要位于血管和病变区域(如微动脉瘤和渗出物),视盘、黄斑等主要眼结构也有较大权重值,而人类不关心的视网膜图像的背景区域权重值很小,代表其被忽略,这也正是我们所期望的。这表明了基于前景提取的注意力网络结构的有效性。
图4-16 眼底图像不同区域对应的权重图
深度神经网络的训练需要较长的时间,一旦模型训练完毕,便可对未知的数据进行预测,而预测过程是十分快速的。以网络复杂度最高的Inception-ResNet-V2为例,其预测一张图片所需要的时间约为0.8秒。所以,通过卷积神经网络进行眼底图像质量评估能够满足实时性的要求。而传统的方法需要先进行特征提取然后再通过分类器得到分类结果。由于所采用的分类器计算量较小,所以传统方法预测所需的时间主要取决于特征提取算法的复杂度。一幅图像HOG特征提取的时间约为0.9秒,显著图特征提取的时间约为0.3秒。