一种基于深度学习的肺部疾病辅助诊断云平台

文档序号:26091474发布日期:2021-07-30 18:00阅读:226来源:国知局
一种基于深度学习的肺部疾病辅助诊断云平台

技术领域:

本发明涉及人工智能应用于医学影像处理与诊断领域,特别是对胸部x光片的处理与分析,更具体地说,涉及一种基于深度学习的肺部疾病辅助诊断云平台。



背景技术:

胸部疾病已成为当代人中的常见病症。而在癌症排行榜中,肺癌更是稳居榜首。在胸部疾病临床诊断领域,胸部x光片简称胸片,利用它来进行检查是有效、常用且廉价的手段。在我国,一家大型三甲医院每年仅从门诊患者就获得超过40,000个胸片。此外,胸片是我国常规的体检项目。数据显示,2017年中国体检人数近5亿。而随着人们经济生活水平的提高,以及对健康的重视,这个数字仍然在攀升,胸片的总体量也将随之快速增长。

而另一个事实是,目前我国的胸片检查仍需依靠人工进行,这导致我国放射科医生的工作强度较大,难免出现误判现象。报道显示,约有20%~50%的肺结节在胸部x射线检查中漏诊或误判。即便是优秀的放射科医生,也存在着3%~6%的严重临床错误。放射科医师的培养周期长,需要丰富的经验来完成高强度的胸片诊断任务。另一方面,普通群众并不具备专业的学识和经验,难以解读以及看懂一份诊断报告,需医生详细解说。综上,胸片诊断对医师而言仍是一项繁重的任务,且在未来短期内该状况难以得到迅速的改善。

中国专利cn109410107a“一种疾病筛查的云平台系统”将病例数据存储在云端,但没有实现云端对数据进行处理,中国专利cn110797097a“人工智能云诊断平台”进一步提出了云上数据处理的一种方式,但仅局限于癌细胞的诊断,难以向人群进行推广。中国专利cn111128396a“一种基于深度学习的消化道疾病辅助诊断系统”针对消化道疾病提出一套较完备的系统,但系统的专业性强,可拓展性较差。

针对以上问题,本发明基于深度学习技术,提出了一种肺部疾病辅助诊断云平台,旨在解决此前利用神经网络诊断肺部多种疾病效果较差、正确率较低的问题以及缺乏相应的大众可使用的产品的问题。并且相较于先前研究团队的成果,本平台在多数肺部疾病的诊断上正确率均有所提高。本平台使用简便快捷,支持数据的分析与存储,用户可自由地对数据进行多项操作。同时,本平台拓展性强,支持后续更多疾病的识别以及与医疗器械的对接。



技术实现要素:

为实现上述目的,本发明所采取的技术方案是:一种肺部疾病辅助诊断云平台,其特征在于:包括服务端和客户端,所述服务端包括基于深度学习针对胸片特点设计并训练的神经网络,所述服务端依托阿里云ecs搭建,分为控制层、业务逻辑层和数据访问层,工作步骤如下:首先由控制层对上传胸片进行相关参数校验并进行异常处理,然后将处理后的结果传递给控制器,控制器根据具体要实现的功能选择相应的模块传递到业务逻辑层,经所述业务逻辑层处理后,最后到达数据访问层;所述客户端分为web端和微信小程度端,负责与用户实现交互,其中用户具有如图2所示五部分功能;

进一步,本平台选择阿里云ecs中自带的数据库mariadb作为数据的存储,以php中mysql库进行数据交互。

进一步,在本平台中服务器端会与mariadb、cookie以及微信服务器发生通信。客户端中的web端利用ajax异步提交的方式与后端交互,微信小程序端则通过与微信服务器进行通信从而和服务器端进行数据交互。

进一步,所述业务逻辑层根据业务分成analysis和history,其中analysis为较复杂的胸片分析,而较为简单的上传历史获取则在history中处理;

基于上述一种肺部疾病辅助诊断云平台,其使用方法如下:

web端访问建议使用谷歌/googlechrome、火狐/firefox、ie8及以上版本进行,地址栏输入网址:https://www.ucwxb.xyz/进入平台登录页。微信小程序端访问需搜索小程序名“chestxray”,即可进入小程序端登录页,如图3与图4。

用户账号管理模块主要包括用户登陆、注册、密码修改(找回),web端与微信小程序端的用户信息互通。每位用户对应三个属性:用户名、密码、通信地址。其中,用户名与通信地址属性都保证独一无二。在注册功能中,依据用户填写的通信地址,平台会向该通信地址发送验证码,以助验证。在游客登陆功能中,用户以tourist的身份使用全平台功能,如图5。

