首页 > 专利 > 杭州电子科技大学 > 一种基于深度残差网络的糖尿病性视网膜病变检测的方法专利详情

一种基于深度残差网络的糖尿病性视网膜病变检测的方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2019-06-17
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2019-10-15
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2021-09-28
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2039-06-17
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201910520291.X 申请日 2019-06-17
公开/公告号 CN110236483B 公开/公告日 2021-09-28
授权日 2021-09-28 预估到期日 2039-06-17
申请年 2019年 公开/公告年 2021年
缴费截止日
分类号 A61B3/12A61B3/14G06K9/62G06N3/04G06T7/00 主分类号 A61B3/12
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 0
权利要求数量 1 非专利引证数量 1
引用专利数量 1 被引证专利数量 0
非专利引证 1、2001.12.18邹北骥.基于残差网络的糖网病自动筛查. 《计算机辅助设计与图形学学报》.2019,第31卷(第4期),Defu Yang.An alternativereconstruction framework with optimalpermission source《.OpticsCommunications》.2018,;
引用专利 US6331059B 被引证专利
专利权维持 3 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 杭州电子科技大学 当前专利权人 杭州电子科技大学
发明人 颜成钢、朱嘉凯、王兴政、陈子阳、孙垚棋、张继勇、张勇东 第一发明人 颜成钢
地址 浙江省杭州市下沙高教园区2号大街 邮编 310018
申请人数量 1 发明人数量 7
申请人所在省 浙江省 申请人所在市 浙江省杭州市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
杭州君度专利代理事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
朱月芬
摘要
本发明公开了一种基于深度残差网络的糖尿病性视网膜病变检测的方法。本发明步骤如下:步骤1:数据集的筛选;步骤2:眼底图像的预处理,步骤3:数据集扩充,将部分样本较少的类中的图像做图像扩充处理,具体操作包括将图像镜像和旋转;步骤4:数据集标签的制作;步骤5:训练集和测试集的构建;步骤6:卷积神经网络的搭建;步骤7:网络训练;步骤8:网络测试。本发明能够获得更高的检测病变的准确性,同时进行检测的时间也可以大大缩短。
  • 摘要附图
    一种基于深度残差网络的糖尿病性视网膜病变检测的方法
  • 说明书附图:图1
    一种基于深度残差网络的糖尿病性视网膜病变检测的方法
  • 说明书附图:图2
    一种基于深度残差网络的糖尿病性视网膜病变检测的方法
  • 说明书附图:图3
    一种基于深度残差网络的糖尿病性视网膜病变检测的方法
  • 说明书附图:图4
    一种基于深度残差网络的糖尿病性视网膜病变检测的方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2021-09-28 授权
