陈 林,陈亚军,沈 锐
(西华师范大学 a.计算机学院 b.教育信息技术中心,四川 南充 637002)
各种眼科疾病,糖尿病和血液病等全身性疾病发病率随年增长.临床上,视网膜血管图像不仅用于评估和监测各种眼科疾病,也能及时地反映出糖尿病和血液病等全身性疾病.尽早发现潜在疾病,由医生提供相应治疗.有助于改善患者病情,降低患者病情加重的风险.因此分析眼底视网膜血管显得十分重要.
现如今已经有非常多的传统算法对视网膜图像中的血管进行分割,例如:基于数学的形态学方法[1]、基于血管中心线方法[2]、基于像素特征分割方法[3]等.近些年随着深度学习的快速发展,残差神经网络不断被使用,如张笑楠等[4]提出了基于残差网络的三维人脸识别方法.基于深度学习的图像分割算法也是层出不穷,如FCN(fully convolutional networks)[5]、SegNet[6]、U-Net[7]等算法.使用基于深度学习的方法来分割视网膜图像中的血管的算法也不断被提出,如Li等[8]提出新的视网膜图像血管分割的监督方法.该方法将分割问题转化为跨模态数据的问题从视网膜图像到血管图的转换.如Zhao等[9]提出了新的无限主动轮廓模型,利用图像的混合区域信息来进行血管结构的自动检测.Alom 等[10]提出适用于多种场景的医学图像分割任务的递归残差结构的U-Net网络模型.Oliveira等[11]提出基于平稳小波变换提供的多尺度分析与多尺度全卷积神经网络相结合的改进全卷积神经网络,来处理视网膜血管结构的宽度和方向的变化,性能优于原始U-Net网络.文献[12]提出了基于残差网络的改进卷积神经网络的视网膜图像血管分割算法.尽管已经有如此多的视网膜图像血管分割算法,但对于视网膜血管的病变、低对比度和细小血管等区域的分割仍然有待提高.
综上,本文构建了一种基于残差模块[13]和卷积模块的注意力机制模块[14]混合的编-解码器结构算法用于实现对视网膜图像中血管的分割.与现有方法相比,该方法在视网膜图像中血管的分割效果有显著提高.DRIVE[15],STARE[16]和CHASE_DB1[17]数据集上的实验结果显示,其准确率和特异性均有显著提高,尤其是特异性.
图像分割方向的编码器-解码器结构[18]可以说是一种主流的网络架构,能够端到端地分割整幅图片,该方向编码器部分主要由卷积层、池化层和激活层等层组成,解码器部分主要由上采样层、卷积层和激活层等层组成.在本文算法使用带有跳层连接的编码器-解码器结构,融合不同尺度的低层特征和高层语义信息.本文基于编码器-解码器的网络架构构建了一种新的基于残差和CBAM混合的编-解码器结构的视网膜血管分割算法(RCBAM-Net),如图1.
图1 残差卷积注意力网络
残差卷积注意力模块(residual convolutional block attention module,RCBAM)由残差模块与卷积模块的注意力机制模块构成.如图2所示,使用残差模块加深了网络的深度且提升了网络性能,有效地解决视网膜图像分割中特征和信息损失问题.使用卷积模块的注意力机制模块可以让网络充分学习到哪些信息是有意义的,提高视网膜血管分割的准确性.x为输入数据,F1(x) 为残差模块在第二层网络的输出数据,即:
F1(x)=W2σ(W1x),
其中,W1和W2分别是第一层网络和第二层网络的权值,σ为Leaky ReLU 激活函数.F2为残差模块中经过二层网络的输出结果,然后把结果输入到卷积注意力模块后得出的输出结果.整个残差卷积注意力模块输入为x,输出为F2(x)+x.
图2 残差注意力模块
注意力在人类感知中起着重要作用[19].注意力似乎一直与意识以及其他复杂的功能紧密联系.近年来,越来越多的研究用卷积注意力来改善卷积神经网络性能.其中卷积注意力模块将注意力过程分为两个独立的部分,通道注意力模块和空间注意力模块.这样不仅可以让其作为即插即用的模块集成到现有的网络架构中去,而且可以节约参数和计算力.通道注意力和空间注意力有不同的组合方式,既可以并行也可以顺序的方式组合在一起,本文发现顺序的方式组合通道注意力和空间注意力(如图3)可以取得更好的效果.
图3 注意力模块
图像特征的每个通道可以视为对特定类别的响应,因此通道注意力更关注其中有意义的特征.为了汇总有意义的特征,采用了最大池化和全局平均池化两种方式来分别处理不同的信息.
如图4所示,通道注意力模块输入是一个C×W×H的特征,先对输入分别进行一个最大池化和全局平均池化和得到两个C×1×1的通道描述.接着,再将得到的通道分别送入一个共享的两层的神经网络,第一层神经元个数为C/r,激活函数为ReLU,第二层神经元个数为C.然后再将得到的两个特征相加后使用Sigmoid激活函数得到权重系数Mc.最后,用原来的特征F和得到的权重系数相乘即可得到缩放后的新特征.
图4 通道注意力模块
如图5所示,空间注意力模块输入是一个C×W×H的特征,先对输入分别进行一个通道维度的最大池化和平均池化得到两个W×H×1的通道描述,并将这两个描述按照通道拼接在一起.然后,进行卷积,卷积核为7×7,激活函数为Sigmoid,得到权重系数Ms.最后,用原来的特征和得到的权重系数相乘即可得到缩放后的新特征.
图5 空间注意力模块
本文使用视网膜血管公开数据集作为实验的数据集,数据集分别为DRIVE数据集,STARE数据集和CHASE_DB1数据集.
DRIVE数据集中共有40张彩色的视网膜血管图像,每张图像的分辨率大小都为565×584,该数据集本身有区分训练集与测试集,其中20张图像用于训练,剩余的20张图像用于测试.
STARE数据集和CHASE_DB1数据集中彩色的视网膜血管图像分别有40张和28张,每张图片的分辨率大小分别为700×605与900×960.由于数据集图片数量较少,且没有区分训练集与测试集,因此在这2个数据集上,本文使用k倍交叉验证(k分别取5与4)来训练与评价模型.
恰当的图像预处理方法对图像分割效果具有重要作用,可以使模型取得更好的效果.本文分别对数据集进行的预处理分别有:灰度转换,数据归一化,限制对比度自适应直方图均衡化及Gamma校准.数据归一化采用离差标准化.
验证实验结果与实验分析时需要将预测结果与原始背景轮廓图进行比较.本算法输入,输出都为尺寸为48×48×1的图像块,则需要将预测结果进行根据剪裁方法进行反向还原.
本文实验环境:Win10系统、keras框架、python编程语言、NVIDIA GX1060的GPU、16G的内存.网络权重优化算法采用:Nadam优化算法.本算法的损失函数采用:binary_cross_entropy.本方法选用的激活函数是Leaky ReLU,并加入批量归一化(batch normalization,BN).算法的性能评估函数采用:accuracy.使用来keras.callbacks模块来调换学习率,训练时batchsize设为20,epoch设为100.
本文分割金标准皆采用各个数据集第一专家的手动分割结果.视网膜图像血管分割就是将图像中的每个像素分为血管像素和非血管像素.本研究采用4个衡量指标来评价算法性能:灵敏度(sensitivity,Se)、特异性(specificity,Sp)、准确率(accuracy,ACC)、ROC曲线(receiver operating characteristic curve).其中Se,Sp,ACC衡量指标计算公式如下:
其中,Se是指正确分割的血管像素点在标准结果中的血管像素点总和的比例;Sp是指正确分割的非血管像素点在标准结果中的非血管像素点总和的比例;ACC是指正确分割的血管像素点占整个图像像素点总和的比例.式中各参数含义如下:真阳性(TP):预测为血管像素点,实际也为血管像素点;假阴性(FN):预测非血管像素点,实际为血管像素点;假阳性(FP):预测血管像素点,实际为非血管像素点;真阴性(TN):预测非血管像素点,实际为非血管像素点;ROC曲线表示设定不同阈值时(默认阈值为0.5)的灵敏度和特异性变化的情况.ROC曲线下的面积即AUC(area under the curve),其值越接近1,表明该算法在视网膜血管分割的效果越好.
3.3.1 算法性能评价
本研究分别进行了3组实验来验证本文所提方法在视网膜血管分割中的有效性.
实验1研究本方法对视网膜血管分割的效果.本实验使用经典U-Net算法与RCBAM-Net算法在DRIVE数据集上进行实验,对比效果.表1列出了实验结果,本文所提方法在DRIVE数据集上血管分割的准确率、特异性以及AUC指标上均超过了U-Net,尤其是特异性方面远远优于U-Net.
表1 DRIVE 数据集上U-Net与RCBAM-Net实验结果
图6 U-Net与RCBAM-Net的实验结果
如图6所示,分别使用U-Net与RCBAM-Net在DRIVE数据集上进行分割的结果图与该数据集中第一专家标注的结果图进行比较.可以看出,本文所提方法分割结果中细小血管较U-Net网络分割结果保留得更加完整,血管更具有连通性,解决了U-Net网络分割结果部分血管的断裂情况.从细节上(红框处)更能看出,本文所提方法可以更有效地避免非血管像素点分割成血管像素点,血管分割效果更佳.
实验2研究注意力模块排列顺序的不同对血管分割性能的影响.使用仅仅通道和空间注意力模块的排列顺序不同的相同算法结构在DRIVE数据集上的分割实验,并对分割结果进行比较:先通道注意力后空间注意力串联(RCS-Net),先空间注意力后通道注意力串联(RSC-Net),以及将空间注意力与通道注意力并行排列(RC+S-Net).表2列出了实验结果,其中RCS-Net网络模型实验效果较好.通道注意力主要聚焦于输入图像的什么特征是有意义的,空间注意力主要聚焦于输入图像的哪部分的有效信息较丰富,因此输入特征依次通过通道注意力模块、空间注意力模块的筛选,最后获得经过了重标定的特征,即强调重要特征,压缩不重要特征,也丰富了重要特征的信息.
表2 DRIVE数据集上不同顺序的注意力模块实验结果
实验3研究本算法的泛化能力.用本算法分别在DRIVE,STARE和CHASE_DB1数据集进行实验.表3列出了实验结果,分割均取得较好的效果.
表3 RCBAM-Net算法在DRIVE、STARE和CHASE_DB1数据集实验结果
图7 分割的结果图和金标准结果图对比准切片
如图7所示,分别使用RCBAM-Net在DRIVE数据集、STARE数据集和CHASE_DB1数据集上进行血管分割的结果图与这些数据集第一专家的手动标注金标准结果图进行比较.可以看出,本文所提方法不仅能够提取到视网膜图像中的大部分血管,而且能够完整地提取出血管的主干部分,特别是能够有效地分割一些难以识别的视网膜细小血管.因此得出本文所提方法在视网膜血管图像中的分割效果不错.
3.3.2 与其他算法性能比较
表4列出了在DRIVE、STARE和CHASE_DB1数据集上本文所提的分割方法与其他一些现有的分割方法进行比较.本文所提方法在DRIVE数据库的测试集中其中特异性表现较好,其他方面表现一般,文献[22]的准确率和灵敏度比本文方法分别高了0.0069和0.0619,但本文方法的特异性比文献[22]结果高了0.0049.文献[24]的AUC和灵敏度比本文方法分别高了0.0051和0.0181,但本文方法的特异性和准确率分别比文献[24]结果高了0.003和0.007.本文方法在STARE数据集和CHASE_DB1数据集的表现非常优秀.在STARE数据集中,文献[22]的灵敏度比本文方法高0.0371,但是本文方法的特异性与准确率比文献[22]的结果分别高了0.0135和0.0166.文献[24]仅在CHASE_DB1数据集的灵敏度比本文方法分别高0.0215,但在STARE数据集和CHASE_DB1数据集的其他指标效果都低于本文方法.总体来说,本文方法在不同数据集上特异性与准确率的结果相对较好,说明加入残差和卷积模块的注意力机制的算法有较强的鲁棒性.
表4 对比在DRIVE,STARE和CHASE_DB数据集中不同算法的性能
本文构建了一种残差模块和卷积模块的注意力机制模块混合编-解码器结构的分割算法用于视网膜图像中的血管分割.在编码器-解码器结构中使用带有跳层连接,可以将不同尺度的低层特征与高层语义信息进行融合.使用残差模块加深了网络的深度且提升了网络性能,有效地解决视网膜图像分割中特征和信息损失问题.使用卷积模块的注意力机制模块可以让网络充分学习到哪些信息是有意义的,用以提高视网膜血管分割的效果.实验表明,本文所构建的方法取得了血管分割的较高特异性.总体而言,本文所提方法在视网膜图像的血管分割上得到较好的分割效果,但也有一些不足之处.在图像进行预处理后,有些视盘区域被处理成与血管十分相似,以至于在进行血管分割时将有些视盘区域的像素点分为血管像素点.未来将进一步探索更适合细小血管特征的预处理方法,以改进这些不足.