基于深度迁移学习的老年人群眼底疾病辅助诊断研究

2022-10-18 06:32杨康赵太宏
北京生物医学工程 2022年5期
关键词:眼底病深度分类

杨康 赵太宏,2

0 引言

眼底是眼球内后部组织,眼底病则是一系列眼后段疾病的总称。眼底病有很多种,老年人常见的眼底病主要包括老年性黄斑变性、高度近视引起眼底病变和糖尿病视网膜病变等。眼底疾病是导致视力不可逆损害的主要病因[1]。老年性黄斑变性是老年人群首位致盲性眼部疾病[2]。高度近视引起的眼底病变已成为我国第二大致盲性疾病[3]。糖尿病视网膜病变是糖尿病的主要并发症之一。近几年我国开展的一些眼病流行病学调查[4-7]显示,随着我国经济的迅速发展以及人口老龄化进程的加快,老年人眼底病的发病率、患病率以及致盲率逐年增多。眼底病已经严重威胁我国老年人的健康和生活质量,也是我国防盲行动的重点。目前,已有眼科公共卫生专家呼吁为老年人开展定期眼底筛查[8]。基层社区是最适宜开展常态化眼底筛查的主体单位,但由于基层社区专业眼科医生较少,对眼底病的诊断能力不足,导致我国基层老年人群眼底筛查普及率较低。

随着人工智能技术的发展,深度学习技术已经在眼科学领域广泛使用。与传统的人工识别特性相比,深度学习技术通过端对端的方式实现更好的诊断性能。深度学习主要包括卷积神经网络(convolution neural network,CNN)、循环神经网络和深度信念网络等[9]。CNN广泛应用在医学图像分类、检测、分割和配准等多种任务中,在眼底疾病诊断方面也有较多的成功应用,如Cen等[10]在近25万张眼底图像中使用传统的深度学习方法搭建CNN模型实现对糖尿病视网膜病变、老年性黄斑变性和青光眼等多种眼底疾病的自动诊断。Son等[11]在10万多张眼底图像中构建CNN网络,应用于眼底出血、渗出物和青光眼等多种眼底病的分类诊断。上述研究都是使用传统的深度学习方法在海量标记眼底图像中从零开始完整建立CNN网络模型。这种完整训练模型的方法需要依赖海量的数据。但是,对于大部分医学研究者而言,获得如此海量标注医学图像是非常困难的。因此,在少量数据集下构建分类效果较好的深度学习算法具有重要现实意义。

迁移学习是数据科学界一种强大的研究方法,是一项允许对现有模型算法进行微调,以应用于新领域或新功能的技术[12]。该方法主要是通过迁移已学到相关任务的知识来改进新任务的学习过程,本质上就是两个不同领域的知识迁移过程。CNN的底层是通用性特征,中高层是抽象的高级特征,而最后连接层和输出层通常是特定任务的相关特征。迁移学习可根据CNN分类任务的特点,选择性将预训练的不同层迁移到目标任务中。迁移学习特别适用于高度专业化但数据集规模较小的深度学习研究,可较大程度地减少模型构建对数据量的依赖。在医学图像领域,迁移学习可缓解带标签的医学图像较少的问题[13]。深度迁移学习可实现在小样本数据集中构建分类效果较好的诊断模型。

为此,本文提出使用深度迁移学习方法在基层社区收集的小样本眼底图像中构建老年人群眼底病的分类辅助诊断网络模型,应用于老年人常见眼底病和无异常2种类别的彩色眼底图像自动分类,期望可辅助提高基层社区对老年人群眼底病的诊断能力,从而不断提升基层社区对眼底疾病的健康管理水平。

1 材料和方法

1.1 数据资料

收集2020年7月至2021年5月在南京市秦淮区石门坎社区卫生服务中心体检的60岁以上老年人群眼底图像共2 048张。该批眼底图像由南京市秦淮区石门坎社区卫生服务中心1名眼科医师使用日本尼德克公司NIDEK AFC-330免散瞳自动眼底照相仪器拍摄。拍摄后的眼底图像经南京市第一医院眼科2名副主任医师交叉阅片诊断,其中眼底病变的图像有1 192张,无异常的眼底图像有856张。眼底病主要包括老年性黄斑变性、高度近视引起眼底病变和糖尿病视网膜病变。

1.2 研究方法

采集的原始眼底图像首先经过预处理筛选操作,然后通过迁移学习方法训练优化CNN,最终构建眼底病和正常2种类别的分类诊断模型。同时,为了选用最适宜作为眼底病分类的诊断网络模型,本文选用目前在医学领域广泛使用的8种CNN模型进行眼底病的特征提取,然后使用迁移学习的方法完成网络模型的训练。

1.2.1 图像预处理

