万程 周雪婷 游齐靖 沈建新 俞秋丽
1南京航空航天大学电子信息工程学院 211106;2南京医科大学第二附属医院眼科 210003
通过眼底图像筛查糖尿病视网膜病变(diabetic retinopathy,DR)等常见眼底疾病是基本且有效的方法[1-2]。随着计算机辅助诊断(computer-aided diagnosis,CAD)技术的成熟和便携式眼底照相机的普及,许多智能眼病诊断系统已应用于各类眼底疾病的筛查[3-5]。彩色眼底照片质量是眼底疾病筛查过程中的重要因素,低质量眼底照片会导致诊断系统的漏诊,甚至误诊。目前,对于眼底图像的质量分类均为优劣二分类[6-7]。据调查,在眼底图像数据库中有超过25%的图像因质量差而不能进行医学诊断[8];而在远程医疗中通过眼底照相机拍摄并上传至阅片平台的图像有近一半质量差[9]。临床中低质量眼底图像主要分为曝光不足、曝光过度、边缘模糊和镜头反光4种类型。曝光不足彩色眼底照片的整体亮度低、难以识别血管及病灶;曝光过度眼底图像的对比度低、白色调严重;边缘模糊眼底图像的分辨率低、血管及视盘边界不清晰;镜头反光眼底图像有光斑,影响病变部位的诊断。与图像质量二分类相比,图像质量多分类使医生进一步明确低质量图像的类型,对后期及时修正拍摄错误并提高眼底图像质量有重要的指导意义,同时也为CAD提供质量可控的图像,提高疾病筛查的准确率。因此,眼底图像的质量优劣二分类已经不能满足目前CAD的要求,对图像质量进行多分类是必要且紧迫的任务。传统眼底图像质量分类方法主要参考2类参数:一是通用图像质量参数,如对比度、清晰度等;二是结构性质量参数,如视盘和黄斑的可见度等[6-7,10-11]。传统图像质量分类方法需要进行复杂且容易出错的解剖标志分割,并不能够反映影响图像质量的各种因素。近几年来,深度学习方法因其更高的准确性以及更好的鲁棒性被广泛应用于眼底图像分类。本研究拟设计一种基于深度学习的彩色眼底照片质量多分类方法,并对其效率进行评估。
纳入EyePACS[12]数据集和PD(proprietary dataset)数据集的彩色眼底照片。EyePACS数据集是Kaggle在2015年举办的一个机器学习竞赛中使用的数据集,旨在为DR等级分类设计一种全面的眼底图像诊断系统,包含88 702张彩色眼底照片,其中训练集35 126张图像,测试集53 576张图像,图像的分辨率为433×289~5 184×3 456,图像拍摄质量差异较大。PD数据集由南京医科大学附属明基医院于2018年7月收集的眼底照片构成,图像分辨率为1 620×1 444像素。临床医生根据眼底图像的成像质量将其大致分为质量较好、曝光不足、曝光过度、边缘模糊和镜头反光5类(图1)。在多分类任务中,训练数量少的类别很难具有代表性,无法获得准确的分类结果。为使每一类数据都被充分考察,采用均衡数据训练多分类网络。在训练集中,每个类别包含1 000张图像,其中800张选自EyePACS数据集,200张选自PD数据集。在测试集中,每个类别包含500张图像,其中400张选自EyePACS数据集,100张选自PD数据集。训练集总计5 000张图像,测试集总计2 500张图像。数据集和训练集中眼底图像均由专业医生筛选足够数量并标注图像质量等级标签。将同时具有多种分类特征的彩色眼底照片分至多个对应类别进行训练。
图1 彩色眼底照片质量分类 A:质量较好 B:曝光不足 C:曝光过度 D:边缘模糊 E:镜头反光Figure 1 Quality classification of color fundus photograph A:High quality B:Underexposure C:Overexposure D:Blurred edges E:Lens flare
原始彩色眼底照片经过预处理后输入卷积神经网络(convolutional neural network,CNN),网络输出眼底照片质量的5分类预测结果。首先,将数据集中的彩色眼底照片进行归一化处理和数据扩增操作;然后,使用迁移学习的方法训练主流CNN(VGG[13]、GoogLeNet[14]、ResNet[15]、DenseNet[16])对训练集图像进行质量分类,并从中选出分类性能最优的模型。在此基础上结合One-Cycle策略,使用先增再降的学习率训练网络,由此提出ResNet50-OC网络。最后,将经典CNN与ResNet50-OC网络的分类准确率、Micro F1值以及训练轮数进行对比。基于深度学习的彩色眼底照片质量分类系统总体框架如图2所示。
图2 基于深度学习的彩色眼底照片质量分类流程图 CNN:卷积神经网络Figure 2 Flow chart for color fundus photograph quality classification based on deep learning CNN:convolutional neural network
1.2.1眼底图像预处理 (1)归一化处理 图像输入CNN之前需对其尺寸进行归一化:①对不同眼底图像分别选取适当阈值(5~10)进行二值化,获得图像中的圆形区域半径R;②对眼底图像进行裁剪,得到一个以圆形区域圆心为中心、边长为2R的正方形图像;③将得到的正方形眼底图像统一缩放至512×512分辨率(图3A,B)。(2)数据扩增 数据扩增采用以下任意2种方法的组合:①对图像随机进行水平和垂直方向的翻转;②对图像进行随机角度旋转,旋转后的留白部分使用黑色像素点代替;③将图像随机放大1~1.1倍,再在放大的图像中随机裁取原始图像大小的区域;④使用对数函数调整眼底图像的亮度(图3C)。对于上下被截断的不完整眼底图像,可先将裁减部分以黑色填充,再进行与完整眼底图像相同的裁剪缩放及数据扩增(图3D~F)。
图3 眼底图像预处理结果 A:完整眼底图像原图 B:图A裁剪和缩放 C:图B放大和旋转 D:不完整眼底图像原图 E:图D裁剪和缩放 F:图E翻转和亮度调整Figure 3 Color fundus photograph preprocessing results A:Complete original fundus imageB:Cropped and scaled image A C:Scaled and rotated image B D:Incomplete original fundus image E:Cropped and scaled image D F:Flipped image E with brightness adjusted
1.2.2迁移学习 把主流CNN用于眼底照片质量多分类任务,不同的网络模型均使用ImageNet数据集上对应的预训练权重对其进行参数初始化。训练过程中采用学习率区间对网络进行微调操作,即对网络初始层采用较低的学习率,对网络输出全连接层采用较高的学习率[17]。
1.2.3分类模型的选择 权衡网络模型分类的准确性、模型参数数量和计算复杂度选择最适合的眼底照片质量分类网络模型。选择5种在当前分类任务中表现良好的网络模型(VGG19、Inception-Resnet-V2、ResNet34、ResNet50、DenseNet)进行对比实验。采用预训练模型对训练集图像进行分类,且对输入不同CNN模型的训练图像都进行相同的预处理和数据扩增,即在搭载4块具有NVIDIA TITAN Xp的工作站上用PyTorch框架进行所有训练和测试,每块NVIDIA TITAN Xp显卡具有12 GB GPU显存。
1.2.4One-Cycle策略 采用One-Cycle策略[18]对ResNet50分类模型进行训练,训练过程中的最大学习率通过Learning Rate Finder[19]方法获得,从初始的小学习率开始训练,每个小批次后指数级提高学习率,直到网络训练过程的损失函数开始爆炸,选取损失函数爆炸前下降斜率最大的点作为最大学习率。在One-Cycle策略的最后阶段,再将学习率缓缓减小到0,同时使动量的变化与学习率的变化相反,即在增加学习率的同时减少动量,在减少学习率的同时增加动量(图4)。
图4 学习率及动量随迭代次数变化示例 A:学习率的变化 B:动量的变化Figure 4 Examples of learning rate and momentum changing with the number of iterations A:Changes in the learning rate B:Changes in the momentum
眼底照片质量五分类任务中,ResNet50网络准确率和Micro F1值均最高,分别为98.76%和98.78%,均高于其他4种CNN模型(表1)。因此选择ResNet50作为本次彩色眼底照片质量分类研究的主网络。
表1 不同CNN模型在彩色眼底照片质量五分类任务中的效果(%)Table 1 Results of different CNN models in classification tasks of five types of color fundus photograph quality(%)CNN模型方法准确率Micro F1VGG1993.1593.22InceptionResnet-V297.1197.23ResNet3496.5396.56ResNet5098.7698.78DenseNet96.9997.01 注:CNN:卷积神经网络 Note:CNN:convolutional neural network
ResNet50网络在50轮训练后准确率为98.76%,Micro F1值为98.78%。引入One-Cycle策略的ResNet50-OC网络15轮训练后准确率达98.77%,稍高于ResNet50网络,Micro F1值与ResNet50网络相同(表2)。
表2 ResNet50-OC和ResNet50网络分类效果Table 2 Classification results of ResNet50-OC and ResNet50 networks分类模型方法Epoch(轮数)准确率(%)Micro F1(%)ResNet505098.7698.78ResNet50-OC1598.7798.78
彩色眼底照片是筛查和诊断眼底疾病的关键,诊断的效果在很大程度上取决于图像的质量。本研究采用深度学习ResNet50-OC模型实现对彩色眼底照片的质量分类。质量较好的图像可以直接用于医生或眼科智能诊断系统进行疾病筛查、病种分类、病变分级等医学诊断。对部分低质量类型的图像进行对应处理可提高图像质量,从而获得能够诊断的图像,如提高曝光不足图像的亮度和对比度,降低曝光过度图像的亮度并提高其对比度,对边缘模糊的图像进行锐化处理;对于严重影响质量的图像,如屈光介质混浊导致的眼底图片模糊、部分病灶区域被镜头反光光斑覆盖的图像,需及时反馈医师进行重新拍摄。通过本研究的彩色眼底照片质量多分类反馈信息,医生可即时掌握照片质量信息,根据低质量照片的分类对眼底照相机操作和设置做出调整,避免更多低质量眼底照片的产生,有效提高图像的质量和诊断效率,对缺乏高性能智能诊断系统的基层医院有重要意义。在CAD系统前可以引入彩色眼底照片质量多分类网络并对不同质量的照片进行相应的预处理。将预处理后的眼底照片送入CAD进行诊断可以排除照片质量对诊断的干扰,提高诊断的准确率,降低漏诊率和误诊率。
本研究使用的深度学习方法可以在深层的CNN中提取图像潜在的高级特征,避免了传统方法中结构特征的手工设计。本研究对比当前深度学习主流分类网络,最终选择准确率和Micro F1表现优越的ResNet50作为眼底图像质量五分类网络。本研究采用迁移学习方法把预训练的网络参数用于本研究中模型训练的初始化,避免了大量标记工作的同时使分类模型具有更优越的性能。在深度学习网络模型的训练过程中,学习率、动量和权重衰减率是至关重要的超参数。本研究采用One-Cycle策略在训练过程中使用先升再降的学习率。对比引入One-Cycle策略前后ResNet50网络,即ResNet50和ResNet50-OC的训练过程,可以看到One-Cycle策略大大加快了网络的训练速度。
本研究选择的网络和使用方法仍存在许多可以改进的地方。我们接下来可以尝试使用更加简洁的网络框架,如MobilNet等轻量级模型,在保障分类准确率的同时大幅度降低模型运行的硬件成本,使分类模型可以更加广泛地应用到各种不同的设备上,包括但不限于手持眼底照相机等便携设备。我们还可以尝试更多的训练参数调节技巧,在加速网络训练的同时尝试提高网络的分类性能,得到各方面更优的眼底图像多分类模型。
综上所述,本研究提出了一种CNN的彩色眼底照片质量五分类方法。本研究以迁移学习方法为基础,用ResNet50网络实现图像的五分类并在准确率和Micro F1指标上取得了优越的表现,并在训练过程中引入One-Cycle策略、切片学习率等方法通过修改学习率、动量和权重衰减率等因素得到最适于眼底图像质量分类的ResNet50-OC网络模型。实验结果验证了使用One-Cycle策略优化的网络模型在训练过程中可以更快达到拟合,且在分类性能上表现更优,能够更加准确地对眼底图像的质量做出分类。然而,本研究仍然存在一些不足之处,如根据单次实验结果选择模型具有一定的不确定性,后期可以尝试多次实验得出95%的置信区间或设置随机数生成器使同样数据训练同一网络时得到稳定的结果。
利益冲突所有作者均声明不存在任何利益冲突