APP下载

基于Dense U-Net的眼底视网膜血管分割

2021-05-06付顺兵王朝斌刘文秀张晓倩

内江师范学院学报 2021年4期
关键词:像素点视网膜函数

付顺兵, 王朝斌, 陈 旭, 刘文秀, 张晓倩

(西华师范大学 计算机学院, 四川 南充 637009)

0 引言

眼底视网膜血管形态结构(如直径、分支、角度等)是衡量人体健康的重要指标,能够反映出人体的各种疾病,如糖尿病视网膜病变(diabetic retinopathy,DR)、青光眼、高血压等[1].因此,进行眼底图像分析,对辅助医生诊断和治疗人体各种系统疾病,具有重要的临床意义.目前,眼底视网膜图像的血管主要还是通过人工分割获得,然而对眼底图像中的血管进行手动标记费时费力,并且易受主观因素的影响,难以获得高准确的分割结果,视网膜血管辅助诊断疾病未得到广泛的应用,所以迫切需要一种能准确分割视网膜血管的方法来为眼科医生提供有价值的辅助诊断.

近年来,国内外的专家学者针对眼底视网膜血管提出了很多的分割算法.其分割算法可分为两大类:无监督方法和有监督方法.无监督方法不需要先验标记信息,而是使用传统的分割方法来提取眼底血管,如基于模型[2]、形态学处理[3]、匹配滤波[4]等方法.该类方法虽然在分割速度上有优势,但提取到的血管信息粗糙,分割的准确率较低.而有监督的方法是通过提取图像的各种特征来训练一个能准确区分血管和背景像素的分类器,最终实现血管的分割.该类分割方法需要人工提取的标签用于训练.常用的有监督方法包括基于机器学习的方法和基于深度学习的方法,基于机器学习的方法首先通过人工提取图像的特征再结合支持向量机、贝叶斯分类器等进行分割.如Ricci等[5]先对眼底图像进行预处理,提取了图像的绿通道,然后再利用SVM对血管和非血管进行分割.与无监督的方法相比,基于机器学习的方法在准确率上有所提高,但由于需要人工提取特征,很大程度上增加了因人为因素导致分割结果错误的概率.为此,人们将基于深度学习的方法引入医学图像分割领域,如Wang等[6]使用卷积神经网络提取眼底图像的特征,并结合随机森林(random forest,RF)实现了血管的分割.Fu等[7]先将眼底图像输入到卷积神经网络中生成其概率图,再使用全连接条件随机场来获得血管的分割结果.Lu等[8]提出一种包含收缩路径和扩展路径的神经网络架构来对眼底视网膜血管进行分割,捕获了更多的上下文语义信息,分割的准确率得到一定的提升.但目前所提的血管分割算法仍存在细小血管特征难以采集和误分割等问题,因此本文提出一种融合U-Net网络和密集网络的Dense U-Net模型,并用于视网膜血管分割.

1 相关算法原理

1.1 U-Net模型

U-Net网络由Ronneberger等[9]在2015年提出,是一种基于全卷积神经网络(fully convolutional networks,FCN)[10]改进的全卷积网络,其结构类似于U型,因此得名U-Net.整个的U-Net网络主要由两部分构成:收缩路径和扩展路径.其中收缩路径用于获取输入图像的上下文信息,扩展路径用于对输入图像中需要分割的区域进行精确定位.在对医学图像进行分割时,由于器官结构固定和本身的语义信息不是特别丰富,要想达到好的分割效果,图像的深层特征和浅层特征都很重要,U-Net网络通过使用跳跃连接(skip connection)融合深层和浅层的特征,能提取到更多的语义信息,所以U-Net网络常用于医学图像分割任务中.

1.2 密集网络

密集网络由Huang等[11]在受到以下两点启发后提出.在对残差网络进行改进时,发现训练过程中每一步都随机的Dropout一些层,可以提高网络模型的泛化能力.这就说明神经网络中的某一层不仅仅依赖于前一层的特征,还可以依赖更前面层的特征.其次,在网络训练过程中随机舍弃很多中间层也不会对算法的收敛性造成影响,说明了残差网络具

