APP下载

基于卷积神经网络的眼科光学相干断层成像图像的自动分类

2021-12-18赵蒙蒙鲁贞贞朱书缘王小兵冯继宏

北京生物医学工程 2021年6期
关键词:准确率卷积样本

赵蒙蒙 鲁贞贞 朱书缘 王小兵 冯继宏

0 引言

老年性黄斑变性[1-2](age-related macular degeneration,AMD)和糖尿病性黄斑水肿[3-4](diabetic macular edema,DME)是常见的眼科疾病,不及时的诊断和治疗将会导致失明[5]。目前,对于这两种疾病的诊断主要是通过眼科医生观察眼底图像。光学相干断层成像(optical coherence tomography,OCT)眼底图像检查是近年来应用于眼科的新的检查技术[6],具有无创、非接触且成像结果可清晰地显示病变的部位和层次等优点[7]。但是,通过观察OCT图像诊断疾病需要诊断者具有丰富的临床经验。我国眼部疾病患者人数较多,产生了大量的眼底OCT图像,且由于专业眼科医生较少、部分地区医疗资源匮乏等问题,导致大量患者无法得到及时有效的诊断和治疗,错过最佳治疗时机,导致视力受损甚至失明。

近年来,深度学习技术不断发展,并在机器阅片和疾病的辅助诊断方面展现出了极大的应用前景。其中,卷积神经网络(convolutional neural network,CNN)算法在图像的特征提取和分类方面表现较好[8-9]。有研究者提出将CNN算法应用于视网膜OCT图像的分类与分割任务中。Lee等[10]搭建了基于CNN的图像分割网络,并使用1 289张OCT图像训练模型,来对视网膜内的液体区域进行分割。该研究中由于训练模型的数据量较少,模型的泛化能力较弱。Karri等[11]使用杜克大学公开的OCT数据集对经典的CNN预训练模型GoogLeNet进行微调,并采用交叉验证的方法对视网膜OCT图像进行分类。其最佳模型的准确率为96%。Awais等[12]将CNN模型VGG-16应用于所构建的分类网络的不同层来提取特征,然后对DME患者的图像和正常图像进行分类。其分类准确率是87.5%,灵敏度是93.5%,特异性是81%。综上所述,迁移学习可以缓解带标签的医学图像较少的问题。然而,预训练网络的结构较大,对计算机硬件设备的要求较高并且计算时间较长。同时,迁移学习需要预训练图像和分类图像之间具有相似的特性,否则会导致负迁移现象的发生。

为此,本研究基于CNN搭建分类网络,应用于AMD、DME和正常3种类别的视网膜OCT图像的自动分类,期望可以辅助医生诊断疾病,缓解人工诊断依赖医生临床经验、费时费力的问题。也可应用于疾病的筛查和远程诊断中,提高医疗资源的利用率。

1 数据和方法

1.1 数据

本文选用目前公开的眼部OCT图像数据集2014_BOE_Srinivasan作为源数据,该数据集由杜克大学、哈佛大学和密歇根大学联合医学院眼科实验数据采集中心联合采集[13]。包含15例AMD患者的723张图像、15例DME患者的1 101张图像和15位健康受试者的1 407张图像,共3 231张图像,大小为512×496和798×496两种,以.tif格式存放。

1.2 方法

1.2.1 构建样本数据集

在模型训练过程中,如果图像过大,会导致程序运行过程中因内存太小而无法正常运行,同时也会影响程序运行的速度。为了提高网络的训练速度,同时聚焦病变特征,在保证图像质量的基础上,将原始图像裁剪为400×200,缩短后续训练网络所需的时间同时节约计算机资源。该尺寸为经过大量实验所得到的最优尺寸,既提高了网络的训练速度,又保证了图像的特征不被丢失。裁剪前后的图像如图1所示。

图1 三种类别的视网膜OCT图像示例Figure 1 Examples of three types of the retinal OCT images

本研究为了客观证明分类模型的性能,随机选取每种类别的两名患者图像作为测试集。其中,选取的两位AMD患者的图像共110张、两位DME患者的图像共122张和两位正常受试者的图像共194张,3种类别的图像共 426张裁剪后作为测试集。然后将源数据集中剩余的2 805张图像裁剪后按照9∶1的比例划分为训练集和验证集,加上测试集后称为数据集一。

