本发明属于医学图像处理技术领域,具体涉及一种基于神经网络的胸部x光片识别检测系统和方法。
背景技术:
新冠疫情的到来使全球肺炎人数激增,在新冠疫情之前,全球每年增加的肺炎患者人数也有很多。目前胸部x光检查是诊断肺炎的最佳方法,在临床护理和流行病学研究中发挥着至关重要的作用。由于x射线穿过人体时受到不同程度的吸收,通过人体后的x射线量不同,在荧光屏或摄影胶片上显示出不同密度的阴影;根据阴影浓淡的对比,结合临床表现、化验结果和病理诊断,即可判断人体某一部分是否正常。然而通过x光片诊断肺炎严重依赖于放射科医师的专业能力和从业经验,不易于推广。
技术实现要素:
本发明要解决的技术问题是:提供一种基于神经网络的胸部x光片识别检测系统和方法,用于实现快速准确检测肺炎病变的功能。
本发明为解决上述技术问题所采取的技术方案为:一种基于神经网络的胸部x光片识别检测系统,包括身份验证模块、患者信息管理模块、检测模块、数据库模块,身份验证模块、患者信息管理模块、检测模块分别与数据库模块连接;身份验证模块用于验证系统使用者的账户和密码,并开通与账户相应的权限;患者信息管理模块用于增加、删除、编辑患者的信息;检测模块用于搭建深度学习的神经网络模型,比较待测图像与数据库中的图像数据集,并判断待测图像是否为某种肺炎图像;数据库模块用于存储使用者的身份信息、患者信息、肺炎病变图像数据,分别供身份验证模块、患者信息管理模块、检测模块调用。
按上述方案,深度学习的神经网络模型包括用于训练数据的数据生成器和用于验证数据的数据生成器,用于将加载的图像数据转换为训练数据并训练目标;用于训练数据的数据生成器采用fromkeras.preprocessing定义;用于验证数据的数据生成器采用imageimportimagedatagenerator定义。
按上述方案,神经网络模型为在vgg16模型中添加全连接层、在每个全连接层后进行批归一化得到的改进vgg16神经网络模型;神经网络模型依次包括functional层、dropout层、flatten层、batch层、dense层、batch层、activation层、dropout层、dense层、batch层、activation层、dropout层、dense层;functional层为vgg16模型;dropout用于在训练时按一定概率随机丢弃神经元以提高训练速度、防止过拟合;flatten在卷积层与全连接层之间,用于把卷积层输出的多维数据拍扁成一维数据并输入全连接层;batch_normalization层用于通过批归一化保持训练数据和测试数据的分布相同;dense层为全连接层,其中每一个结点分别与上一层的所有结点相连,用于综合提取到的特征;activation层采用激活函数relu使归零神经元的输出,用于稀疏网络、减少参数的相互依存关系,缓解过拟合。
按上述方案,图像数据集包括训练集和测试集,每个数据集分别包含正常图像和病变图像;从训练集中随机抽取20%的数据构成验证集。
一种基于神经网络的胸部x光片识别检测方法,包括以下步骤:
s1:搭建一种基于神经网络的胸部x光片识别检测系统,包括身份验证模块、患者信息管理模块、检测模块、数据库模块;身份验证模块、患者信息管理模块、检测模块分别与数据库模块连接;
s2:使用者登录系统;
s3:向系统输入患者的个人信息和患者胸部的x射线图像,系统判断患者是否患有肺炎疾病。
进一步的,所述的步骤s1中,具体步骤为:
s11:在检测模块中搭建深度学习的神经网络模型;
s12:从数据库模块中读取肺部病变图像数据集训练神经网络模型,使神经网络模型根据患者胸部的x射线图像应用cnn深度学习方法检测患者是否患有肺炎疾病;
s13:在flask环境中构建基于web的检测系统,用于加载训练好的神经网络模型并实时检测图像。
进一步的,所述的步骤s12中,训练神经网络模型的具体步骤为:
s121:在使用数据前采用keras中的imagedatagenerator类图片生成器对图像数据进行实时数据增强的预处理,生成张量图像数据批次以增加模型识别的准确度;
s122:在多次迭代训练时,采用modelcheckpoint方法在改善指标的时期结束时,保存性能最佳的模型副本;
s123:采用earlystopping方法在产生过度拟合时停止训练。
进一步的,所述的步骤s2中,具体步骤为:
s21:使用者输入账户并选择刷脸登录;
s22:身份验证模块通过内置函数opencv调用计算机摄像头采集使用者的脸部特征;
s23:身份验证模块比对使用者的脸部特征与数据库模块中的注册信息,若比对成功则验证通过,登录系统成功;若比对失败则验证不通过,登陆系统失败,提示使用者重新刷脸或输入账户和密码;
s24:使用者输入密码;
s25:身份验证模块比对账户、密码与数据库模块中的注册信息,若比对成功则验证通过,登录系统成功;若比对失败则验证不通过,登陆系统失败,提示使用者重新登录。
进一步的,所述的步骤s3中,具体步骤为:
s31:输入患者的个人信息并存储至数据库模块;
s32:输入患者胸部的x射线图像并存储至数据库模块;
s33:检测模块调用训练好的神经网络模型通过cnn深度学习方法检测患者是否患有肺炎疾病;
s43:检测模块将判断结果存储至数据库模块。
进一步的,还包括以下步骤:
s4:患者信息管理模块调用、管理并按预设频率更新数据库模块中的患者信息。
本发明的有益效果为:
1.本发明的一种基于神经网络的胸部x光片识别检测系统和方法,通过对大数据的深度学习检测患者肺部的x光片识别肺炎病变,实现了快速准确检测肺炎病变的功能。
2.本发明训练的深度学习模型(多层cnn模型)与通过flask构建的web系统相结合,实现了实时图像检测的功能,在线辅助医生提高了检测肺炎的效率,在短时间、大检测量的情况下具有高度的实用性。
3.本发明为辅助医护人员检测肺炎提供了数据支撑,减少了误判、错判和漏判的情况,提高了检测结果的准确性。
4.本发明采用包括密码登录与扫脸登录的登录方式,提高了登录的成功率和隐秘性。
5.本发明可实时修改患者的信息与就诊的状态,在短时间、大检测量的情况下提高了管理管着信息的效率,减少了患者信息的混淆。
附图说明
图1是本发明实施例的流程图。
图2是本发明实施例的登录界面图。
图3是本发明实施例的操作患者信息界面图。
图4是本发明实施例的新增患者信息界面图。
图5是本发明实施例的查询患者信息界面图。
图6是本发明实施例的删除患者信息界面图。
图7是本发明实施例的修改患者信息界面图。
图8是本发明实施例的待检测界面图。
图9是本发明实施例的上传x光片界面图。
图10是本发明实施例的上传身份证界面图。
图11是本发明实施例的检测结果图。
图12是本发明实施例的更新患者信息界面图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。
参见图1,本发明的实施例包括身份验证模块、患者信息管理模块、检测模块、数据库模块,身份验证模块、患者信息管理模块、检测模块分别与数据库模块连接;身份验证模块用于验证系统使用者的账户和密码,并开通与账户相应的权限;患者信息管理模块用于增加、删除、编辑患者的信息;患者的个人信息包括序号、病历号、姓名、性别、年龄、状态、电话、预测结果、责任医生、操作;检测模块用于比较待测图像与数据库中的肺部病变图像数据集,并判断待测图像是否为某种肺炎图像;数据库模块用于存储使用者的身份信息、患者信息、肺炎病变图像数据,分别供身份验证模块、患者信息管理模块、检测模块调用。
本发明的一种基于神经网络的胸部x光片识别检测方法,包括以下步骤:
s1:搭建一种基于神经网络的胸部x光片识别检测系统,包括身份验证模块、患者信息管理模块、检测模块、数据库模块;身份验证模块、患者信息管理模块、检测模块分别与数据库模块连接;
s11:在检测模块中搭建深度学习的神经网络模型;
s12:从数据库模块中读取肺部病变图像数据集训练神经网络模型,使神经网络模型根据患者胸部的x射线图像应用cnn深度学习方法检测患者是否患有肺炎疾病;
s13:在flask环境中构建基于web的检测系统,用于加载训练好的神经网络模型并实时检测图像;
s2:使用者登录系统;
s21:参见图2,使用者输入账户和密码;
s22:身份验证模块通过内置函数opencv调用计算机摄像头采集使用者的脸部特征;
s23:身份验证模块比对使用者的脸部特征与数据库模块中的注册信息,若比对成功则验证通过,登录系统成功;若比对失败则验证不通过,登陆系统失败,提示使用者重新刷脸或输入账户和密码;
s3:向系统输入患者的个人信息和患者胸部的x射线图像,系统判断患者是否患有肺炎疾病;
s31:输入患者的个人信息并存储至数据库模块;参见图3至图7,医护人员根据医疗系统中已有的病人信息对病人信息进行增删改查的操作,将即将拍摄肺部x光片的病人就诊状态修改为拍片中;
s32:参见图8至图10,输入患者胸部的x射线图像并存储至数据库模块;
s33:检测模块调用训练好的神经网络模型通过cnn深度学习方法检测患者是否患有肺炎疾病;
s43:参见图11,检测模块将判断结果存储至数据库模块;
s4:参见图12,患者信息管理模块调用、管理并按预设频率更新数据库模块中的患者信息;患者信息管理模块通过pymysql连接mysql数据库,实现对患者信息和就诊状态的增、删、改、查操作,并实现与检测界面之间的跳转。
检测原理:
肺炎检查模块通过训练深度学习模型(多层cnn模型),使cnn能够根据患者胸部的x射线图像检测患者是否患有肺炎疾病。
根据x射线扫描出的图片进行检测肺炎是二进制分类问题:检测的结果为肺炎病变或正常。用数字给这个表示法进行赋值,如采用0表示正常、1表示肺炎,或者反之。
通过fromkeras.preprocessing定义用于训练数据的数据生成器,通过imageimportimagedatagenerator定义用于验证数据的数据生成器。数据生成器直接从源文件夹中加载所需数量的数据(少量图像),将其转换为训练数据(馈入模型)并训练目标(属性向量-监督信号)。
在训练模型中定义了modelcheckpoint和earlystopping两种训练模型的方法。当训练需要大量时间才能获得良好的结果时,通常需要多次迭代;modelcheckpoint用于在改善指标的时期结束时保存性能最佳的模型副本。在训练过程中,当泛化差距(即训练与验证错误之间的差异)开始增加而非减少时产生过度拟合,通常采用包括减少模型容量、增加训练数据、数据汇总、正则化、退出的多种方式解决过度拟合;本发明中earlystopping用于在泛化差距越来越严重时停止训练。
数据集:
本发明采用的数据集包括训练集和测试集,每个数据集都包含两种事先用文件夹名称进行标签标注的正常胸部x光片和异常胸部x光片。训练集包含5200余张数据文件,测试集包含近600张数据文件。所用的验证集由从训练集中随机抽取20%的数据文件构成。
在使用数据前需要对数据进行处理以增加模型识别的准确度。采用keras中的imagedatagenerator类图片生成器进行图像预处理,进行实时数据增强,生成张量图像数据批次。
神经网络拓扑结构:
检测模块采用在vgg16神经网络模型的基础上进行了改进的神经网络模型。vgg16网络模型为两组“卷积层——卷积层——池化层”和两组“卷积层——卷积层——卷积层——池化层”共四组结构以垂直的结构进行组合而形成的模型结构。如果仅仅对vgg16神经网络模型进行一次训练得到的模型准确率不高,只有70%左右;因此以vgg16模型为基础添加全连接层,在每个全连接层后进行批归一化,形成改进的vgg16神经网络模型。
神经网络是由多层叠加而成的,每一层都有输出和输出,除了对原始数据的标准化处理,在经过每一层网络计算后数据的分布是不同的。网络的训练过程需要适应不同的数据分布,导致收敛慢、效果不佳;另一方面,每一层参数的变更会随着层数的增加不断累积增大影响,只要有某一层的数据分布发生变化,后面层的数据输入分布也会不同,即各层输入数据的分布随着前几层参数的变化而变化,使得训练深度神经网络变得复杂。这通过要求较低的学习速率和仔细的参数初始化来减慢训练,并且使得训练具有饱和非线性的模型变得非常困难,这种现象叫做内部协变量偏移internalcovariateshift。因此为了解决中间层数据分布改变的情况,需要在训练网络之前采用batch_normalization层对数据进行批归一化处理,保持训练数据和测试数据的分布相同。通过在网络的每一层输入之前进行归一化处理,作用于(wu b)即bn(wu b),再接激活函数(非线性映射)。
基础模型vgg16神经网络拓扑结构:
totalparams:14,714,688
trainableparams:0
non-trainableparams:14,714,688
改良后神经网络模型拓扑结构:
totalparams:41,564,993
trainableparams:26,796,033
non-trainableparams:14,768,960
以上实施例仅用于说明本发明的设计思想和特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,本发明的保护范围不限于上述实施例。所以,凡依据本发明所揭示的原理、设计思路所作的等同变化或修饰,均在本发明的保护范围之内。
1.一种基于神经网络的胸部x光片识别检测系统,其特征在于:包括身份验证模块、患者信息管理模块、检测模块、数据库模块,身份验证模块、患者信息管理模块、检测模块分别与数据库模块连接;
身份验证模块用于验证系统使用者的账户和密码,并开通与账户相应的权限;
患者信息管理模块用于增加、删除、编辑患者的信息;
检测模块用于搭建深度学习的神经网络模型,比较待测图像与数据库中的图像数据集,并判断待测图像是否为某种肺炎图像;
数据库模块用于存储使用者的身份信息、患者信息、肺炎病变图像数据,分别供身份验证模块、患者信息管理模块、检测模块调用。
2.根据权利要求1所述的一种基于神经网络的胸部x光片识别检测系统,其特征在于:深度学习的神经网络模型包括用于训练数据的数据生成器和用于验证数据的数据生成器,用于将加载的图像数据转换为训练数据并训练目标;
用于训练数据的数据生成器采用fromkeras.preprocessing定义;
用于验证数据的数据生成器采用imageimportimagedatagenerator定义。
3.根据权利要求1所述的一种基于神经网络的胸部x光片识别检测系统,其特征在于:
神经网络模型为在vgg16模型中添加全连接层、在每个全连接层后进行批归一化得到的改进vgg16神经网络模型;
神经网络模型依次包括functional层、dropout层、flatten层、batch层、dense层、batch层、activation层、dropout层、dense层、batch层、activation层、dropout层、dense层;
functional层为vgg16模型;
dropout用于在训练时按一定概率随机丢弃神经元以提高训练速度、防止过拟合;
flatten在卷积层与全连接层之间,用于把卷积层输出的多维数据拍扁成一维数据并输入全连接层;
batch_normalization层用于通过批归一化保持训练数据和测试数据的分布相同;
dense层为全连接层,其中每一个结点分别与上一层的所有结点相连,用于综合提取到的特征;
activation层采用激活函数relu使归零神经元的输出,用于稀疏网络、减少参数的相互依存关系,缓解过拟合。
4.根据权利要求1所述的一种基于神经网络的胸部x光片识别检测系统,其特征在于:图像数据集包括训练集和测试集,每个数据集分别包含正常图像和病变图像;从训练集中随机抽取20%的数据构成验证集。
5.一种基于权利要求1至4中任意一项所述的基于神经网络的胸部x光片识别检测系统的检测方法,其特征在于:包括以下步骤:
s1:搭建一种基于神经网络的胸部x光片识别检测系统,包括身份验证模块、患者信息管理模块、检测模块、数据库模块;身份验证模块、患者信息管理模块、检测模块分别与数据库模块连接;
s2:使用者登录系统;
s3:向系统输入患者的个人信息和患者胸部的x射线图像,系统判断患者是否患有肺炎疾病。
6.根据权利要求5所述的一种基于神经网络的胸部x光片识别检测方法,其特征在于:所述的步骤s1中,具体步骤为:
s11:在检测模块中搭建深度学习的神经网络模型;
s12:从数据库模块中读取肺部病变图像数据集训练神经网络模型,使神经网络模型根据患者胸部的x射线图像应用cnn深度学习方法检测患者是否患有肺炎疾病;
s13:在flask环境中构建基于web的检测系统,用于加载训练好的神经网络模型并实时检测图像。
7.根据权利要求6所述的一种基于神经网络的胸部x光片识别检测方法,其特征在于:所述的步骤s12中,训练神经网络模型的具体步骤为:
s121:在使用数据前采用keras中的imagedatagenerator类图片生成器对图像数据进行实时数据增强的预处理,生成张量图像数据批次以增加模型识别的准确度;
s122:在多次迭代训练时,采用modelcheckpoint方法在改善指标的时期结束时,保存性能最佳的模型副本;
s123:采用earlystopping方法在产生过度拟合时停止训练。
8.根据权利要求5所述的一种基于神经网络的胸部x光片识别检测方法,其特征在于:所述的步骤s2中,具体步骤为:
s21:使用者输入账户并选择刷脸登录;
s22:身份验证模块通过内置函数opencv调用计算机摄像头采集使用者的脸部特征;
s23:身份验证模块比对使用者的脸部特征与数据库模块中的注册信息,若比对成功则验证通过,登录系统成功;若比对失败则验证不通过,登陆系统失败,提示使用者重新刷脸或输入账户和密码;
s24:使用者输入密码;
s25:身份验证模块比对账户、密码与数据库模块中的注册信息,若比对成功则验证通过,登录系统成功;若比对失败则验证不通过,登陆系统失败,提示使用者重新登录。
9.根据权利要求5所述的一种基于神经网络的胸部x光片识别检测方法,其特征在于:所述的步骤s3中,具体步骤为:
s31:输入患者的个人信息并存储至数据库模块;
s32:输入患者胸部的x射线图像并存储至数据库模块;
s33:检测模块调用训练好的神经网络模型通过cnn深度学习方法检测患者是否患有肺炎疾病;
s43:检测模块将判断结果存储至数据库模块。
10.根据权利要求5所述的一种基于神经网络的胸部x光片识别检测方法,其特征在于:还包括以下步骤:
s4:患者信息管理模块调用、管理并按预设频率更新数据库模块中的患者信息。
技术总结