有冗余性.密集网络的主要改进在于任何两层之间都有连接,每一层都会接收来自前面所有层的输出,实现了特征的重复利用.如图1所示,假设某层网络的输入为x,H代表一个非线性的操作,H其公式定义如下:

Xl=Hl([x0,x1,…,xl-1]).

图1 密集连接模块

2 视网膜血管分割网络结构

2.1 网络结构

针对眼底视网膜图像特征的复杂性及U-Net网络对细微血管特征难以采集等问题,本文提出了一种融合U-Net网络和密集连接模块的Dense U-Net网络架构,整体网络结构如图2所示.传统U-Net网络使用4次下采样操作和4次上采样操作来提取图像的特征信息,由于眼底图像是小数据集,为了防止在训练过程中因网络层数过多而可能出现的过拟合[12]等问题,因此本文使用3次下采样和3次上采样的网络架构.整体网络架构由收缩路径和扩展路径组成,包含密集模块(dense block)、拼接块(concatenate block)、下采样、上采样等操作.蓝色的条形框为密集模块,图中条形框旁的数字代表图像的尺寸大小,黄色条形框为拼接块,是对扩展路径中经过上采样操作后的图像与对应收缩路径网络层的特征图进行融合,同时在每个卷积层之间使用一种动态的激活函数,将在后面进行详细介绍.

图2 Dense U-Net网络结构

2.2 Dynamic ReLU激活函数

在卷积神经网络中,激活函数的主要作用是引入非线性的因素,使网络能够完成非线性映射.常见的激活函数有:Sigmoid、Tanh、ReLU等,然而传统的激活函数是静态的,即对所有的输入样本都执行同样的操作.为了改善神经网络中传统激活函数存在的问题,本文通过引入了一种动态修正单元(dynamic rectified linear unit,Dynamic ReLU)[13]来提高本文网络模型的非线性表达能力.

图3 动态修正单元流程

如图3所示,对输入向量x进入激活函数之前,将其分为两个流分别输入θ(x)和fθ(x)(x),θ(x)用于获得激活函数的参数,即对输入向量x各维度的上下文信息进行编码,使其参数自适应激活函数,fθ(x)(x)用于获得激活函数的输出值.Dynamic ReLU的计算公式如下:

辅助函数θ(x)的计算采用的是SE网络(squeeze-and-excitation networks,SE-Net)中的SE模块.其主要思想是通过注意力来自动获取每个特征通道的重要程度,然后按照这个重要程度去提升对特定任务有用的特征信息,抑制用处不大的特征信息,最后将权重加权到每个特征通道上[14].

对于输入向量x,先通过一个全局池化层(global average pooling)压缩空间信息,得到一维向量,然后经过两个全连接层(fully connected layer),同时在两个全连接层之间使用一个ReLU函数,增加了更多的非线性操作,可以更好的拟合通道间复杂的相关性,最后通过Sigmoid函数标准化输出的范围.当完成SE模块中的计算后,最后的输出为:

3 实验及结果分析

3.1 眼底图像数据集

实验使用的数据集来自公开数据库DRIVE[15]和STARE[16],目前相关的研究大多采用这两个数据库来验证自己算法的性能.其中DRIVE数据集包含40张彩色眼底血管图像,尺寸大小为565×584,如图4(a)所示为一张原始眼底血管图像.每张图像对应2位专家的手动分割结果及眼底掩模,分别如图4(b)、图4(c)、图4(d)所示.本文使用DRIVE数据库划分好的20张训练图像和20张测试图像进行实验,训练数据包括彩色眼底图像、来自第一位专家手动分割的结果图和掩模图像,测试时使用来自第一位专家的手动分割结果对模型进行评估,将模型的输出结果与第二位专家的手动分割结果进行比较.

图4 数据库部分图像