由于基于深度学习的辅助诊断算法的性能受限于用于训练网络的图像的数量和质量,因此使用随机平移和水平镜像技术对除测试集以外的2 805张图像进行扩充,通过改变病变特征在裁剪后的图像上的位置来实现图像扩充的目的。具体方法是:将所确定的图像的裁剪区域的中心在一个80×40的矩形中随机移动后裁剪,病变特征在裁剪后图像中的位置也就相应发生变化,然后再将裁剪后的图像进行翻转。在此仅展示AMD图像的处理效果,如图2所示。可以看出翻转后的图像中视网膜色素上皮层中隆起的位置在图中发生了变化,对计算机来说相当于另一幅新的图像。

图2 图像裁剪和水平翻转示意图Figure 2 Example of image cropping and horizontal flipping

本研究使用平移后再裁剪技术对2 805张图像批处理了3次,得到了8 415张图像。接着将得到的8 415张图像水平翻转一次,得到了16 830张图像。在此基础上,通过视觉观察,删除了8张不符合要求的图像,最终得到16 822幅图像并按9∶1的比例随机划分为训练集和验证集。然后将扩充后的图像加上测试集称为数据集二,两个数据集的样本分布如表1所示。

表1 数据集一和数据集二的数据分布Table 1 The data distribution of the dataset 1 and the dataset 2

1.2.2 搭建的图像分类网络的结构

本文依赖深度学习框架Tensorflow和深度学习库Keras,使用Python计算机程序设计语言,在Spyder开发环境中搭建分类网络。网络包括1个输入层、3个卷积层、3个最大池化层、2个Dropout层、1个全连接层和1个输出层共11层。其中,各层的原理及参数设置如下。

(1)输入层。本研究中,网络的输入图像为400×200大小的灰度图。由于HDF5文件[14]特别适合进行大量科学数据的存储和操作,支持几乎无限量的单文件存储。将图像数据及其对应的标签写入到HDF5文件中,输入到模型中进行训练,每次输入60张图像,多批次输入,在充分学习图像特征的同时减轻计算机计算压力。

(2)卷积层和激活函数。卷积层是CNN中的核心,用来进行特征提取[15-16]。

(1)

式中:×表示卷积运算;X为图像;K为卷积核;s为图像X经过卷积核K卷积后的结果;i、j为位置角标。卷积核K的表达式:

(2)

在卷积过程中,每一层的输出与上一层的输入线性相关。但在对图像进行分类时,输入与输出之间并不是线性关系。因此,通过引入激活函数来提高模型的非线性特征分类能力,加快模型收敛速度。目前常用的激活函数有很多,本研究选用(rectified linear units,ReLU)激活函数[17]:

f(x)=max(0,x)

(3)

即输入大于0的保留自身结果,输入小于0的全置为0。该激活函数忽视了负向信号,更加重视正向信号的表达。

本研究搭建的分类网络由3个卷积层组成,第1个卷积层中有8个3×3的卷积核,用来提取图像的边缘信息,输出特征图。第2个卷积层有16个3×3的卷积核,第3个卷积层有32个3×3的卷积核,这2个卷积层用来提取图像的其他细节信息,输出对应的特征图。

(3)池化层。池化层的作用是进行特征降维,压缩特征图的大小、减小参数的数量、防止过拟合,同时提高模型的稳定性[18]。目前,池化方法主要有两种,分别是平均池化和最大池化。本文选取最大池化方式,提取出特征中响应最大、特征最强烈的部分,池化操作时滤波器大小设置为2×2,步长设置为2。

(4)Dropout层。在网络训练过程中,课题组希望训练得到的模型可以在新样本上表现的很好,为了达到这个目的,模型应该从训练集中学习到更多特征,这些特征应该适用于所有样本,具有一定的普遍性。但是在全连接层之前,如果神经元数目过大,有可能出现过拟合,导致模型的泛化能力下降[19]。即在训练过程中表现较好,得到较高的准确率,但使用新样本测试模型时,表现出较差的效果。引入Dropout层可以有效防止该现象的发生,即在训练过程中,每次仅激活部分神经元,进行特征学习。本研究中,在第1个卷积层和第2个卷积层之后均加入了Dropout层来防止过拟合现象的发生。

(5)全连接层和输出层。全连接层的作用是整合之前提取到的特征,将得到的特征图连接成向量,并将结果使用softmax分类器[20]进行分类,输出预测类别。本研究中主要分为AMD、DME和正常3类。

1.2.3 训练分类网络

完成网络的搭建后,分别使用构建的两个样本数据集对网络进行训练,得到对应的分类模型。考虑网络学习过程中参数更新的随机性,研究中训练网络都基于此前训练得到的较好的分类模型上进行,有利于网络学习到更多的特征,提高分类模型的性能和稳定性。在训练过程中根据验证集准确率和损失函数的变化趋势调整网络的结构和参数,直到模型收敛。其中,使用未经扩充的样本数据集一训练的最优分类模型称为Model 1,使用扩充后的样本数据集二训练的最优分类模型称为Model 2。

