基于改进Res-UNet 的视网膜图像血管分割
2023-09-23李柏承陈玲玲
杨 涵,李柏承,陈玲玲
(上海理工大学 光电信息与计算机工程学院,上海 200093)
引言
人眼主要由角膜、虹膜、瞳孔、玻璃体和视网膜等组织构成,这些组织结构中的任何一个出现异常都可能导致视力缺陷甚至失明。因此,对视网膜结构及其血管的研究意义重大[1]。许多眼底疾病发生病变的部位在血管,而视网膜具有丰富的血管组织特征。视网膜是唯一不需伤害人体可直接观察较深层次微血管结构的组织[2]。视网膜的主要解剖结构有黄斑、血管和视盘。多种眼底疾病会改变血管树的形态,出现微动脉瘤、血管弯曲等病变。对视网膜血管的提取以及形态学特性的描述,如直径、形状、变形和分叉可以预防和治疗眼底疾病,以及高血压等其他心血管疾病[3-4]。例如,视网膜血管的宽度变化可以评估高血压疾病,血管分叉点和迂回性可以辅助识别心血管疾病和糖尿病型视网膜病变[5]。在临床上,视网膜图像主要通过眼底照相机或扫描激光眼底镜(SLO)获得[6]。从大量的眼底图像中,手动分割血管结构不仅过程繁琐、耗时,而且容易出错,尤其是对大规模人群筛查时。为了减少医生的工作量,提高分割的速度以及降低主观因素对结果的影响,利用深度学习的方法实现视网膜血管的精准分割。
视网膜血管分割任务使用的方法主要分为两种类型:监督学习和无监督学习。监督学习将医生手工分割的图片输入网络模型,使其可以通过学习标签图自动提取血管特征实现血管分割。这种方法需要海量的人工标注数据,训练时间比其他方法要长,但是有很好的泛化效果,得到的网络模型可以应用于其他同类型的图像。无监督学习是基于阈值化[7]、滤波[8]、数学形态运算或血管跟踪技术[9]对现有数据进行分析和处理。但是当分割图像存在过多的干扰信息时,传统的无监督学习分割图像的效果不佳,同时传统的神经网络模型有局限性。
近年来,深度学习算法在图像分割中取得优越的研究结果。2015 年,U-net 模型[18]在MICCAI会议上被提出后,U-net 模型凭借自身优秀的分割效果以及适用于数据量不大的数据库,在医学图像中得到广泛应用。许多研究人员也提出了各种基于U-net 的改进方法,不断提升视网膜血管分割的效果和性能。Alom 等[19]提出U-net 和Residual U-net 的链式级联结构,先通过U-net网络提取较为粗略模糊的血管特征,然后将其特征的解码信息作为Residual U-net 的编码信息进行二次编码,寻找图片更加精细的特征,提高对细小血管的分割效果。Guo等[10]在SAU-net 网络中引入了一种注意力机制,将注意力特征图和编码阶段底层特征图相乘,让模型更加关注血管特征的重点区域和位置,改善最终的分割性能。Xiao 等[11]提出了残余连接的卷积网络和一个新的加权注意力模型,利用眼部轮廓生成加权注意力,让模型专注于更感兴趣的区域。Soomro等[12]提出了一个用于视网膜血管分割的深度卷积神经网络(CNN),显著提高了分割微小血管的精细度。Shelhamer 等[13]提出一个全卷积网络(FCN)来实现视网膜血管分割,该网络模型可以接受任意大小的输入并产生相应大小的输出,并具有高效的推理和学习能力,改善了图片分割效果并提高了速度。Badrinarayanan 等[14]提出了SegNet 网络,使用最大集合指数代替全值从编码器传输到解码器,提高了图像分割的速度。上述神经网络模型在视网膜血管分割中都可以获得比较好的结果。但随着模型训练的加深,多次池化操作和跳过连接层,会出现图像细节丢失、梯度爆炸等问题,因此,这些神经网络模型在精细血管检测分割上有一定的不足。
本文针对视网膜图像血管细小,细节特征丢失、梯度下降、模型退化等导致分割效果差的问题,提出了一种改进的U-net 网络模型实现视网膜血管分割。由于DRIVE 数据集图片数量有限,通过使用剪裁、反转和旋转等几何变换,扩充数据集,增强模型的鲁棒性。原始的彩色图片对比度有限,亮度不均匀等问题都会影响模型提取特征的精度,通过提取绿色通道并使用对比度受限的自适应直方图均衡化和伽马变换增强对比度,去除部分噪声点。在U-net 网络中引入残差模块和注意力机制,有效地解决了梯度退化问题并获取到更多重要的特征信息。
1 算法原理
1.1 残差模块
在实现视网膜血管分割的任务中,随着神经网络的不断加深,趋于饱和后,模型出现性能下降问题。简单的增加网络层数不一定会提高网络的精确度。为了解决这一问题,He 等[16]提出引入残差模块训练神经网络,可以有效地避免梯度退化问题。
浅层网络的输入-输出可以用一个非线性变化函数表征,即恒等映射函数H(x)=x,网络深度达到一定程度后,梯度很难训练。因此,Resnet 提出将网络设计为H(x)=F(x)+x,经过转化得到残差函数F(x)=H(x)-x,当残差为0,就得到一个恒等映射。F(x)通常包括使用卷积和激活函数对输入数据处理。图1(a)是U-net网络中的传统卷积层,(b)是引入残差模块的卷积层。残差模块可以将卷积前的浅层特征与卷积后的特征相结合,得到更全面的特征信息。在残差模块中特征矩阵相加时需注意数据的维度是否一致,若维度相同可以直接相加;若维度不同,需要对特征进行zero padding 增加维度或使用1×1 的卷积调整后再相加。
图1 残差模块示意图Fig.1 Schematic diagram of the residual module
1.2 注意力机制
U-net 网络通过连续卷积扩大了感受野,但重复的卷积层会增加网络的参数,降低了计算效率。在进行视网膜血管分割时,毛细血管与粗血管的尺寸存在差异,可能会被网络当成噪声处理。通过插入非局部注意力机制模块[17],可以增强网络对毛细血管的识别率,并且代替部分卷积层,提高网络计算速度。非局部注意力机制原理图如图2 所示,图中X为输入图像矩阵,Z代表最终输出结果,θ、φ 和g分别代表1×1×1 的卷积,代表元素相加,代表矩阵相乘。非局部注意力模块的表达式为
表1 基于 U-net 的不同结构分割方法的测试结果比较Tab.1 Comparison of results from different structural segmentation methods based on U-Net
图2 非局部注意力机制的工作原理图Fig.2 Schematic diagram of the nonlocal attention mechanism
式中:i为计算响应的输出空间位置;j为响应所有可能出现的位置;x为输入图像;y为输出图像。函数是输入与输出之间的相关性,一元函数g(x)计算输入信号在处的特征值进行的信息交换,C(x)为归一化函数,保证变换前后信息的整体不变性。
为了将非局部注意力机制嵌入网络中,将其封装成模块,具体的表达式为
式中:yi为非局部注意力机制模块的输出;“+xi”采用了残差连接,在不破坏网络U 型结构的情况下,很容易嵌入模型。
1.3 改进后的网络模型
本文改进的模型是以U-net 网络为基础,使用残差连接和非局部注意力机制提高了特征提取性能,减少模型的参数以提高计算效率。网络包括下采样和上采样以及连接模块。下采样部分使用残差模块代替原来的卷积模块,残差模块内部包括两个连续的3×3 的卷积块和一个恒等变换组成,每个卷积包含Batch Normalization 层,ReLU 层和卷积层,恒等映射连接输入和输出部分。每进行一次下采样,特征图片的通道数量扩大一倍,特征尺寸缩小一半,卷积核的数量分别为32、64 和128,最终得到64×64 的特征图。网络的右半部分进行上采样,通过2×2 的转置卷积进行上采样,并将特征图片的通道数减半后与上采样的特征图相连接,再使用残差模块提取特征。在编码器和解码器之间插入注意力模块NoL-Block,并在最后一层做1×1 卷积来改变通道维度。sigmoid 激活函数产生与输入尺寸一样大小的血管分割图,如图3 所示。
图3 改进的残差U-net 网络Fig.3 Improved residual U-net
2 实验结果及分析
2.1 实验设置
实验以Windows10 为操作系统,1.61 GHz Intel(R)Core(TM)i7-10710U 为中央处理器,NVIDIA GeForce MX350 为显卡,在32 GB 内存的计算机平台上运行。算法的操作环境为pytorch1.11.0,CUDA11.3。本文网络模型利用GPU 加速,在保证分割精度的同时也提升了速度。
在训练过程中,通过调试参数以及以往的训练经验,选择使用交叉熵作为损失函数衡量模型的精度,并使用Adam 优化器优化网络模型,初始学习率为0.000 1,迭代次数为200,每次输入样本数量为4,并且使用Xavier 技术初始化权重。
2.2 数据集
实验使用了DRIVE 数据集验证本文提出的方法。DRIVE[15]包含40 幅眼底图像,分辨率为565 × 584,使用佳能CR5 免散瞳3CCD 相机拍摄所得,视场角FOV 为45°,其中训练集20 幅,测试集20 幅。每张图像都有经专家手动分割的血管轮廓图,可作为视网膜血管分割任务的黄金标准图。DRIVE 数据集是衡量视网膜血管分割方法性能的常用数据库。
2.3 数据扩充与图像预处理
在视网膜血管分割过程中,网络模型因为数据集数量不足出现过拟合问题。本文选择通过随机剪裁、旋转、平移的方法扩充数据,得到4 200张分辨率为512×512 像素的图像。原始视网膜图片呈平坦红色,血管与背景对比度不明显。为了获取更清晰准确的图像特征,需要进行图片预处理。首先,提取输入图片的RGB 颜色三通道,通过对比发现绿色通道血管和背景的对比度最高。因此,选择绿色通道图片,归一化灰度图后,使用对比度受限的自适应直方图均衡化(CLAHE)增强视网膜图像。该算法在被处理的像素周围的矩阵区域进行直方图均衡化,扩大局部对比度并显示平滑的细节。并且CLAHE 算法可以有效地限制对比度扩展过程中产生的噪声放大,如图像分块、分块线性插值等。最后使用伽马变换算法在不影响亮度较高部分的图像质量的同时,增强了亮度较低部分的血管结构。
2.4 评价指标
本文使用准确率(Acc)、特异性(Sp)、灵敏性(Se)和Dice 系数等评价指标评估所提分割算法的性能。像素准确率是所有分类中正确的像素数占全部像素的比例;特异性为图像背景被正确分割的指数;灵敏度为血管被正确分割的指数。Dice 系数,也称索伦森-骰子系数是一种集合相似性度量函数,通常计算两个样本之间的相似性。各项指标具体定义为
式中:TP为被正确分割的血管像素数量;FP为错误分割的血管像素数量;TN为正确分割的背景像素数量,FN为错误分割的背景像素数量。
2.5 实验结果与分析
实验使用DRIVE 数据集训练网络模型,得到的分割示例如图4 所示。其中第一列是预处理后的输入图片,第二列是专家手工标注分割结果,第三列是本文模型的预测结果。从图中可以看出,本文模型的预测效果与专家手工标注一致,即使面对复杂的血管形态也能取得不错的分割效果,并且对微小血管也能获得精确的分割结果。
图5 是视网膜血管分割局部对比图,图像分为主干血管、对比度低的微小血管以及病变区域。从分割结果可以看出,本文所提的算法将残差模块以及非局部注意力机制引入U-net 网络,可以保留大部分的血管特征,特别是避免了对比度低的微小血管特征丢失,并且能够克服外界噪声和病变区域对血管分割的影响。实验结果表明,本文所提方法可以精准的预测出血管的结构,特别是对细小的毛细血管部分也有较为清晰的分割,并且对于血管不连续的部分和错误分割的问题也有明显改善,具有较好的分割效果以及较高的稳定性。
图5 局部血管区域分割图Fig.5 Segmentation of partial vascular area
为了进一步说明所提的算法具有一定的优势,本文先在基础的U-net 网络中进行血管分割测试,该方法记作A1;然后将U-net 与残差网络相结合进行测试,该方法记作A2;再将Unet 与非局部注意力机制相结合进行测试,该方法记作A3;在U-net 网络中加入残差模块以及注意力机制,即本文所提算法,该方法记作A4。对比结果如表1 所示,结果表明本文所提网络模型在数据集中的测试结果明显优于其他网络。
本文通过使用上述的评价指标将测试结果与其他研究人员所提的方法作比较,结果如表2所示。本文所提模型在DRIVE 数据集上的结果分别是:准确率0.967 9、灵敏度0.824 5、特异性0.989 6 以及Dice 系数0.828 1。本文所提算法分割结果的各项指标都比原始的U-net 模型更优,并且从表中可以看出整体性能明显优于大多数文献所提方法。
表2 不同算法在DRIVE 数据集的测试结果对比Tab.2 Comparison of results from different algorithms on DRIVE dataset
3 结论
本文使用了Resnet 残差模块与U-net 网络相结合,利用神经网络模型精准分割血管,辅助医生诊疗眼科疾病。然而,传统的彩色视网膜图片有对比度低、亮度不均匀等问题,直接输入神经网络训练得到的分割结果精准度不高。因此,通过图像预处理提高图片的质量,引入了注意力机制来关注重要信息抑制背景特征,并且利用残差网络模块通过跳跃连接,提高了信息的流通,也避免了由于网络层数过多导致的梯度消失和退化问题。本文的改进算法,与原始的U-net 网络相比,算法对血管分割的敏感度、特异性、准确率都有明显的提升。