基于ME-ANet模型的糖尿病视网膜病变分级*

2022-06-10 03:22程小辉李贺军陶小梅黎辛晓
广西科学 2022年2期
关键词:视网膜注意力卷积

程小辉,李贺军,邓 昀,陶小梅,黎辛晓

(1.桂林理工大学信息科学与工程学院,广西桂林 541006;2.广西嵌入式技术与智能系统重点实验室,广西桂林 541006)

糖尿病视网膜病变(Diabetic Retinopathy,DR)是一种病发率和致盲率都很高的糖尿病并发症[1],近年来成为造成视力模糊甚至失明的主要原因之一。糖尿病视网膜病变的主要病理特征有微动脉瘤、出血点、软性渗出物以及硬性渗出物[2]。根据眼底图像病变的类型和程度,DR可分为5个阶段:无(DR0)、轻度(DR1)、中度(DR2)、重度(DR3)和增生性(DR4)。通常,DR的早期阶段症状不明显,患者往往会忽视DR早期对自身的影响而错过最佳的治疗时间。目前,糖尿病视网膜病变的诊断需要专业的眼科医生根据自身的诊断经验来判断,由于糖尿病视网膜图像中不同等级之间的差异性很小,再加上专业眼科医生就诊经验的不同,可能会出现误诊、漏诊等情况[3,4]。利用深度学习来提高DR模型分类准确性和诊断效率对预防糖尿病视网膜病变有重大意义[5]。深度卷积神经网络(Convolutional Neural Network,CNN)对图像的特征提取和学习能力突出,被广泛应用在医学图像处理领域,特别是在视网膜图像分类、分割和目标检测任务中表现出色[6-8]。Gulshan等[9]利用Inception-v3模型框架并采用12多万张糖尿病视网膜眼底图像来检测病变,由于数据量比较充分以及眼科专家对眼底图像的筛选,该模型取得了良好的效果。李琼等[10]在AlexNet网络的基础上,在每一个卷积层后紧跟一个批量归一化层来加深网络,用于视网膜图像的特征提取,训练时采用迁移学习的策略,该模型具有较好的鲁棒性和泛化性。Sharma等[11]提出一种深度CNN架构来对非糖尿病视网膜病变和糖尿病视网膜病变眼底图像进行分类,具有较好的效果。丁蓬莉等[12]提出一种密集型CompactNet网络模型,该模型使用AlexNet的浅层结构参数,由于缺少标记的视网膜眼底图像,模型在训练过程中提取特征信息不足,导致分类准确率不高。Zhou等[13]利用多模块结构对高分辨率的眼底图片进行学习,训练时以分类和回归的方法对标签进行预测,最后利用EyePacs数据集对模型有效性进行测试,并取得了不错的效果。但是该模型仅适合像素较高的眼底图片,对于分辨率较低的图像无法保证其精度。郑婷月等[14]采用编码器-解码器对称全卷积结构,该结构将高层语义信息与低层特征信息进行特征融合,并利用空洞卷积构建多尺度空间金字塔结构,同时引入残差结构块进一步提取图像特征信息,获得了较好的分类准确率。近年来,基于深度学习的方法对DR等级进行分类取得了一定的进步。然而,在糖尿病视网膜病变过程中,病理图像质量差异大且不同DR等级图像之间相似度较高,增加了DR分类模型在无标记病变区域条件下自动精确分类的难度[15]。不同的眼底图片在颜色和纹理方面一致性较高,在模型训练过程中容易混淆,导致模型难以对类别特征作出精确判断。除此之外,眼底数据集的高度不平衡性也严重制约着模型的分类性能。如何设计合理高效的深度模型实现高精度的识别分类,进而推动深度学习在医学图像中的可靠应用成为关键的一环。为了更加充分地提取图像特征信息,增加模型对微病灶点的学习能力,本研究提出一种基于集成MobileNetV2和EfficientNetB0深度模型的注意力网络(ME-ANet)进行细粒度学习分类,旨在进一步强化深度模型对DR病变特征的学习,提高模型的准确率和鲁棒性。

