一种基于深度学习的糖尿病视网膜病变等级分级方法与流程

文档序号:16211338发布日期:2018-12-08 07:46阅读:518来源:国知局
一种基于深度学习的糖尿病视网膜病变等级分级方法与流程

本发明涉及医疗卫生图像处理技术领域,具体而言,尤其涉及一种基于深度学习的糖尿病视网膜病变等级分级方法。

背景技术

糖尿病视网膜病变(diabeticretinopathy,dr)是由糖尿病引起的并发症,是主要致盲疾病之一。传统的视网膜图像处理方法包括4个阶段:预处理、解剖结构分析、病变检测和病变诊断。视网膜图像处理的每个阶段都需要不止一种图像处理技术,而且视网膜图像结构复杂,容易与各种病变交叉影响,再加上复杂的背景变化影响,使得对视网膜图像的处理面临各种难题。不可避免的外界因素使得处理视网膜图像的技术复杂、泛化性差,对先验知识也具有很强的依赖性。在这个过程中,任何一个技术环节出错或者效果不理想,都将导致后续的工作无法进行或者图像分类检测结果出现很大的误差。



技术实现要素:

根据上述提出的技术问题,而提供一种基于深度学习的糖尿病视网膜病变等级分级方法。

本发明采用的技术手段如下:

一种基于深度学习的糖尿病视网膜病变等级分级方法,包括如下步骤:

s1、构建样本库,其中包括不同程度视网膜病变的多张包括诊断标记的眼底镜照片;

s2、去除样本库中眼底镜照片的背景和噪声;

s3、通过减去局部均值法将不同亮度、不同明暗度的样本图像归一化到同一个范围;

s4、对不同样本图像采用随机拉伸、旋转的方法进行数据扩充,构建训练集和测试集;

s5、训练初始深度学习网络模型,训练过程包括:搭建输入部分架构,搭建多分支特征变换部分架构和搭建输出部分框架,所述输出部分框架为多种输出模式,其中,模式一将输出的病变等级当做相关的回归问题构建输出部分框架,模式二通过交叉熵将输出的病变等级当做相关的分类问题构建输出部分框架;

s6、将待检测样本输入到训练好的初始深度学习网络模型中,进行糖尿病视网膜病变分级。

进一步地,步骤s1中,所述不同程度视网膜病变为五种,即无糖尿病性视网膜病变、轻度糖尿病性视网膜病变、中度糖尿病性视网膜病变、重度糖尿病性视网膜病变、增殖性糖尿病性视网膜病变。

进一步地,步骤s2中,通过如下方法去除样本库中眼底镜照片的背景和噪声:

s201、去除各样本图像的黑边,将其分辨率重置为预设的x*x,同时将被噪声完全污染的图像删除;

s202、对中度糖尿病性视网膜病变及重度糖尿病性视网膜病变的样本图像进行白平衡处理;

s203、对中度糖尿病性视网膜病变及重度糖尿病性视网膜病变的样本图像进行直方图均衡化处理。

进一步地,所述s202中,通过如下方式对样本图像进行白平衡处理:

将原始图像rgb通道分离,分别计算各通道的均值raver、gaver、baver及三者的均值k,通过公式kr=k/raver、kg=k/gaver、kb=k/baver计算各通道的增益,将各原始通道乘以增益系数得到白平衡的结果;

所述s203中,通过如下方式对样本图像进行直方图均衡化处理:

将rgb空间转化到ycbcr空间,对y通道进行直方图均衡化,将得到的结果与cb、cr通道合并,得到最终直方图均衡化结果。

进一步地,所述步骤s3中,减去局部均值法具体公式为:

imgout=img*α+imggaussian*β+γ

其中,

α=4,β=-4,γ=128,imggaussian为经过高斯滤波器滤波过的图像。

进一步地,所述搭建输入部分架构中,各层依次为输入层、卷基层、卷基层、卷基层、卷基层、卷基层、卷基层、最大池化层、卷基层、卷基层、最大池化层,各卷积层的窗口尺寸均为3*3,第一层和第四层步长为2,其余层步长为1,池化层的窗口尺寸为3*3,步长为2,最终输出192张像素为x/16*x/16的特征图像。

进一步地,所述搭建多分支特征变换部分架构中,通过在inception模块间及模块内添加residual连接,构建多分支连接,经过x/16*x/16、x/32*x/32、x/64*x/643个阶段的处理,输出2048张像素为x/64*x/64的特征图像。

进一步地,将输出的病变等级作为相关的回归问题搭建输出部分框架,各层依次为平均池化层、dropout层、全连接层、特征池化层、全连接层,所述平均池化层窗口尺寸为x/64*x/64,dropout层丢弃率为0.5,第一个全连接层单元数为1024,最后的全连接层单元数为1,特征池化窗口大小为2*2。