胸片分析模块主要包括用户资料填写以及业务逻辑层analysis的胸片分析。用户所需填写信息为:姓名、性别、年龄、胸片选择。四者缺一不可,完整填写无误后,服务器端接收请求,取得胸片保存地址并进行分析,如图6。

分析过程分为两个阶段,第一个阶段为12种肺部疾病的分类,第二个阶段为肺结节的识别。两个阶段成功结束后,服务器将分析结果与资料保存至数据库,并向用户返回处理前后图像以及结果。其中,热力图生成依据为12种肺部疾病分析中xception模块最后一层卷积层的输出,红色区域为模型相对关注的区域。每一条上传记录包含了17项属性:图像上传的服务器时间、资料填写中的4项、12种肺部疾病各自的概率,如图7。

同时,平台支持胸片的批量分析,用户填写一定格式的资料文件后,与胸片一同上传即可实现。其中,图像支持格式不仅包括jpg、png、bmp等,亦支持dicom格式图像,如图8。

当用户选择查看上传历史,服务器的业务逻辑层history将自动相应请求,遍历数据库中对应账号的所有信息,并将其返回至表现层进行渲染。web端用户可点击每条记录右侧的三角形展开信息并查看。web端与微信小程序端都可对上传历史进行访问,如图9。

数据操作模块包含排序、筛选、搜索、下载、删除等操作,其中web端支持所有功能,而微信小程序端支持下载与删除功能。下载与删除操作对象都为单条上传信息,下载次数不限且删除操作不可逆。对于排序功能,平台提供了顺序倒序以及时间优先或者年龄优先排序模式,平台默认模式为升序且年龄优先。对于筛选功能,平台提供按照性别进行筛选,默认为不限性别。对于搜索功能,用户可根据姓名进行搜索。另外,平台也提供模糊搜索功能,搜索框内字符会自动生成候选结果,如图10。

在web端的登录页、主页以及微信小程序端的登陆页,用户都可下载平台操作指南进行阅读,并且不同客户端对应不同的操作指南,如图11。

下为具体操作步骤:

1.使用浏览器(建议使用谷歌/googlechrome、火狐/firefox、ie8及以上版本)打开网页:“https://www.ucwxb.xyz/”,随即出现平台的登陆界面;

2.点击注册并填写相关资料,该系统提供邮箱、手机号、用户名三种登陆方式。如果忘记密码或需要修改密码,可以使用邮箱或手机号进行密码修改的操作;同时,平台亦提供游客登陆,用户可直接体验网站所有功能;

3.成功登陆后会有相关提示,并进入到主页。在主页上的“姓名”“性别”“年龄”方框内填写相关资料之后,选择图像。若信息填写不全会出现相关提醒。点击“上传”即可实现在线诊断评估;

4.待云端处理结束之后,状态栏会出现成功的提示,并且会自动加载处理后的图像以及相应的结果,若出现肺结节,展示图像中会标明肺结节可能出现的位置以及概率。同时,平台提供热力图,红色区域即为模型相对关注区域;

5.若希望再次分析,重新填写信息以及选择图像后,再次点击上传即可;

6.亦可选择批量胸片分析,支持dicom格式影像文件,用户可在批量分析页面直接选择文件并上传即可。对于其他图像文件如jpg、png、bmp等,用户在选择多张图像时,还需选择对应的资料文件。资料文件支持txt、csv文件,文件格式如图所示。其余操作同单张胸片分析;

7.若希望查看上传的历史记录,用户可以点击主页的左方历史记录,即可自动加载上传的记录与结果。点击每条记录右侧的三角形符号,即可展开相应记录,再次点击,展开的记录将自动收起;

8.平台支持批量下载与批量删除操作。用户首先点击相应操作的按钮进入相应操作状态后,直接点击需要相关操作的历史记录,然后点击退出即可,需要注意的是删除操作不可逆;

9.可按照历史记录页面上方各选项的提示进行排序或搜索。选择完毕后点击确认,页面将自动刷新并显示结果。若搜索结果为零,页面将显示“没有找到符合要求的记录”,用户仍可根据需要变换选择进行继续排序或搜索。该页面同样支持对应记录的查看、下载与删除等基本操作,具体操作同上;

10.若希望注销或者重新登陆,点击页面左下角的“退出登录”即可退出账号,页面自动跳回到登陆界面;

11.若存在非法登陆现象(即没有登陆而直接访问主页与历史记录),浏览器将强制跳转至登陆界面,避免信息泄露。

