基于编解码结构的多特征融合眼底图像分割
2022-07-29丁婉莹李昭慧
丁婉莹,陈 伟,李昭慧
(西安科技大学通信与信息工程学院,陕西 西安 710000)
0 引 言
眼睛是不可或缺的人体器官,它接收的信息占据人们收到的总体信息的80%以上[1],其健康与人类生活不可分割。现今医生在眼部疾病诊断时主要依靠眼底图像来判断,某些器官的状态也可以通过眼底图像的变换展示出来[2]。眼底血管分割是医生根据眼底图像诊断病人状况的决定性条件,对于临床医学有着重要的意义,因此为了医生能有效地诊断疾病,对视网膜血管图像的分割是必要的[3]。
在进行眼底视网膜疾病的有关诊断时,依照经验对视网膜血管进行人工手动分割是现阶段医生常用的方法。由于这种方法存在眼底血管散布致密、对比度低的问题,可能还有出血点、渗出物等病变,以及大量的微细血管与病灶噪声的影响相结合,致使传统的手动分割工作量变得很庞大,依赖人工手动分割血管会出现效率低下,易受主观性影响、出错率较高等问题。
眼底血管分割技术从本质上可以看作是眼底血管图像中的血管像素与背景像素的二分类问题。近年以来,国内外专家学者针对眼底血管的分割问题提出了大量算法,将这些方法依照是否应用到标准图像,可划分为2种:无监督学习分割方法和有监督学习分割方法[4]。无监督学习分割方法最显著的特点是不需要人工事先标记信息,直接在图像上提取血管,可以将无监督学习细分为匹配过滤[5]、血管跟踪[6]、形态处理[7]和变形模型等方法,其优点是工作量小,分割工作效率高;缺点是无法分割出细微血管并且存在准确率不高的问题。有监督的分割方法则通过从经验丰富的眼科医生标记过信息的图像训练集中学习模型来进行视网膜血管的分割,再利用已有的人工标识信息,以区别血管像素和非血管像素。该方法对血管特征信息更为敏感,可靠性和稳定性较强。现今对视网膜血管分割研究中,最为广泛的是以深度学习为基础的有监督学习方法。唐明轩等[8]通过使用稠密连接等技术,构建一种新型的深度卷积神经网络,并结合带孔卷积来增加网络血管分割精度,但存在分割敏感度较低问题。Orando等[9]人在视网膜血管分割上成功将密集型条件随机场与卷积神经网络(Convolutional Netural Networks, CNN)相融合,在图像中建立了远程链接,收缩偏差得以解决,但有病变假分割的现象。Guo等[10]提出了降低上下采样次数,将U-Net网络与残差网络相结合的模型算法,改善了分割准确率不高的问题,但对于病灶区域细微血管分割仍不完整,且特异性指标没有提升。Xiao等[11]研究得出了一种U-Net的网络模型算法,将U-Net网络与带有加权注意力机制的模型共同用于血管的分割,但是U-Net方法依然随着训练数据的扩大和网络层的加深,存在分割结果在细微血管不能很好识别、复杂曲度形态血管丢失且分割灵敏度指标较低的问题。
为了降低眼底血管分割的微细血管细节丢失,提高分割准确度和灵敏度,使得自动分割技术更好地用于临床诊断,本文基于原始的编码解码模块中U-Net模型作优化改进设计。首先,将传统U型编解码网络中的卷积模块用残差网络(Residual Network, ResNet)替换,并加入短跳跃连接将高低多特征相融合,从而更完整地达到对细微血管的分割;其次,用空洞卷积代替卷积块,用于扩大感受野和提高网络提取血管特征的能力,提高网络泛化能力;最后,基于U-Net模型的跳跃结构,在解码阶段添加注意力模块(Attention Gate block, AG),将目标集中在血管的特征上,高维特征和低维特征的信息融合被强化,以减小视网膜血管信息的损失,最终实现更好的分割性能。
1 视网膜图像分割算法原理
1.1 算法原理
1.1.1 残差网络与多特征融合连接
残差学习[12]是从CNN改进技术中提出的,即将输入结果直接增加到底层,可表示为:
F(x)=H(x)-x
(1)
其中,网络层的函数映射为H(x),输入特征映射为x,F(x)为网络中的隐藏层输出结果。残差网络的使用降低了训练参数,并且改善了神经网络随着网络层数增多而导致的网络退化,克服梯度消失的产生。
图1 残差模块
本文将原始卷积模块改为残差模块,残差模块定义如图1所示。其中input为网络的输入或上一个结构块的输出,每一个结构块是由3个conv 3×3+BN+ReLU和1个1×1的卷积层组成的。其中conv指的是卷积层,BN为批量归一化,ReLU为激活函数[13]。在卷积层和激活函数间加入批量归一化函数BN层[14]解决了网络层数过多导致网络泛化能力差的问题,由于每组用来训练的图像块都是随机选取,网络要每次去学习不同的分布,因此会致使网络训练速度变慢[15]。ReLU激活函数可以降低反向传播过程中的梯度消失问题,减少网络计算繁琐程度,其定义为:
ReLU(x)=max(x,0)
(2)
式(2)中,仅当x>0时导数值恒为1,能够减弱梯度消失的问题;再输入到1×1的卷积层中进行压缩,在解决训练参数过多问题的同时完成对图像特征的提取。
卷积层之间使用短跳跃连接,将本层的卷积结果和上一层的卷积结果相互累加,作为下一层的输入,最后叠加作为结构块的输出,这种方式可以改善深度神经网络随着网络层数增多而出现的网络退化问题,在很大程度上避免了梯度爆炸和梯度消失[16]的发生,也提高了特征使用率,使得特征信息能够被充分利用。
1.1.2 空洞卷积
池化层在传统卷积神经网络中,对减小图像大小和增大特征映射图的步长有益,然而也存在细节丢失、细微血管的分割不完整且容易产生断裂等问题[17]。在卷积神经网络中,卷积核越大,对应的感受野也越大,也就易导致训练中数据的过拟合。对于此类问题Chen等[18]提出了一种空洞卷积的方法,这种方式扩大了感受野,不仅参数数量不会增加,而且保留了更多眼底图像细节。空洞卷积的基本原理即在普通卷积核像素间插入为0的像素值,用以增大网络的扩张率r。如图2所示,当r=1时,为3×3空洞卷积核;当r=2时,为5×5空洞卷积核。通过调整r的数值大小,来达到感受野大小的调整。
(a) r=1 (b) r=2图2 空洞卷积示意图
本文将传统U-Net网络底部的卷积层模块[19]用空洞卷积替换,增大了卷积操作的感受野,不仅没有增加网络参数复杂度,而且更全面地应用了图像的全部信息。
1.1.3 AG模块
视网膜血管分割图像中存在背景噪声对血管像素点进行遮挡的问题,为了使得低对比度下的细微血管分割精度得以改良,剔除掉不相干像素点信息对血管像素点信息的影响,本文在解码部分加入AG(Attention Gate, 注意力门)[20],使AG与跳跃连接方式相结合,解决了编码器与解码器之间跳跃连接这种上下采样相连接的方式导致的无法对细小和复杂血管进行分割及权重分散的问题。AG模块结构如图3所示。
图3 AG模块原理图
该模块定义为:
(3)
(4)
(5)
y(i,j)=λ{F[v(i,j)+k(i,j),bF],bλ}
(6)
(7)
AG是通过对输入特征图与选通信号进行分析[21],得到与其对应的相关注意力系数。如图3所示将编码、解码的矩阵相加得到注意力图,再通过ReLU激活函数和sigmoid操作获得下一个注意力图,再用Resampler进行重采样把图变为原始尺寸,接着将得到的注意力图与跳跃连接部分相乘,得到最终注意力图像。加入注意力模块跳过池化层直接级联到下一个反卷积层,以此将互补特征信息相融合,将高层信息与底层信息相结合,对视网膜图像微细血管的特征提取有益,提升血管分割精度。
1.2 基于编解码结构的多特征融合改进网络结构
针对眼底视网膜血管图像分割中由病变、光照等因素,造成微细血管细节丢失、分割精度低的问题[22],本文设计出一种基于编解码中U型网络改进的模型算法,如图4所示。图4中包括了3个阶段:编码阶段、空洞卷积和解码阶段。
图4 改进U-Net视网膜血管分割网络结构
编码阶段由4个结构块构成,用以对图像进行特征提取,每个结构块是由下采样和卷积层组成,其卷积层尺寸均为3×3,特征通道数为64。其中将卷积模块替换成为了残差模块,使用ReLU激活函数和BN层解决了网络层数过多导致网络泛化能力差的问题,用来提高特征使用率。结构块通过步长为2的池化层相连接。
将U-Net网络模型底部的原始卷积层模块替换成为空洞卷积模块,将特征图大小降为原来的1/2,本文加入的空洞卷积模块比原始卷积块增加了大小为3的空洞率参数,感受野得到扩增,保留了更多的图像细节,防止了血管分割细节断裂不完整的问题。
解码阶段由4个结构块构成,用以对提取之后的特征进行上采样,每个结构块是由上采样和卷积层组成,卷积层尺寸同为3×3,结构与编码模块相同,最高解码层为1×1的卷积层,用以输出分割结果。在解码阶段与编码阶段引入AG,结合原始U-Net网络的跳跃连接结构,将多特征进行融合,有效降低视网膜血管信息丢失概率,提升分割精度,恢复图像信息。
2 实验及结果分析
2.1 实验数据集
DRIVE数据库是现今利用最广的视网膜图像标准库之一[23],DRIVE数据库中的图像以JPEG格式储存,共40张眼底图像,分辨率均为565×584像素。将DRIVE数据集中的眼底图像分为训练集和测试集这2组,每组为20张图像。训练集和测试集中分别有1组和2组的专家手动分割血管结果的图像,用于实验对比。CHASE-DB1数据库是14位患者的双眼拍摄图像,共28张,分辨率均为999×960,其中20张用于训练,8张用于测试,每张图像均包含眼底图片和专家手动分割血管图像。掩模Mask图像是通过阈值划分手动分割得到的。图5展示了CHASE-DB1数据集中的一组数据。
图5 CHASE-DB1数据集中的一组数据
2.2 预处理与扩增
原始的彩色眼底图像中,由于受到眼球运动、光照、血管造影程度等影响而存在较多的噪声且对比度低,因此直接分割血管树与背景会使相似像素的同一特征区分度较低,同时较多的噪声会大大影响分割结果。为了给后期视网膜血管分割提供更优的研究对象,需要通过对原始图像进行预处理来提升对比度。预处理效果图如图6所示。
(a) 眼底图像 (b) 绿色通道图像 (c) CLAHE处理 (d) Gamma变换图6 眼底图像预处理
预处理首先是分离绿色通道图像。DRIVE数据库的原始图像为RGB图像,提取出每个通道的眼底图像经比较后得出,血管和背景能够有最佳对比的通道为绿色通道,可较好地观察到微细血管纹理,对后续血管分割有帮助。
其次是对提取出的绿色通道眼底图像做对比受限的自适应直方图均衡化(Contrast-limited Adaptive Histogram Equalization, CLAHE)来进行数据增强。为更好地显现血管结构,解决眼底图像采集时会发生光照不均匀的问题,调节图像的灰度直方图,用以增加图像局部区域对比度并降低背景噪声的干扰。实验结果如图7所示。
(a) 原图 (b) 处理后的图像图7 CLAHE处理结果
最后使用伽马矫正[24]对眼底图像进行处理,即为协调自然亮度和主观灰阶之间的映射关系,通过检验眼底图像中的深色区域和浅色区域,加大两者的比重差距来增大图像背景与血管的对比度。实验结果如图8所示。
(a) 原图 (b) 矫正后的图像图8 伽马矫正结果
由于眼底视网膜图像数据数量较小,直接使用会发生过拟合现象,并且眼底数据集图像的规格略大,直接输入训练也会对网络模型的训练造成一定的难度。基于这2种原因需要对眼底视网膜图像做数据集扩充的处理。采用patch剪裁,随机剪裁为48×48的子图像块用以网络训练,此方法在去除掉噪声影响的同时,还可对眼底图像特征进行较为完整的保存。
本实验从完整眼底视网膜图像里用随机的方式选择中心来剪裁得到统一大小的子图像,而子图像的选取范围包括了在视野之外的斑块,这样可以使神经网络能学习怎样分辨视野边界与血管。通过在20张DRIVE训练图像里的每一张图像中随机提取10000个patches,获得了一组200000个局部样本块。实验结果如图9所示。
(a) 图像分块处理图 (b) 处理的Ground truth图图9 处理的局部样本块图
2.3 网络参数设置
实验计算机环境配置为Intel(R)Core(TM)i7-9700F CPU@3.00 GHz处理器,显卡为NVIDIA GeForce RTX2070 GPU,采用64 bit Windows 10操作系统。本实验的仿真平台是PyCharm,在Tensorflow框架下Keras开发库上进行本实验的网络搭建。
2.4 评估指标
视网膜图像血管的语义分割网络的实质任务就是对图像进行像素点级别的分类,将眼底图像分为血管像素点和非血管像素点。本文采取准确率(Acc)、敏感性(Se)和特异性(Sp)3个指标[25]作为视网膜血管分割算法的性能评价标准。这3个指标概念分别为:准确率是被正确分割的像素数比图像全部像素数;特异性是正确分割的非血管像素数比总非血管像素数;敏感性是正确分割的血管像素数比血管像素总数量。根据表1的计算公式,分割效果与准确率、敏感性和特异性的值成正比。
表1 血管分割结果评估标准
表1中,TP(True Positive)是真阳性,表示视网膜图像中的像素被语义分割网络认为是血管并且预测准确;TN(True Negative)是真阴性,表示被认为是非血管并且预测准确;FP(False Positive)是假阳性,即误报率,表示被认为是血管,但实际上是非血管;FN(False Negative)是假阴性,即漏报率,表示被认为是非血管,但实际上是血管。
此外,本文还引入了模型评价指标AUC(Area Under Curve)[26]对分割结果进行评估。AUC定义为接收者操作曲线(Receiver Operating Characteristic Curve, ROC)的线下面积,其大小不大于1。而ROC曲线即为以纵坐标为Se,横坐标为(1-Sp)绘制的一条曲线。ROC曲线的位置通常处在y=x这条线的上部分,故AUC的取值范围在0.5~1。因此检测方法的真实性要达到高水平,AUC值则要向1.0靠近。
2.5 实验结果与分析
将本文研究方法在DRIVE和CHASE-DB1眼底图像数据库上进行实验,视网膜分割结果如图10与图11所示。图10(a)和图11(a)列为原始的眼底图像,图10(b)和图11(b)列为人工手动分割的标准眼底血管图像,图10(c)和图11(c)列为本文方法实验得到的眼底血管分割结果。从实验结果观察可看出,本文方法分割出的视网膜血管跟专家手动标准图像基本一致,并且对于细小血管检测分割不完整的问题得到了改善,在血管复杂处分割结果也较优。视网膜血管复杂密集,且容易受到自身病变与外界因素的影响,本文使用的是将残差网络、空洞卷积和注意力模块结合的网络结构,可以在分割细小血管的同时,有效识别不同特征的血管,克服外界因素对血管分割的问题。
(a) 原始图像 (b) 标准图像 (c) 分割结果图像图10 DRIVE数据集上的分割结果
(a) 原始图像 (b) 标准图像 (c) 分割结果图像图11 CHASE-DB1数据集上的分割结果
2.6 算法改进前后对比
为了检测模块改进前后对视网膜血管分割的算法性能,进一步证明模型改进的有效性,对本文提出的基于编解码结构的多特征融合改进网络进行消融实验。将原始U-Net表示为T1,将原始U型网络中残差模块代替卷积模块表示为T2,将AG机制与原U型网络结合表示为T3,将本文方法表示为T4,分别在DRIVE数据库上做实验,进行对比,并将每组实验迭代次数均设为100。实验所得结果如表2所示。
表2 改进前后不同模块实验指标对比
由表2可看出在消融实验中,原U型网络中用残差模块代替卷积模块模型的T2实验相比于T1的原始U-Net网络模型,Sp、Se值都有明显的提升,说明残差模块的加入可以有效提高实验中的特征使用率,使得网络分割性能优化;将AG机制与U型网络模型相结合的T3实验相比于T2实验,Se、Acc值得到明显提高,说明注意力机制模块比残差模块更能将高低特征更好融合,提高了细微血管的分割精度;本文的改进模型实验T4相比于原始U-Net网络模型和只包含单个改进模块的T2、T3实验,Se、Sp、Acc和AUC的值均得到了大幅提升,能够对眼底图像血管的细微部分实现更加精准、稳定的分割效果。
为更加直观地看出本文研究的改进效果,图12对血管的具体局部细微处进行展示对比,其中,图12(a)列为原始眼底图像局部血管图,图12(b)列为标准图像,图12(c)列为原始U-Net分割效果,图12(d)列为本文实验分割效果。可以明显看出原始U-Net模型对于细微血管存在分割断裂不连续问题,部分血管细节也存在缺失,而本文的算法模型使细微血管连续性大幅提升,解决了血管分割的断裂问题,加入的残差模块与AG提高了血管特征的使用率,抑制了背景噪声对分割的影响。综上所述,本文的改进算法模型对于眼底图像血管的分割优化具有效性。
(a) 眼底原图 (b) 标准分割图 (c) 原始U-Net模型分割 (d) 本文算法分割图12 局部细节分割对比图
2.7 不同算法分割指标对比
为了进一步评价本文在视网膜血管分割方法上的优化效果,对评估指标准确率、特异性、灵敏度及AUC的数值进行对比,表2和表3分别列出了近几年视网膜血管分割方法在DRIVE以及CHASE-DB1数据库上的分割效果。
表3 不同算法在DRIVE数据库上的实验结果对比
表4 不同算法在CHASE-DB1数据库上的实验结果对比
对于DRIVE数据集本文方法的血管分割准确率达到了0.9677,特异性达到了0.9874,灵敏度达到了0.8093,AUC值为0.9855;对于CHASE-DB1数据集本方法的血管分割准确率达到0.9722,特异性达到0.9840,灵敏度达到0.8112,AUC值为0.9863,可得出本文方法相比较于传统卷积神经网络在准确率、特异性和灵敏度上均得到了提升,整体性能较优。总之,通过比较可知,本文提出的网络结构在DRIVE数据库和CHASE-DB1数据库上的血管分割效果优于表3、表4中所列文献近年来分割方法及传统U型网络性能,能够更为准确地分割出细小血管。
3 结束语
视网膜血管诊断对防治疾病有着良好的发展前景,由于其易受外界和病变因素影响,细小血管的精确高效分割是需要研究的关键问题。本文提出的基于编码解码结构的多特征融合网络,基于U型网络,使用了Resnet、残差模块加入短跳跃连接、空洞卷积以及添加AG对特征信息加强,不仅扩展感受野和提高网络提取血管特征的能力,网络泛化水平升高,而且将多特征进行融合,减小了视网膜血管信息丢失以实现更好的分割性能。实验结果表明,本文算法模型能够在DRIVE与CHASE-DB1眼底数据集上,较精准地实现微细血管的分割,相较原始血管分割方法整体性能有一定程度的提升,具有较好的图像分割性能。在下一步研究中,计划针对灵敏度较低以及细微血管断裂不全等问题,探索更加精准的视网膜血管分割方法。