进一步地,将输出的病变等级作为相关的分类问题搭建输出部分框架,各层依次为平均池化层,卷积层,softmax层,平均池化层窗口尺寸为x/64*x/64,卷积核个数为5,窗口大小为1,softmax层使用如下交叉熵作为损失函数:

其中,p(x)为实际结果,q(x)为预测结果,h(p,q)为求得的交叉熵,

使用交叉验证的方法进行训练,对数据进行了分割,90%的数据用于训练,10%的数据用于验证。

本发明还提供了一种基于深度学习的糖尿病视网膜病变等级分级系统,包括:

样本取样单元,用于对自行采集的样本数据或已有的样本库中的样本数据进行采集;

预处理单元,用于对原始图像进行预处理,得到适合训练网络模型的图像,其中包括:

去噪模块,用于去除原始图像的黑边并对特定类别的图像进行白平衡处理和直方图均衡化处理;

图像归一模块,用于将不同亮度、不同明暗度的图像都归一化到同一个范围,突出病灶信息;

数据扩充模块,用于对不同的样本随机拉伸、旋转,获取一定数目的样本数据子图像;

分级网络模型训练单元,用于通过数据扩充模块扩充后的原始样本图像及其子图像训练集数据训练初始深度学习网络模型;

图像处理单元,用于通过分割模型对待检测样本中每幅图像的糖尿病视网膜病变进行分级。

较现有技术相比,本发明具有以下优点:

1、利用深度学习的方法对糖尿病视网膜病变图像进行自动检测,相较于传统的处理方法,本发明摆脱对先验知识的依赖性,有良好的泛化能力。

2、通过对图像的一系列预处理操作,去除一系列的干扰因素,更加突出眼底图像的病灶信息,提升了识别的准确率。

3、通过使用卷积神经元网络(cnn)进行特征映射时,采用所设计的多层次,小尺寸的卷积核能够提取十分微小的病灶特征,使分类结果更加可靠。

4、通过3类inception模块的组合,网络结构更宽,输出部分框架为多种输出模式,可结合所需的指标选择分类方法和回归方法,两种输出模式使得可靠性更高。

基于上述理由本发明可在医疗卫生图像处理领域广泛推广。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一种基于深度学习的糖尿病视网膜病变等级分级方法流程图。

图2为本发明一种基于深度学习的糖尿病视网膜病变等级分级系统模块图。

图3为本发明实施例涉及的眼底图像的病变状态的示意图,图中,(a)为无糖尿病性视网膜病变、(b)为轻度糖尿病性视网膜病变、(c)为中度糖尿病性视网膜病变、(d)为重度糖尿病性视网膜病变、(e)为增殖性糖尿病性视网膜病变。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

如图1所示,本发明提供了一种基于深度学习的糖尿病视网膜病变等级分级方法,包括如下步骤:

s1、构建样本库,其中包括不同程度视网膜病变的多张包括诊断标记的眼底镜照片;

每类糖尿病视网膜病变均对应有具有多张所述眼底镜照,照片可自行采集分类,也可使用已有的样本库。本实施例使用的是eyepacs连同加利福尼亚医疗基金会发布的样本库,根据视网膜病变程度将图像分为5类。如图3所示,包括:无糖尿病性视网膜病变、轻度糖尿病性视网膜病变、中度糖尿病性视网膜病变、重度糖尿病性视网膜病变、增殖性糖尿病性视网膜病变。

s2、每张样本图像都包含黑色边框等无意义的信息并且每类图像都会包含不同的噪声,图像之间的明暗度有很大的差异,所以需要去除样本库中眼底镜照片的背景和噪声;

首先,去除各样本图像的黑边,将其分辨率重置为预设的x*x,本实施例将其重置为512*512,同时将被噪声完全污染的的毫无意义的图像删除;

对中度糖尿病性视网膜病变及重度糖尿病性视网膜病变的样本图像进行白平衡处理:

将原始样本图像rgb通道分离,分别计算各通道的均值raver、gaver、baver及三者的均值k,通过公式kr=k/raver、kg=k/gaver、kb=k/baver计算各通道的增益,将各原始通道乘以增益系数得到白平衡的结果;

对中度糖尿病性视网膜病变及重度糖尿病性视网膜病变的样本图像进行直方图均衡化处理:

直方图均衡化的对象是图片强度,而不是颜色分量。因此需要先进行颜色空间的转化,将rgb空间转化到ycbcr空间做如下处理:

y=0.299r+0.587g+0.114b