(1) 收集的彩色眼底图像首先筛选处理。数据集中部分图像清晰度严重失衡,保留这些图像会增加负样本的比例从而影响最终的模型准确率。因此,将原始眼底图像中曝光过度或不足、边缘模糊和眼底血管模糊不清等图像去除。本次处理去除458张眼底图像,其中正常眼底图像311张,眼底病变147张。

(2) 原始眼底图像包括大面积的黑色区域,这些黑色区域不仅增加网络训练的计算量,而且不利于后期的网络优化。通过一个算法将所有眼底图像的四边裁剪固定数量的像素,从而去除图像周边的黑色区域。同时将原始的眼底图像分辨率(2 336×1 752)缩小到标准值(497×498),既满足所有网络模型的输入要求,同时也减小整个模型构建过程的计算量。

(3) 对比度调整,为提高最终网络模型的性能,对部分曝光过高或不足的眼底图像进行对比度调整,通过图像处理的非线性校正函数实现这一目标,其数学表达公式如下:

θ=(I/255)γ×255

(1)

式中:θ是图像校正后像素值;I是原图像素值;γ是常数。

从式(1)可看出,调整γ参数可调整图像的不同对比度。通过算法生成多个不同γ的图像,最终将清晰度最高的图像纳入研究。

预处理前后眼底图像对比见图1。本研究通过预处理操作,最终纳入1 588张眼底图像进行分析,其中正常545张,眼底病变1 045张。

图1 眼底图像预处理前后对比

1.2.2 网络模型训练

在搭建CNN网络过程中,参数量越多,网络训练的时间越长,而且从头开始训练一个CNN网络往往会遇到过拟合情况。迁移学习的引入可以通过选择泛化能力强的CNN网络,然后冻结前面卷积层参数,只微调最后一个全连接层的参数来减少训练时间,加快模型的收敛速度,提高模型分类精度。本文采用迁移学习中经典的归纳迁移学习方法。

(1) 数据划分。眼底图像预处理后,将图像数据按照8∶1∶1的比例随机划分成训练集、验证集和测试集。

(2) 迁移学习训练策略。首先,本研究所选用的CNN网络均已经在ImageNet数据集大约100万张图像中完成预训练。使用迁移学习的方法将预训练的网络模型迁移到本分类任务中完成网络模型的初始化。然后,根据眼底病的分类任务,微调网络最后一个全连接层的参数。微调参数方法主要选用交叉熵损失函数和小批量梯度下降方法。交叉熵损失函数是分类问题常用方法。交叉熵是按照概率分布的最优编码对真实分布的信息进行编码的长度,一般用来作为衡量2个概率分布的差异。小批量梯度下降方法是选取批量样本数据进行更新参数。与随机梯度下降或者批量梯度下降相比,小批量梯度下降方法在保证训练速度的同时不降低训练精度。本文使用基于库中的optim.SGD方法实现,将梯度下降速率衰减设置为0.001,冲量设置为0.9。

(3) 网络优化。为了进一步提高网络模型的分类效果,本文提出在迁移学习过程中学习率指数衰减法和类别不平衡优化网络。学习率是网络模型重要的超参数,若学习率过大,则模型训练不会收敛;过小则收敛速度太慢。本文根据训练次数来调整学习率的方法,是基于库中的Lr_scheduler方法,将设置为每6个回合参数调整一次学习率,学习率的更新因子设置为0.1。对于眼底图像中正负样本不均衡,采用正负样本加权重法平衡这一策略,将权重设置为0.58∶0.42。

1.2.3 网络模型

本研究选用了目前广泛使用的8种CNN分别训练同一批眼底数据。深度残差网络(residual network,ResNet[14])是2015年的ImageNet比赛冠军。该结构最大的优点是解决了反向传播过程中的梯度消失问题,大大地提升了网络的性能。与其他神经网络相比,ResNet网络能够极大提高系统的鲁棒性。Inception-V3网络是2016年谷歌公司开发的深度学习系统。其主要特点是通过局部拓扑结构的网络对输入图像并行计算,从而实现保持检测性能的同时减少参数计算量。稠密卷积网络(dense convolutional network,DenseNet)是2016年在ResNet基础上开发出来的[15]。该网络将ResNet网络中的残差连接改为稠密连接,其在减轻梯度消失的同时增强了传播特征且参数量更小。EfficientNet网络[16]是2019年谷歌公司提出的一种多维度混合的网络模型,其在网络深度、网络宽度和图像分辨率三个维度之间达到比较好的融合。RegNet网络是2020年Facebook公司何恺明团队开发的一种新型参数较少的网络模型。各网络参数量和计算量对比见表1。

表1 各网络模型基础信息对比

1.2.4 深度学习网络训练环境

