本发明涉及一种图像分类方法,尤其涉及一种基于深度学习的糖尿病视网膜病变图像多分类方法,属于医学影像识别技术领域。
背景技术:
在现阶段的医疗体系中,大多倾向于人工检测,糖尿病视网膜图像的处理也不例外,糖尿病视网膜图像病变根据严重等级分为五种,分别为无糖尿病性视网膜病变、轻度糖尿病性视网膜病变、中度糖尿病性视网膜病变、重度糖尿病性视网膜病变、及增殖性糖尿病性视网膜病变。
传统的糖尿病视网膜图像处理方法是将系统进行分段化,在不同的阶段采用不同的处理技术来达到目标,但是,无论在哪个阶段或是哪种处理技术方法均基于人工经验设计特征,即根据特定问题的特殊性提取图像特征,例如方向梯度直方图,尺度不变特征转换等。这些特征虽然在一定程度上体现了对象的特征,但是他们只是提取了底层特征,例如图像的边缘特征、灰度特征等,加上视网膜图像自身结构复杂,容易与各种病变交叉影响,再加上复杂的背景变换影响,使得处理视网膜图像的方法复杂、泛化性差;另外,这种检测方式依赖于先验知识,尤其是需要有经验的眼科专家。因此,整个过程不但耗费了大量的人力、物力和财力,且效率低下,视网膜病变的诊断与治疗受到了极大的限制,最终使图像分类检测结果出现很大的误差,影响多分类结果。
综上所述,如何减小图像分类检测结果的误差,提高分类结果的准确性,就成为本领域技术人员亟待解决的问题。
技术实现要素:
本发明的目的是为了解决现有技术的上述缺陷,提出了一种基于深度学习方法实现对糖尿病视网膜图像的自动多分类。
本发明的技术解决方案是:
一种基于深度学习的糖尿病视网膜病变图像多分类方法,包括如下步骤:
s1:获取一系列五种类别的眼底图像作为原始数据集,将原始数据集进行预处理,得到适合网络训练的图片规模大小;
s2:基于步骤s1中预处理后的数据集进行类别数据平衡,并将类别数据平衡后的数据集划分为训练集和测试集,所述类别数据平衡的方式包括用于保持所述训练集个数平衡的上采样及下采样;
s3:将步骤s2中类别数据平衡后的数据集进行迁移训练,所述迁移训练包括第一次迁移训练与第二次迁移训练,第一次迁移训练是将小尺寸训练集图像输入至网络中进行训练,生成特征图,其中,训练网络浅层采用vgg16网络结构参数,深层网络参数根据训练集图像进行第一次微调;第二次迁移训练是将第一次微调得到的模型迁移至大尺寸训练集图像进行第二次微调,得到糖尿病视网膜病变图像多分类模型;
s4:将待测样本输入所述步骤s3中的糖尿病视网膜病变图像多分类模型进行预测,并完成对糖尿病视网膜病变图像的分类。
优选地,所述步骤s1中的预处理包括高斯滤波处理及降采样;
高斯滤波是用一个卷积扫描图像中的每一个像素,用卷积确定的邻域内像素的加权平均灰度值替代卷积中心像素点的值;
降采样是减少采样点数,对于一幅n*m的图像,设降采样系数为k,则即是在该n*m的图像图中每行每列每隔k个点取一个点组成一幅图像,使得图像符合网络训练规模大小。
优选地,所述步骤s1中网络训练图片规模大小为256*256。
优选地,所述步骤s2中的上采样是对五种类别的训练集数量较低进行的采样,所述步骤s2中的下采样是对五种类别的训练集数量较高进行的采样。
优选地,所述步骤s2中的类别数据平衡的方式还包括平移、随机拉伸、旋转、及其结合。
优选地,所述糖尿病视网膜病变图像多分类模型依次包括输入层、卷积层、卷积层、最大池化层、卷积层、卷积层、最大池化层、卷积层、卷积层、卷积层、最大池化层、卷积层、卷积层、卷积层、最大池化层、第一全连接层、第二全连接层、第三全连接层。
优选地,所述糖尿病视网膜病变图像多分类模型还包括用于防止过拟合且增加非线性的dropout层,所述dropout层设置在第三全连接层之后。
优选地,每个所述最大池化层均与其两侧的卷积层通过局部连接和权值共享的方式相连接;每个所述卷积层、所述第一全连接层、所述第二全连接层、及所述第三全连接层后均设置有用于保证神经网络非线性的relu激活函数。
优选地,所述第三全连接层的输出采用5个神经元及softmax函数对疾病的五种类别进行分类。
优选地,所述糖尿病视网膜病变图像多分类模型的算法包括:
训练集由m个已标记的样本构成:{(x(1),y(1)),...,(x(m),y(m))},其中输入特征为x(i)∈rn+1,分类结果为y(i)∈{1,2,3,4,5},则函数hθ(x)形式如下:
代价函数为:
对于j(θ)的最小化问题,使用迭代的优化算法,经过求导,得到梯度公式如下:
本发明提供了一种基于深度学习的糖尿病视网膜病变图像多分类方法,其优点为:本发明提供的方法使用简便,不需要借助任何先验信息,输入数据后做简单的图像预处理,然后将预处理得到的图像作为样本,通过糖尿病视网膜病变图像多分类模型自动训练,最终即可完成图像自动多分类;另外,本发明通过将类别数据平衡后的数据集进行迁移训练,并通过糖尿病视网膜病变图像多分类模型进行预测,提高了分类准确率。
以下便结合实施例附图,对本发明的具体实施方式作进一步的详述,以使本发明技术方案更易于理解、掌握。
附图说明
图1为基于深度学习的糖尿病视网膜病变图像多分类方法的流程图。
具体实施方式
一种基于深度学习的糖尿病视网膜病变图像多分类方法,如图1所示,包括如下步骤:
s1:获取一系列五种类别的眼底图像作为原始数据集,将原始数据集进行预处理,得到适合网络训练的图片规模大小;
在本发明的技术方案中,原始数据集为来源于kaggle糖网高分辨率图像的数据集,分辨率约为3500*3000,共包括35126张图像,按疾病的严重程度划分为五类,包括无糖尿病性视网膜病变25810张、轻度糖尿病性视网膜病变2443张、中度糖尿病性视网膜病变5292张、重度糖尿病性视网膜病变873张、增殖性糖尿病性视网膜病变708张。对原始数据集进行预处理的情况包括以下四种:第一种是分辨率过大且规模大小不适合网络训练输入;第二种是图像中包括的像黑边这种无意义的信息,及数据集中包含的噪声图像;第三种是图像的明暗度差别较大;第四种是五种类别中图像数量严重不平衡导致无法直接送入模型。
预处理包括高斯滤波处理及降采样;其中,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素点值经过加权平均后得到。高斯滤波的具体操作是:用一个卷积扫描图像中的每一个像素,用卷积确定的邻域内像素的加权平均灰度值替代卷积中心像素点的值;采用高斯滤波处理可将图像中的黑边切除,且消除光照等噪声影响,平滑图像。降采样是采样点数减少,对于一幅n*m的图像,设降采样系数为k,则即是在该n*m的图像图中每行每列每隔k个点取一个点组成一幅图像,使得图像符合网络训练规模大小,且网络训练图片规模大小为256*256。
s2:基于步骤s1中预处理后的数据集进行类别数据平衡,并将类别数据平衡后的数据集划分为训练集和测试集,所述类别数据平衡的方式包括用于保持所述训练集个数平衡的上采样及下采样,还包括平移、拉伸、旋转、及其结合,对五种类别随机采用平移、旋转等数据扩增方法产生新数据,以防止模型过拟合;上采样是对五种类别的训练集数量较低进行的采样,下采样是对五种类别的训练集数量较高进行的采样。在本实施例中,上采样将样本数量较少的图像复制到10000张,下采样对样本数量较多的类别进行随机抽样10000张,类别平衡后五个类别共有50000张图像。
s3:将步骤s2中类别数据平衡后的数据集进行迁移训练,所述迁移训练包括第一次迁移训练与第二次迁移训练,第一次迁移训练是将小尺寸训练集图像输入至网络中进行训练,生成特征图,其中,训练网络浅层采用vgg16网络结构参数,深层网络参数根据训练集图像进行第一次微调;第二次迁移训练是将第一次微调得到的模型迁移至大尺寸训练集图像进行第二次微调,得到糖尿病视网膜病变图像多分类模型;
在本实施例中,首先为防止模型过拟合,训练集的数据由数据生成器生成,对五种类别随机采用平移、旋转等数据扩增方法产生新数据。将训练集图像尺寸转化为256*256输入至网络中进行训练,生成特征图,训练网络浅层使用vgg16网络结构参数,深层网络参数根据训练数据进行微调,将得到的分类模型再以图像尺寸为512*512输入微调好的模型进行再一次微调,最终得到糖尿病视网膜病变图像多分类模型。
vgg16网络结构已经在imagenet数据集上将模型参数训练好,imagenet数据集是一个公开的关于自然图像的庞大数据集。虽然自然图像和疾病图像并不一致,但在识别低阶语义信息时却有相同之处,因此将识别自然图像的参数用来识别疾病,将最后的全连接层换成五种分类任务的全连接层,再进行微调,模型便能快速收敛,不仅能节省模型训练时间,而且能减少对样本数量的需求以防止过拟合。
糖尿病视网膜病变图像多分类模型依次包括输入层、卷积层、卷积层、最大池化层、卷积层、卷积层、最大池化层、卷积层、卷积层、卷积层、最大池化层、卷积层、卷积层、卷积层、最大池化层、第一全连接层、第二全连接层、第三全连接层,还包括用于防止过拟合且增加非线性的dropout层,所述dropout层设置在第三全连接层之后。其中,每个最大池化层均与其两侧的卷积层通过局部连接和权值共享的方式相连接;每个卷积层、第一全连接层、第二全连接层、及第三全连接层后均设置有用于保证神经网络非线性的relu激活函数。第三全连接层的输出采用5个神经元及softmax函数对疾病的五种类别进行分类。
进一步地,卷积层都是用3*3的卷积核,步长为1,前两个卷积层都使用64个卷积核,接着的两个卷积层都使用128个卷积核,之后的三个卷积层都使用256个卷积核,剩下的卷积层都使用512个卷积核,第一全连接层与第二全连接层均使用1024个神经元,第三全连接层使用5个神经元并用softmax函数对全连接层的输出进行疾病5分类,得到疾病分级结果,模型使用交叉熵函数作为损失函数来进行参数的反向传播调整。为了防止过拟合和增加非线性,在全连接层之后添加了dropout层,网络的每个卷积层和全连接层后面都有relu激活函数。
糖尿病视网膜病变图像多分类模型的算法包括:
训练集由m个已标记的样本构成:{(x(1),y(1)),...,(x(m),y(m))},其中输入特征为x(i)∈rn+1,分类结果为y(i)∈{1,2,3,4,5},则函数hθ(x)形式如下:
代价函数为:
对于j(θ)的最小化问题,使用迭代的优化算法,经过求导,得到梯度公式
如下:
s4:将待测样本输入所述步骤s3中的糖尿病视网膜病变图像多分类模型进行预测,并完成对糖尿病视网膜病变图像的分类。
下面用实验数据进一步阐明了本发明中的分类准确率:
首先对每一类数据抽取100张图像用来评估模型效果,剩下的作为训练集。训练256*256图像的模型用来将模型参数从自然图像迁移到糖尿病视网膜病变图像多分类模型的图像,训练512*512是用来将应用于低分辨率的模型参数迁移到高分辨率图像,能够达到更好的识别效果,这两个模型训练时数据都是使用数据生成器采用数据扩增的方法生成新数据。训练256*256图像时,由于初始时模型参数适合于自然图像,首先冻结第一全连接层之前所有层的参数,使用参数为0.0001的adam优化器来训练好全连接层,接着解冻最后六个卷积层使用参数为0.00002的adam优化器来微调模型参数,测试集准确率三次没有上升停止模型对训练集的训练,最后可以实现将自然图像的先验知识迁移到糖网疾病中,使得模型准确率达到75%;之后训练512*512的图像的过程与训练256*256图像相同,使得模型能够更清楚的识别微小尺寸的病灶,最终模型准确率能够达到77%。
本发明不需要借助任何先验信息,输入数据后做简单的图像预处理,然后将预处理得到的图像作为样本,通过糖尿病视网膜病变图像多分类模型自动训练,最终即可完成图像自动多分类;另外,本发明通过将类别数据平衡后的数据集进行迁移训练,并通过糖尿病视网膜病变图像多分类模型进行预测,提高了分类准确率。
应该注意的是,上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。