1 模型设计

1.1 糖尿病视网膜病变分类流程

算法的工作流程主要分为数据处理、模型训练和模型性能评估3个阶段。在数据处理阶段,主要包括数据预处理和数据扩增两个步骤,解决原始数据集中类别分布不均衡的问题,对预处理后的眼底图像按照一定的比例进行划分,将扩增后数据集划分为训练集、验证集和测试集,比例为8∶1∶1。模型训练阶段采用ME-ANet集成网络,将眼底图像尺度大小固定为224×224×3作为网络的输入层数据。为了提高模型的收敛速度,模型训练时采用迁移学习的方式对集成模型头部进行权重初始化,最后输出使用softmax分类器完成DR五分类预测任务;在模型性能评估阶段,利用训练好的模型进行测试集的分类,计算相应的评价指标并作对比分析,对模型进行评价总结。DR分类系统的工作流程如图1所示。

图1 DR分类系统流程图Fig.1 Flowchart of DR classification

1.2 特征提取子网络

为了强化学习眼底病变图像中的病灶特征,提高模型的分类精度,本研究采用集成的方式,将轻量化的深度模型架构MobileNetV2与高效神经网络EfficientNetB0部分结构集成组合为特征提取主干,并将其命名为ME特征提取主干。MobileNetV2是由一系列具有线性瓶颈层的倒残差结构(Inverted residual)堆叠而成。模型利用倒残差结构代替传统卷积顺序叠加的方式,该结构采用先升维再降维的信息处理方式,另外,深度可分离卷积替换传统卷积,大大减少了模型的参数。捷径分支位于两端较窄的瓶颈层之间,中间部分采用轻量级的深度卷积来提取数据特征,卷积过程中均使用ReLU6激活函数。为了减少非线性激活函数对压缩通道特征信息的丢失,维持网络的特征表达能力,在最后的卷积操作后使用线性激活函数Linear进行激活。具有线性瓶颈层的残差结构Bottleneck如图2所示,带跳跃连接的残差结构为优化后的结构,均采用1×1卷积对通道进行升维和降维处理。在模型训练过程中,由于跳跃连接的存在,深层的梯度更容易传回至浅层,该结构避免了深度网络反向参数更新引起的梯度弥散问题。

图2 Bottleneck残差块Fig.2 Bottleneck residual block

当利用深度模型对处理完成后的糖尿病视网膜图像进行训练时,增大模型的深度往往能够提取到更加丰富的特征,但网络深度过深容易出现梯度消失,导致模型训练失败。增加网络的宽度、增加特征图的通道数虽然可以获得更高细粒度的特征信息,但宽度过大且深度较浅的模型很难学习到深层次的语义特征。高分辨率的图像输入虽然可以使模型学习到更加细粒度的信息,能够扩大网络的感受进而提升网络性能,但是会增大模型的计算量。EfficientNetB0采用自适应算法平衡模型深度、宽度和分辨率三者之间的比例关系,通过比例系数对模型进行3个维度的自适应缩放,合理优化网络结构。模型核心结构为移动翻转瓶颈卷积(Mobile Inverted Bottleneck Convolution,MBConv)模块(图3)。输入特征首先经过第一次1×1卷积和深度卷积(之后都进行BN和Swish激活操作),需要注意的是,第一次卷积是为了扩展通道维度,扩展比例设置为n,当n=1时,不进行通道扩展,直接进行k×k的深度卷积操作。接着将输出特征输入到SE注意力模块结构中,再通过卷积(第二次1×1卷积之后只进行BN操作)进行降维,调整输出通道维度使之与输入通道维度相等。最后进行随机失活处理,同时在输入和输出之间设置捷径分支,该结构有利于模型融合更多的特征信息,而只有当输入MBConv结构的特征矩阵与输出的特征矩阵形状相同时才有捷径分支的存在。

图3 MBConv模块Fig.3 MBConv block

