APP下载

基于密集空洞卷积的注意力机制视网膜血管分割方法

2022-08-10原忠虎韩晓微

沈阳大学学报(自然科学版) 2022年4期
关键词:密集空洞视网膜

原忠虎, 雷 莹, 韩晓微

(沈阳大学 a. 信息工程学院, b. 科技创新学院, 辽宁 沈阳 110044)

眼底视网膜血管形态结构是衡量人体健康的重要指标,能够反映出人体的各种疾病,如糖尿病视网膜病变、青光眼、高血压等。因此,对视网膜眼底血管进行精准分割,对辅助医生诊断和治疗人体疾病具有重要的临床意义[1]。

由于噪声对视网膜图像的影响,图像存在对比度过低、微小血管分割细节不够等问题。为了解决这些问题,研究者们提出了许多血管分割的算法,其中主要分为无监督学习算法和有监督学习算法。

无监督学习算法的优点是信息特征不需要提前被标记、数据量较小,但是效率高。有很多种类的传统无监督算法,例如基于形态学、匹配滤波、跟踪血管路径及基于模型等。Lam等[2]提出了一种基于改进模型的血管分割技术,通过调整局部归一化的凹度量来解决视网膜眼底图像中由于亮度不均匀导致的噪声问题,进而处理亮度不一致的病变区域。Nayebifar等[3]提出了一种基于粒子滤波的视网膜血管跟踪方法,采用随机采样的粒子表达概率密度分布来对视网膜血管进行分割。Hassan等[4]提出了一种基于形态学的视网膜血管分割算法,通过腐蚀和膨胀、开运算和闭运算等形态学操作来对血管进行分割。由于无监督算法直接根据经验来设计模型,容易受到人为因素的影响,很难保证分割质量始终保持在一个较高的水平。

有监督学习算法需要通过人为大量标注数据作为监督信息,并进一步完成对视网膜血管信息特征的学习和血管分割。传统机器学习方法是最先被使用来对图像特征进行提取和学习的。Fraz等[5]提出一种决策树与形态学变换相结合的方法来进行血管信息特征的提取与分割。Ricci等[6]采用支持向量机模型来根据血管宽度对其进行分割。近几年来,深度学习在图像处理方面有了很大的突破。起初,卷积神经网络(convolutional neural networks, CNN)是通过卷积运算来对图像进行特征提取的。Long等[7]于2015年提出了全卷积神经网络(fully convolutional network,FCN)。该网络把卷积神经网络最后的全连接层替换成反卷积层,从而得到了精细的分割效果。在此基础上,Ronneberger等[8]提出了一种完全对称的编码-解码器:U-Net分割模型。该模型采取通道拼接融合的方式来提取特征,从而可以有效地将编码过程中所丢失的信息恢复。Huang等[9]提出了密集卷积网络(dense convolutional network,DenseNet)。该算法通过密集连接的方式将先前所有层的信息保留下来,能够增加图像的底层信息,从而加强特征。为了扩大图像的感受野,Chen等[10]提出了利用空洞卷积代替传统卷积层的方法,但是这会带来丢失局部细节信息的问题。因此,Chen等[11]进一步地提出了利用空洞空间金字塔池化(atrous spatial pyramid pooling,ASPP)的方法来增强信息之间的依赖性,从而可以更有效地捕捉图像的尺度信息。Wang等[12]提出了利用卷积神经网络和随机森林相结合的眼底血管分割算法,但是很难准确地分割血管边界信息。 Feng等[13]利用了FCN来对视网膜血管进行分割,尽管绝大部分的血管结构能被准确分割出来,但是由于没有考虑到像素之间的关系,而只是在融合时相加了对应像素点,因此缺乏空间的一致性。薛文渲等[14]提出了在U-Net基础上添加Inception模块来提升对视网膜血管的分割。这不仅平衡了网络的宽度和深度,还可以提取到多尺度信息与形状结构。除此之外,该方法还将底部池化层替换为空洞金字塔卷积,从而可以更好地捕捉血管的细小特征,减少信息丢失。蔡乾宏等[15]将U-Net网络与Mini-U-Net网络进行结合,提出了2阶段分割方法。该方法将原始卷积层替换为残差卷积的形式,并在跳跃连接部分加入了注意力机制。因此,该方法能够使血管的细节信息更好地被保留下来,并提高分割精度。

本文设计了基于密集空洞卷积的注意力机制视网膜分割算法,同时将该算法对视网膜血管的分割效果与现有的分割算法在DRIVE数据集进行评估对比,说明本文分割算法的优越性。