采用上述技术方案所产生的效果在于:1):将单种肺部疾病诊断扩展至12种肺疾病,并且在auc这个指标上取得较大优于前人的效果;2):在于考虑到肺结节与多种肺部疾病相关,项目将肺结节检测与12种肺部疾病相结合,形成一套较完备的肺部疾病诊断系统;3):基于前二者基础上搭建了一个大众化的多终端的云平台,云平台可满足基本的胸片分析以及数据分析操作;4):本平台的可拓展性与可移植性强,可在后续的更新迭代中添加更多的疾病识别功能。

附图说明:

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

图1为本发明中肺部疾病辅助诊断云平台整体结构图;

图2为本发明中肺部疾病辅助诊断云平台提供用户的五种功能;

图3为本发明中肺部疾病辅助诊断云平台web端登陆页界面;

图4为本发明中肺部疾病辅助诊断云平台微信小程序端登陆页界面;

图5为本发明中肺部疾病辅助诊断云平台web端登陆页填写示例;

图6为本发明中肺部疾病辅助诊断云平台web端的信息填写界面;

图7为本发明中肺部疾病辅助诊断云平台web端分析结果返回示例;

图8为本发明中肺部疾病辅助诊断云平台web端dicom格式胸片批量分析返回示例;

图9为本发明中肺部疾病辅助诊断云平台web端历史记录查看页面;

图10为本发明中肺部疾病辅助诊断云平台web端历史记录数据操作示例;

图11为本发明中肺部疾病辅助诊断云平台web端主页操作指南所在位置;

图12为本发明中实例2所述12种肺部疾病训练集迭代训练结果;

图13为本发明中实例2所述12种肺部疾病验证集测试结果;

图14为本发明中实例2所述12种肺部疾病训练集损失函数随迭代次数变化图;

图15为本发明中实例2所述12种肺部疾病验证集损失函数随迭代次数变化图;

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

实施例1:

在本发明肺部疾病辅助诊断云平台实施例结构示意图如图1所示。该云平台可主要分为服务端与客户端两部分。客户端包括表现层,其中包括web端(网页端)与微信小程序端,两类客户端的界面不同,但用户数据与用户所拥有的权限与功能一致,两者互不排斥,可同时操作运行。服务端由上往下依次为数据访问层、业务逻辑层与控制层。控制层包括了对网页端提交的ajax异步请求以及微信小程序客户端经由微信服务器的请求的校验与处理,若通过则由控制层向上反馈至业务逻辑层,若校验错误或请求异常,则控制层做出相应的错误提示并反馈至表现层告知用户。业务逻辑层根据胸片分析业务分为analysis与history两部分,分别代表对胸片处理与分析和对胸片处理结果和图像的存储与调用。业务逻辑层通过语言php提供的访问数据库的接口与数据访问层进行通信,数据访问层包括mariadb数据库以及服务器临时存储的cookie等数据。

对于每一名注册用户,都可使用胸片分析云平台的五种功能:1.登陆(包括游客登陆)、注册、退出与密码修改(找回);2.填写资料与上传图像后查看分析结果,支持批量胸片分析;3.查看分析历史记录及相应结果;4.对分析历史记录进行排序、筛选、搜索、下载、删除等操作;5.下载查看平台操作指南。web端与微信小程序端功能基本一致,且账号及相应数据互通,如图2所示。

对于每一名注册用户,可使用浏览器(建议使用谷歌/googlechrome、火狐/firefox、ie8及以上版本)打开网页:“https://www.ucwxb.xyz/”,随即出现平台的登陆界面如图3;或者使用微信客户端搜索关键词“chestxray”打开该平台的微信小程序端,如图4。

若用户初次访问网站并未注册账号,点击页面上的注册按钮并填写相关资料,本平台提供邮箱、手机号、用户名三种登陆方式。如果忘记密码或需要修改密码,可以使用邮箱或手机号进行密码修改的操作;同时,平台亦提供游客登陆,用户可直接体验网站所有功能,但游客模式下的用户数据将不会永久保存。

用户成功登陆后会有相关提示,并进入到用户主页。在主页上的“姓名”“性别”“年龄”方框内填写相关资料之后,选择本地电脑上的图像。若信息填写不全会出现相关提醒,如当姓名未填写时,姓名所在文本框将以红色警示,并出现提醒文字,待用户填写完好后方可上传。用户点击“上传”后,浏览器将使用ajax异步提交的方式,将一次智能检测所需信息:姓名、性别、年龄和图像以及用户账号都提交至服务端,提交完毕后,服务端控制层对数据的有效性,如姓名、性别和年龄字符是否合法,图像是否传输完整等。若传递数据有错或不合法,控制层将反馈信息传递至表现层,用户可根据提示信息进行修改后提交。

