基于U-Net改进的青光眼眼底图像诊断算法
2022-10-24韩义波邵艳玲
韩义波,李 霞,邵艳玲
(1.南阳理工学院南阳大数据研究院 河南 南阳 473000;2.南阳理工学院传媒学院 河南 南阳 473000;3.南阳理工学院计算机与软件学院 河南 南阳 473000)
0 引言
青光眼是一种视神经损害、视乳头萎缩及凹陷导致的退行性视神经病变。青光眼的病理特征包括眼压升高、视神经细胞活性丧失和视力下降,倘若青光眼没有被及时发现和治疗,可能会导致患者的视力严重受损,甚至失明[1]。在青光眼的诊断过程中,仅依靠医生通过分析眼底的突变结构和运用自身诊断经验的方式来进行疾病判断的方法准确率较低,时常会出现检查结果与实际情况不符,并需要耗费大量的时间和精力。
彩色眼底图像作为重要医疗工具,可以帮助医生分析和诊断眼科疾病,通过特定仪器扫描眼底可以获得眼底图像。图像包含了中心凹、黄斑、视盘(OD)、视杯(OC)和动静脉血管等眼底区域[2],方便了医生对青光眼的诊断。但眼底图像的结构是复杂多样的,通过人眼来辨别眼底图像既花费时间,又可能因为人眼不易察觉的特征导致诊断结果不够客观和准确。随着近些年人工智能的兴起,研究人员开始尝试使用人工智能来对眼底图像进行青光眼的诊断,通过深度学习技术搭建卷积网络结构,可以直接从图像中提取更为隐蔽的特征,并对特征进行分析,实现疾病的诊断。深度学习技术正广泛地应用于通过医学图像进行疾病的辅助诊断中。
本文通过深度学习技术搭建卷积神经网络模型实现对眼底图像视杯和视盘的准确分割,并以分割之后的眼底图像视盘和视杯区域的面积计算杯盘比(CDR),杯盘比(CDR)是医学上用于诊断青光眼的一个重要参数,当杯盘比超过0.65时,可以确定病人患有青光眼。由此,实现对青光眼早期诊断,对患者进行早期治疗,保护患者视力。
1 相关工作
1.1 青光眼的病理结构及其特征
青光眼是一种常见的眼病,在普通人群中,青光眼的患病率为1%,在中老年人群中,青光眼的发病率为2%。青光眼有4种类型:先天性青光眼、继发性青光眼、混合性青光眼、原发性青光眼。不同类型的青光眼有不同的临床表现和特征[3]。青光眼患者必须尽早发现和治疗。由于视盘凹陷引起的眼内压升高是目前青光眼存在危险的主要原因。高压力是指当成年人眼压超过21 mmHg或2.8 kPa的现象,当出现高压力现象时,眼压越高,患者被诊断为青光眼的概率越大,患者的危险性也越大。当眼内压升高时,患者的视力会受到一定程度的损害,患者的视盘也会出现深而大的凹陷,医生可以根据视盘变化进行青光眼的诊断。
视盘区域全称视神经盘,也叫视神经乳头或视神经头,它是青光眼发病的表现部位。在临床诊断中,彩色眼底图像是被使用最多的视网膜图像。视盘是眼底图像中一个清晰的圆盘状结构,其颜色大多表现为橙色、浅红色或者白色。视神经纤维在视盘区域汇集在一起,以视盘作为开端,并从这里穿出眼球。由于视盘的特殊结构,视盘会反射进入视盘内的大部分光线,这导致在眼底图像中,视盘是亮度最高的区域。视杯是视盘中心亮度最高的区域,其向后压迫导致眼底结构显示为生理凹陷;确定视杯后,视杯和视盘之间的区域被称为视盘沿[4]。视杯会由于细胞的凋亡发生变化,不正常的细胞凋亡会使得视杯不断向外扩大,同时杯盘沿会变薄,导致视杯占整个视盘的比例变大,最终导致青光眼的出现。如图1所示是眼底结构的示意图,图中标注了眼底区域中被医学关注的一些生理特征。
图1 眼底图像结构图
1.2 眼底图像分割算法
吴骏[5]等人提出了基于多特征融合的彩色眼底图像视杯分割算法,算法通过提取感兴趣区域的血管进行视盘分割,然后结合视杯的亮度特征,使用 FCM技术进行视杯区域分割。同时,对分割结果进行镜像映射、椭圆拟合和纠正等后处理工作,从而提高眼底图像分割的精度。郑珊[6]等人提出了基于椭圆约束的多相主动轮廓模型视盘视杯分割算法,算法根据视盘视杯的亮度特征建立内嵌椭圆约束的多相主动轮廓模型,通过模型的能量泛函对模型进行求解。根据求解获得的演化方程驱动曲线沿着视盘和视杯边缘进行移动直到完成视盘和视杯分割。刘洪普[7]等人提出了视盘视杯分割算法(CA-Net),该算法在图像分割时通过坐标转换平衡数据分布,同时采用注意力引导技术[8]和上下文聚合技术进行特征增强,并在视杯分割时采取先验知识约束分割,使分割更加准确。
Pruthi[9]等人提出一种基于萤火虫群优化(Glowworm Swarm)的视盘视杯分割算法,算法的核心是作为代理的萤火虫通过利用视杯区域内的强度梯度帮助构建解决方案,萤火虫具有自适应领域行为,即便是在视盘和视杯边界对比度低的眼底图像中,萤火虫也能够准确地检测出视盘和视杯区域。Ramya[10]等人提出一种名为最优DNN的算法,算法结合局部搜索策略的混合粒子群对DNN参数进行了改进,采用限制对比度自适应直方图均衡化对原始图像进行预处理,通过局部搜索和救援优化算法实现对眼底图像的视杯和视盘分割,并提取基于纹理、形状和颜色的灰度共生矩阵特征,实现对眼底图像视盘和视杯的高精度分割。Mansour[11]等人提出了基于新型感知器的卷积神经网络视盘视杯分割算法。算法通过熵的估计检测视盘和视杯边界对眼底图像进行分割,然后通过加权最小二乘拟合提取杯盘比和整体局部特征以准确切割眼底图像,最后基于感知器的卷积多层神经网络实现对青光眼的分类,实现精确诊断青光眼。Biswal[12]等人提出了一种基于统计的峰态检验的视盘和视杯分割算法,算法使用一种自动生成不包含渗出物的感兴趣区域提取技术进行中央视网膜血管(CRBV)的提取,将CRBV下的杯状边界与部分提取的视杯进行结合,以此达到了高精度分割的目的。
1.3 人工神经网络
人工神经网络[13](Artificial Neural Network, 简称为ANN)是一种模仿脑部突触结构的数学模型,其中单个神经元就像大脑中突触一样可以将信号传递给其他神经元,神经元之间的权重会随着学习而进行调整。通常,ANN中包含多层次,每个层次由多个神经元构成,信号可以从输入层传递到输出层。图2所示为人工神经网络的示意图。
图2 人工神经网络示意图
在ANN中,一个神经元的映射关系如公式(1)所示
Y=f(wTx+|b)
(1)
其中,x∈Rm表示神经元的输入信号,w∈Rm表示神经元的权重,b∈R表示偏差,f(·)表示激活函数,Y为神经元的输出结果。f(·)通常选择非线性的激活函数,激活函数可以用来提高网络的性能和运行效率,常用的激活函数分为以下3种。
(1)阈值函数[14]。最早被使用的激活函数之一,其原理表达式为
(2)
(2)Sigmoid函数[15]。此函数被用来平衡网络中线性和非线性的关系。该函数的适用区间是(0,1),在此区间内Sigmoid是递增函数。其原理表达式为
(3)
(3)ReLU函数[16]。ReLU函数能通过单侧抑制来降低网络的计算成本。该函数采取最大值的方式,表达式简单。其原理表达式为
f(x)=max(0,x)
(4)
2 基于U-Net改进的青光眼眼底图像诊断方法
本节通过深度学习技术对青光眼眼底图像分析,采取全卷积神经网络模型来实现对眼底图像视盘和视杯的精确分割,通过分割出的视杯与视盘区域面积的比值作为青光眼的诊断依据,设计了一种用于青光眼辅助诊断的算法。该算法包含视盘分割和视杯分割两条路径,对于视盘分割任务,输入的图像是经过预处理的彩色眼底图像;对于视杯分割任务,需要通过视盘分割任务得到的视盘位置进行视盘感兴趣区域的提取,输入的图像为提取的图像。完成视盘和视杯的提取后,通过视盘和视杯的图像进行杯盘比的计算,完成青光眼的诊断。
2.1 一种基于U-Net改进的网络模型
本文对U-Net网络结构[17]进行改进,改进后的U-Net仍然采用原始的5层U-Net模式,但与原始U-Net递增的卷积核数不同,它自第二层的第二个卷积开始采用了固定的卷积核数。同时,每一层相对于原始的U-Net提取的特征数目更少,卷积时采用填充的方式使图像的尺寸保持不变。实验结果表明,与原始的U-Net相比,改进后的模型对性能的影响很小,但却大大减少了模型的参数量,使模型所需的内存更小,训练模型的时间更短,网络更加轻量化,图3为改进后的U-Net网络结构图。
图3 改进后的U-Net网络结构图
与原始的U-Net网络一样,改进后的U-Net由收缩路径(左侧)和扩展路径(右侧)组成,类似一个大大的U型字母,矩形上方为对应的特征通道数。改进后的U-Net网络包括3个路径。
(1)收缩路径(Contracting path):收缩路径在结构上重复了分类网络卷积部分的典型结构。由卷积、池化和激活函数组成。卷积层(Convolution)采用两个像素大小为3*3的滤波器平滑移动提取图像特征。在图像外边缘填充1像素宽度的填充,可以在保持特征图尺寸不变的情况下,保留图像边缘的特征。卷积层应用Dropout正则化和ReLU激活函数。下采样层(Downsampling)采用了像素大小为2*2的滤波器进行Max Pooling操作。Max pooling操作可以消除非极大值的干扰,提取最大值作为特征值,降低计算的复杂度。每次下采样后,特征图像的宽度和高度都会减半。
(2)扩展路径(Expansive path):拓展路径采用了与收缩路径相反的操作,由上采样、特征拼接、卷积、激活函数反复构成,此过程中逐渐恢复图像原本尺度。上采样层(Upsampling)采用像素大小为2*2的滤波器对图像进行上采样,采取线性插值的方法扩展图像的尺寸,上采样的过程中,特征图像的宽度和高度变为原来的2倍。U-Net在收缩路径下采样时会损失一部分边缘信息,为了在上采样时恢复这些边缘信息,U-Net通过特征拼接将收缩路径与拓展路径中同一层次的特征图进行融合,实现了边缘特征的恢复。扩展路径卷积层的操作与收缩路径相同。重复此上采样层和卷积层直到获取32*32的特征映射图。
(3)分类路径:U-Net没有全连接层,只是用一个卷积层实现分类的操作。分类路径会对32通道大小的特征图像使用1*1的滤波器执行全卷积操作,对每个像素进行分类,从而得到像素点的分类图。视盘和视杯图像分割的类别是1,即目标区域(视盘或视杯)和非目标区域(背景区域),像素的类别只能是目标区域或者背景,从而达到了分割图像的效果。
U-Net在融合多尺度特征时采取的方法与全卷积神经网络不同。全卷积神经网络通过直接将特征点逐点相加的方式完成融合,而U-Net则在通道维度上采取拼接的方式实现特征融合。同时,U-Net在反卷积时依然存在大量通道,这使上下文信息可以向更高层分辨率传播。
2.2 眼底图像预处理
在获取原始图像时,外界因素如不均匀光照、不同的对比度、不同的成像设备都可能会对原始图像造成严重的影响。因此,对图像进行预处理是实验中极其重要的环节。预处理的目的是保证图像的质量,最大限度消除外界因素的干扰。我们采取多种预处理手段相结合,以提高图像分割的准确率。
(1)去除无用信息。
部分数据集的原视图像中包含有一些无用信息,如在DRIONS-DB数据集中,原视图像的左下角留有眼底图像的编号,这些信息对于实验来说是没有用处的,通过裁剪的方法,将DRIONS-DB数据集中每张眼底图像的编号信息去除。
(2)统一眼底图像分辨率
在收集的数据集中,不同眼底图像数据集存在分辨率不统一的问题,即使是同一个数据集,各个图像的分辨率也有不相同的情况。为了统一分辨率,同时提高网络的训练效率,我们对各个数据集的眼底图像进行缩放,适当降低分辨率,将原始图像分辨率修改为256*256、512*512两个大小,分辨率越小训练的速度越快。采取的具体缩放方法是先找到图像分辨率较小的维度,拉伸至与分辨率较大的维度大小一致,然后再进行等比例放缩。
(3)提取感兴趣区域ROI
一般而言,视盘是眼底图像内较亮的整个区域,对它的分割相对简单。对于视杯部分,由于视杯在眼底图像中表现同样是明亮区域,且视杯区域位于视盘中,视杯和视盘的边界对比度低且不明显,这导致视杯的分割难度要远远大于视盘的分割。为了能更好地获得视杯的分割效果,视杯分割时,先进行感兴趣区域(ROI)的提取,然后将提取到的感兴趣区域图像作为视杯分割的输入图像。
(4)限制对比度直方图均衡化(CLAHE)
自适应直方图均衡化(CLAHE)是一种用来提高图像对比度的图像处理技术。与普通的直方图均衡化不同,CLAHE算法适用于增强图像的局部对比度,CLAHE通过计算图像的局部区域的直方图,然后使用对比度限幅的方式重新分布亮度来改变图像对比度,达到增强局部细节的目的。图4是眼底图像经过感兴趣区域提取后进行CLAHE的示意图。
图4 眼底图像预处理流程图
2.3 数据增强
我们收集了3个数据库的眼底图像作为实验数据,但对于网络训练来说,数据量仍是不够的。为了解决这个问题,提高模型的准确性,改善神经网络诊断青光眼的效果,分别采用多种图像处理方法对收集的3个数据集进行数据扩充,防止出现过拟合情况,采取的方法包括:
(1)平移。将眼底图像按上下左右4个方向分别移动10个像素,由于视盘和视杯的位置大多位于图像的中心区域,进行平移时不会出现视盘和视杯移出图像外的情况。
(2)翻转。通过水平、垂直、水平垂直翻转的方法实现数据集的扩充。
(3)旋转。顺时针旋转眼底图像以达到扩充图像的目的,每次旋转的间隔设置为20°。
3 实验设计与结果分析
3.1 实验数据集
为验证方法的可靠性和鲁棒性,选取DRIONS-DB[18]、RIM-ONE v3[19]、DRISHTI-GS[20]公开数据库来验证模型的分类性能。其中,DRIONS-DB数据集包含110张眼底图片和相应视盘分割,6张健康眼底图片,104张青光眼图片,图片分辨率大小是 600×400。DRISHTI-GS 数据集包含 101 张彩色眼底图像,其中 50 张训练图像和 51 张测试图像,图片分辨率大小约为2047×1760。此外,该数据集还提供了基于4名眼科专家手绘标签的视盘和视杯的平均边界值。RIM-ONE v3数据集包括159张眼底图像,其中包括84张青光眼或者是疑似青光眼图像和75张正常眼底图像。表1详细展示了各个数据集的情况,No表示数据集包含的眼底图像数目,OD Label表示数据集是否包含视盘标签数据,OC Label表示该数据集中是否包含视杯标注数据。
表1 数据集统计值
3.2 性能指标
为了客观评估分割效果,同时为了与其他分割算法做对比,本文采用交并比(Intersection Over Union,IOU)和Dice系数来评估模型对眼底图像视盘视杯区域分割结果的准确性。用运行时间和模型内存消耗来与其他模型的性能做对比。
(1)IOU系数常被使用在物体检测中,用于衡量算法对物体检测的准确程度。IOU的计算如公式(5)所示。
(5)
其中,A表示通过模型得到的分割结果图,B表示相应的由专家手动标记的视盘视杯的标注图。IOU的结果表示两者的相关性,相关性越高,IOU的值越大。IOU的数值在0到1之间,越接近1表示预测结果越好。
(2)Dice系数同样是图像分割领域中常用的指标之一,它用于衡量两个图像的相似程度(如式6)。
(6)
其中,A表示通过模型得到的分割结果图,B表示相应的由专家手动标记的视盘视杯的标注图。Dice系数的数值表示两者的相似性,越相似则值越接近1。
图5 IOU和Dice的计算图示
图5表示IOU和Dice的计算图示。在图中,两个区域分别表示模型结果图A和专家标注图B(金标准图),两个区域的交集面积对应IOU中的A∩B,两个分割图的并集面积对应IOU中的A∪B。IOU的数值大小是两个区域共有的面积与两个区域总面积的比值;Dice系数的定义为两倍于两个区域交集部分的面积与两个区域面积的和的比值,数值区间为[0,1]。
(3)运行时间用于衡量神经网络运行速度,是指神经网络允许所消耗的时间。本实验用训练时间代表运行时间。训练时间是神经网络训练每张图像的平均时间,单位是秒/张,计算方法是用总训练时间除以训练的次数再除以每次训练的图像总数。
(4)模型内存消耗指生成的模型所占用的存储空间,单位是MB,用于判断网络生成的模型是否有利于存储与分析使用。
3.3 实验整体流程
在眼底结构中,视杯位于视盘内部,这一结构意味着可以通过对视盘的分割后再进行视杯的精确分割,基于这一特点,本次实验步骤如下。
(1)对初始输入的眼底图像进行预处理,包括对无关信息的去除,对图像进行裁剪以实现分辨率统一,进行限制对比度直方图均衡化提高局部对比度等预处理操作。
(2)对预处理后的眼底图像进行随机位移、随机翻转、随机旋转共3种数据增强操作,增加数据规模,尽量避免过拟合问题。
(3)对增强后的数据进行归一化,然后送入视盘分割网络进行训练。
(4)通过视盘分割的图像获取视盘的位置,对眼底图像进行视盘感兴趣区域的提取,尽量减少其他无关的干扰影响视杯分割。
(5)将提取到的视盘感兴趣区域放入固定分辨率的图像中,通过与视盘分割相同的预处理和数据增强操作后送入视杯分割网络进行训练。
通过上述步骤,完成了对视盘和视杯分割网络的训练,得到了可以用于视盘和视杯分割任务的模型,进而可以进行图像的预测。图6是实验视杯和视盘分割的流程图。
3.4 实验结果分析
3.4.1 与传统U-Net模型的对比实验
表2是使用传统U-Net网络与改进U-Net网络对数据集DRISHTI-GS和RIM-ONE v3进行视盘和视杯的分割。以IOU和Dice系数作为模型分割精度的指标,以训练时间作为模型训练速度的指标,同时结合模型大小来对改进后的U-Net与原始U-Net进行比较。
图6 视杯和视盘的分割流程
就分割精度而言,在视盘检测上,改进后的U-Net各项分割精度比原始U-Net稍差一些。在DRISHTI-GS数据集上,改进后的U-Net IOU系数偏差1.12%,Dice系数偏差0.63%;在RIM-ONE v3数据集上,改进后的U-Net IOU系数偏差2.03%,Dice系数偏差0.84%。在视杯检测上,改进后的U-Net精度同样稍差于原始U-Net。在DRISHTI-GS数据集上,改进后的U-Net IOU系数偏差1.75%,Dice系数偏差1.44%;在RIM-ONE v3数据集上,改进后的U-Net IOU系数偏差1.32%,Dice系数偏差1.11%;就在训练时间而言,改进后的U-Net训练一张图像的平均时间约为0.05 s,每秒钟可以训练20张图像。而原始U-Net训练一张图像的时间约为0.25 s,每秒钟仅能训练4张图像。改进后的U-Net训练速度约是原始U-Net的5倍;就模型存储空间而言,改进后的U-Net模型大小仅5.11 MB,而原始U-Net模型大小达到239.1 MB,模型大小缩小近47倍。
总体而言,改进后的U-Net在损失1%~2%分割精度的情况下,将训练速度提升5倍,大幅度提高了模型训练速度,同时极大地减少了模型所耗费的空间。
表2 传统U-Net与改进U-Net在视盘视杯分割任务中的性能对比
3.4.2 与基准算法的对比实验
本文对比各算法在DRIONS-DB、DRISHTI-GS和RIM-ONE v3眼底图像数据集进行视盘分割实验的结果,在DRISHTI-GS和RIM-ONE v3眼底图像数据集上进行视杯分割的实验,通过分割结果的IOU和Dice系数来评估算法对视盘和视杯分割的性能。同时,搜集了在相同数据集上进行视盘和视杯分割的文献进行对比。
表3所示是各算法在DRIONS-DB、DRISHTI-GS和RIM-ONE v3眼底图像数据集进行视盘分割的实验的结果。从表中可以看出,改进后的U-Net在3个数据集分割视盘获得的IOU值分别为0.893、0.892和0.883,Dice系数值分别为0.947、0.943和0.945。在DRIONS-DB和DRISHTI-GS数据集上的表现与AI-Bander[21]、Sevastopolsky[22]提出的分割方法相似,优于Zilly[23]提出的分割方法。在RIM-ONE v3数据集上表现优于AI-Bander[21]提出的分割方法,与其他分割方法表现相似。
表3 不同算法视盘分割对比结果
表4是各算法在DRISHTI-GS和RIM-ONE v3眼底图像数据集进行视杯分割的实验的结果。从表中可以看出,改进后的U-Net在两个数据集分割视盘获得的IOU值分别为0.741和0.679,Dice系数值分别为0.832和0.807。Zilly等提出的算法在视杯分割上的效果最佳,而改进后的U-Net与Sevastopolsky等提出的算法提出的分割方法表现相似,优于AI-Bander等提出的分割方法。
表4 不同算法视杯分割对比结果
3.4.3 收敛实验
如图7和图8是使用改进后的U-Net对青光眼眼底图像视盘和视杯分割过程中,损失函数、IOU和Dice系数的变化趋势。从图中可以看出,无论是视盘分割还是视杯分割,模型在前200次的迭代训练中,改进U-Net网络对眼底图像分割的准确程度不断上升,迭代次数达到200次之后,准确程度保持稳定。相对于视杯分割,视盘分割收敛得更快并且更稳定,视盘分割图像的损失函数在稳定后趋近于0,而视杯分割的损失函数趋近于0.1,这也表明视杯分割的结果没有视盘分割的精确,视杯分割依旧是一项具有挑战性的任务。
图7 视盘分割过程中参数变化
图8 视杯分割过程中参数变化
图9 视盘和视杯分割预测结果与正确结果的对比
图9为视盘和视杯分割任务中,视盘和视杯分割效果最好和分割效果最差的图像。其中,图(a)~(c)是视盘分割中,分割效果最好的图像,IOU为0.964,Dice系数值为0.971。图(d)~(f)是视盘分割中,分割效果最差的图像,IOU为0.803,Dice系数值为0.891。图(g)~(i)是视杯分割中,分割效果最好的图像,IOU为0.908,Dice系数值为0.952。图(j)~(l)是视杯分割中,分割效果最差的图像,IOU为0.445,Dice系数值为0.616。
4 结语
为了解决现有社区检测算法需要利用网络拓扑结构作为先验知识,从而严重影响算法扩展性和精确度的问题,本文利用网络中信息传播的级联数据,提出了一种基于加权图传播最优的网络社区检测算法N-CD,首先利用条件随机场对传播级联的时间序列进行建模,然后通过最大似然估计方法对构建的概率图模型进行优化推理,最终得到最优的网络社区划分。通过在LFR合成网络、真实的Twitter和博客网络上与其他4种社区检测算法对比分析,证明了所提算法在社区检测任务上的性能优势,不仅提升了检测的准确率和稳定性,并且对于评价指标的偏好波动有着更好的鲁棒性。