cb=-0.1687r-0.3313g+0.5b+128

cr=0.5r-0.4187g-0.0813b+128

再对y通道进行直方图均衡化,将得到的结果与cb、cr通道合并,得到最终直方图均衡化结果。

s3、通过减去局部均值法将不同亮度、不同明暗度的样本图像归一化到同一个范围,从而突出病灶信息,消除图像采集的影响;

采用的是减去局部均值的方法,具体的计算公式为:

imgout=img*α+imggaussian*β+γ

其中,

α=4,β=-4,γ=128,imggaussian为经过高斯滤波器滤波过的图像。

s4、由于深度学习需要大量的数据,而现实中并没有足够数量的样本,因此必不可少的步骤是数据扩增;此外,病变样本数量一般都少于正常样本数量,要保证各种类别的样本数量均衡,也需要进行样本扩充。对不同样本图像采用随机拉伸、旋转的方法进行数据扩充,构建训练集和测试集,子图像是由原图像产生的,存在一定的可分类性。

s5、训练初始深度学习网络模型,可参考densenet(denseconvolutionalnetwork)和senet(squeezeandexcitationnetworks)等最新的cnn(convolutionalneuralnetwork)模型,即卷积神经元网络模型进行修改,或自行搭建cnn模型进行训练与预测,本实施例采用了自行搭建的cnn模型,对于糖尿病视网膜病变检测更有针对性。训练过程包括:搭建输入部分架构,搭建多分支特征变换部分架构和搭建输出部分框架,所述输出部分框架为多种输出模式,其中,模式一将输出的病变等级当做相关的回归问题构建输出部分框架,模式二通过交叉熵将输出的病变等级当做相关的分类问题构建输出部分框架;

本实施例经过预处理后得到的图像分辨率为512*512,所述搭建输入部分架构可以降低数据的尺寸,其中,各层依次为输入层、卷基层、卷基层、卷基层、卷基层、卷基层、卷基层、最大池化层、卷基层、卷基层、最大池化层,各卷积层的窗口尺寸均为3*3,第一层和第四层步长为2,其余层步长为1,池化层的窗口尺寸为3*3,步长为2,最终输出192张像素为32*32的特征图像。

所述搭建多分支特征变换部分架构中,通过在inception模块间及模块内添加residual连接,构建多分支连接,inception结构增加了宽度,且具备多尺度特征,经过32*32到16*16再到8*83个阶段的处理,输出2048张像素为8*8的特征图像。

搭建输出部分框架:本实施例支持多种输出模式,两种输出模式都有其可靠性,都有其评价依据,回归问题表示。

其中,模式一:将输出的病变等级当做相关的回归问题,以多分支特征变换部分架构的输出作为输入,框架包括平均池化层、dropout层、全连接层、特征池化、全连接层。最后的全连接层单元数为1,用作回归输出,平均池化层窗口尺寸为8*8,dropout层丢弃率为0.5,第一个全连接层单元数为1024,特征池化窗口大小为2*2。

模式二:将输出的病变等级当做相关的分类问题,以多分支特征变换部分架构的输出作为输入,框架包括平均池化层,卷积层,softmax层。平均池化层窗口尺寸为8*8,卷积层卷积核个数为5,窗口大小为1。

softmax层使用如下交叉熵作为损失函数:

其中,p(x)为实际结果,q(x)为预测结果,h(p,q)为求得的交叉熵,

训练各部分所述神经网络架构时,各部分所述神经网络架构中的每一个卷基层的输出和每一个全连接层的输出均经过leakyrelu方程运算后再传至下一层神经元。

使用交叉验证的方法进行训练,对数据进行了分割,90%的数据用于训练,10%的数据用于验证。另外训练中进行了数据的重采样,克服了数据量的问题,网络的训练使用nesterovmomentum作为优化方法。

s6、将待检测样本输入到训练好的初始深度学习网络模型中,进行糖尿病视网膜病变分级。主要通过各所述训练后的深度卷积神经网络中最后一级所述神经网络架构的输出值对所述糖尿病视网膜病变进行分级。

输出部分使用分类方法训练时,将概率最高的类别作为输出结果,相对于回归方法分类准确率较高,最高可以达到80%,但是kappa值较低;输出部分使用回归方法进行训练时,对输出结果进行四舍五入得到分类结果,分类准确率稍微降低,在70%左右,但可以得到较好的kappa值,其中,所述kappa值为实际等级与检测出的等级偏差评价,可结合所需的指标选择分类方法和回归方法,本实施例kappa值定义如下:

其中,oi,j代表第i个类别分为第j个类别的样本数,ωi,j是分类错误的惩罚项矩阵:

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1