一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于深度迁移学习的肺炎X胸片分类识别方法

2022-04-16 14:06:23 来源:中国专利 TAG:

一种基于深度迁移学习的肺炎x胸片分类识别方法
技术领域
1.本发明属于医学图像处理领域,具体涉及了一种基于vgg16和capsnet改进后的深度迁 移学习肺炎x胸片分类识别系统。


背景技术:

2.肺炎是一种发病率极高的肺部常见疾病,患者多为5岁以下的儿童和老年人,大部分发 生在医疗资源匮乏的国家以及发达国家的偏远地区。
3.肺炎类型的准确诊断成为了研究热点。在医学影像辅助诊断中肺炎的诊断方式有基于x 射线、ct和mri等形式;由于x射线存在成像质量高、价格低等优点,因此这种检测方式 普遍存在于我国偏远地区。然而,对于专业的影像科医生来说,长时间阅读x胸片后容易造 成视觉疲劳,难免出现误诊、漏诊的情况。近年来,采用深度学习的方法对医学影像辅助诊 断已成为主流趋势,采用不同的深度学习模型,从分类、目标检测等不同方面对医学影像进 行处理,在肺炎识别领域同样如此。


技术实现要素:

4.本发明针对现有深度学习模型都是基于大量训练数据所得出,并且由于医学影像的特殊 性很难有大型的公开数据集等问题,提出了一种基于深度迁移学习的小数据集肺炎分类识别 方法及装置,有效解决深度学习方法中小型数据集无法达到训练要求,且容易过拟合等问题。
5.本发明所采用的技术方案是:一种基于深度迁移学习的肺炎x胸片分类识别方法,包括 步骤如下:
6.s1:获取数据集,其中包含源域肺部chest x-ray8胸片数据集和目标域covid x-ray 肺炎x胸片数据集;
7.s2:将目标域数据集分为训练集、测试集和验证集,并且对目标域数据集所有x胸片进 行预处操作;
8.s3:构建深度迁移学习模型,首先使用vgg16网络模型对源域chest x-ray8胸片数据 集进行训练得到网络基权重,其次将基权重加载到改进后的vgg16后再使用采用深度渐进 微调策略(deep progressive fine-tune)对目标域数据集进行再次训练,得到第一分类模型 dpft-vgg16;最后为得到更好实验结果在第一分类模型的基础之上融合向量胶囊网络 capsnet,得到第二分类模型dpft-vggcapsnet。
9.s4:构建特征融合层,将数据集输入到模型中进行训练,采用动态改变学习率大小的训 练方法,经由特征融合层后在分类器的作用下得到不同的分类结果。
10.s5:将未标记的训练集和验证集x胸片输入到s3和s4中所搭建的深度迁移第一分类模 型和第二分类模型进行验证和测试,采用多种评价指标对测试集不同类别的x胸片结果进行 分类评价。
11.对获取到的目标域数据集covid x-ray进行预处理过程包括:
12.对所有目标域数据集covid x-ray中所有x胸片打上标签,其中新冠肺炎covid19胸 片为0,正常胸片为1,普通肺炎胸片为2.
13.由于covid19胸片数量相对较少,为保持各类别胸片数据量相对平衡,对covid19 胸片进行扩增,其中主要包括小幅度旋转和镜像两种方式。
14.对扩增后的目标域数据集采用数字图像处理的方式进行中值滤波去噪,提升目标域数据集中 x胸片的质量,其中中值去噪的表达式为:
15.g(x,y)=med{f(x-k,y-l),(k,l∈w)}
ꢀꢀꢀꢀꢀꢀ
(1)
16.其中g(x,y),f(x,y)分别为滤波后和滤波前的像素值,w为滤波器窗口,通常可取3*3或 者5*5大小的区域。
17.对中值滤波后的目标域数据集采用指数变换的方式进行灰度变换,统一x胸片的灰度, 其中变换表达式为:
[0018][0019]
其中a为灰度缩放系数,用于拉伸图像灰度通常取值为1,v
in
为输入灰度级,v
out
为输出 灰度级,γ为灰度变换系数,当γ>1时,对图像灰度直方图具有拉伸效果,使得灰度向高灰 度值延伸;当γ<1时,对图像灰度直方图具有收缩作用,使得图像灰度向低灰度值方向靠拢。 对预处理过后的x胸片采用数字图像处理技术统一为224*224的尺寸,并且进行归一化操作。
[0020]
将预处理完的目标域数据集划分为训练集、测试集和验证集,按照3:1的比例选取测试集 和验证集,其中测试集为每个类别300张,总计900张;验证集为每个类别100张,总计300 张,其剩余部分全部作为训练集。
[0021]
第一分类模型通过如下训练过程所得到:
[0022]
第一分类模型为改进后的vgg16模型,其中主要的改进部分为bn(batch normalization, bn)层和特征融合层的增加,在网络模型的低层卷积后加入bn层可以对模型中每个 mini-batch的数据进行归一化使得均值为0方差为1,有效改善训练过程中出现梯度消失或者 梯度爆炸等问题。特征融合层的加入,使得模型训练过程中每经过一次反向传播后都对特征 融合层中的参数进行调整同时进行一次特征融合。因此整个第一分类模型dpft-vgg16上最 终由13个卷积层,2个bn层,5个最大池化层和由2个全连接层(full connection,fc)和1 个dropout层的特征融合层组成。其中卷积层中全部采用3*3的小尺寸卷积核,填充方式为 全零填充的zero-padding且步长为1;池化过程使用2*2的池化核,且步长为2。
[0023]
训练过程为,将采用源域数据集chest x-ray8训练所得到的基权重加载到第一分类模型 中,并采用目标域数据集covid x-ray对第一分类模型进行训练,其中具体迁移过程的公式 如下:
[0024][0025]
其中xi,xj分别表示第i,j个样本,yi,yj表示相对应的标签,xs,x
t
分别表示ds,d
t
的特征 空间,ys,y
t
分别表示ds,d
t
的标签空间。
[0026]
将基权重加载到第一分类模型dpft-vgg16后,冻结整个网络的前16层网络参数,深度 渐进微调最后3个卷积层。在训练模型的过程中,采用relu作为模型的激活函数,优化
器 选择adam梯度下降算法,同时在整个训练过程中采用学习率逐渐递减的方式动态调整学习 率,模型训练前将初始学习率设置为0.001,在每训练5个epoch后如果评价指标不再提升时 则将学习率减小到原来的一半,最后经由特征融合层后在softmax分类器的作用下得到类别 结果,其中特征融合层中参数更新公式如下:
[0027][0028][0029]
其中:α为学习率;为第l-1层的第j个神经元连接到l层第i个神经元的权重;为 第l层第i个神经元的偏置值。
[0030]
第二分类模型通过如下训练过程得到:
[0031]
对第一分类模型进行改进,在其尾部融合由向量神经元所构成的胶囊网络(capsnet)寻找 不同肺炎特征的关系来进一步提高分类结果。将第一分类模型中改进后的vgg16作为整个 网络的特征提取器,将所提取到的肺部x胸片特征经过capsnet以及其中动态路由算法的编 码后进行训练。
[0032]
具体训练过程为,同样将经过源域数据集训练所得基权重加载到第二分类模型中,冻结 网络的前16层参数,深度渐进微调最后3个卷积层。在训练模型的过程中,采用relu作为 模型的激活函数,优化器选择adam梯度下降算法,同时在整个训练过程中采用学习率逐渐 递减的方式动态调整学习率,模型训练前将初始学习率设置为0.001,在每训练5个epoch后 如果评价指标不再提升时则将学习率减小到原来的一半,最后经由特征融合层后在softmax 分类器的作用下得到类别结果。
[0033]
对训练好的分类模型采用验证集和测试集分别进行验证和测试,采用多种不同评价指标 对实验结果进行多次评估后获得最优深度迁移的肺炎分类识别模型。
[0034]
本发明具有以下优点:
[0035]
本发明提供的方法主要包括数据集的预处理、权重文件的训练获取、深度迁移模型的搭 建以及测试评价四部分。与传统图像处理的方法相比,本方法不需要手动进行特征的提取, 采用端对端(end to end)的方式输入x胸片图像,得到分类结果,极大地减少了时间成本。
[0036]
本发明中利用迁移学习思想,解决了深度学习对小型数据集训练效果不理想的问题;针 对医学图像与传统图像的差异性,目标域肺炎x胸片数据量不足,采用imagenet竞赛数据 集中使用自然图像所训练出的权重与医学图像特征相差过大,难以得到良好识别结果等问题, 搭建出了一种改进后的深度迁移学习模型,采用其他疾病的大型x胸片作为源域数据集先训 练得到基权重,再将权重迁移到迁移学习模型中,冻结模型中低层网络参数,对目标域数据 集进行训练,构建最优深度迁移学习模型,提高肺炎x胸片的识别率。
[0037]
本发明还针对传统标量卷积神经网络无法捕获不同肺炎x胸片的空间特征关系的问题, 将以向量神经元为基础的胶囊网络引入肺炎x胸片识别模型中,在第一分类模型的基础上搭 建出第二分类模型,进一步提高了肺炎x胸片的识别率。
附图说明
[0038]
下面结合实施例及附图,对本发明作进一步地详细说明,但本发明的实施例方式不仅限 于此。
[0039]
图1是发明一种基于深度迁移学习的肺炎x胸片分类识别基本流程图;
[0040]
图2是目标域数据集预处理前后x胸片以及其灰度图的对比图;
[0041]
图3是深度迁移学习肺炎识别第一分类模型的网络结构示意图;
[0042]
图4是深度迁移学习肺炎识别第二分类模型的网络结构示意图;
[0043]
图5是第一和第二分类模型在测试集中评价指标选用混淆矩阵的测试结果图。
具体实施方式
[0044]
以下结合附图和具体实施例对本发明作进一步的详细说明;
[0045]
本实施例所使用到的数据集为两个,源域数据集chest x-ray8和目标域covid x-ray, 其中目标域covid x-ray数据集经过本人差异化融合,但两个数据集所使用到的均为网上公 开的x胸片。实验环境为python3.5.2,anaconda4.8.2,tensorflow1.14,keras2.24。
[0046]
如图1所示,一种基于深度迁移学习的肺炎分类识别方法,包括步骤如下:
[0047]
首先获取数据集,其中包含源域肺部chest x-ray8胸片数据集和自我差异化融合的目标 域covid x-ray肺炎x胸片数据集。
[0048]
针对目标域x胸片存在噪声,肺叶和非肺叶组织对比度不高的问题,对目标域数据集进 行中值滤波去噪处理和伽马灰度变换处理,并将x胸片全部统一为224*224的尺寸,经过这 两步骤预处理后的目标域x胸片如图2所示:
[0049]
将预处理过后的目标域x胸片分为训练集验证集和测试集,各类别扩增前后训练集、测 试集和验证集数量分别如表1和表2所示:
[0050]
表1
[0051][0052]
表2
[0053][0054]
构建深度迁移学习肺炎分类识别第一模型,其网络结构图如图3所示,主要分类三个阶 段:阶段一,选取网络深度和参数都适中的vgg16模型对源域数据集进行训练得到一
个网 络参数基权重文件;阶段二,将得到的基权重加载到改进后的vgg16模型中,采用深度渐 进微调的策略(deep progressive fine-tune)对第一分类模型进行微调;阶段三,重构特征融合层 后得到整个第一分类模型。
[0055]
根据卷积神经网络的特点,低层卷积提取的是x胸片中较为低级的特征,如边缘、形状、 肺轮廓等。而这些低级特征不管是对肺炎还是肺部其他疾病老说都是通用基础特征,因此诊 断卷积网络这一特性,将采用肺部其他疾病的源域数据集所训练得到的基权重参数加载到第 一分类模型中后,冻结模型中低层卷积参数,再使用目标域数据集对第一分类模型中高层卷 积进行微调(fine-tune)。
[0056]
在第一模型的训练过程中,根据整个模型的特点,采用relu作为模型的激活函数,优化 器选择adam梯度下降算法,损失函数选择交叉熵损失函数;同时在整个训练过程中采用学 习率逐渐递减的方式动态调整学习率,模型训练前将初始学习率设置为0.001,在每训练5个 epoch后如果评价指标不再提升时则将学习率减小到原来的一半。
[0057]
针对目标域数据集特点,对特征融合层中全连接神经元节点设置为512,256,128,64,; dropout随机舍弃比例设置为0.3,0.4,0.5,0.6的组合进行网格寻优实验。
[0058]
在训练模型的过程,对模型训练50个epoch后,整个模型的训练准确率基本达到收敛状 态,则停止训练。
[0059]
针对医学影像特点,且客观评价深度迁移学习肺炎分类识别模型的有效性,采用混淆矩 阵(confusion matrix)、准确率(accuracy,acc)、特异度(specificity,spe)、灵敏度(sentivity, sen)、精确率(precision,,pre)和f1-score等多个评价指标对测试集结果进行评价。
[0060]
根据网格寻优实验结果,最终特征融合层部分全连接层的神经元节点数分别设置为 512,256且dropout率为0.5的组合时,测试集中识别总体准确率达到最好效果93.89%。测试 集中具体结果如表3所示:
[0061]
表3第一分类模型测试集结果
[0062][0063]
构建深度迁移学习肺炎分类识别第二分类模型,为了进一步对第一分类模型进行改进, 因此在第一分类模型的基础上,在其尾部融合由向量神经元所构成的胶囊网络(capsnet)寻找 不同肺炎特征的关系来进一步提高分类结果。将第一分类模型中改进后的vgg16作为整个 网络的特征提取器,将所提取到的肺部x胸片特征经过capsnet以及其中动态路由算法的编 码后进行训练,第二分类模型结构如图4所示:
[0064]
其中主要为融合胶囊网络的编码部分,在第一分类模型的卷积层末尾融合两层胶囊神经 层称为capsule层,其中每个胶囊层为16个胶囊神经元向量组,采用3*3大小的卷积核,步 长为1的卷积方式。
[0065]
特征提取部分relu作为模型的激活函数,胶囊层部分采用square激活函数去线性化, 优化器选择adam梯度下降算法,损失函数选择capsnet中特有的边际损失函数,其公式
如 下所示;
[0066]
lc=tcmax(0,m
-||vc||)2 λ(1-tc)max(0,||vc||-m-)2ꢀꢀꢀꢀ
(6)
[0067]
其中:c为分类类别;tc为分类中的指示函数(如果c存在,tc则为1,如果c不存在,tc则 为0);m