1 网络结构与算法原理

1.1 网络结构

本文提出了一种基于密集空洞卷积的注意力机制视网膜分割算法,整体框架如图1所示。具体来讲,该方法以DenseNet网络作为基础网络,采用密集连接块来提取编码部分的特征,并在此基础上用空洞卷积代替传统卷积,增大了感受野,获取到更多的眼部信息,通过空间注意力机制模块来对血管和病灶信息进行增强,抑制其他无用信息。

本文算法的整体网络包含下采样操作的收缩路径以及上采样操作的扩张路径。具体包括密集空洞卷积模块,最大池化层,空间注意机制模块,3×3卷积、BN、ReLU。除此之外,还有上采样、复制拼接、1×1卷积等。

编码部分提取视网膜图像信息特征和解码部分融合信息的具体过程如下。

编码部分包括3个最大池化操作。每个池化操作都会将图像减小到原始尺寸的一半。本文模型采用具有较强特征提取能力的密集连接模块(dense block)。该模块会将每一层提取到的血管信息特性作为所有后续层的输入,这些特性被不断重复使用,因此底层的空间信息被充分利用。除此之外本文提出的方法以空洞卷积取代传统U网模型的卷积,从而可以增加感受野,且无需更多参数即可获得有关视网膜血管的信息。使用1×1卷积来减少计算量,使用ReLU层增加非线性表达能力。解码部分包括3次上采样操作。对于每个上采样操作,图像是原始尺寸的2倍。每层的跳跃连接通过1×1的卷积减少维数,并补充1个通道数为24的特征图。具体过程如下:解码部分的输出先经过3×3卷积来提取高维特征。之后该模型通过跳跃连接将编码部分的补充特征图与解码部分的输出拼接起来作为下一层解码部分的输入。在这里跳跃连接用于恢复图像大小、提高特征的丰富程度、减少语义信息的丢失、并传递了全局特征。除此之外,空间注意模块用于改善空间维度上的视网膜血管特征,抑制来自背景信息的干扰。最后一层的1×1卷积,将特征向量映射到类的标签,得到分割预测图。因此,将编码部分的粗糙特性与解码部分的精细特征相结合,可以更好地获取原始图像的空间信息和细节信息。

图1 密集空洞卷积的注意力机制分割模型Fig.1 Segmentation model of attention mechanism based on dense hole convolution

1.2 算法原理

1.2.1 空洞卷积

当CNN对图像进行卷积池化操作时,图像尺寸会减小再恢复。但在这个过程当中,有一些重要的信息会丢失。因此,本文选择了空洞卷积代替标准卷积,即在编码器和解码器之间布置捕获全局上下文的空洞卷积块,这样就可以在不使用池化操作的情况下也能扩大感受野。

空洞卷积是通过步长来将卷积的元素分离的卷积过程,如图2所示。

(a) 标准卷积(b) 步长为1的空洞卷积(c) 步长为2的空洞卷积

当3×3滤波器与输入映射进行卷积时,在密集区域执行3×3标准卷积,如图2(a)所示。在每个元素处将输入值乘以过滤器值以获得相应的值。另一方面,空洞卷积具有步长,即卷积元素之间的距离。如图2(b)所示,如果步长设置为1,5×5区域采用3×3滤波器。当步长设置为2时,对7×7区域进行卷积,如图2(c)所示。与标准卷积相比,空洞卷积是一种稀疏连接到更广范围的卷积,用不同的步长堆叠5个空洞卷积层。虽然空洞卷积具有与标准卷积相同大小的滤波器,但它可以感知更大的区域并通过叠加捕获全局上下文。

1.2.1 密集空洞卷积模块

现有的残差结构在网络的深度和宽度上都有很大的局限,但是密集连接模块(DenseBlock)并没有这种困扰。这主要是得益于提取到的特性都能被密集连接模块充分利用。与传统的结构都是依赖最后一层的输出不同,这种方法可以使下一层考虑先前所有层的输出,而不仅仅是从最新层获取信息。因此,密集连接模块通过底层空间信息可以学到更多可复用模式,得到的决策函数也更平滑,泛化性更好。最后,将密集连接模块与空洞卷积相结合就是本文提出的密集空洞卷积模块,如图3所示。

图3 密集空洞卷积模块结构Fig.3 Structure of dense cavity convolution module

具体来讲,输入3个通道的眼底图像在经过1层卷积后获得64×64×32的特征图。而该特征图被作为第1层密集空洞卷积模块的输入。在密集空洞卷积模块中,特征图每次经过1层卷积之前都要经过1×1卷积的降维。增长率k与特征图数量之间的关系为