图像分类、图像分割和目标检测任务中,SE注意力模块效果显著。该模块由一个全局平均池化(Global Average Pooling,GAP)、两个全连接层构成。第一个全连接层的输出通道数是输入该MBConv特征矩阵channels的1/4,且使用Swish激活函数;第二个全连接层的节点个数等于深度卷积层输出的特征矩阵通道数,且使用Sigmoid激活函数。假设一个输入特征H×W×C,首先通过全局平局池化和全连接层将其拉伸为一个1×1×C的特征向量,然后与原始图像相乘,对通道特征重新加权计算,从而学习更多目标特征信息。

1.3 迁移学习

在深度学习医学图像领域,缺乏大型公开的数据集成为医疗图像处理中的难题之一。在缺少训练样本的情况下,容易导致模型在训练过程中产生过拟合甚至出现不收敛状态,导致训练出的模型鲁棒性较差。

为了解决视网膜图像数据量少、模型训练困难等问题,除了对数据进行扩增处理外,采用迁移学习的方式加载模型相应层的预训练权重参数有利于模型性能的提升。由于浅层卷积能够学习到更加丰富的低层语义信息,本研究将加载MobileNetV2和EfficientNetB0已经在ImageNet数据集上训练好的模型参数,在训练过程中,冻结浅层模型参数,仅保留相关卷积层,将输入图像的特征信息和相应的标签作为输入,通过计算预测标签与真实标签之间的误差,自动调整网络参数。

1.4 注意力机制设计

在糖尿病视网膜病变分类任务中,微小的病灶点如渗出物和微动脉瘤等类别之间差异较小,造成视网膜不同类别之间差异非常细微,模型难以准确识别相似度较高的病变图像,为提高模型分类精度,需要模型具备更加细粒度分类能力,引入更加细粒度分类实现视网膜病变的分级。对于细粒度的分类来说,如何使模型学习到有效的目标特征成为决定细粒度分类模型性能的关键。

在注意力机制中,通道注意力机制通过学习通道注意权重,判别每个特征通道的重要程度同时抑制信息量较小的通道,而空间注意力机制通过学习空间注意权重说明每个空间位置的重要性,与通道注意力机制形成互补机制。基于此,本研究设计全局注意力机制(Global Attention Mechanism,GAM)模块来学习目标病灶特征。GAM模块由通道注意力和空间注意力模块组成,采用平均池化单分支结构。全局平均池化(GAP)可以实现图像通道特征的压缩,对输入特征图的空间变化具有较强的鲁棒性。但是,仅考虑建模评估特征图中每个通道之间的重要性过于简单,无法准确学习特征之间的长依赖关系。由于空间位置信息决定生成空间选择性注意力图,在计算机视觉任务中,这些空间位置信息往往更有利于模型捕获学习目标特征。故重新设计注意力机制,具体使用平均池化对图像通道和空间特征信息进行转换处理,具体结构如图4所示。

图4 全局注意力机制Fig.4 Global attention mechanism

注意力网络将集成模型输出的融合特征FGAM-IN∈RH×W×C作为输入,利用公式(1)计算生成通道注意力特征图FCA-OUT∈RH×W×C。

FCA-OUT=(σ(Conv2(GAP(FGAM-IN))))⊗FGAM-IN,

(1)

式中,σ(·)表示sigmoid激活函数,将变量值映射到[0,1]区间;Conv2表示两个卷积核大小为1×1的卷积层;GAP(·)为全局平均池化操作,即在通道维度上进行全局平均池化;⊗表示特征同位元素对应相乘。

利用公式(2)计算GAM的输出特征FSA-Feature∈RH×W×1,即空间注意力特征图。

FSA-Feature=FCA-OUT⊗

σ((C_GAP(FCA-OUT))),

(2)

式中,C_GAP(·)为空间维度平均池化操作,σ(·)为sigmoid激活操作。空间注意力结构简化为单链路,针对模型的原始特征输入,只采用平均池化操作,更好地维护了图像的空间信息,有利于对空间注意力权值的学习,同时指出每个空间位置的重要性。