STARE数据集是由Michael Goldbaum在1975年发起的一个项目.其中包含了20张视网膜图像,每张图像对应2个专家的手动分割结果,尺寸大小为700×605,但没有相对应的掩膜,需要手动设置掩膜图像.由于该数据集官方并未划分为训练图像和测试图像,因此本文将前10幅作为训练图像,另外10幅作为测试图像.

由于DRIVE数据集与STARE数据集中的图像较少,本文对训练图像进行数据增强处理,将经过预处理后的图像先进行90°、180°、270°的旋转操作,然后再进行水平、垂直和镜像翻转操作,数据集在原来的基础上增加了7倍,DRIVE训练数据图像变为140张,STARE训练数据图像变为70张.同时从每张图像中随机提取2000个大小为48 pixel×48 pixel的局部样本块用于模型的训练,图5展示了实验中数据的部分局部样本块,其中图5(a)为训练集局部样本块,图5(b)为对应的金标准局部样本块,可以看到图像被裁剪为很多的小块,DRIVE和STARE数据集分别提取了280 000和140 000个局部样本块.

图5 局部样本块示例

3.2 数据预处理

由于眼底图像存在光照不均、血管与背景对比度低等问题,为了易于网络的训练,提高分割的准确率,先对这两个数据集进行预处理.处理步骤如下:

(1)灰度变换

两个数据库的眼底图像都为RGB图像,先对图像进行通道提取,如图6所示.通过实验可以看出,提取绿色通道后的眼底图像中血管与背景对比度高,能够较好的显示出血管结构,所以本文使用绿色通道的图像进行后续的分割实验.

图6 眼底彩色图及其不同通道图像

(2)数据标准化

对绿色通道后的图像进行零均值化和单位标准化处理,使其符合正态分布.公式如下:

其中,x为原始样本数据,μ为原始样本数据的均值,σ为原始样本数据的标准差,x′为标准化后的图像数据.

(3)限制对比度自适应直方图均衡化

对图像进行分块处理,一般划分为8行8列的64个小块,然后对每一个小块进行直方图均衡化操作,增加图像的对比度.

(4)数据归一化

对图像进行归一化处理,处理后图像的像素值取值范围在[0,1]之间.归一化公式定义如下:

其中,xi为输入图像的像素点值,min(x)和max(x)分别为图像样本数据中最小像素值和最大像素值,xnorm为经过归一化处理后的像素值.

(5)局部自适应Gamma校正

Gamma校正是一种非线性操作,通过对视网膜图像的背景和血管进行Gamma校正,用于增强图像中血管较暗部分的亮度信息,并且能够有效保留图像亮度较强部分的质量.

3.3 参数设置

本文使用tensorflow框架下的keras深度学习库进行实验,输入图像包括原始眼底图像、金标准图像及掩模,把输入图像的90%作为训练集,10%作为验证集.训练时,使用Adma优化器对模型进行优化,初始学习率为0.001,每次训练20个局部样本块,模型的迭代次数为100.

3.4 性能评价指标

为了对本文所提算法的分割性能进行评估,采用准确率(accuracy)、特异性(specificity)、灵敏度(sensitivity)和F1值(f1-score)作为评价标准.准确率Acc表示被正确分割的血管像素点和背景像素点占整个图像总的像素点的比例;特异性Sp表示被正确分割的背景像素点占金标准背景总的像素点的比例;灵敏度Sn表示被正确分割的血管像素点占金标准血管总的像素点的比例;F1值用于衡量分割结果和金标准之间的相似性.相关指标计算公式如下:

其中,TP(真阳性)表示血管像素被正确分类为血管;TN(真阴性)表示背景像素被正确分类为背景;FP(假阳性)表示背景像素被错误分类为血管;FN(假阴性)表示血管像素被错误分类为背景.