本文的实验平台为64位的Windows10系统,网络模型训练是基于神经网络的Pytorch1.10.1和Torchvision0.11.2库,编译环境为Python3.8,图像可视化基于Tensorflow2.3.0框架和Matplotlib3.3.4库,所有算法代码在Spyder 4.2.5中运行执行。硬件配置如下,处理器为AMD Ryzen 5 3600 6-Core Processor@3.59 GHz,内存为16G,GPU信息为NVIDIA Geforce GTX 1660 SUPER,显存为6G。

1.3 评价指标

以眼科专家对眼底病的手动诊断结果作为金标准,使用受试者工作特征曲线(receiver operating characteristic curve,ROC)、曲线下面积(area under curve,AUC)来评价网络模型诊断性能。同时使用准确率(accuracy)、灵敏度(sensitivity)、特异度(specificity)和F1值(F1-score)等评价网络模型分类性能。

(5)

式中:TP为真阳性;FP为假阳性;TN为真阴性;FN为假阴性。

2 实验结果

用测试集对本研究提出用迁移学习方法训练的CNN模型进行测试并输出混淆矩阵查看分类结果,测试结果的混淆矩阵如图2所示。接着,根据混淆矩阵结果及式(2)~式(5)可计算各CNN模型的准确率、灵敏度、特异度、AUC和F1值,结果如表2所示。结果显示,基于迁移学习方法训练后的CNN模型的准确率几乎均高于0.9,表明迁移学习方法训练的网络模型可以以较高准确率完成眼底病的分类诊断。

0代表正常眼底,1代表眼底病变

从表2的分类模型结果可看出,ResNet50的准确率、灵敏度和特异度分别为0.93、0.95和0.94,均明显优于其他模型,表明该网络模型在对眼底病分类准确性上更优。ResNet50的F1值为0.95,高于其他模型,表明ResNet50在对眼底病分类过程中整体性能更为稳健。表2的AUC值进一步反映了ResNet50和其他模型的分类性能。从表中可看出,ResNet50的AUC为0.92,一定程度上证明该网络实现了更高的分类性能。上述结果揭示,ResNet50最适宜于本文的眼底病分类任务,性能最优且最稳定。

表2 不同网络模型分类结果

3 讨论

眼底病变是老年人致盲的主要原因。本研究将准确、快速、稳定的眼底病变辅助诊断算法应用于基层社区老年人眼底筛查服务,对实现老年人眼底疾病早期自动化和智能化诊断具有重要意义。传统深度学习技术往往是从零开始训练网络模型,训练过程需要大量的标注数据。但是,获取医学领域大量人工标注数据非常困难且耗时耗力[17]。Gargeya和Leng[18]在75 137张眼底图像中从头开始训练ResNet网络达到对糖尿病视网膜病变的分类。该研究对糖尿病视网膜病变分类的灵敏度和特异度分别为0.93和0.87。Gulshan等[19]在128 175张眼底图像中训练网络模型以实现对糖尿病视网膜病变的诊断,诊断灵敏度为0.91。与上述研究相比,本文使用迁移学习方法在1 588张眼底图像的小样本数据集中训练网络模型,测试结果表明,基于迁移学习CNN模型在眼底病变中可实现很高的分类准确性。

虽然本研究构建的网络模型对老年人群眼底病的诊断性能较优,但是还有一些改进和值得商榷的地方。首先,眼底图像数据主要来源于一家社区卫生服务中心和一种规格的眼底相机,局限性较大,后期考虑融入多中心采集的眼底图像,使分类辅助诊断模型能够更加广泛地应用于多种场景。其次,本研究结果都是内部测试结果,缺乏真实世界的外部验证研究,后期还需进一步评价模型的诊断性能。最后,本研究仅仅基于眼底图像的单模态研究,未来,深度迁移学习在医学中的进一步应用方向是融合多模态数据,从而多维度地提升网络模型诊断性能。如国外一课题组[20]融合眼底图像和光学相干断层扫描技术图像2种模态数据,再将不同模态提取的特征输入到相应的分类任务层中,实现糖尿病视网膜病变严重程度的分级,结果显示多模态融合构建的网络模型诊断性能优于单模态。

4 结论

通过迁移学习微调策略改进后的CNN模型在小样本眼底图像中取得较高的准确性,且具有较短的训练周期和较高的稳定性,可用于老年人群眼底病变的辅助诊断和筛查。

猜你喜欢
眼底病深度分类
四增四减 深度推进
分类算一算
激光光凝联合血府逐瘀汤治疗眼底病的疗效及对视力的影响
深度理解一元一次方程
《图说小儿眼底病》一书出版
《图说小儿眼底病》一书出版
细节护理对眼底病患者的实施效果及对改善患者不良情绪的作用
简约教学 深度学习
教你一招:数的分类
说说分类那些事