掌桥专利:专业的专利平台
掌桥专利
首页

一种基于深度学习卷积神经网络的肺部炎症识别诊断方法

文献发布时间:2023-06-19 12:02:28


一种基于深度学习卷积神经网络的肺部炎症识别诊断方法

技术领域

本发明涉及人工智能与医疗诊断相结合的学科交叉领域,具体而言,尤其涉及一种基于深度学习卷积神经网络的肺部炎症识别诊断方法。

背景技术

长期以来,各种肺部疾病发病率较高且呈现不断上升的趋势。特别是肺炎,是一种多发且严重性的感染疾病,可发生于任何年龄段,严重的影响患者的身心健康。新冠肺炎疫情更是席卷全球,给人类带来了一场严重的灾难。

在传统的肺炎检测诊断过程中,判断一幅肺部X光影像是否为肺炎主要依靠有经验的医生,但是由于人工经验等客观因素的差别,准确率无法得到保证。肺炎X光表现为肺部可见炎症性浸润阴影,肺炎的初级症状和体征不是非常明显,在日常临床诊断中容易出现漏诊、误诊等。随着深度学习等人工智能技术在图像识别分类领域的发展以及各类权威的医疗组织机构对医疗影像数据集的公开,将深度学习算法技术作为医生的用来诊断肺部疾病的辅助工具,可以有效的提升放射科医生的诊断效率与准确率,降低医疗成本,有助于患者疾病的早期治疗,具有良好的临床实用价值。

卷积神经网络在图像算法领域已经取得了显著的成果,如目标检测,图像分割,图像分类等。目前为止,一些已有的卷积神经网络在某些问题上有着良好的性能,例如ResNet50、DenseNet121、AlexNet等。但是,由于医疗图像像素分辨率较高,不同病人之间的医疗影像复杂度较高等因素的存在,导致单一的卷积神经网络在某些诊断问题上存在着准确率不高,误诊漏诊率较高等问题。

发明内容

有鉴于此,本发明的目的在于解决传统方法在肺部炎症影像图像识别准确率低、容易漏诊误诊、数据量不足的问题。本发明以肺部X光影像图像为分类目标,提出一种基于深度学习卷积神经网络的肺部炎症识别诊断方法,来实现肺部炎症图像的计算机辅助诊断。

本发明解决其技术问题所采用的技术方案如下:

一种基于深度学习卷积神经网络的肺部炎症识别诊断方法,包含如下步骤:

S1:从kaggle上获取开源肺部X光影像图片数据集ChestXray2017,并对数据集进行预处理;

S2:构建InceptionResNetV2神经网络算法,并对InceptionResNetV2神经网络算法进行迁移学习;

S3:将进行迁移学习后的InceptionResNetV2神经网络算法进行改进,获取改进后的神经网络算法,命名为InceptionResNet-SE;

S4:对InceptionResNet-SE神经网络算法引入冻结层;

S5:利用开源数据集ChestXray2017对InceptionResNet-SE神经网络算法进行微调训练,完成对InceptionResNet-SE神经网络算法的构建。

进一步地,所述的步骤S1中预处理过程具体为:

S11:对所述开源数据集ChestXray2017进行均衡化处理;

S12:通过随机旋转角度(90°/180°/270°)和图片翻转(水平翻转/垂直翻转)以及随机裁剪等方式对开源数据集ChestXray2017进行扩充处理;

S13:将扩充处理后的开源数据集ChestXray2017按照6:2:2的比例划分为训练集、验证集、测试集。

进一步地,所述的步骤S2中的迁移学习具体为:

S21:采用keras框架搭建所述InceptionResNetV2神经网络算法;

S22:利用开源数据集ImgeNet对InceptionResNetV2神经网络算法进行预训练,保存最佳算法参数,并导出预训练的InceptionResNetV2神经网络算法模型的预训练参数。

进一步地,所述的步骤S3中改进的InceptionResNet-SE神经网络算法,具体为:

S31:将InceptionResNetV2网络中最后一个全连接层前的sigmoid层去除,并在最后一个全连接层后加入SENet模块;

S32:通过采用步骤S31所述的方法,构造改进后的神经网络算法,将其命名为InceptionRe sNet-SE神经网络算法,用来识别正常数据或者肺炎数据;

S33:将步骤S22中导出的预训练参数导入InceptionResNet-SE神经网络算法。

进一步地,所述的肺炎数据包括病毒性肺炎和细菌性肺炎。

进一步地,所述的步骤S4中对InceptionResNet-SE神经网络算法引入冻结层,具体为:

S41:将InceptionResNet-SE神经网络算法除新加入的SENet模块外的参数全部冻结,只训练新加入的SENet模块的参数。

进一步地,所述的步骤S5中的InceptionResNet-SE神经网络算法微调训练,具体为:

S51:采用学习率控制法,若训练当中的InceptionResNet-SE神经网络算法的验证损失函数连续10个epoch没有出现更优值,则将初始学习率缩小为原来的0.1倍继续训练;

S52:采用早停法,若训练当中的InceptionResNet-SE神经网络算法的验证损失函数连续40个epoch没有出现更优值,则提前终止InceptionResNet-SE神经网络算法的训练。

本发明与现有的技术相比具有以下有益效果:本发明提供的基于深度学习卷积神经网络的肺部炎症识别诊断方法,利用现有深度学习算法进行融合改进,一定程度上解决了传统医疗图像识别诊断过程中特征提取困难复杂度高和准确率不高的问题,与现有算法相比,以更小的网络模型参数和更小的模型尺寸取得更好的模型性能,利用数据增强方法扩充数据集解决了数据集样本数量不足以及数据集正负样本不均衡的问题,利用迁移学习、学习率控制法和早停法等深度学习技术提高了识别效率以及模型的泛化能力,节约了计算资源,实现高效辅助诊断,具有较强的现实意义。

附图说明

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

图1为本发明方法的整体流程框图。

图2为本实施例提供的InceptionResNet-SE神经网络算法最终微调训练的AUC值结果。

具体实施方式

下面结合附图与具体实施例来对本发明做进一步阐述。在此需要说明的是,这些实施实例方式的说明是用于帮助理解本发明的计算模型和计算流程,并不构成对本发明的限定。对于本发明中的实施例,所述领域的普通技术人员在本说明的基础上还可以作出其他不同形式的变动和变化,在没有做出创造性劳动前提下所获得的所有类似实施例,都应当属于本发明保护的范围之内。

如图1所示,本发明提供了一种基于深度学习卷积神经网络的肺部炎症识别诊断方法,包括以下步骤:

S1:从kaggle上获取开源肺部X光影像图片数据集ChestXray2017,并对数据集进行预处理;步骤S1中数据集预处理的具体过程为:

S11:开源数据集ChestXray2017存在严重的正负样本数据集不均衡的问题,肺炎数据多于正常数据,容易造成神经网络泛化能力较差,降低神经网络性能,为了解决这一问题,本实施例中,采用权值均衡方法,在计算损失函数值的时候,通过权值来均衡数据的分布;

S12:深度学习训练过程中需要较多的数据量进行训练有利于得到较优的效果,开源数据集ChestXray2017共包含5856张胸腔X射线透视图,数据量较少,容易造成模型的过拟合,本实施例中,采用数据增广微调方法,通过随机旋转角度(90°/180°/270°)和图片翻转(水平翻转/垂直翻转)以及随机裁剪等方式对开源数据集ChestXray2017进行扩充处理;

S13:将扩充处理后的开源数据集ChestXray2017按照6:2:2的比例划分为训练集、验证集、测试集,训练集用于训练所述的神经网络算法,验证集用于模型选择,而测试集仅用于测试分类精度和算法模型的可靠性;

S2:构建InceptionResNetV2神经网络算法,并对InceptionResNetV2神经网络算法进行迁移学习;

S21:采用keras框架搭建所述的InceptionResNetV2神经网络算法;

S22:采用开源数据集ImgeNet对InceptionResNetV2神经网络算法进行预训练,保存最佳算法参数,并导出预训练的InceptionResNetV2神经网络算法卷积部分的预训练参数;

S3:将进行迁移学习后的InceptionResNetV2神经网络算法进行改进,获取改进后的神经网络算法,命名为InceptionResNetV2;

S31:将原始InceptionResNetV2神经网络结构最后一个由1024个神经元构成的全连接层去除,将去除后的网络连接一个SENet模块,SENet模块由按通道的全局平均池、完全连接层、ReLU激活函数、完全连接层、sigmoid激活函数这五个连续操作的组合函数构成,全局平均池化层使得每一个特征图对应一个特征点,降低了特征图的维数但保留了其中最重要的信息,为了增强模型的泛化能力,对两个完全连接层加入Dropout操作,即在训练过程当中随机丢弃一部分神经元,来防止网络产生的过拟合现象,从InceptionResNetV2神经网络结构中提取出来的图像特征映射被输入到SENet模块中,以便于接收更多通道信息,获取每个特征通道的重要程度。它利用全局信息有选择地强调信息性特征,而抑制不太有用的特征,S在图层中为每个特征映射引入权重,SENet模块引入了本质上以输入为条件的动态特性,提高了特征的可分辨性,加入的SENet模块与原始算法相比,不仅利用了复杂度较高的深层信息,并且融合了浅层信息,深层信息包含丰富的语义信息,浅层信息包含大量细节信息和局部信息,因此,所加入的SENet模块可以有效的提取不同密集块的信息,以获取更多的空间信息和权重,提高模型的分类性能;