2 2019-10-15 实质审查的生效 IPC(主分类): A61B 3/12 专利申请号: 201910520291.X 申请日: 2019.06.17
3 2019-09-17 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种基于深度残差网络的糖尿病性视网膜病变检测的方法,其特征在于包括如下步骤:
步骤1:数据集的筛选;
步骤2:眼底图像的预处理,
步骤3:数据集扩充,将部分样本较少的类中的图像做图像扩充处理,具体操作包括将图像镜像和旋转;
步骤4:数据集标签的制作;
步骤5:训练集和测试集的构建;
使用sklearn中的train_test_split()函数,将数据集分为训练集和测试集,其中训练集占数据集的80%,测试集占20%;
步骤6:卷积神经网络的搭建;
步骤7:网络训练;
步骤8:网络测试;
步骤1所述的数据集的筛选,具体实现如下:
数据集的来源是糖尿病视网膜病变检测竞赛中使用的测试集;删除测试集中部分过曝、欠曝以及没有很好对焦的样本图像;该数据集中,不同将糖尿病性视网膜病变分为5类,分别是:正常、轻度病变、中度病变、重度病变以及增殖性病变;
步骤2所述的眼底图像的预处理,具体步骤如下:
2‑
1.加载眼底图像并估计眼球的半径;
2‑
2.将较大的半径作为目标半径,根据目标半径对原图像进行剪裁;
2‑
3.对剪裁后的图像进行模糊处理,然后用原图像减去模糊后的图像,得到眼底的简单特征提取图;
2‑
4.消除图像模糊的边界效应,移除眼底图像10%的外圆;
2‑
5.对图像做进一步裁减,裁减后的图像为256*256尺寸的RGB图像;
步骤2‑1中眼球半径的估计实现如下:
(1)估计眼球横向半径,假设眼底图的尺寸为M*N,提取眼底图的N个横向量;
(2)横向量上对应的像素值取平均然后除以10后,与原像素值比较大小;
(3)若原像素值大于计算后的值,则计为1,统计值为1的个数后除以2的值即为眼球横向半径估计值;
(4)以相同的方法计算眼球纵向半径估计值,选择横纵向较大的值作为眼球半径最终的估计值;
步骤4所述的数据集标签的制作,具体实现如下:
由于该卷积神经网络采用的是监督学习,因此要给出进行数据扩充后数据集中每张图像所对应的类别,在该方法中,将轻度病变、中度病变以及重度病变视为未增殖性病变,因此对图像标记的标签分别是:正常图像对应的标签编号为0,未增殖性病变图像对应的标签编号为1以及增殖性病变图像对应的标签编号为2;在神经网络训练时,将对应的标签编号进行one‑hot编码,即将0编码为001,1编码为010,以及2编码为100;
步骤6所述的卷积神经网络的搭建,具体步骤如下:
6‑
1.构建基本的残差模块,一个基本的残差模块由3个卷积层、2个激活函数层、3个BN层以及1个跳跃连接层组成,最后有1个激活函数层;
6‑
2.构建具有升维功能的残差模块,一个具有升维功能的残差模块由2个卷积层、3个激活函数层、3个BN层以及1个跳跃连接层组成,在跳跃连接层中包含1个卷积层和1个激活函数层,最后有1个激活函数层;
6‑
3.卷积神经网络的前端构建,网络的前端使用多个残差模块对图像进行特征提取,网络输入尺寸为256*256*3,接着为1个补零层、一个卷积层、BN层、一个激活函数层和一个最大池化层;然后紧跟1个具有升维功能的残差模块Ⅰ、2个基本的残差模块、1个具有升维功能的残差模块Ⅱ、3个基本的残差模块、1个具有升维功能的残差模块Ⅲ、5个基本的残差模块、1个具有升维功能的残差模块Ⅳ以及2个基本的残差模块构成,最后由一个激活函数层和一个平均池化层构成,网络前端输出的尺寸为1*1*2048;
其中补零层参数为3*3;卷积层中滤波器个数为64,卷积核尺寸为7*7,步长为2*2;BN层中axis值为3,momentum值为0.99,epsilon值为0.001;最大池化层中卷积核尺寸为3*3,步长为2*2,补零为valid,输出尺寸为128*128*64;残差模块Ⅰ的输出尺寸为63*63*256;残差模块Ⅱ的输出尺寸为32*32*512;残差模块Ⅲ的输出尺寸为16*16*1024;残差模块Ⅳ的输出尺寸为8*8*2048;平均池化层的卷积核尺寸为7*7,步长为7*7,补零为valid;
6‑
4.卷积神经网络的后端构建,网络的前端使用多个全连接层对图像进行分类,首先使用一个Fatten层对图像进行降维,接着为1个全连接层Ⅰ,1个Dropout层,1个全连接层Ⅱ以及1个全连接层Ⅲ,网络最终输出的尺寸为3*1;
全连接层Ⅰ的节点数为36,激活函数为relu;Dropout层的rate为0.25;全连接层Ⅱ的节点数为26,激活函数为relu;全连接层Ⅲ的节点数为3,激活函数为softmax;
步骤7所述的网络训练,网络使用的损失函数为交叉熵CrossEntropy,使用的梯度优化算法为Stochastic Gradient Descent,算法设定的学习率为0.01,使用训练集对网络进行训练,网络训练的迭代次数为250,批样本数为4;
步骤8所述的网络测试,使用model.save()函数对训练好的模型进行保存,生成.h5的模型权重文件,使用测试集对网络进行测试。
说明书