Il=Il-1+kNl-1。

(1)

式中:Il表示第l层的特征通道输入的数量;Nl-1表示第l-1层的卷积数量。在本文中,k为16,且使用了6层卷积,因此最终输出特征图像的数量为64×64×32,加上前层所有的输出64×64×16×6。此时每个密集块中的卷积都会生成k个特征图,先前层的所有输出特征作为下一层的输入,会导致特征数量成倍增加。本文除了选取合适的增长率k=16外,还使用1×1卷积操作进行通道维度上的降维,避免特征图的爆炸性增长。在密集空洞卷积模块中经过6层卷积后生成的特征图再使用1×1的卷积,融合所有以前的特征,把通道数降维到一半,特征图大小为64×64×64,随后经过最大池化层,第一个下采样的过程就完成了,得到了32×32×64的特征图。

本文不采用平均池化层而采用最大池化层是因为最大池化层对突变点更加敏锐。血管和病灶就是图像中最突出的值,这样特征的细节就能够被更多地提取出来。

1.2.3 跳跃连接

根据上述提出的密集空洞卷积模块,得到的语义信息具有丰富的特征。因此,只要再经过解码器的上采样操作把信息恢复到原始大小,就可以进一步完成分割预测。但是,直接进行上采样操作会导致一些重要的信息丢失。因此,本文构建了一个基于跳跃连接的图像大小恢复解码器,如图4所示。

图4 基于跳跃连接的解码器Fig.4 Decoder based on hop connection

本文提出的跳跃连接结构可将高维的特征和低维特征融合。具体来说,输入在经过1×1的卷积操作减少参数和通道数后,低维信息会依次经过批量归一化层(BN)和ReLU激活函数,并和高级特征进行融合。

1.2.4 空间注意力机制

注意力机制主要有2个方面:①决定需要关注输入的哪部分;②分配有限的信息处理资源给重要的部分。空间注意力机制是将原始图片中的空间信息变换到另一个空间中并保留了关键信息。因为卷积神经网络中的池化层直接用最大池化或者平均池化的方法,将图片信息压缩,减少运算量来提升准确率。但是直接将信息合并会导致关键信息无法被识别出来,所以一个叫空间转换器的模块被提出,将图片中的空间域信息做对应的空间变换,从而能将关键的信息提取出来。

为了更好地定位血管的位置,可以将单个像素位置的权重与当前特征图的上下文信息相结合。这样就可以生成像素级别的空间注意力加权信息,如图5所示。图5中,C和R为通道数,H和W是图片的高和宽。

图5 空间注意力加权信息生成Fig.5 Spatial attention weighted information generation

首先,输入图像同时经过平均池化操作和最大池化操作提取特征,并将它们进行拼接。接下来,利用卷积核大小为7的卷积操作将特征聚合在一起,并使用Sigmoid函数执行激活操作。因此,空间注意力Ms(F)公式为

(2)

2 实验、结果与分析

2.1 实验环境与数据库

本文使用的数据集来源于DRIVE数据库,其包含的40张图像的尺寸为564×584。为了进行有监督学习,血管和掩膜图像都被专家手动标注出来,如图6所示。

(a) 原始眼底图像(b) 金标准图像(c) 掩模图像

在本实验中,使用Python语言作为编程语言。在TensorFlow后端框架下的Keras深度学习开发库上进行网络的搭建和训练。以9∶1的比例来分配训练集和测试集,使用Adam函数优化网络参数,分类误差的衡量采用对数交叉熵。第一个学习速率设置为0.001。如果训练过程中的误差没有减少,学习率减少一半,每次训练32个图像块,训练100轮。

2.2 图像预处理

由于环境或者器材的原因,视网膜眼底图像往往会出现血管对比度弱且存在噪声的情况。但是实验发现,在眼底图像的3个颜色(红R、绿G、蓝B)通道中,绿色通道(G通道)中的血管对比度最高且存在的噪声较小。因此,本文将绿色通道单独提取出来,如图7所示。

除此之外,由于图片存在光照不均匀的情况,需要对图像进行归一化操作。具体来讲,利用线性变换的方式将像素从灰度值0~255转换成0~1范围。

(3)

式中,μ和σ是灰度图I的平均值和标准偏差,本实验中μ和σ值均设置为0.5。

(a) 原图(b) 蓝色通道(c) 绿色通道(d) 红色通道

为了增强眼底图像的对比度,且不增加噪声对图像的影响,本文使用对比度受限的自适应直方图均衡化算法。经过CLAHE算法的处理后,对比度得到明显提升,如图8(a)所示。