S32:通过采用步骤S31所述的方法,构造改进后的InceptionResNetV2神经网络算法,命名为InceptionResNet-SE神经网络算法,用来识别正常数据或者肺炎数据;

S33:将步骤S22中导出的预训练参数导入InceptionResNet-SE神经网络算法,完成迁移学习,提高算法学习效率;

S4:对InceptionResNet-SE神经网络算法引入冻结层;

S41:将InceptionResNet-SE神经网络算法除SENet模块外的参数全部冻结,不再更新神经元参数,只训练新加入的SENet模块的层的参数,冻结层的引入在保证训练准确率的同时还可以降低神经网络算法训练过拟合的风险,加速了神经网络算法的学习速度,提高了算法的效率,节约了时间和计算资源;

S5:利用开源数据集ChestXray2017对InceptionResNet-SE神经网络算法进行微调训练,完成对InceptionResNet-SE神经网络算法的构建;

S51:采用学习率控制法,若训练当中的InceptionResNet-SE神经网络算法的验证损失函数连续6个epoch没有出现更优值,则将学习率缩小为原来的0.1倍继续训练,实行这种动态的学习率变化可以更好地适应网络参数的训练过程,加速神经网络模型的收敛速度,提高神经网络算法效率;

S52:采用早停法,若训练当中的InceptionResNet-SE神经网络算法的验证损失函数连续20个epoch没有出现更优值,则提前终止InceptionResNet-SE神经网络算法的训练,节约计算资源,提高算法运行效率;

在本发明训练过程当中,采用从训练数据当中随机抽取小批量数据(batch_size)的方式对神经网络进行迭代训练,在反向传播过程中结合随机梯度下降算法来最小化损失函数的值,并更新算法网络参数;batch_size的值设置为64,每次训练输入64张肺部X光影像图片,这64张图片在神经网络模型中完成一次训练后,视为完成一个批次的训练,当训练数据集样本中所有肺部X光影像图片全部都完成一次训练后,则视为完成一个轮次(epoch)的训练;设定训练轮数(epoch)为120,当训练完成120轮以后停止训练,并自动保存训练成绩最好的一组网络模型参数作为训练完成的InceptionResNet-SE神经网络算法最终模型参数;

此处所述的训练成绩最好是指该模型的AUC值最高;

本发明训练过程中采用的优化器为Adam优化器,Adam优化器可以加快训练速度,提高训练效率,损失函数采用二进制交叉熵(binary_crossentropy)损失函数,二进制交叉熵损失函数在二元分类问题上具有良好的表现,初始学习率设置为0.001,在训练过程中会根据验证损失函数值进行学习率衰减,在最终的微调训练当中,;

在本实施例中,采用Keras作为深度学习框架,64位的Ubuntu16.04为操作系统环境。硬件方面采用Intel i5-10040处理器和GeForce GTX 1080Ti显卡来加速InceptionResNet-SE神经网络算法的训练过程。在进行数据预处理后以6:2:2的比例划分为训练集、验证集、测试集,由于开源数据集正负样本不平衡,肺炎数据明显多于正常数据,采用准确率指标来评价算法性能并不能完全说明算法性能的优劣,故本发明采用AUC值作为算法性能的评价指标,AUC值越接近于1,表明算法的性能越好。

整体网络算法模型构建好以后需要对模型进行函数化封装以便于以后引入医院使用,训练前需要对模型进行编译和加载。

最后需要说明的是,以上实施例仅为用以说明本发明的计算流程和技术方案,而并非对本发明实施方式的限定。对于本领域的普通技术人员而言,在上述说明的基础上还可以相应的作出其他形式的修改或者替换,这里无法对于所有的实施方式予以穷举,凡是属于本发明技术方案所引申出的显而易见的变化或者替换仍然处于本发明的保护范围之列。

相关技术
  • 一种基于深度学习卷积神经网络的肺部炎症识别诊断方法
  • 一种基于深度学习卷积神经网络的车牌识别方法
技术分类

06120113147116