技术领域

[0001] 本发明涉及深度学习计算机视觉领域,尤其涉及糖尿病性视网膜病变检测的方法。技术背景
[0002] 糖尿病性视网膜病变是一种常见的糖尿病眼部并发症,经常会造成视力减退或失明。据统计,糖尿病病龄在10年左右的患者者有50%的概率会得此病,15年以上的患者概率高达80%。糖尿病病情越重,年龄越大,发病的几率越高。该病是糖尿病微血管病的后果,由于糖尿病引起视网膜毛细血管壁损伤,加之血液呈高凝状态,易造成血栓和血淤,甚至血管破裂。
[0003] 2015年,Kaiming He博士团队提出了深度残差网络(ResNet),一经出世,便在ImageNet中斩获图像分类、检测、定位三项的冠军。和其他的深度学习网络相比,残差网络更容易优化,并且能够通过增加相当的深度来提高准确率。其核心通过一个残差学习结构解决了增加深度带来的副作用“退化问题”,“退化问题”是指,随着神经网络的层数的增多,训练的精确性会到达一个瓶颈,然后开始下滑。但是使用残差学习结构之后,就能够通过单纯地增加网络深度,来提高网络性能,即提高训练以及测试的精确性。

发明内容

[0004] 本发明提出一种基于深度残差网络的糖尿病性视网膜病变检测的方法。该方法可以用来对糖尿病性视网膜病变的患病程度进行检测。
[0005] 传统的糖尿病性视网膜病变的患病程度检测采用的是图像特征提取的方法,将患者的眼底图采用图像处理的方式,分别检测微动脉瘤、小出血点、白色“软性渗出”以及出血斑等症状,统计每种不同病变的个数再使用一个多层感知器进行分类给出检测结果,采用传统的检测方法的缺点在于得出的准确率普遍不高。
[0006] 一种基于深度残差网络的糖尿病性视网膜病变检测的方法,本发明特征在于只需将拍得的眼底图进行裁剪统一图片的大小,然后进行巴特沃滋模糊提取细节特征,将简单处理后的图像作为卷积神经网络的输入进行训练,该方法具体包括以下步骤:
[0007] 步骤1:数据集的筛选,数据集的来源是Kaggle在2014年举行的糖尿病视网膜病变检测竞赛中使用的测试集;在该数据集中,竞赛的主办方根据患者症状的不同将糖尿病性视网膜病变分为5类,分别是:正常、轻度病变、中度病变、重度病变以及增殖性病变。考虑到竞赛中眼底图像大多拍的较模糊,部分照片甚至没有很好的对焦,因此先进行简单的筛选,删除测试集中部分过曝、欠曝以及没有很好对焦的样本图像。
[0008] 步骤2:眼底图像的预处理,具体步骤如下:
[0009] 2‑1.加载眼底图像并估计眼球的半径;
[0010] (1)估计眼球横向半径,假设眼底图的尺寸为M*N,提取眼底图的N个横向量;
[0011] (2)横向量上对应的像素值取平均然后除以10后,与原像素值比较大小;
[0012] (3)若原像素值大于计算后的值,则计为1,统计值为1的个数后除以2的值即为眼球横向半径估计值;
[0013] (4)以相同的方法计算眼球纵向半径估计值,选择横纵向较大的值作为眼球半径最终的估计值。
[0014] 2‑2.根据眼球半径最终的估计值对原图像进行剪裁;
[0015] 2‑3.对剪裁后的图像进行模糊处理,然后用原图像减去模糊后的图像,得到眼底的简单特征提取图;
[0016] 2‑4.消除图像模糊的边界效应,移除眼底图像10%的外圆;
[0017] 2‑5.对图像做进一步裁减,裁减后的图像为256*256尺寸的RGB图像。
[0018] 步骤3:数据集扩充,由于重度病变以及增殖性病变的患者本身就不多,因此在Kaggle的数据集中这两者的样本数量就很少,考虑到训练样本均衡的问题,将部分样本较少的类中的图像做图像扩充处理,具体操作包括将图像镜像和旋转。
[0019] 步骤4:数据集标签的制作,由于该卷积神经网络采用的是监督学习,因此要给出进行数据扩充后数据集中每张图像所对应的类别,在该方法中,将轻度病变、中度病变以及重度病变视为未增殖性病变,因此对图像标记的标签分别是:正常图像对应的标签编号为0,未增殖性病变图像对应的标签编号为1以及增殖性病变图像对应的标签编号为2;在神经网络训练时,将对应的标签编号进行one‑hot编码,即将0编码为001,1编码为010,以及2编码为100。
[0020] 步骤5:训练集和测试集的构建
[0021] 使用sklearn中的train_test_split()函数,将数据集分为训练集和测试集,其中训练集占数据集的80%,测试集占20%。
[0022] 步骤6:卷积神经网络的搭建,具体步骤如下:
[0023] 6‑1.构建基本的残差模块,一个基本的残差模块由3个卷积层、2个激活函数层、3个BN(Batch Normalization)层以及1个跳跃连接层组成,最后有1个激活函数层;
[0024] 6‑2.构建具有升维功能的残差模块,一个具有升维功能的残差模块由2个卷积层、3个激活函数层、3个BN(Batch Normalization)层以及1个跳跃连接层组成,在跳跃连接层中包含1个卷积层和1个激活函数层,最后有1个激活函数层;
[0025] 6‑3.卷积神经网络的前端构建,网络的前端使用多个残差模块对图像进行特征提取,网络输入尺寸为256*256*3,接着为1个补零层(参数为3*3)、一个卷积层(滤波器个数为64,卷积核尺寸为7*7,步长为2*2)、BN层(axis值为3,momentum值为0.99,epsilon值为
0.001)、一个激活函数层(使用的函数为relu)和一个最大池化层(卷积核尺寸为3*3,步长为2*2,补零为valid,输出尺寸为128*128*64),然后紧跟1个具有升维功能的残差模块(输出尺寸为63*63*256)、2个基本的残差模块、1个具有升维功能的残差模块(输出尺寸为32*
32*512)、3个基本的残差模块、1个具有升维功能的残差模块(输出尺寸为16*16*1024)、5个基本的残差模块、1个具有升维功能的残差模块(输出尺寸为8*8*2048)以及2个基本的残差模块构成,最后由一个激活函数层(使用的函数为relu)和一个平均池化层(卷积核尺寸为
7*7,步长为7*7,补零为valid)构成,网络前端输出的尺寸为1*1*2048;
[0026] 6‑4.卷积神经网络的后端构建,网络的前端使用多个全连接层对图像进行分类,首先使用一个Fatten层对图像进行降维,接着为1个全连接层(节点数为36,激活函数为relu),1个Dropout层(rate为0.25),1个全连接层(节点数为26,激活函数为relu)以及1个全连接层(节点数为3,激活函数为softmax),网络最终输出的尺寸为3*1。
[0027] 步骤7:网络训练,网络使用的损失函数为交叉熵Cross Entropy,使用的梯度优化算法为Stochastic Gradient Descent,算法设定的学习率为0.01,使用训练集对网络进行训练,网络训练的迭代次数为250,批样本数为4;
[0028] 步骤8:网络测试,使用model.save()函数对训练好的模型进行保存,生成.h5的模型权重文件,使用测试集对网络进行测试。
[0029] 本发明有益效果如下:
[0030] 本发明采用的是Kaggle在2014年举行的糖尿病视网膜病变检测竞赛中的数据集,对数据集中的眼底图进行预处理之后,采用50层的ResNet网络前端加上一个全连接网络进行分类,分类的准确性和检测所用的时间较之于传统的检测方法有了很大的提升。
[0031] 利用本发明能够获得更高的检测病变的准确性,同时进行检测的时间也可以大大缩短。
[0032] 本发明在进行数据扩充后的7240张眼底图像上进行训练和测试,其中训练图像数量为5792,网络使用的损失函数为交叉熵Cross Entropy,使用的梯度优化算法为Stochastic Gradient Descent,算法设定的学习率为0.01,使用训练集对网络进行训练,网络训练的迭代次数为250,批样本数为4,在1448张图像上进行测试,获得最大的测试精度为0.9427。