1.5 模型集成

在特征提取主干网由MobileNetV2的核心结构Bottleneck和EfficientNetB0的核心结合MBConv卷积结构进行相应的集成操作,其中的MBConv6表示其卷积扩展比例设置为6。具体的头部集成模型ME-Head结构如图5所示,其中头部训练时采用迁移学习的方式加载与训练权重进行特征提取,提高模型的收敛时间。头部集成模型中,输入尺度为224×224×3,首先将图像进行一步卷积操作,转化为MBConv和Bottleneck结构所需要的输入维度112×112×32。然后分别选择两种基本模型核心结构的前两层,即对应3组MBConv和Bottleneck结构,进行Concat特征融合操作,将两部分的输出特征进行通道叠加,丰富通道特征信息,融合特征尺度为56×56×48。最后再进行一次卷积运算,调整输出特征的通道维数,得到输入到下一个集成模块的特征图,尺度为56×56×24。

图5 头部集成模型ME-Head结构Fig.5 Head integrated model ME-Head structure

在深度学习中,通常采用加深网络深度来获取医学图像中的深层次语义特征,而忽略模型对浅层特征的学习。为解决网络模型加深带来的浅层网络学习特征学习不充分问题,本研究设计ME-ANet模型(图6)。除了特征提取头部集成外,设计模型主干3个阶段特征集成方案,实现充分学习不同尺度特征的效果,集成模块的Bottleneck和MBConv6结构的叠加层数分别设为3,4,3层。集成模型头部的输入尺度为56×56×24,输入到模型集成的第一个阶段,经过下采样后分别得到两个28×28×40的特征向量,然后使用通道融合技术进行Concat处理得到特征向量FConcat_1∈R28×28×80,该特征输出至GAM模块、第二阶段的Bottleneck和MBConv 3个模块中,特征图输入到GAM模块中,从通道和空间两个维度对网络权重更新进行训练优化,其中得到注意力特征图FGAM_1∈R28×28×80。依次类推,可得到FConcat_2∈R14×14×160、FGAM_2∈R14×14×160、FConcat_3∈R7×7×384、FGAM_3∈R7×7×384,输出的3个阶段的注意力特征分别代表图像的浅层纹理特征、中间层过渡特征和深度语义特征。将3个阶段输出的注意力特征图进行多尺度特征融合操作,得到最后的特征输出FFinal∈R7×7×384。然后通过全局平均池化代替传统的全连接层,将特征提取网络学习到的深度特征映射到样本标记空间,不仅减少了参数的数量,还可以减轻模型过拟合的问题。最后采用softmax函数完成多分类任务。

图6 ME-ANet模型Fig.6 ME-ANet model

2 结果与分析

2.1 数据集

实验所用的数据集来源于数据建模和数据分析竞赛平台Kaggle中的比赛Diabetic Retinopathy Detection。数据集包含35 126张由专业眼科医生诊断为不同严重程度的高分辨率视网膜图片。眼科专家根据糖尿病引发的视网膜病变程度的不同,将其分为5个等级(图7),分别为DR0、DR1、DR2、DR3和DR4,分别对应正常、轻度、中度、重度和增殖性。

图7 糖尿病视网膜病变图像Fig.7 Diabetic retinopathy images

2.2 数据预处理和扩增

由于数据集来源和成像设备不同,图像质量差别较大,存在图像尺寸及颜色差异、曝光过度、噪点较多等现象。为了提高眼底图片的质量,对原始图像进行降噪和归一化处理十分必要。同时为了适应模型训练,对分辨率大小进行统一操作,使用OpenCV对视网膜图像进行预处理,具体步骤如下:首先处理原始图像的边框信息,如图8(a)所示;去除多余黑色背景区域,去除冗余特征噪声,如图8(b)所示;使用OpenCV图像处理库中的resize()方法统一数据集分辨率为224×224像素,即进行尺寸归一化处理,具体如图8(c)所示;缩放后的图像边缘被裁剪,为了得到与图像主体类似的轮廓,本研究以在图像中心点画圆的方式处理裁剪后的图像,处理结果如图8(d)所示;同时为了减少亮度条件不一致因素的影响,利用高斯滤波对图像进行亮度、对比度等均衡化操作,具体公式如下:

Ii(x,y;σ)=α(I(x,y)-G(x,y;σ)*I(x,y))+β,

(3)

式中,G(x,y;σ)为高斯平滑函数;σ代表标准差,用来提高图像的对比度;β代表强度,像素值分布在[0-255]。当α=4,σ=256/30,β=128时,图像处理效果如图8(e)所示。

图8 数据预处理对比图Fig.8 Comparison chart of data preprocessing

糖尿病视网膜眼底图像5个等级对应的原始图像和预处理后生成的图像如图9所示。

图9 5种眼底图片处理前后对比图Fig.9 Comparison of 5 kinds of fundus images before and after processing

视网膜数据量较小且各病变类别分布极不平衡,如果数据不进行均衡化处理,就容易导致模型出现过拟合现象。在深度学习中,通常采用Dropout随机失活和增加训练数据集来解决过拟合问题。数据集中每种类别数据数量如表1所示,健康的眼底图片占总数据集的70%以上。为了保证模型数据量的大致相等,提高模型的泛化能力。利用数据增强扩增训练数据是解决模型过拟合问题最直接有效的做法。

表1 Kaggle数据集分布情况Table 1 Distribution situation of Kaggle dataset

在深度学习中,数据的增强可以分为离线增强和在线增强两种方式。离线增强就是事先处理好需要进行训练的数据,然后存储在本地,模型训练时自动加载预处理过的数据,但这种方式效率比较低,且不是实时增强。本研究采用实时数据增强的方式,通过keras框架提供的ImageDataGenerator()图片生成器进行实时数据增强,生成模型训练时所设定的batch_size大小的张量图像,且可以循环迭代,主要采用随机拉伸、旋转图像、随机水平和垂直翻转、比例缩放、随机水平和垂直移动等方法来增加样本数量。图10展示了本研究训练过程中图像随机增强效果。

图10 实时随机增强效果图Fig.10 Real-time random enhancement renderings

2.3 实验设置与实验指标

本研究深度学习框架为Tensorflow2.0版本,采用Python3编程语言进行模型框架的搭建,在GPU型号为NVIDIA RTX 2080Ti、16 G显存的Ubuntu16.04操作系统,CUDA10.0,cudnn7.6.0的服务器上进行训练调试。将预处理后的各类数据以8∶1∶1的比例进行划分,模型输入尺寸调整为224×224像素,训练过程中使用Adam优化器进行参数调优,初始学习率设为0.000 05,Loss计算过程中采用交叉熵(Cross Entropy,CE)损失函数,损失函数的权重衰减因子设为0.1,batch_size设置为32,一共训练30个epochs。

本研究通过分类准确率(Accuracy)、特异性(Specificity)、灵敏度(Sensitivity)和二次加权Kappa(Quadratic Weighted Kappa,QWK)系数对模型分类效果进行评估。评价指标定义如式(4)-(6)所示。

(4)

(5)

(6)

式中,统计定义真阳性(TP)、假阳性(FP)、真阴性(TN)和假阴性(FN)4个指标。其中,当输入正常眼底图像时,模型分类为正常则为真阳性,分类为非正常则为假阳性;当输入非正常眼底图像时,模型分类为非正常则为真阴性,分类为正常则为假阴性。

Kappa系数是统计学中度量一致性的指标,对于分类问题,一致性检验就是考察模型预测结果和实际分类结果是否一致[13]。本研究采用二次加权Kappa (QWK)系数作为评估指标。QWK系数被设计用于衡量两个评分者在具有序列等级的标签上是否具有一致性,并且已经被应用在糖尿病视网膜病变等级分类中。QWK系数的数学表达式如下:

(7)

2.4 实验设计与分析