进一步,服务器将数据从控制层传送至业务逻辑层中的analysis(分析)模块,服务器根据当前提交时间戳对图像进行重命名并存储至服务器,随后对图像进行缩放至大小为128×128×3,随后利用已训练好并存储于服务器的12种肺部疾病诊断权重数据文件来对图像进行运算,计算输出为12种疾病各自的概率大小,同时服务器将神经网络倒数第二层的输出用于生成处理图像的热力图,从而展示模型关注胸片的部分。随后,服务器将原图像缩放至大小为416×416×3,随后利用已训练好并存储于服务器的肺结节位置诊断权重数据文件来对图像进行运算,计算并输出肺结节所在图像中的具体位置坐标与相应的概率,并在原图像上用画框这一形式进行标记。

待两种神经网络成功进行分析之后,服务端业务逻辑层的history模块取得处理过后返回的数据,其中包括:12种肺部疾病各自的概率、热力图(heatmap)一张、已在图像上画框表示肺结节所在位置及相应的图像概率一张。随后所述模块根据客户端传送的用户账号对数据访问层发起索引请求,并将分析结果插入至mariadb数据库。

待服务端的分析与数据保存结束之后,状态栏会出现成功的提示字样,并且会自动加载处理后的图像以及相应的结果。若出现肺结节,展示图像中会标明肺结节可能出现的位置以及概率。热力图则提供了模型对图像相对关注的部位。同时,本平台对12种肺部疾病概率进行降序排序,并用红色突出显示概率高于30%的疾病,从而实现辅助疾病诊断的功能。

用户若希望再次分析,重新填写信息以及选择图像后,再次点击上传即可。用户亦可选择批量胸片分析,支持dicom格式影像文件,用户可在批量分析页面直接选择文件并上传即可。对于其他图像文件如jpg、png、bmp等,用户在选择多张图像时,还需选择对应的资料文件。资料文件支持txt、csv文件,一般资料文件格式为“姓名性别年龄”。其余操作同单张胸片分析。服务端处理多张胸片时与单张胸片一致,待服务端按照图像选择顺序一一处理过后,方返回数据。

用户若希望查看胸片分析的历史记录,用户可以点击主页的左方历史记录,即可自动加载上传的记录与结果。点击每条记录右侧的三角形符号,即可展开相应记录,再次点击,展开的记录将自动收起,表现层数据展现形式如图7和图9。历史记录页面处,本平台支持批量下载与批量删除操作。用户首先点击相应操作的按钮进入相应操作状态后,直接点击需要相关操作的历史记录,然后点击退出即可,删除操作不可逆;

用户可按照历史记录页面上方各选项的提示进行排序或搜索。选择完毕后点击确认,页面将自动刷新并显示结果。若搜索结果为零,页面将显示“没有找到符合要求的记录”,用户仍可根据需要变换选择进行继续排序或搜索。该页面同样支持对应记录的查看、下载与删除等基本操作,具体操作同上。

用户若希望注销或者重新登陆,点击页面左下角的“退出登录”即可退出账号,平台将自动清楚cookie并将页面跳回至登陆界面。用户若存在非法登陆现象,例如未登陆而直接访问主页与历史记录,浏览器将强制跳转至登陆界面,避免信息泄露。

实施例2:

实施例1中所述,平台服务端业务逻辑层中analysis模块所使用的12种肺部疾病诊断权重数据文件为利用美国国立卫生研究院(nih)公开的11万张胸片数据集经过xception神经网络训练后的结果,该权重数据文件经过以下步骤得到。

原数据集各病理数量分布较不平衡,且正常无病例子占大多数(59.483%)。因此本实例首先舍弃了nofinding(正常)的例子,以提高疾病诊断能力,并且由于hernia(疝气)只有227个例子非常少,本发明只选择数量在1000以上的病理总计12种。

进一步的,由于有12种肺部疾病,本发明给数据集图像分别标上1~12的数字作为标签,但利用这组数字作为标签不易于进一步的处理,因此本文对标签进行独热化处理(one-hot)转化为向量。比如原来标签数字为0的转换为[1,0,0,0,0,0,0,0,0,0,0,0,0]。原数据图像规格是1024×1024×3(单位:像素),本实例将其压缩为128×128×3,大大提升计算速度同时也避免损失过多细节。同时,本发明对所有数据图像进行了归一化处理。