实施方案

[0037] 下面根据附图详细说明本发明,本发明的目的和效果将变得更加明显。
[0038] 图1是基本的残差模块示意图。该残差模块由3个卷积层、2个激活函数层、3个BN(Batch Normalization)层以及1个跳跃连接层组成,最后有1个激活函数层。网络的具体参数为:先输入图像,左侧的跳跃连接层对图像不做任何处理,右侧依次为卷积层(卷积核尺寸为1*1,步长为1*1,padding为valid)、BN层(axis值为3,momentum值为0.99,epsilon值为0.001)、激活函数层(使用的函数为relu)、卷积层(卷积核尺寸为3*3,步长为1*1,padding为same)、BN层(axis值为3,momentum值为0.99,epsilon值为0.001)、激活函数层(使用的函数为relu)、卷积层(卷积核尺寸为1*1,步长为1*1,padding为valid)以及BN层(axis值为3,momentum值为0.99,epsilon值为0.001),当前结果和输入图像叠加后,再紧跟1个激活函数层(使用的函数为relu),最后输出结果。
[0039] 图2是具有升维功能的残差模块示意图。该残差模块由2个卷积层、3个激活函数层、3个BN(Batch Normalization)层以及1个跳跃连接层组成,在跳跃连接层中包含1个卷积层和1个激活函数层,最后有1个激活函数层。网络的具体参数为:先输入图像,左侧依次为卷积层(卷积核尺寸为1*1,步长为1*1,padding为valid)、BN层(axis值为3,momentum值为0.99,epsilon值为0.001)、激活函数层(使用的函数为relu)、卷积层(卷积核尺寸为3*3,步长为1*1,padding为same)、BN层(axis值为3,momentum值为0.99,epsilon值为0.001)、激活函数层(使用的函数为relu)、卷积层(卷积核尺寸为1*1,步长为1*1,padding为valid)以及BN层(axis值为3,momentum值为0.99,epsilon值为0.001),右侧的跳跃连接层由1个卷积层(卷积核尺寸为1*1,步长为1*1,padding为valid)和BN层(axis值为3,momentum值为0.99,epsilon值为0.001)组成,将左右两部分的结果叠加后,再紧跟1个激活函数层(使用的函数为relu),最后输出结果。
[0040] 图3是图像预处理步骤及效果图。以数据集中103_right.jpeg为例,处理步骤具体包括:
[0041] (1)输入眼底图像;
[0042] (2)估计眼球的半径,将较大的半径作为目标半径,根据目标半径对原图像进行剪裁;
[0043] (3)对剪裁后的图像进行模糊处理;
[0044] (4)用原图像减去模糊后的图像,得到眼底的简单特征提取图;
[0045] (5)消除模糊处理带来的边界效应,移除眼底图像10%的外圆;
[0046] (6)对图像做进一步裁减,裁减后的图像为256*256尺寸的RGB图像。
[0047] 图4是病变检测算法流程图,处理步骤具体包括:
[0048] (1)数据初步筛选;
[0049] (2)样本图像预处理,预处理流程及效果见图3;
[0050] (3)数据扩充,使用的操作分别为镜像和旋转,旋转的角度分别为90度、180度和270度;
[0051] (4)数据集分割,分为训练集和测试集,分割比例为4:1;
[0052] (5)糖尿病性视网膜病变检测网络搭建,其中主要使用的基本的残差模块示意图和具有升维功能的残差模块示意图见图1和图2;
[0053] (6)网络训练,网络使用的损失函数为交叉熵Cross Entropy,使用的梯度优化算法为Stochastic Gradient Descent,算法设定的学习率为0.01,使用训练集对网络进行训练,网络训练的迭代次数为250,批样本数为4;
[0054] (7)网络测试。

附图说明

[0033] 图1是基本的残差模块示意图;
[0034] 图2是具有升维功能的残差模块示意图;
[0035] 图3是图像预处理步骤及效果图;
[0036] 图4是病变检测算法流程图;
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号