ROC曲线(receiver operating characteristic curve)也是一种衡量视网膜血管分割标准的重要指标.它反映了不同阈值时灵敏度与特异性之间的关系,其中横轴为假阳性率(false positive rate,FPR),纵轴为真阳性率(true positive rate,TPR),ROC曲线下方的面积(area under the roc curve,AUC)更加直观地评估算法的血管分割性能,其值越接近1,表示预测准确率越高,分割效果越好.

3.5 实验结果分析

3.5.1 分割结果

本文改进模型分别在DRIVE和STARE眼底图像数据库上进行实验,其分割结果如图7和图8所示.其中第一列为输入图像,第二列为金标准图像,第三列为本文模型的分割结果.通过与专家手动分割的图像进行比较,本文算法可以将血管与背景区域分开,并成功的检测出细小血管,具有良好的分割性能.

图7 在DRIVE数据库上的分割结果

图8 在STARE数据库上的分割结果

为了更直观的表现出本文算法的分割性能,给出了如图9所示的ROC曲线,从图中可以看出,在DRIVE和STARE数据库上的ROC曲线下方面积分别为0.9840和0.9746,假阳性率较低,真阳性率高,存在血管误分割的可能性小.

图9 不同数据库上的ROC曲线

3.5.2 先进算法对比

为了验证本文改进模型在眼底视网膜血管分割上的分割性能,将本文所提算法在DRIVE和STARE数据集上的性能评价指标与目前先进的算法进行对比,结果如表1和表2所示.从表1中可看出,本文的分割算法在DRIVE数据集上的Acc,Sp,Sn,F1-score和AUC等性能指标分别达到了96.28%、98.46%、80.47%、82.54%和98.40%.从表2可看出,在STARE数据集上的Acc,Sp,Sn,F1-score和AUC等性能指标分别达到了96.85%、98.55%、81.38%、83.17%和97.46%.综上所述,这表明了本文所提的算法能够准确分割出细小血管,相比其他算法对视网膜血管分割更具优势,鲁棒性较强.

表1 在DRIVE数据集上与其他算法对比 单位:%

表2 在STARE数据集上与其他算法对比 单位:%

3.5.3 激活函数对比

表3展示了基于本文改进模型的6种不同激活函数在DRIVE数据集上的分割性能.从表中可以看到,Softplus激活函数的各项评价指标都很差,说明该函数的非线性表达能力差且不稳定;ReLU及其变种激活函数的部分指标比前两种激活函数高,但提升的效果并不大;Dynamic ReLU激活函数在各项评价指标上均有所提高,这表明该函数能够更好地提升网络的非线性表达能力,从而增强了网络对视网膜血管的分割效果.

表3 不同激活函数在DRIVE数据集上的评价指标对比 单位:%

4 结束语

眼底图像中视网膜血管的准确分割对患者早期的诊断和治疗具有十分重要的临床意义.本文针对视网膜血管的图像特征信息复杂及现有血管分割算法存在细小血管特征难以采集等问题,在U-Net网络架构的基础上,提出了一种融合U-Net网络和密集网络的分割方法.通过将密集网络中的密集连接模块引入到U-Net网络中,增加了特征信息的重复利用,提高了分割的准确率,同时使用Dynamic ReLU激活函数来提高网络的非线性表达能力.通过在DRIVE和STARE两个眼底图像数据集上的实验表明,本文所提的算法能够分割出细小血管,且准确率较高,具有良好的分割性能.但对带有病灶的视网膜血管图像仍会出现血管分割断裂的现象,如何更准确地分割出带有病灶信息的眼底图像血管并防止出现断裂的问题将是下一步研究的重点.

猜你喜欢

像素点视网膜函数
深度学习在糖尿病视网膜病变诊疗中的应用
如何防治裂孔性视网膜脱离
图像二值化处理硬件加速引擎的设计
2型糖尿病脑灌注及糖尿病视网膜氧张量的相关性
二次函数
基于局部相似性的特征匹配筛选算法
二次函数
函数备考精讲
视网膜脱离能治好吗
基于像素点筛选的舰船湍流尾迹检测算法