为了验证所提出的模型集成的特征提取主干分类的有效性,实验采用相同的数据集对特征提取网络分别为MobileNetV2、EfficientNetB0以及两者之间的集成模型ME-Net进行训练。ME-Net仅仅是将两模型按照图6的集成方式构建,只是缺少了GAM模块结构。实验采用迁移学习训练策略,模型加载预训练权值,结果如表2所示。将模型融合后作为主干网络,优于单个基础模型,评价指标均高于单个模型,表明提出的模型集成融合策略有助于提高模型的性能。

为了探究本研究所提出的GAM模块的分类效果,分别以MobileNetV2、EfficientNetB0和ME-Net作为基本的特征提取器,并加载初始化预训练权重,将3个模型的特征输出最终输入到一个GAM模块中,分析模型效果。如表3所示,总体来看,相较于表2中的数据,加入该注意力模块后,除了特异性外,在分类准确率、灵敏度和Kappa值上均有所提升,特别是在ME-Net主干下,Kappa值提升了近3个百分点,说明所提出的GAM模块更适合于直接与主干网络结合进行分类任务。

表2 主干模型训练结果Table 2 Results of backbone model training

表3 加入注意力机制模型性能对比Table 3 Performance comparison of models adding attention mechanism

为进一步探究本研究所设计的集成ME-ANet模型的分类效果以及头部迁移学习策略对模型性能的影响,再次设计一组对照实验,对ME-ANet模型进行训练时,将头部集成模型ME-Head结构加载预训练权重和未加载预训练权重作对比,实验结果如表4所示。

表4 ME-ANet模型训练策略性能对比Table 4 Performance comparison of ME-ANet model training strategies

由表4分析可知,无论是否采用迁移学习的方式,本研究设计的模型性能指标均达到不错的效果,头部集成的迁移训练策略更进一步提升了模型的性能。其中Kappa值超过0.92,表明模型的训练和预测的一致性较高,模型预测稳定性较好。

从模型迁移训练过程中的准确率和损失变化曲线可以看出,模型并没有发生过拟合现象,模型在前5个epoch训练中准确率很快突破了0.85,损失率降到了0.35左右。之后模型很快收敛,准确率稳定在0.94左右(图11)。

图11 模型迁移训练和验证过程中准确率和损失率变化曲线Fig.11 Accuracy and loss rate curve in model transfer training and validation

最后,为了评估本研究分类模型ME-ANet的分类性能,使用相同的数据集和实验训练参数与近年来经典的方法进行实验对比,本研究模型的准确率和二次加权Kappa系数均达到了最大值,且特异性和灵敏度均超过0.9(表5),进一步表明,本研究的模型分类达到了不错的效果。

表5 模型方法对比Table 5 Comparison of model method

3 结语

本研究提出一种基于模型集成的注意力网络ME-ANet,用于糖尿病视网膜病变分类。利用Kaggle数据集进行模型训练,为解决数据不充分及分布不平衡的问题,本研究采用数据预处理及数据扩增等方式做均衡处理。采用模型融合构成主干特征提取器,并基于头部迁移学习的方式训练模型,以充分提取浅层特征信息。改进设计全局注意力机制,优化模型提取微病灶特征信息,强化眼底细粒度图像病变之间的差异性,抑制无关信息,使网络更好地学习到DR病变类型之间的细微差异。本研究提出的方法提高了DR模型分类的精确度。

在DR分类中,对于质量较差的原始图像没有进行剔除,导致在数据实时扩增阶段产生较多的无用特征数据,影响模型的效率和精度,后续的任务就是研究一套完整的视网膜图像质量评估方法,将着重注意提高数据集的质量。同时,探讨研究更适合图像差异小的样本(如视网膜图像)的注意力机制,进一步提高模型的分类性能。

猜你喜欢
视网膜注意力卷积
深度学习在糖尿病视网膜病变诊疗中的应用
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
家族性渗出性玻璃体视网膜病变合并孔源性视网膜脱离1例
高度近视视网膜微循环改变研究进展
球结膜下注射庆大霉素致视网膜损伤1例
如何培养一年级学生的注意力
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法