宋姝洁,崔振超+,陈丽萍,陈向阳
1.河北大学 网络空间安全与计算机学院,河北 保定 071002
2.河北省机器视觉研究中心(河北大学),河北 保定 071002
视网膜血管自动分割是医学图像处理领域的重点研究任务之一。视网膜血管的结构检测,可为糖尿病和高血压的诊断提供重要临床信息,对辅助医师诊断身体疾病有着重要意义[1]。目前,视网膜分割标注是以专业医师手工标注为主,但人工标注存在无法批处理及主观因素影响的弊端。因此,计算机辅助的视网膜血管分割是该领域的重要发展方向。
目前,视网膜血管自动分割方法可划分为两类——非监督学习方法和监督学习方法[2]。非监督学习方法是根据已存在的特征对图像编码,然后对编码后的特征图检索,得到目标图像分割结果。最早在1989年,Chaudhuri等[3]利用高斯函数对血管图像进行编码得到眼底图像分割图。接着,根据眼底视网膜血管的结构特点,血管追踪法[4]、形态学处理法[5]、图方法[6]、形变模型[7]等方法相继提出。但非监督学习方法对血管特征编码方式不全,造成视网膜结构特点检测不充分,导致分割准确率下降。基于监督学习的分割方法是通过对手工标注的血管训练得到分类器,再利用分类器对图像进行模型分类,区别出前景像素和背景像素。基于监督学习的视网膜分割模型方法有贝叶斯分类器、支持向量机(support vector machine,SVM)、马氏距离分类器等。Ricci 等[8]对图像进行绿色通道预处理,并根据血管宽度采用SVM 分割。孟琳等[9]提出将Frangi滤波器和大津法融合对视网膜图像分割。
近年来深度学习在图像处理方面表现出色,基于神经网络的视网膜血管分割方法迅速成为研究热点。Liskowski 等[10]使用深度神经网络分割视网膜血管。2015 年MICCAI中提出U-Net[11],U-Net网络中的跳跃连接将编码器与解码器特征连接,利用丰富的细节特征来提升边缘血管的分割精确度,在视网膜数据集上训练结果优异。因此,大量视网膜血管分割方法基于U-Net 网络提出。薛文渲等[12]在U-Net中引入二次循环残差卷积及多通道注意模型,改善细小血管分割效果。Li等[13]采用新型的残差结构,将注意力机制与跳跃连接结合提高分割性能。Dongye等[14]提出基于U-Net 改进的卷积网络,目的是获取具有高分辨率特征图,有效捕捉血管的细节信息。Hu等[15]提出空洞残差U 型网络,利用残差网络和空洞卷积结合分割视网膜血管,获得了较好的分割结果。这些深度学习方法虽表现出一定的医学分割性能,但由于视网膜血管和背景区域之间特征不明显,算法对细小血管特征描述不足,引发在血管分叉处不易区分、丢失复杂曲度形态血管的问题。
针对目前血管分割存在的问题,提出了一种基于U-Net 的多模块融合视网膜血管分割方法,该方法设计了由残差路径传递信息的非线性连接模块和残差连接的基于U-Net 的多模块残差神经网络(multiblock residual neural network,MbResU-Net)。首先,在编码器与解码器连接时,将跳跃连接(shortcut connect)改为残差路径,减少桥接高低级语义信息之间的语义差距。其次,在网络结构中引入残差连接,将多特征连接模块链接成多模块网络,缓解由网络层数加深而造成的信息丢失,使深层网络模型变得简单,解决卷积神经网络对视网膜毛细血管特征表达不充分的问题。最后设计符合视网膜分割前景与背景的损失函数,使自动化分割技术更好地应用于临床诊断中。
U-Net 网络是一种编码-解码结构型的网络。在编码阶段,U-Net 在卷积操作的基础上,对特征层进行4 次最大池化后得到编码结果。U-Net网络巧妙的设计是引入了跳跃连接,编码器卷积层的输出在进入4 次池化前被送到解码器中,将特征图和解码器上采样操作后的输出特征图连接起来,将合成的特征图传递到后续卷积网络中,跳跃连接操作汇集了网络在卷积过程中丢失的空间信息。在解码阶段,在卷积操作的基础上,对特征层进行4 次上采样操作后得到分割结果。如图1 所示。
Fig.1 U-Net network structure图1 U-Net网络结构
在U-Net 网络中,编码器特征经过卷积操作得到低级语义特征。相反,解码器特征经过卷积、下采样和上采样操作得到高级语义特征。因此,编码器和解码器同一层之间存在语义差距,如图2(a)所示,直接连接影响分割结果。为弥补编码器与解码器同一层之间语义差距,Szegedy 等[16]在每个下采样之前和上采样之后使用了多个3×3 卷积,并证明两个3×3 卷积运算类似于5×5 卷积运算,且为了使U-Net 网络具有多分辨率分析能力,将3×3、5×5 及7×7 卷积运算并行合并,如图2(b)所示,用类似Inception 的卷积层使U-Net 网络获取不同尺度的特征。但并行卷积层极大地增加内存需求,因此使用3×3 卷积对5×5 及7×7卷积进行分解。如图2(c)所示,本网络使用融合残差路径组成级联结构,每块由3×3 卷积和1×1 卷积以残差的方式组合,经过额外的非线性变化的编码器特征可平衡与解码器语义鸿沟。这种修改不仅降低了内存需求,而且由于1×1 卷积层的加入,不改变UNet 在医学图像分割的优秀性能,同时获取视网膜血管更广的空间信息。残差网络在医学图像分析中具有巨大的潜力[17],使用残差连接代替直接连接,并根据特征差距的大小调节残差路径长度,使学习变得更容易。将这条快捷连接路径称为“Res Path”。3×3滤波器用于卷积层,1×1 滤波器作为残差连接,融合形成残差路径放入U-Net网络中。
根据U 型网络的结构特点,Nabil 等[18]提出随着U-Net 卷积操作的向下移动,编码器与解码器特征映射差距强度逐步减小。为了进一步提升特征的学习能力:一方面选取U-Net 编码结构与解码结构中的两次卷积操作及上下采样,通过减少神经网络层数,减少由神经网络操作带来的语义鸿沟,同时训练参数的减少,避免图像过拟合提升网络的泛化能力。另一方面针对不同的语义鸿沟设置不同长度的残差路径,沿着两个Res Path 分别使用包含4 个3×3 卷积的滤波器以及1×1卷积的残差连接Res Path1和两个3×3卷积的滤波器以及1×1 卷积的残差连接Res Path2,且为使编码器与解码器中的特征数量平衡,设置与编码器相同的滤波器,根据视网膜经过预处理后像素小的特点,改进后的U-Net 每一层的卷积核数目分别为32 和64,对应的两个残差路径滤波器选择为32 和64。改进后的U型网络鲁棒性更强,模块结构图如图3所示。编码器和解码器分别包括两个3×3 卷积运算和一个池化大小为2×2,步长为2 的最大池化运算。这个序列循环两次,每次下采样之后,卷积层中的滤波器数量加倍。每次上采样后特征通道减少一半。在上采样之前,使用Res Path1 和Res Path2 将编码器的特征输出传送到解码器,然后将这些特征图与上采样操作后的输出连接起来,传入到后续卷积层中。该网络结构中输出层使用Sigmoid 激活函数,其他卷积层使用ReLU 激活函数,将此结构称为ResUNet块。
Fig.2 Res Path structure diagram图2 Res Path 结构图
Fig.3 ResU-Net module diagram图3 ResU-Net模块图
在眼底视网膜血管图像中,视网膜图像照明不均匀,血管与背景在颜色、纹理上的差别较小,微小或复杂血管结构难以分辨。加深网络深度更能有效提高眼底血管特征表达,但深层网络会造成梯度爆炸和梯度消失的问题[18]。为了提升本文ResU-Net 细化分割目标血管能力,采用以残差连接形成MbResUNet 模型。残差映射可有效解决网络退化的问题。He 等[19]提出ResNet 解决了由于网络深度加深造成网络性能下降问题,其结果对数据的变化更加敏感。MbResU-Net 将ResU-Net 引入主干网络中,通过跳跃的残差连接方式形成多模块、多残差块结构,加强卷积神经网络的信息传递和特征传播,获取相对较少的噪声图像和更多的特征信息。通过残差模块的设计,提取丰富的图像特征,为之后的血管分割奠定了基础。每个残差块的连接结果由式(1)表示。
其中,am和bm表示ResU-Net 块的输入和输出;F(am,bm)表示残差函数;H(am)表示特征映射函数,通常F(am)=bm。式(2)中,σ(Wm)表示激活函数,将连接结果通过ReLU(rectified linear units)激活函数后结果作为下一个模块的输入。最终得到每一块残差连接的输出结果Wr={n∈N|Wm,Wm+1,…,Wn},并将每一次的输出结果激活后作为下一个ResU-Net块输入。
MbResU-Net 网络融合递进的思想,设计了三个特征提取模块用以加深网络,在模块中分别将浅层特征与深层特征融合,使更深的U 型网络充分利用浅层特征对血管进行学习分割。在模块输入前设计了Concat层,在下个模块输入之前将所有局部特征和全局特征融合,实现特征重用,使参数更少,计算效率更高,以此达到细化分割的效果,解决视网膜图像中细小血管不易分割的问题。首块ResU-Net 输入采用1×1 卷积操作作为输出,和特征提取模块最大池化后的输出连接形成下一模块的输入,在每一模块输入之前采用ReLU 激活函数将非线性特征引入网络,同时将输入映射到输出。ReLU 函数计算简单,但解决梯度消失和梯度爆炸的问题。在最后一层,使用1×1卷积来生成最终的分割图。MbResU-Net 结构图如图4 所示。
Fig.4 MbResU-Net network structure general diagram图4 MbResU-Net网络结构总图
在图像分割任务中,提升模型分割的另一个关键因素是损失函数的设计。损失函数用于测量预测值与真实值的一致性,并且良好的损失函数可以加快网络训练速度,提高泛化能力。在深度学习中定义了许多损失函数来训练网络,例如均方差、分类交叉熵、二进制交叉熵、余弦正弦等。在本实验中,像素分为血管像素和背景像素,根据统计显示,DRIVE数据集中的血管像素大约为453 800,背景像素大约为6 599 200。眼底图像中只有6.8%的像素是血管,对于二进制分割问题,交叉熵损失函数可以写为:
其中,N是像素的数量,xk表示输入像素k预测为前景像素概率,yk表示像素k的真实值,在此任务中血管像素为1,非血管像素为0。此类损失函数在平衡分类任务中可以发挥极好的作用,但是在视网膜血管分割任务中,损失函数设计没有充分考虑眼底图像的特征,使学习过程中倾向分割背景区域,血管像素容易丢失或仅被部分识别。受Wang 等[20]的启发,使用基于Dice 损失函数(Ldice)和交叉熵损失函数(LCE),并向损失函数中增加代价敏感矩阵(C)。
对于二进制分类任务,Dice 损失函数可以考虑到数据的不平衡,Dice损失函数可以表示为:
其中,φ表示拉普拉斯平滑因子,用于避免数值问题并加速训练中的收敛速度。但是优化后的Dice 损失函数容易导致梯度消失问题,不适用于深度神经网络。另外设计了代价敏感矩阵,当模型对视网膜血管分类错误时代价增加,并且增加血管的关注度。代价敏感矩阵C如式(5)所示:
在公式C中,用于将血管类型预测为血管类型以及将背景预测为背景的惩罚系数都设置为1。用于预测血管的惩罚系数设置为6。将背景识别为血管不会影响结果,因此惩罚系数设置为0。在神经网络训练中,并未根据相对于背景的视网膜像素数来进行不平衡调整,预测血管类别为背景类别的惩罚系数始终为6。指标函数X表示为:
因此,所提出的融合代价交叉熵损失函数公式如式(7)所示:
最后,结合Dice 损失函数和代价交叉熵损失函数的优势,将此函数结合引入到血管分割任务中,MbResU-Net的损失函数公式如式(8)所示:
这种方法可以加快网络的融合,并且经过一定次数的迭代后,本网络模型的参数收敛到最佳值,达到最优分割效果。
本文实验所用数据集为开源眼底视网膜血管数据集DRIVE 和CHASE DB1。DRIVE 数据集包含40幅数字视网膜RGB 图像,每幅图像剪裁后的分辨率为565×584 像素。由官方划分为20 幅训练集图像和20 幅测试集图像,数据集中包含2 名专家手工分割结果,并存在对应的掩膜,具有很强的可信度。CHASE DB1数据集包含28幅视网膜图像,每幅图像的分辨率为999×960 像素。在本实验中,14 幅图像用于训练,14 幅图像用于测试。该数据集中每幅图片由一名专业医师分割得到手工结果图像,但是无对应掩膜,需要手动设置。CHASE DB1 手动设置的二值掩码结果如图5 所示。本文所用实验平台为:64 位Win10 操作系统,使用Intel®CoreTMi7-4160 GPU@ 3.60 GHz 处理器,显卡为NVIDA 1660Ti。该方法基于TensorFlow框架实现。
Fig.5 Images of CAHSE DB1 database图5 CHASE DB1 数据库图片
两个数据库的眼底图像均为RGB 图像,单通道图像比RGB 图像可显示更好的血管背景对比度。因此,如图6 所示,将原始图像通过G 通道完成图像的灰度转化,接着将视网膜灰度图像归一化[21];采用对比度受限的自适应直方图均衡化(contrast limited adaptive histogram equalization,CLAHE),在不放大眼底视网膜图像的情况下增强视网膜血管与背景之间的对比度,使血管结构特征更清晰;最后采用伽马变化(gamma conversion)在不影响视网膜图像中高亮血管区域的同时增亮对比度较低的血管区域。预处理后的视网膜图像对比度高,血管轮廓与背景差距大且噪声减少,更有利于血管分割。
Fig.6 Retina image preprocessing results图6 视网膜图像预处理结果
由于DRIVE 和CHASE DB1 均为小数据集,在网络训练中容易过拟合,在训练模型时对数据进行增强和扩充。在训练模型之前对两个数据集图像进行90°、120°、270°和镜像翻转扩充到原来的12 倍。与此同时,从DRIVE 和CHASE DB1 数据集的输入图像中分别提取9 到574 像素、20 到980 像素,图片像素分别变为560×560、960×960,再随机裁剪48×48 的局部分割样本图像,样本块包含数据库中的所有图像,用以扩大数据量。网络训练时,分别从DRIVE 和CHASE DB1 随机抽取190 000 和200 000 个补丁块。其中,随机选取90%用于训练,10%用于验证。测试集不做旋转裁剪及数据扩充处理。局部样本块如图7(a)所示,图7(b)所示为手工标注的标准裁剪拼接处与训练集相对应的图像。
Fig.7 Local sample block图7 局部样本块
为了定量评估模型,使用了准确率(accuracy,ACC)、灵敏度(sensitivity,Sen)、特异性(specificity,Spe)和F1-Score来评价模型的性能[22]。在该模型中,阳性是指血管,阴性是指背景。基于视网膜血管图像真实值,每个像素在分割过程中分为正确或不正确分割,因此有四种视网膜血管分割结果。TP表示血管像素已正确检测为血管;TN表示背景像素已正确检测为背景;FP表示背景像素被错误地检测为血管;FN表示血管像素被错误地检测为背景。各指标表达式如式(9)~(14)所示:
其中,ACC是正确检测到的血管和背景像素数量与非血管总像素之比;Sen是正确检测到的视网膜血管像素与血管总像素之比;Spe是正确检测的非血管像素与非血管总像素之比;Pre是正确检测到的血管像素与所有检测到血管像素之比;Rcall是正确检测到的血管像素与所有实际检测到血管像素之比;F1-score用来衡量模型与专家分割结果的相似度。
为了进一步评估本模型的性能,利用了ROC 下的曲线面积(area under curve,AUC),ROC 是衡量图像语义综合性能分割结果的重要方法。AUC 值范围为0~1,若AUC=1,表示非常贴合的分类器;0.5~1.0,表示优于随机分类器;0~0.5 表示差于随机分类器。
2.4.1 算法改进前后对比
为了检测模块改进后算法性能,实验分为两部分。首先,将本网络模块MbResU-Net 与增加残差路径的U-Net 进行对比实验。其次,对MbResU-Net 进行消融实验。将MbResU-Net、U-Net、U-Net(Res Path)、单冗余块-Block1、双冗余块-Block2 及四冗余块-Block4 分别在DRIVE 和CHASE 数据集上进行实验,并将实验结果对比。对于每组实验,迭代次数设置为100 次,所得结果如表1 所示。
从表1中可以看出,MbResU-Net 在DRIVE 及CHASE DB1 数据集上Sen、F1、AUC、ACC值均优于使用残差路径的U-Net,实验证明使用残差网络串行连接各模块,解决了由深度网络之间特征融合而产生的特征差距,更有效分割视网膜图像。在消融实验中,单冗余块-Block1 实验效果优于U-Net 模块。在DRIVE 数据集上,MbResU-Net 模块比单模块的Sen、F1、AUC、ACC值分别高0.049 6、0.015 7、0.002 6、0.010 5;在CHASE DB1 数据集上,MbResUNet 模块比单模块的Sen、F1、AUC、ACC值分别高0.056 4、0.029 4、0.009 0、0.019 1,且均在三模块融合时各项指标最佳。但相比较四模块的实验结果分析,如图8 所示,Block4 各项分割指标均比Block1 及Block2 高,但比MbResU-Net 各项分割指标略低或持平,且四个模块的训练时间远多于MbResU-Net,效果与MbResU-Net 差距微小。可以看出,三模块残差网络,即MbResU-Net,从分割统计结果上优于其他四种网络。
Table 1 Segmentation indicators of different modules表1 不同模块的分割指标
通过与专家手工标准的分割结果进行测试和对比,本文方法可以清楚地将血管与背景区域分开。图9 为DRIVE 数据 库中的03_test 图和11_test 图 的分割结果,图10 为CHASE DB1 数据库中的Image_02L和Image_07R 图的分割结果。验证了本文方法在血管复杂形态下的分割效果,尤其是血管分叉处分割效果优异。以DRIVE 数据集为例,第一列为DRIVE数据集原始视网膜预处理图,第二列为手工标注分割图,第三列为本实验分割图。从实验对比图来看,本文算法分割结果基本和专家手工标准图相仿,并在复杂曲度形态血管分割上有明显的分割效果。
Fig.8 Comparison of evaluation indicators for redundancy modules图8 各冗余模块评价指标对比
Fig.9 Comparison of experimental segmentation of DRIVE dataset图9 DRIVE 数据集实验分割对比图
Fig.10 Comparison of experimental segmentation of CHASE DB1 dataset图10 CHASE DB1 数据集实验分割对比图
2.4.2 不同算法的性能评估
此外,为了更有效地分析MbResU-Net 的分割效果,将MbResU-Net 与 文 献[23]、文 献[24]算 法 在DRIVE 和CHASE DB1 数据集上的分割进行定性和定量分析。如图11 所示,在对比图中前两行为DRIVE 视网膜对比图像,后两行为CHASE DB1 视网膜对比图像。图11 中(a)~(b)表示数据集彩色图、手工标注图,(c)表示U-Net 网络分割结果,(d)表示文献[18]分割结果图,(e)为本文算法分割结果图。图11 第一行和第四行显示出,由于光照强度不一致的影响,其他文献均出现主血管细节分割混乱,尤其是血管与血管之间空隙模糊,而MbResU-Net 较好地解决了这个问题,由于冗余网络的加入让图像特征训练得更充分,使复杂结构血管分支更清楚。本文方法在有效解决血管合并问题的同时也提升了小细血管的分割精度。图12 显示了两个数据集的分割细节。如图12(b)的第一行与第三行局部细节图所示,主血管区域的血管相互交错并且彼此相邻,精确分割此类血管对网络结构的要求严格,但文献[23]与文献[24]针对复杂交错血管分割不清楚且有分割噪声,而本文方法对复杂曲度细节分割具有较好的效果,由图12 的第二行和第四行所示,文献[23]仅用U-Net中的普通卷积层,特征提取能力弱,随着网络深度的增加,不断的池化操作导致损失大量的局部细节信息。相比之下,本文方法使用残差路径加深网络深度,捕获各种视网膜细小形状的能力更强。MbResUNet 在某些连接区域中提取的血管细节比文献[24]更多,在细小血管分割中获得更理想的分割结果。因此,基于初始模块的多模块融合提取卷积神经网络能够使细小的视网膜血管特征更具区分性。
Fig.11 Comparison of segmentation of different algorithms on DRIVE and CHASE DB1 datasets图11 不同算法在DRIVE 和CHASE DB1 数据集上的分割对比图
Fig.12 Detail comparison of segmentation results图12 局部细节分割对比图
Table 2 Performance indicators of different algorithms on DRIVE dataset表2 DRIVE 数据集不同算法的性能指标
Table 3 Performance indicators of different algorithms on CHASE DB1 dataset表3 CHASE DB1 数据集不同算法的性能指标
为了综合测试MbResU-Net 在视网膜血管分割领域的性能,将本文网络与文献[25-31]在各项指标下进行比较,统计结果如表2 和表3 所示。基于DRIVE 数据集进行对比,本文准确率ACC达到了0.964 8,Sen值为0.798 7,F1 值为0.822 3,AUC值为0.979 1;基于CHASE DB1 数据集进行对比,本文准确率ACC达到0.972 6,Sen值为0.797 2,F1 值为0.812 3,AUC值为0.982 4。各项指标均优于文献[31]。对于CHASE DB1 数据集,本文模型训练得到的AUC和F1 值最高,Sen比文献[29]低0.001 8,Spe值比文献[31]低0.001 5。但综合表中各项指标结果来看,本文所提出的MbResU-Net 网络,可以有效完成眼底图像的血管分割任务,获得较高的性能指标,有良好的稳定性和抗干扰能力。具体来说,Li 等[25]提取大小为16×16 样本块,在训练过程中会大量检测到无血管区域,影响最终的训练效果。Orlando等[26]在网络中使用全连接条件随机场模型,但标记血管时仍是一个挑战。近些年提出应用于视网膜分割的卷积神经网络方法,Alom 等[27]在U-Net 的每个3×3 卷积操作后增加循环残差块,Wu 等[28]采用多尺度级联的U-Net 网络模块训练网络。Wang 等[29]在U-Net 网 络中增加inception 进行特 征融合。Dan 等[30]在U-Net 网络中使用多尺度特征融合的方式对视网膜进行分割。虽然这些方法性能有所提高,但训练过程复杂。尽管在部分指标上达到先进的性能,但在实际应用中并不实用。本模型可以实现高精确度的自动化分割,为眼科提供例如弯曲度、交叉病变结构、软硬渗出液等重要信息。该模型可有效提升医生对患者进行早期诊断的效率。MbResU-Net 有利于细小血管分割,因此,在糖尿病性视网膜分级检测上有一定的发展前景,但需要针对不同糖尿病视网膜血管病变程度对网络进行改进,旨在提升医学图像更准确的分割结果。
本文提出了一种用于激光扫描眼底镜图像的视网膜血管分割的残差神经网络。一方面在快捷连接中添加残差路径,语义差距是由低层次的编码器与更深层次的解码器连接处理引起的,因此将残差路径引入到网络中,使特征表达更精准。另一方面,为了减少语义差距,缩短卷积操作次数用以减少噪声,平衡编码操作与解码操作后的语义特征,由此提高特征传播的鲁棒性。利用多模块连接传递特征减少参数数量并使特征重用。将改进后的U-Net 网络作为一个残差模块,将残差网络与多个U-Net 网络模块结合建立多特征融合机制加强信息传播,并减少参数数量实现特征重用,充分利用ResNet 的跳跃连接,提高深度网络结构的信息传播能力,针对视网膜血管前后对背景像素占比设计损失函数,加快网络收敛,提升图像分割的准确度。实验表明,本文算法在DRIVE 和CHASE DB1 这两个眼底数据库上能分割出细小血管和复杂曲度血管,相较U-Net 分割方法有一定程度的提升,展示出较好的医学图像分割性能。