进一步的,由于实验所用数据集分布较不均衡,因此采用imagedatagenerator图像生成器对数据进行增强,扩充数据集大小,增强模型泛化能力。通过对图像进行旋转,水平平移,垂直平移,透视变换,缩放,水平反转等方法生成图像,增加原本数量较少的病理例子以平衡各类数据。

进一步的,根据本实例中实质为12个2分类问题,本发明使用二元交叉熵作为训练的损失函数(binary-crossentropy),使用adamax作为优化器,训练所用硬件环境为:amdryzen53500x,16gbyte,nvidiagtx1660super,所用软件环境为:windows10,tensorflow2.1。数据输入尺寸为128×128×3,选择28240张图像进行增强并作为训练集,选择9414张图像进行增强并作为验证测试集。同时模型加载了在imagenet上预训练的权重以进行迁移学习。

性能评估选用的评估指标有:

1.二元交叉熵损失函数(binary-crossentropy)

2.平均绝对误差(mae)

3.roc曲线中auc的值(roc曲线与坐标轴围成的面积)

4.召回率(recall)

5.精确率(precision)

进一步,经过训练迭代后,对于训练集:损失函数值为0.2523;平均正确率为0.8974;平均绝对误差为0.1513;平均召回率为0.3026;平均精确率为0.7061;auc的值见图12。对于测试集:损失函数值为0.2857;平均正确率为0.8846;平均绝对误差为0.1609;平均召回率为0.3250;平均精确率为0.6833;auc的值见图13。整个训练过程损失函数随迭代次数变化,如图14与图15。由此得到实施例1中所述12种肺部疾病诊断权重数据文件。本实施例所述权重文件为一定条件下经过训练后的较优结果,其对本发明所述平台提供的12种肺部疾病辅助诊断也为较优结果,用户可自行根据本实例所述进行模型训练,进一步提高诊断准确度。

实施例3:

实施例1中所述,平台服务端业务逻辑层中analysis模块所使用的肺结节位置诊断权重数据文件为利用日本放射线技术学会(jsrt)提供的胸部正面x光图像经过训练后的结果,该权重数据文件经过以下步骤得到。

本实例部分数据选择了所述数据集中的有效数据(指能正常打开使用且没有损坏的胸片)共147张,每张都存在有且只有一个肺结节,并对应着肺结节存在位置中心的像素坐标(单位:像素)与肺结节半径(单位:毫米)。

进一步,本实例将所选择的147张img格式的胸片进行提取,并将其另存为三通道jpg格式的黑白图。本实例将储存于txt文件中的肺结节半径数据进行转换,将其世界坐标转换为像素坐标,统一单位以利于后续的处理。考虑到肺结节大小的不同以及数据集较小的问题,本实例将147张图像随机划分,并生成了训练集104张,验证集20张,测试集23张。同时,本实例将txt文本中的数据转存为xml格式的文件,每个xml文件与图像一一对应,并生成xmin,ymin,xmax,ymax等四个关键数据:

其中,x与y为肺结节存在位置中心的像素坐标(单位:像素),r为肺结节半径(单位:毫米),ps为像素坐标系中1像素对应世界坐标系中毫米长度的大小(单位:每像素毫米),此处取ps为0.175。

进一步,本实例将图像数据集整理储存为voc数据集格式,并编写json格式的配置文件以整合图像、xml文件、训练超参数信息。

进一步,本实例由于采用yolov3神经网络进行训练,所用k-means算法生成的先验框为:[10,13,16,30,33,23,30,61,62,45,59,119,116,90,156,198,373,326]。本实例所采用优化器为adam,初始化学习率为1e-6,批训练大小为8。本实例训练所用硬件环境为:inteli5-7500,11gbyte,nvidiagtx1080ti,所用软件环境为:windows10,tensorflow2.1。同实例2,本实例采用评估指标为精确率(precision)、召回率(recall)以及f-score值,f-score值即精确率与召回率的调和平均。经过训练迭代50次后,精确率达到96%,召回率达到70%,f-score值达到82%。由此得到实施例1中所述肺结节位置诊断权重数据文件。本实施例所述权重文件为一定条件下经过训练后的较优结果,其对本发明所述平台提供的肺结节位置辅助诊断也为较优结果,用户可自行根据本实例所述进行模型训练,进一步提高诊断准确度。

以上所述只是该发明的具体实施方式,上述说明不对本发明的实质内容构成限制,所属技术领域的普通技术人员在阅读了本说明书后可以对上述的具体实施方案做改进或变形,而不背离本发明的实质和范围,这些改进和变形也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1