1. 引言
视网膜包含丰富的神经和毛细血管,是人体唯一可以无创观察到的血管和神经结构。医学工作者通过观察视网膜毛细血管的变化,可以筛查某些疾病并辅助诊断,具有重要意义[1]。糖尿病视网膜病变是糖尿病的微血管并发症,表现为高血糖引起的视网膜血管渗漏、闭塞和肿胀,常导致视力损伤,严重时可致失明。世界卫生组织指出,糖尿病视网膜病变是导致视力丧失的主要原因,糖尿病患者的致盲率远高于非糖尿病患者。资料显示,20年前全球已有超过1.7亿糖尿病患者,预计到2030年这一数字将超过3.6亿[2]。如果能够早期发现视网膜血管结构的异常,早期干预和治疗,将大大降低患者失明的风险[3]。
近年来,深度学习可以把特征提取过程和分类过程结合在一起,提高了算法效率并增强了泛化能力。对于视网膜血管分割工作,研究者们提出了许多以卷积神经网络为基础的方法,得到的分割血管普遍比传统机器学习方法得到的血管好。Wang等[4]使用卷积神经网络提取眼底图像血管信息,再通过随机森林进行分类,来得到眼底图像血管的分割结果。Fu等[5]提出了使用多尺度的卷积神经网络来表示丰富的层次,以及结合条件随机场来提升眼底图像视网膜血管的分割性能。Mou等[6]将密集扩张卷积块嵌入到U型的网络中,用于对视网膜血管进行检测,并使用概率正则化游走算法对检测中出现的断裂问题进行修补。Guo等[7]提出了一种深度密集残差网络结构的DRNet,将特征信息聚合在一起,使得学习特征的效率提高,同时通过引入的DropBlock来缓解网络的过拟合问题。Wei等[8]提出了一种自动设计的遗传U-Net,可以实现更好的视网膜血管分割,并且解决了参数量多造成的过拟合和高计算复杂度问题。
虽然深度学习方法在解决视网膜血管的问题上已经取得很大进展,能够避免手动操作的人为因素,对医疗工作者对视网膜的特征提取提供了重要的支撑,然而,在视网膜血管图像中,一方面会受到病变噪声的干扰,另一方面血管的分支模式、曲率、宽度等方面存在较大差异,这些问题会降低分割的精度,给精确分割带来了挑战。因此,在视网膜血管分割任务上的性能还有待提升。视网膜血管分割对医学分割模型获取信息的能力提出了更高的要求。
2. 理论基础
2.1. U-Net分割网络
在生物医学成像的先进领域中,深度学习技术,尤其是深度卷积神经网络,已经成为一种至关重要的工具,用于高精度地分割病理区域并辅助临床诊断决策。U-Net是医学图像分割领域的经典结构,由Ronneberger等[9]于2015年提出,并以很大优势赢得了同年的ISBI细胞跟踪挑战赛。凭借其精巧设计的编码–解码框架以及通过层叠过程实现的多分辨率信息整合机制,已经成为该研究领域的一个焦点。该架构之所以受到推崇,不仅因为其设计上的简约性,更因为其在多种成像条件下展现出的卓越泛化能力,这些特性共同促使U-Net成为医学图像分割任务的基准模型。学术界对U-Net的热情不减,众多研究者致力于对其进行深入的研究和创新性改进,旨在挖掘其在各类医学图像分割应用中的全面潜力,并推动该技术在临床实践中的广泛应用。
2.2. 注意力机制
注意力机制[10]就是在模仿人类观察事物的时候,将自身的注意力放在某些重要的区域。其目的是为了让模型实现有针对性的“聚焦”,通过注意力机制学习上下文信息,忽略无关信息而关注重点信息,捕获数据或者特征的内部相关性。在医学图像分割中,需要分割的病灶区域可能与邻近器官具有相似的灰度值,这就导致一些病灶区域在特征提取时被忽略,使得分割效果变差。注意力机制可以在神经网络特征提取时抑制不重要的特征,提取到要关注的特征,从而提高模型的分割性能。
3. SDU-Net
3.1. 基本网络架构
基于U-Net架构,本文提出的视网膜血管分割算法结合了注意力机制模块(SEM)和双路径上采样模块(DPUS)。目的是解决U-Net在特征提取和信息融合方面的不足,减轻分割过程中细节信息的丢失。注意力机制能够根据输入数据的特征,动态调整关注的区域,从而更好地捕捉重要信息。SEM模块可以帮助模型更有效地忽略噪声和无关信息,减少无效计算,通过聚焦于重要特征,从而在复杂背景下更精准地提取目标特征,提高分割结果的稳定性和准确性。DPUS模块能够有效地上采样特征图,使得解码器部分能够更好地恢复图像细节,提高分割结果的精细度。通过DPUS模块,可以更好地融合不同尺度的特征,增强模型的多尺度特征表示能力,使得模型能够捕捉到更多的细节信息,从而提高整体分割效果。整体网络结构如图1所示。
3.2. 注意力机制模块(SEM)
本文引入的注意力模块是基于SEM [11] (Zhong等在2022年提出)构建的,如图2所示。主要改进了注意力中的激励模块,可以针对不同的网络选择合适的激励算子。
SEM的操作过程是首先对卷积核大小为1 × 1的输入特征图进行全局平均池化处理,如公式(1)所示:
(1)
其中,x是输入特征图,Gap( )是指全局平均池化处理操作,m是全局平均池化后的张量。然后,通过决策模块构建的全连接网络,向转换模块生成权重输出,如公式(2)所示:
(2)
其中,F为全连接网络构造的决策函数,σ为Sigmoid激活函数,Wd为全连接网络的权重,ω为决策向量。转换模块有N个转换门EO,张量m进入EO,与结合并进行σ处理,然后对结果进行交乘,最后通过点乘恢复原始维度,即公式(3):
(3)
其中,v为转换模块生成结果的叉积得到的张量,x为原始输入特征,xatt为SEM的最终输出结果。SEM是一个即插即用的注意力模块。本文使用SEM结构中的转换模块,使用三个转换门分别对输出权重进行处理。最后,通过Sigmoid激活函数对每个权重进行交叉相乘,得到最终的输出。
Figure 1. SDU-Net network model
图1. SDU-Net网络模型
Figure 2. Attention mechanism module (SEM)
图2. 注意力机制模块(SEM)
3.3. 双路径上采样模块(DPUS)
在分割任务中,通常使用反卷积(Deconv) [12]和Pixel Shuffle [13]来获取高分辨率的特征图。反卷积可以理解为卷积的空间逆运算,而Pixel Shuffle则涉及沿通道维度的像素重排。受Deconv和Pixel Shuffle的启发,本文引入了双路上采样架构,以同时捕获空间和通道维度的高分辨率特征图。此外,本文利用可变形卷积来学习融合的高分辨率特征图,从而减轻上采样过程中空间和通道信息的丢失。具体结构如图3所示。
Figure 3. Dual path sampling module (DPUS)
图3. 双路上采样模块(DPUS)
将输入在空间上采样得到特征图Us,在通道上采样得到Up,将Us和Up融合得到输出O。DPUS的输出可以由公式(4)定义:
(4)
其中,Conv表示卷积操作,Deconv表示反卷积操作,P表示Pixel Shuffle操作。
DPUS模块是一种改进的上采样方法,旨在有效提高图像分辨率的同时,保留图像细节。传统的基于U-Net架构的分割算法通常采用单一的上采样方法,如像素洗牌或反卷积。像素混洗将多个通道的特征图重新排列,得到高分辨率的特征图,而反卷积基于卷积的逆运算,从空间上获得高分辨率的特征图。然而,这些方法可能会引入伪影或导致细节丢失问题。
因此,本文提出了DPUS模块,该模块在引入动态像素选择机制的同时,结合了像素洗牌和反卷积的优点。该机制根据特征图的相关性和重要性动态选择像素,从而优化上采样过程中图像细节的恢复,有效减少伪影。通过这种方式,DPUS模块可以更准确地保留和恢复图像细节信息,从而提高图像分辨率,增强分割网络的性能。
4. 实验结果
4.1. 数据集
本文在DRIVE [14]、CHASE_DB1 [15]两个视网膜眼底血管的公共数据集上对算法进行训练和测试。
DRIVE数据集包括视网膜的40幅彩色眼底图像,这些图像来自荷兰的一个糖尿病视网膜病变筛查项目,每幅图像的像素为584 × 565。本文将40幅图像的前20幅图像用于训练,其余20幅图像用于测试。对数据集中的每幅图像都提供了二值视场mask和GT图像。
CHASE_DB1数据集有28张视网膜彩色图像,每幅图像的像素大小为999 × 960。本文中,前14张图像用于训练,其余14张图像用于测试。对CHASE_DB1中的28幅图像都提供了分割的GT图像。
由于眼底视网膜数据集的数据量有限,而深度学习通常需要大量的数据来实现更好的效果,因此本文对训练集进行了数据增强,包括旋转和镜像操作。
原始训练集包含14张图像,通过数据扩充后,训练集分别包含1200张尺寸为584 × 565的图像和1680张尺寸为999 × 960的图像。随后,对这些图像进行了分割处理,将每张图像切割成64 × 64尺寸的patch块。最终,DRIVE训练集扩充到120,000张64 × 64尺寸的patch块,而CHASE_DB1训练集扩充到168,000张64 × 64尺寸的patch块。扩充后的训练数据集中,80%用于训练,20%用于验证。测试集图像仅进行了预处理和切片操作,没有进行数据增强,算法生成的64 × 64尺寸的patch块最终会被合并回原始图像。
4.2. 实验训练
本实验是在Ubuntu 20.04操作系统下进行,编程环境为Python 3.8,深度学习框架为Pytorch 1.11.0,CUDA 11.3,显卡RTX3090 GPU,显存24 GB。训练次数为300 epoch,初试阶段学习率设置为0.01,批量大小为24,输入图像大小为224。
4.3. 评价指标
视网膜血管分割常用的评价指标包括敏感性(SE)、特异性(SP)、ROC曲线下面积(AUC)以及F1-score。敏感性SE衡量了分割算法在所有真实血管像素中正确识别的比例,特异性SP则评估了算法在所有背景像素中正确排除血管的比例。ROC曲线下面积AUC是评估算法在不同灵敏度和特异性条件下的总体表现,F1-score是一种综合考虑了精确率和召回率的指标,用于评估二分类模型的准确性。F1-score用于在样本比例不均衡的情况下,对分割模型的性能和准确度进行更全面的评估。AUC用于反映敏感性和特异性之间的关系,评估视网膜血管分割结果的准确性。对于眼底图中的每个血管像素,分割结果与Groundtruth相同的比例为真阳率(TP),反之为假阴率(FN)。评价指标的计算公式如下:
(5)
(6)
(7)
(8)
其中,真阳性(True Positive, TP)指的是被正确识别为血管的像素点数;真阴性(True Negative, TN)指的是被正确识别为背景的像素点数;假阳性(False Positive, FP)指的是被错误识别为血管的背景像素点数;假阴性(False Negative, FN)指的是被错误识别为背景的血管像素点数。
此外,还通过受试者工作特征(Receiver Operating Characteristic, ROC)曲线对模型进行评估。ROC曲线以真阳性率为纵坐标,假阳性率为横坐标。ROC曲线下面积(Area Under ROC Curve, AUC)表示曲线与横轴之间的面积,AUC值越接近1,表明模型的分割性能越好。
4.4. 消融实验
为了验证SEM模块和DPUS模块的有效性,在DRIVE和CHASE_DB1上进行了消融实验。实验中使用的GPU模型为NVIDIA RTX3090,视网膜血管分割模型使用PyTorch搭建,训练过程中使用Adam作为优化器,权重衰减参数设置为1 × 10−5,批大小设置为64,训练步数设置为30,初始学习率设置为1 × 10−3。将交叉熵损失函数和Dice损失函数之和作为最终的损失函数可以加快模型的收敛速度,Dice损失函数可以保证模型对小血管有一定的关注程度。如式(7)所示,其中y为真实标号,y为预测概率:
(9)
本文使用敏感性(SE)、特异性(SP)、ROC曲线下面积(AUC)以及F1-score四个指标来对眼底血管分割任务的影响进行研究。表1和表2分别展示了SEM模块和DPUS模块在DRIVE和CHASE_DB1数据集上进行的消融实验结果。
Table 1. Performance comparison of each module ablation on the DRIVE dataset
表1. 各模块消融在DRIVE数据集上的性能对比
模型 |
SEM |
DPUS |
Se |
Sp |
AUC |
F1-score |
模型1 |
- |
- |
77.83 |
98.05 |
97.85 |
81.60 |
模型2 |
√ |
- |
77.95 |
98.27 |
97.98 |
82.64 |
模型3 |
- |
√ |
78.12 |
98.17 |
98.07 |
82.76 |
模型4 |
√ |
√ |
84.16 |
98.36 |
98.32 |
82.94 |
注:加粗数据表示最优值。
Table 2. Performance comparison of each module ablation on the CHASE_DB1 dataset
表2. 各模块消融在CHASE_DB1数据集上的性能对比
模型 |
SEM |
DPUS |
Se |
Sp |
AUC |
F1-score |
模型1 |
- |
- |
80.56 |
97.13 |
97.05 |
79.52 |
模型2 |
√ |
- |
81.37 |
98.36 |
98.45 |
82.30 |
模型3 |
- |
√ |
82.69 |
97.89 |
97.69 |
79.59 |
模型4 |
√ |
√ |
83.78 |
98.16 |
99.02 |
82.39 |
注:加粗数据表示最优值。
在DRIVE测试集上,对眼底血管图像的分割结果进行了评估。如表1所示,最佳分割结果的Se达到了84.16%,Sp达到了98.36%,F1达到了82.94%,AUC达到了98.32%。与基准方法相比,该分割模型在各项性能指标上均略有提升,Se提高了3.99%,Sp提高了0.3%,AUC提高了2.03%,F1提高了3.61%,其中,灵敏度提升最为显著,表明神经网络能够准确识别出血管末梢。
在CHASE_DB1测试集上,对眼底血管图像的分割结果进行了评价。如表2所示,最佳分割结果的Se达到了83.78%,Sp达到了98.16%,AUC达到了99.02%,F1达到了82.39%,与基准方法相比,该分割模型在各项性能指标上均略有提升,Se提高了4.00%,Sp提高了1.06%,AUC提高了2.03%,F1提高了3.61%,同样,灵敏度的提升最为显著,表明神经网络能够准确识别出血管末梢。
4.5. 对比实验
本文与几种主流的基于U-Net的视网膜血管分割算法进行了比较。在两个数据集上,对SDU-Net算法与其他视网膜血管分割算法的分割结果进行了定性和定量分析。通过对比分割效果图进行定性评估,图4展示了五种算法的分割结果。四种对比模型分别是U-Net、Ladder-Net [16]、Lter-Net [17]、DCU-Net [18]。前两列是DRIVE数据集上的视网膜血管分割结果对比,后两列是CHASE_DB1数据集中的视网膜血管分割结果对比。从实验结果可以看出,由于第一列和第三列图片受光照不均、视盘背景区域的影响,在U-Net的分割图中,观察到显著的血管断裂和血管分割不充分的现象。尽管其他算法在总体上能够分割出血管脉络,但仍存在血管边界模糊以及对细微血管分割不充分的问题。相比之下,SDU-Net算法在血管树分割中表现出更优的连续性和完整性,能够更有效地捕捉细微血管特征,实现细微血管与血管树主干的平滑连接。第二列和第四列的分割图受图像低对比度和病变区域的影响,导致在血管交错和分叉处易出现血管树分割不足以及背景冗余的现象,从而在分割图中产生真假血管链结的问题。相比之下,SDU-Net算法能够更准确地分割出位于病变区域等复杂背景中的血管,在保证血管连通性的同时,有效降低了血管误分和背景冗余的概率。
原图
U-Net
Ladder-Net
Lter-Net
DCU-Net
SDU-Net
DRIVE (1) DRIVE (2) CHASE_DB1 (1) CHASE_DB1 (2)
Figure 4. Segmentation results of different models
图4. 不同模型分割结果
综上所述,与其他算法相比,SDU-Net算法在提取语义和细节信息方面表现更为出色。其丰富的特征提取能力能够有效保证血管分割的连续性和完整性,从而在复杂区域内实现更为精确的血管分割。因此,SDU-Net算法在分割性能上显著优于其他算法。
为了更好地验证本文算法的性能,本文将在DRIVE数据集和CHASE_DB1数据集上把提出的分割算法与一些最先进的算法进行比较,不同分割算法在DRIVE数据集和CHASE_DB1数据集上的比较结果分别如表3、表4所示。
在DRIVE数据集上的对比实验表明,SDU-Net在Se、AUC、F1值方面优于所对比的算法,其中Se为84.16%、Sp为98.36%、AUC为98.31%和F1为82.94%。只有Sp略低于文献MCU-Net算法。在CHASE_DB1数据集上的对比实验结果显示,SDU-Net在Se、AUC、F1值方面优于所对比的算法,其中Se为83.78%、Sp为98.16%、AUC为99.02%和F1为82.39%。只有Sp略低于文献Iter-Net算法。
本文算法较其他四种算法,在Se、AUC和F1-score等性能指标上优势明显,能够正确分割出最多的血管像素,并且在精确率和召回率的平衡方面表现最佳。这些优势表明SDU-Net在视网膜血管分割任务中具有较强的鲁棒性和准确性,能够更好地处理复杂的图像分割任务。综上所述,本文的算法取得了不错的效果。
Table 3. Results of different algorithms on the DRIVE dataset
表3. DRIVE数据集不同算法的结果
算法 |
DRIVE |
Se |
Sp |
AUC |
F1-score |
U-Net |
77.83 |
98.05 |
97.85 |
81.60 |
Ladder-Net |
78.56 |
98.10 |
97.96 |
82.02 |
Iter-Net |
77.35 |
98.34 |
98.16 |
82.05 |
MCU-Net |
81.01 |
98.79 |
98.28 |
81.49 |
SDU-Net |
84.16 |
98.36 |
98.31 |
82.94 |
注:加粗数据表示最优值。
Table 4. Results of different algorithms on the CHASE_DB1 dataset
表4. CHASE_DB1数据集不同算法的结果
算法 |
CHASE_DB1 |
Se |
Sp |
AUC |
F1-score |
U-Net |
80.56 |
97.13 |
97.05 |
79.52 |
Ladder-Net |
79.76 |
98.15 |
98.39 |
80.30 |
Iter-Net |
79.61 |
98.81 |
98.99 |
80.72 |
MCU-Net |
83.66 |
98.29 |
98.18 |
77.41 |
SDU-Net |
83.78 |
98.16 |
99.02 |
82.39 |
注:加粗数据表示最优值。
5. 结论与展望
在本研究中,本文提出并验证了一种新型的视网膜血管分割算法——SDU-Net。通过在DRIVE和CHASE_DB1数据集上的实验结果表明,SDU-Net在敏感性、特异性、AUC和F1-score等多个评价指标上均表现出色,显著优于现有的其他算法。尤其是在血管末梢部分的识别上面,本文算法表现出出色的性能。这些结果证明了SDU-Net在视网膜血管分割任务中的有效性和鲁棒性。
尽管本研究取得了显著的成果,但仍存在一些局限性和未来的研究方向。首先,算法在不同数据集上的泛化能力仍需进一步验证,未来可以通过引入更多样化的数据集来提升模型的泛化性能。其次,算法的计算复杂度和运行时间也是一个需要优化的问题,未来可以通过模型压缩和加速技术来提高算法的效率。此外,结合其他多模态医学影像数据,进一步提升分割精度和鲁棒性也是一个值得探索的方向。