为上边界,m-为下边界;||vc||为向量的l2范数。
[0068]
在整个训练过程中采用学习率逐渐递减的方式动态调整学习率,模型训练前将初始学习 率设置为0.001,在每训练5个epoch后如果评价指标不再提升时则将学习率减小到原来的一 半。
[0069]
在训练模型的过程,对模型训练50个epoch后,整个模型的训练准确率基本达到收敛状 态,则停止训练。采用测试集对训练好的第二分类模型进行测试,最终测试集类别总体准确 =提升至94.67%,具体结果如表4所示:
[0070]
表4第二分类模型测试结果
[0071][0072]
最终,测试集在深度迁移学习肺炎分类识别第一和第二分类模型中的测试集结果混淆矩 阵如图5所示,其中左边为第一分类模型dpft-vgg16的测试分类结果,右边为第二分类模 型dpft-vggcapsnet的测试分类结果。
[0073]
基于本实例可以得出,本发明利用迁移学习方法,通过对小型数据集的训练同样可以达 到深度学习中需要大量数据来训练的结果。极大地减少了训练过程中所需要的数据量。在第 二分类模型中,一定程度上通过融合向量神经网络解决了不同肺炎特征的空间关系,来进一 步提高了肺炎分类的识别准确率。
[0074]
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的, 不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进 行变化、修改、替换和变型。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献