侯小虎,贾晓芬,赵佰亭
(1.安徽理工大学第一附属医院(淮南市第一人民医院),安徽 淮南 232001;2.安徽理工大学 电气与信息工程学院,安徽 淮南 232001;3.安徽理工大学 人工智能学院,安徽 淮南 232001)
眼底结构复杂、病变类型多样,如脉络膜新生血管(choroidal neovascularization, CNV)、糖尿病性黄斑水肿(diabetic macular edema, DME)、玻璃膜疣(drusen)、老年性黄斑病变(age-related macular degeneration, AMD) 等.眼底病变多出现在黄斑区,它位于视网膜的中央,是视力最敏感的区域.黄斑区视网膜病变研究已成为重要课题[1].黄斑区病变是造成不可逆视力丧失的主要原因之一,DME 常引起不可逆的视力损害[2].光学相干断层扫描技术(optical coherence tomography, OCT)是无创高分辨率光学成像技术,它能够实时生成物体的横截面图像[3-4],被广泛应用于眼病诊断.
CNV 病变特征复杂多样,病变区域边界模糊;DME 病变特征明显,病变区域较大;玻璃膜疣病变区域小,病变边界模糊,病变特征不明显;AMD 特征复杂,且不同病变程度可能会出现不同的病变特征,玻璃膜疣是早期AMD 的临床表现之一.繁杂的OCT 图像信息诊断需要医生人工处理和分析,工作量大,耗时长.自动分析OCT 图像的模型有助于医生筛查工作的进行.由于深度学习在图像领域出色的表现,学者们利用卷积神经网络提出了许多眼底OCT 图像分类模型,实现了不同数量、不同类型的病变识别.Fang 等[5-8]研究3 种病变的识别,对CNV、DME、玻璃膜疣和正常眼底进行了四分类.Fang 等[5]使用病变感知卷积网络(lesion-aware convolutional neural network,LACNN),在OCT 图像中生成软注意力图,并将注意力图并入分类网络,以提高分类精度.Liu 等[6]提出基于onestage 注意力的视网膜OCT 图像分类和分割模型,该模型克服分类任务学习的信息无法传递给分割任务的问题,实现分类和分割任务的同步进行.Mishra 等[7]提出基于扰动复合注意力的深度网络,提取上下文感知诊断特征来提高分类精度.Das 等[8]使用深度多尺度卷积神经网络(deep multi-scale fusion convolutional neural network, DMF-CNN),对多尺度疾病特征进行编码,对编码后的疾病特征进行组合并分类,同时使用联合多损失优化策略来加强网络的学习能力.注意力机制的加入虽能加强提取现有特征的能力,但仍无法有效提取病变纹理信息,也无法解决特征提取过程中特征信息丢失的问题.
Thomas 等[9-10]实现对AMD、DME 和正常眼底图像的三分类.Thomas 等[9]利用多尺度卷积层生成具有各种尺寸的局部结构,提出多尺度卷积网络.Toğaçar 等[10]使用9 个迁移学习模型对同一数据集中的病变种类进行分类,使用黏菌算法(slime mold algorithm, SMA)从模型中选取针对单一目标分类准确度最高的网络进行结果输出.多尺度卷积层生成的局部结构丰富了病变特征,但无法解决因网络逐渐加深带来的有用信息丢失的问题.现有模型组合的迁移学习模型参数量过大,对硬件要求过高.Sotoudeh-Paima 等[11]实现对CNV、玻璃膜疣和正常眼底图像的三分类,提出多尺度卷积神经网络,通过捕获尺度间的变化并使用快卷积块的特征融合策略,提高了对AMD、DME 和正常眼底图像的三分类性能.融合策略虽然加强了卷积块间的信息交流,但是不能有效提取不同尺度的病变特征.
Fang 等[5-7]通过添加注意力机制加强了对现有特征的提取,丰富了局部病变特征信息,但研究者所提模型难以提取具有较小区域和较小病变纹理的小目标特征,对病变区域小、病变特征模糊的玻璃膜疣病变种类的识别效果差.Das 等[8-11]通过不同形式的多尺度网络加强信息交互,增强对病变特征信息的提取,但是研究者所提模型难以有效解决显著病变特征(如病变边缘、纹理)在特征提取过程中容易被忽略,造成的有用信息丢失问题.Toğaçar 等[10]通过组合现有卷积神经网络来加强对眼底病变种类的识别,但是模型参数量大,难以有效部署到嵌入式平台.
本研究面向眼底的多种病变类型,致力于设计轻量化的高效分类模型,实现眼底病变类型的自动识别.主要工作包括:1)设计多尺度卷积模块,强化对不同病变特征特有的小目标特征的提取能力,实现对不同大小病变特征的全面提取;2)构建特征融合模块,通过充分利用病变特征的显著信息,加强浅层细节信息和深层语义信息的融合;3)设计轻量化主干网络,从减少卷积核的使用数量和引入深度可分离卷积两个方面,降低参数量,实现模型轻量化.
为了准确识别多种病变,助力医疗诊断,必须紧扣病灶区域小、病变特征模糊的特性设计识别模型,同时降低模型参数量.针对眼底OCT 图像设计如图1 所示的轻量化分类模型MB-CNN,主要创新点如下:1)设计轻量化主干网络L-Resnet,它通过减少卷积核使用、加深网络深度,在有效降低网络模型参数的同时减少对网络精度的影响;2)设计多尺度卷积块MultiBlock,它使用多尺度卷积核提取不同特征,加强特征提取的能力,引入深度可分离卷积大幅降低网络模型参数;3)设计特征融合模块(feature fusion module, FFM),它通过融合浅层细节信息和深层语义信息加强网络对小目标和模糊特征的识别能力.
Resnet18[12-13]的结构简单,复杂度低,随着网络的加深不会出现梯度消失的现象,解决了深层次的网络退化问题.网络模型须部署到移动端进行眼底OCT 图像的分类,但嵌入式设备的存储和计算能力有限,为了解决Resnet18 网络模型参数大的问题,提出轻量化主干网络L-Resnet.
网络深度和卷积核的使用数量直接影响网络精度[14-15].通过控制变量法,逐步对卷积核的使用个数和每个阶段卷积块的使用个数进行实验,得到L-Resnet.L-Resnet 是 由1 个CBR 模 块 和4 个Stagex×N(x=1, 2, 3, 4;N=2, 2, 6, 2),x为 主 干 网络的阶段,N为测试后得到的每个阶段使用卷积块的数量.4 个阶段卷积核的使用个数分别为64、128、192、256,使用卷积块的个数为2、2、6、2,其比例为1∶1∶3∶1.S tage1 位于网络浅层,卷积核个数设置为64,使网络充分提取OCT 图像中病变纹理细节信息; S tage4 位于网络深层,卷积核的个数设置为256,使网络充分降低模型参数的同时保证了网络中冗余信息的存在;增加 S tage3 卷积块的使用个数,增加网络的深度,加强了网络对深层语义信息的提取.
降低卷积核的使用数量能有效降低网络模型参数量,增加网络深度,加强了对病变特征的提取.
眼底视网膜病变具有局部性,在OCT 图像上往往占据较小的位置,且不同的病变之间的特征差异较大,CNV 的病变种类在OCT 图像上表现为视网膜层间的脱离,D M E 的病变种类在OCT 图像上表现为视网膜的撕拉变形.CNV 和DME 的病变种类病灶明显,且病灶区域较大,而玻璃膜疣的病变种类在OCT 图像上表现为视网膜层上的局部凸起,病灶较小,但较为集中.病灶特征大小不一致,使用单一卷积核难以有效提取不同尺寸的病变特征.为了更加充分、有效地提取OCT 图像中不同尺寸的病变特征信息,设计如图2 所示的多尺度卷积模块MultiBlock,它由1 个1×1卷积模块CBR、1 个多尺度卷积Multiconv 以及跳跃连接组成,其中Xi为输入张量,Xo为输出张量,Xm为经Multiconv 的输出张量,k为卷积核大小,s为卷积步长,p为单侧填充数量,dim 为张量维度.
图2 MultiBlock 结构图Fig.2 MultiBlock structure diagram
引入深度卷积[16]的思想,通过 1 ×1 大小的卷积核来调节输出通道,同时使张量内部进行跨通道信息交互,丰富特征信息.经归一化和激活处理后送入多尺度卷积层.多尺度卷积层Multiconv先将输入张量划分成4 个子张量,再使用不同尺寸的卷积核进行卷积操作.受文献[14]、[17]的启发,通过控制变量法测试不同大小卷积核的使用对分类精度的影响,经试验后,选择大小为1、3、5、7 的卷积核分别对4 个子张量进行卷积.多尺度卷积Multiconv 的数学模型为
式中:Xm为 多尺度卷积输出张量;fi(xi)(i=1,2,3,4)为不同卷积尺寸对应的卷积操作, [x1,x2,x3,x4]∈Xi,Xi为输入张量;J为拼接函数,C代表特征张量通道混洗; δ 为激活函数.
深度可分离卷积由深度卷积和逐点卷积共同构成,其中逐点卷积可以视为1 个 1 ×1 的普通卷积.深度可分离卷积和普通卷积参数量的比例为
式中:DK×DK×M×N为普通卷积的参数量,DK×DK×1×M为深度卷积的参数量,1×1×M×N为逐点卷积的参数量,DK为卷积核大小,DK×DK×1 为卷积核的参数量,M为特征张量输入的通道数,N为点卷积核个数,DF为特征张量尺寸大小.由式(2)可知,当点卷积核个数N远大于DK时 ,深度卷积的参数量约是普通卷积的1 /DK,深度卷积的引入有效降低了网络的模型参数.使用多尺度卷积能够通过不同尺寸的卷积核提取不同尺寸OCT 眼底病变特征,丰富特征表达,有效利用模型中存在的冗余信息[17],既能提取CNV和DME 较为明显的特征,也能通过较小卷积核加强对Drusen 病变小特征的提取.
在OCT 图像中,病灶大小、病变位置和病变特征都不同,因此较小的病变特征往往难以提取.由于玻璃膜疣的病变种类病灶小、边界模糊,在网络浅层的提取中,病变特征容易被忽略,无法有效提取.随着网络的加深,浅层局部细节信息逐步转化为全局语义信息,病变特征细节信息无法表达,在特征提取中会造成有用特征信息的丢失,导致整体分类精度的下降.为此,构建如图3所示的特征融合模块FFM,它由上采样模块和快速卷积空间金字塔模块(convolution spatial pyramid polling-fast, CSPPF)组合而成.FFM 将主干网络中的特征张量Xi(i=7,14,28,56) 分别输入上采样模块和CSPPF 进行处理,得到输出张量Xu和Xc,再将输出张量通道统一拓展到256,将输出张量Xu和Xc进行融合后得到输出张量输出XF14、XF28、和XF56.图中,RF 为感受野.
图3 2 种模块的结构图Fig.3 Structure diagram of two modules
上采样模块先通过1 个 1 ×1 的卷积将输入张量的通道维度拓展到256,再使用双线性插值对特征尺寸进行拓展,使特征尺寸与上一层特征尺寸保持一致.CSPPF 将空间金字塔模块(SPPF)的最大池化换成深度卷积,在不改变特征张量尺寸的情况下降低模块参数,同时实现特征的再提取.CSPPF 先通过1 个1 ×1 的卷积对通道进行拓展,再使用3 个级联的 3 ×3 卷积核实现卷积核大小为3、5、7 所能实现的感受野[18].将得到的输出张量按通道维度进行拼接,进行通道打乱后再次使用1×1的卷积核进行通道调整,将输出张量通道限制在256.
FFM 通过上采样模块对深层特征进行上采样,通过CSPPF 再次进行不同尺寸特征的提取,丰富了网络中OCT 图像中病变几何信息和病变空间信息的表达,能够将浅层提取到的OCT 图像中特异度不同的特征传递到深层,实现浅层纹理信息和深层语义信息的融合.强化对OCT 病变特征的提取和表达能力,实现精度的提升.
将主干网络输出的特征张量X7和特征融合模块得到的特征张量XF14、XF28、和XF56,依次经平均池化和Concate 拼接后,再经过2 次全连接层,得到最终的分类结果.平均池化得到的张量经拼接后输入第一个全连接层,将得到的特征信息进行降维操作,使卷积输出的二维特征张量转化为一维的向量.将得到的一维向量输入到第二个全连接层中进行端到端的输出,实现目标种类的分类输出.
实验在CPU 型号为Inter Core i9-10900K@3.70 GHz,GPU 型号为NVIDIA GeForce RTX 3080Ti, 12G 显存,32G 内存的个人计算机上开展.使用Pytorch 搭建网络框架,使用Cuda11.6 和Cudnn11.2 加速GPU.相关实验参数配置如下:批尺寸为32,图片尺寸为224,训练周期为150,动量因子为0.9,权重衰减为0.000 5,学习率为0.000 1~0.100 0.
实验采用3 个数据集,其中数据集UCSD[19]由CNV、DME、玻璃膜疣、正常眼底4 类共84 484张OCT 图像组成;杜克数据集(Duke)[20]由AMD、DME、正常眼底3 类共3 231 张OCT 图像组成;德黑兰努尔眼科医院(NEH)[11]收集的匿名OCT 图像数据集由CNV、玻璃膜疣、正常眼底3 类共12 649 张图片组成.如图4 所示为3 种眼底病变和正常眼底的OCT 图例,图中箭头所指的为病变位置.使用混淆矩阵对网络模型进行评估.通过网络模型对样本数据进行分类,判断样本数据的正(positive),负(negative),并根据样本的正负得到4 个一级指标:真实值为正,模型预测为正TP;真实值为正,模型预测值为负FN;真实值为负,模型预测为正FP;真实值为负,模型预测为负TN.根据这4 个一级指标得到4 种评价指标:准确率Acc、精确率P、召回率R、特异度Spe.
图4 OCT 例图Fig.4 OCT example diagram
为了验证MB-CNN 设计的合理性,在数据集UCSD 上,基于Resnet18 展开6 个实验,分别为Resnet18、深度可分离卷积和MultiBlock的对比实验以及依次引入的3 种策略:1)使用L-Resnet 轻量化主干,2)将普通卷积替换成MultiBlock,3)加入特征融合模块FFM.实验结果如表1 所示,其中√表示采用对应策略,记录实验中的模型参数NP和准确率.数据集中训练集、验证集、测试集的比例为7∶2∶1.实验1 为Resnet18 的分类结果.实验2 在实验1 的基础上将主干网络换成L-Resnet,没有更换卷积操作.由实验2 的结果可知,在更换完主干网络后,模型参数降低了38.81%,精度降低了0.17 个百分点.实验3、4 在实验1 的基础上将卷积分别更换为深度可分离卷积和MultiBlock.由实验结果可知,使用深度可分离卷积使模型参数降低了97.21%,精度降低了1.38 个百分点;当卷积核换为MultiBlock 时,相较于实验3,模型参数量增加了0.044×106,精度增加了0.44 个百分点.实验5 在实验2 的基础上添加M u l t i B l o c k卷积模块.相较于实验2,模型参数量降低了92.8%,精度降低了0.13 个百分点.实验6 在实验5的基础上加入特征融合模块,在加入特征融合模块后模型参数量增加了0.829×106,精度增加了0.46 个百分点.
表1 MB-CNN 组成部分的消融实验Tab.1 Ablation experiment of MB-CNN components
L-Resnet 主干网络通过减少个卷积阶段卷积核的使用减少了模型参数量,加深网络模型能加强模型对深层语义信息的提取,能够在模型降低参数量的同时减少对识别精度的影响.实验3、4 的结果显示,MultiBlock 卷积模块能够通过能够使用不同尺寸的卷积核来提取不同的特征信息,丰富模型的特征表达,提高分类精度.实验5 使用L-Resnet 主干网络,减少卷积核的使用、加深网络深度,同时使用MultiBlock 替换普通卷积,相较于实验1,参数量下降了95.34%,精度下降了0.3 个百分点.相较于实验1,加入L-Resnet、MultiBlock 能够更好地平衡模型的参数和精度.加入FFM 模块的实验6,通过融合深层语义信息和浅层细节信息,提高了对OCT 图像中小目标特征的信息提取能力,提高了分类精度.由表1 可知,在MB-CNN 中提出的3 种改进策略设计合理,有助于降低模型参数量、提高精度.还可看出,MB-CNN模型具有较好的分类效果.
消融实验充分验证了MB-CNN 的合理性.为了进一步验证模型的分类效果,将MB-CNN与现阶段具有代表性的视网膜OCT 分类网络进行对比.采用交叉验证法在UCSD、Duke 和NEH3 个数据集上开展对比实验.UCSD 采用10 倍交叉验证最后取平均值,Duke 和NEH 均使用5 倍交叉验证最后取平均值.3 个数据集上的对比实验结果如表2~4,其中对比数据均来自于网络模型的原始论文,OAcc 为总体准确率.
表2 不同模型在UCSD 数据集上的性能对比实验结果Tab.2 Experimental results of performance comparison of different models in UCSD dataset
由表2 可知,MB-CNN 在参与对比的模型中获得了最高的总体准确率,比位居第二的Resnet18提高了0.72 个百分点,同时参数量降低了87.92%.LACNN 通过将生成的软注意力图并入网络以加权局部卷积,并利用病变局部信息来改善分类,但专注于局部细节信息会导致全局语义信息的丢失进而影响分类精度.Liu 等[6]通过添加注意力强化对病灶的定位,放大病灶区域,提取放大后的病灶区域的病变特征,但病灶定位及放大会造成病灶边缘信息的丢失,难以有效提取特征信息(如病变形状、纹理),影响分类效果.PCAM添加2 种不同的注意力机制,加强了模型在空间和通道维度对病变特征的提取,同时将提取到的特征传递到深层,加强了对网络深浅层信息的交流,虽参数量比Resnet18 低了0.1×106,但单一尺寸的卷积核的使用没有提高模型的病变分类能力.DMF-CNN 通过组合多个不同感受野大小的卷积来有效提取不同大小的病变特征,使用联合多损失优化策略加强了模型对病变特征的识别能力,但没有解决显著特征在特征提取过程中丢失的问题.可以看出,在UCSD 数据集中,MB-CNN的改进达到预期的效果,相比Resnet18,对比模型的表现均不够出色.
由表3 可知,MB-CNN 在Duke 数据集上的分类效果超越了对比模型.Mesut 的分类准确率位居第二,略优于Resent18,Anju 的分类效果最差.Thomas 等[9]提出的多尺度卷积网络仅包含7 个卷积层,只有一层使用了3 种不同尺度的卷积核,难以有效的提取不同尺度的病变特征,且网络较浅提取到的语义信息较低,难以实现病变种类的有效分类.Toğaçar 等[10]的模型使用9 个现有模型进行迁移学习,在输出结果中择优输出,多种网络同时工作保证了病变特征的提取和利用,减弱了单一模型带来的方差,因而在Duke 数据集上表现较好.
表3 不同模型在Duke 数据集上的对比实验结果Tab.3 Experimental results of performance comparison of different models in Duke dataset
由表4 可知,在NEH 数据集上,MB-CNN 的表现依然最好,Sotoudeh-Paima 等[11]的模型的总体准确率比Resnet18 低0.65 个百分点.Sotoudeh-Paima 等[11]的模型通过连接深浅层网络加强了不同大小特征图之间的信息间交流,保证了浅层细节信息能够传递到网络深层当中并充分利用病变特征信息,但单一大小卷积核难以有效的学习不同尺度的病变特征,因而在NEH 数据集上表现不佳.
表4 不同模型在NEH 数据集上的实验对比结果Tab.4 Experimental results of performance comparison of different models in NEH dataset
Resnet18 网络使用单一大小卷积核难以提取不同尺度的病变特征,但通过使用残差连接实现特征信息跨卷积块的传递,在保证网络能够充分利用原有特征的同时学习新的有用的病变特征,有效地解决了病变特征丢失的问题,因而在3 个数据集上都有相对较好的表现.MB-CNN 保留了残差连接,同时使用多尺度卷积模块来提取不同尺度的病变特征,使用特征融合模块融合浅层细节信息和深层语义信息,加强病变特征提取的同时,将浅层细节信息传递到网络深层,使得信息得到充分的利用.因而在3 个数据集上的表现最好.
为了进一步论证的MB-CNN 的分类能力,展示MB-CNN 在UCSD 数据集上识别的病灶区域的热力图如图5 所示.可以看出,MB-CNN 能够准确关注不同疾病的病灶区域,通过病灶区域几何拓扑结构的准确提取,实现对OCT 图像中病灶位置的有效识别.对于正常的眼底,MB-CNN 主要关注中心凹区域.
图5 OCT 热力图Fig.5 Heatmap of OCT
为了实现不同眼底病变类型的自动识别,提出轻量化眼底OCT 图像分类网络MB-CNN.主干网络L-Resnet 中使用更少的卷积核,MultiBlock 模块引入深度卷积能够有效地降低模型参数.在MultiBlock 中使用不同尺寸的卷积核有效学习不同尺寸的特征信息,丰富了特征表达.通过特征融合模块将浅层细节信息和深层语义信息相融合,使网络既保留了前期的病变细节信息又能够丰富后期病变的语义信息,提高了网络对较小病变种类的分类能力.MB-CNN 的分类准确率较主流模型提升0.36~7.10 个百分点,获得了更好的分类效果.未来计划将MB-CNN 模型部署到嵌入式设备中,以实现眼底疾病的快速分类.