2 结果

2.1 模型的评估指标

目前,深度学习模型性能的衡量指标有很多。本文主要通过准确度、灵敏度和特异度来评估得到的分类模型的性能。各指标具体计算方法如下。

准确率(Accuracy):对于给定的数据集,分类器正确分类的样本数与总样本数之比。通常来说,准确率越高,模型的分类效果越好。灵敏度(Sensitivity):对于给定的数据集,将实际患病的人正确地判定为真阳性的比例,是衡量分类器正确分类患病者的能力。特异度(Specificity):对于给定的数据集,将实际正常无病的人正确地判定为真阴性的比例,是衡量分类器检测出无病者的能力。

(4)

(5)

(6)

式中:真阳性(true positive,TP)表示正样本被正确分类的个数;真阴性(true negative,TN)表示负样本被正确分类的个数;假阳性(false positive,FP)表示负样本被错误识别为正样本的个数;假阴性(false negative,FN)表示正样本被错误识别为负样本的个数。本研究中,正样本为AMD患者和DME患者的视网膜OCT图像,负样本为正常受试者的视网膜OCT图像。

2.2 实验结果

本文使用了Tensorflow的可视化工具Tensorboard来观察模型的收敛过程,如图3所示。

图3 准确率变化图Figure 3 Accuracy of the model

从图3可以看出,Model 1和Model 2的准确率均随着训练次数的增加而增加,当模型收敛时Model 2的准确度要高于Model 1。

接着,使用测试集分别对两个模型进行测试并输出混淆矩阵查看分类结果。两个模型的混淆矩阵如图4所示,明显使用扩充后的数据训练的分类模型对3种类别的视网膜OCT图像的分类结果相对更好。接着,根据式(4)~式(6)分别计算出两个模型的准确率、灵敏度和特异度,结果如表2所示。

表2 模型的分类结果(单位:%)Table 2 Classification results of the Model 1 and Model 2(unit:%)

图4 Model 1和Model 2的混淆矩阵Figure 4 Confusion matrix of Model 1 and Model 2

从表2可以明显看出,Model 2的准确率、灵敏度和特异度均高于Model 1。

3 讨论

本文提出的基于CNN的视网膜OCT图像自动分类方法,在使用同一数据集作为源数据的前提下,与Srinivasan等[13]的研究相比,本研究采用了卷积神经网络技术,可对ADM、DME和正常3种不同类别的图像进行多分类,无需设计特征提取器来提取特征。与Chen等[21]的研究相比,本研究对AMD、DME和健康人的眼底OCT图像进行了混合识别和分类,且取得了更高的准确率和特异度。

课题组认为Model 1分类效果较差的原因是数据量较少导致模型的泛化能力欠佳,因此在独立测试集上的表现较差。针对这一问题本文在图像裁剪过程中引入了随机平移和水平翻转技术对图像进行扩充并训练得到Model 2,通过对比Model 1和Model 2在相同测试集上的表现,可以看出对图像进行扩充后可以有效提升分类模型的性能。本研究中,随机平移区域的大小是经过大量实验确定的。区域太小会导致处理后图像的多样性受限,区域太大则会造成裁剪后图像特征丢失的问题。后续的研究中会基于现有的数据集,使用生成对抗网络技术来生成具有更高质量和多样性的图像,从而提高分类模型的性能。

4 结论

本文以2014_BOE_Srinivasan数据集作为源数据,对图像进行裁剪和扩充后构建了两个样本数据集。同时,搭建了基于CNN的视网膜OCT图像分类网络,并分别使用构建的两个样本数据集训练网络得到各自的分类模型。最后,使用相同的测试集测试模型并通过输出的混淆矩阵计算得出Model 1的准确率为75.35%,灵敏度为74.14%,特异度为76.80%;Model 2的准确度为93.43%,灵敏度为91.38%,特异度为95.88%。结果表明,使用扩充后的数据集训练的分类模型的性能较好。同时,提出的基于CNN的视网膜OCT图像分类算法在训练图像有限的情况下,实现了AMD、DME和正常3种类别的视网膜OCT图像的有效分类。

猜你喜欢

准确率卷积样本
基于全卷积神经网络的猪背膘厚快速准确测定
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
多层螺旋CT技术诊断急性阑尾炎的效果及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
规划·样本
人大专题询问之“方城样本”