除此之外,本文也执行非线性变换的Gamma变换对图像进行处理,以减少亮度不均匀所造成的影响,如图8(b)所示。

(a) CLAHE处理后图像(b) Gamma校正后图像

在深度学习中,训练模型需要大量的数据样本来拟合模型参数。在本次研究中,由于只有40张图片(样本数量过少),因此需要对数据进行增广操作:包括对图像进行翻转、移位、加噪,和随机切块。本文的切块操作以5个像素点为间隔,并且为了不丢失上下文信息,采用了重叠切块,大小设置为32×32,如图9所示。

(a) 原始眼底图像块(b) 金标准血管图像块

2.3 评价指标

为了定量分析视网膜血管分割效果,本研究采用了准确率(accuracy, Acc)、灵敏度(sensitivity, Sen)、特异性(specificity, Spe)、ROC曲线下方的面积AUC来对模型进行评估。

2.4 结果分析

本文利用训练好的模型对验证数据集进行了分割验证。将本文提出的算法和其他视网膜分割算法进行对比的结果见表1。本文提出的算法在DRIVE测试集上Acc值为0.961 3,Sen值为0.779 8,Spe值为0.984 9,AUC值为0.987 6,均高于其他分割算法得到的相关数值。在准确率上比U-Net网络模型高了0.51%,在灵敏度上高了2.33%,在AUC上高了0.41%,在特异性上高了0.26%。因此,本章的算法模型具有较好的鲁棒性和泛化能力。

表1 各算法结果比较Table 1 Results comparison of each algorithm

除此之外,本文还做了消融实验来验证本文模型的有效性,结果如表2所示。

表2 各模块结果比较Table 2 Results comparison of each module

由表2可以看出,综合使用各模块的效果最好,各个模块都起到了积极作用。血管分割产生积极的影响如图10所示。图10中,纵坐标为真阳性率(TPR),横坐标为假阳性率(FPR),图10(a)中AUC为0.983 5,图10(b)中AUC为0.985 7,图10(c)中AUC为0.987 6。

(a) 单独使用密集连接的ROC曲线(b) 使用密集空洞卷积的ROC曲线(c) 所有模块都使用的ROC曲线

本文模型的AUC为0.987 6,说明本文模型能够更正确的分类背景像素和血管像素。各个模块分割效果图及细节图如图11、图12所示。

(a) 原图(b) 金标准(c) U-Net(d) 加入a、b模块(e) 加入c模块(f) 本文算法

(a) 原图(b) 金标准(c) U-Net(d) 加入a、b模块(e) 加入c模块(f) 本文算法

由图11可以看出单独加入密集空洞模块和单独加入空间注意力机制模块对于分割效果都产生了积极影响。本文网络模型在血管分割细节上比U-Net模型分割效果表现更好,图像的噪点也较少,视网膜的细小血管保留也比较完整。为了对本文多路径U-Net网络模型的视网膜血管分割结果进行更详细的分析和比较,在选取的部分分割结果图中通过矩形框选择不同的分割细节部分进行分割效果比较。经观察图12可知,本文所提算法得到的分割结果基本上和专家分割的标准图是一致的,特别是在细小血管的分割上有很好的效果。图12(f)中分割出更多的细小血管,血管也呈现出连续性,血管大小与金标准图像比较相似,而图12(c)的分割结果中,很多细小血管未分割出来,部分血管也存在不连续性。总之,图12(f)的分割结果与图12(c)的分割结果相比,图12(f)本文算法模型分割的血管更加细腻,血管连续,完整性也比较好,表现出了更好的视网膜血管分割效果。

3 结 论

本文在U-Net的基础上,提出了一种新的分割方法实现对血管的分割。该方法使用密集空洞卷积作为特征提取器,提取编码部分的特征,无需增加网络参数就能扩大感受野范围,并实现了特征的复用。同时为了解决最大池化带来的信息丢失问题,还设计了跳跃连接模块,将编码部分的部分特征复制到同一阶段的解码部分。通过空间注意机制模块对血管和病变信息进行关注增强,抑制背景噪声,实验结果表明,该算法与其他算法相比取得了较好的效果,证明了该算法的可行性。

猜你喜欢

密集空洞视网膜
深度学习在糖尿病视网膜病变诊疗中的应用
如何防治裂孔性视网膜脱离
密集恐惧症
视网膜脱离相关知识,你了解多少?
如何避免想象作文空洞无“精神”
视网膜脱离能治好吗
Seeing Red
空洞的眼神
做个Patty万人迷
班有活宝