◆郭 磊 贺宏伟 刘 露
(山东第一医科大学(山东省医学科学院)现代教育技术中心 山东 271016)
医学影像是进行医疗诊断的重要依据。肿瘤等疾病诊疗过程中产生了以医学影像为主的海量医疗数据。当前医学影像的数据存储及组织管理,多依赖于传统的PACS 系统。随着大数据技术的成熟及推广,世界范围内的相关机构逐步意识到医学影像大数据研究的重要性。美国国立卫生研究院通过SEER 项目实现了涵盖全美典型人群的癌症年度报告、癌症治疗与生存的年度报和大数据基础上的肿瘤特征与预后分析。中国医学科学院肿瘤医院牵头成立肿瘤影像大数据平台,实现国内部分省份肿瘤医院肿瘤数据的数据共享和挖掘分析,以及基于平台的远程医疗。
近年来深度学习在模式识别、图像分割等方面取得优异成果。国外研究机构将深度学习应用于医学图像中疾病的检测识别,如斯坦福大学将卷积神经网络应 用于皮肤癌的识别,谷歌将卷积神经网络应用于视网膜病变的识别,诊断结果均达到专家级水准。北京协和医院、西安交通大学第一附属医院等合作启动中国人“数字肺”研究[1],将深度学习等方法引入胸部影像分析,以实现肺癌的早期检测、辅助诊断和术前评估规划。
健康医疗大数据、新一代人工智能等领域正成为国内外研究热点,交叉学科的前瞻性探索正不断取得突破。可见,医学影像大数据的平台架构和分析方法将日臻成熟。结合深度学习方法,基于医学影像大数据进行辅助诊断、预后预测和决策分析的模型将逐步涌现。本文以下部分将对医学影像大数据,结合深度学习的辅助诊断、预后预测模型进行探讨。
当前研究中,Apache Hadoop 分布式架构常用于构建医学影像大数据平台[2],依据制定的数据标准,实现医学影像等医疗数据的采集和存储。
根据医学影像大数据平台的功能需求,需要采集的数据有医学影像、电子病历、数据化检验报告等。平台制定人员信息、病情信息、检查报告、诊疗方案等主题库。主题库标准的建立,将对平台后期数据建模效果起到决定性作用。
主题库基于Hadoop 的Hive 数据仓库进行构建,数据仓库规定每个字段数据类型,操作Hive 表的HQL 语句,将执行基于Map/Reduce 的数据处理语句,完成数据清洗等预处理,还可以按照特定维度完成每日数据统计。
医学影像大数据平台搭建完成后,采用VPN 技术实现大数据平台和接入平台的临床医院的网络连通。按照制定的数据标准进行数据采集,数据采集可以通过提供API 接口、FTP 传输、日常录入、数据批量迁移等方式实现。
涉及的平台接入医院拥有海量医学影像数据,并且每天产生大量的增量数据。文件系统和存储服务器需要具备可伸缩、高容错、高吞吐量、可水平扩展这些特点,能够满足医学影像大数据的数据管理需求。
(1)HDFS 分布式文件系统
Hadoop HDFS 使用虚拟服务器集群搭建,提供可水平扩展的高配置资源管理节点和数据存储节点,影像数据以Block 方式存储,单个影像数据的各个Block 分布式地存储于不同节点,自动实现数据存储的负载均衡。HDFS 为每个节点配置备份节点,一方面实现访问的负载均衡,更重要的是实现了分布式集群的高可用,一旦某个节点宕机,将使用剩余可访问节点。
(2)FastDFS 分布式文件服务器
平台部署FastDFS 作为文件服务器集群,存储医学影像、压缩文件等。该文件服务器能够提供高效的医学影像数据存储、上传和下载等服务,实现医学影像的数据管理及负载均衡,适于医学影像等文件的在线服务,适于文件大小在5KB 至500MB 医学影像的文件存储。
为进行医学影像大数据平台快速高效查询检索,需要使用ElasticSearch 全文检索引擎,实现医学影像数据等的智能检索。
ElasticSearch 是基于Lucene 的文件服务器,是企业级搜索引擎,支持实时搜索,支持横向扩展,服务器可以从一台扩展到上百台。ElasticSearch 中的医学影像数据以分片方式存储至各个节点。提供Java API 开发接口,还有Http Rest API。数据以Json格式返回,方便开发。数据是以索引、类型、文档的方式组织的。平台为医学影像数据建立索引,然后在每类索引下建立对应的类型,类型中保存医学影像的相关文档数据。完成数据的索引以后,可以跨索引、跨类型、多字段、以相关性得分、数值字段排序等方式,实现数据快速读取搜索。
深度学习在包括医学图像在内各类图像的处理中表现出当前最佳性能。例如,相关研究采用多个深度神经网络组成的SDFN模型对胸部医学图像进行处理,实现胸部疾病的分类判定[3],涉及的深度神经网络包括U-Net 和DenseNets,实现胸部14 类疾病的自动判定。相比当前研究采用的其他模型,SDFN 模型取得更高的AUC 值,平均值高达0.815,自动识别能力达到专家级水准。
另一方面,当前医学影像诊断仅依靠医生读片,不仅增加医生工作量,而且存在误判和漏判。例如,有数据显示一家肿瘤专科医院平均每天接待肺部疾病患者可达百例,每位患者检查会产生200-300 张左右的CT 影像,放射科医生每天要将大量时间用于繁多的影像诊断任务。因此,为医学影像筛查诊断的准确率和自动化程度,有必要将深度学习引入到医学影像大数据平台,实现智能化的医学影像辅助诊断。
医学影像大数据平台采用深度学习方法进行医学图像处理,如医学图像中成像部位分割,病灶部位的识别、定位、分割等,进一步进行良恶性判定。采用TensorFlow 深度学习框架,实现医学影像辅助诊断模型。搭建用于医学图像处理的深度神经网络训练、测试环境。对比国内外医学图像处理的研究成果,结合具体训练和测试结果,确定用于医学图像处理任务的神经网络结构,包括网络层数,网络层间连接方式,通道数目,各网络层类型、神经元数目和卷积核大小等,以及防止网络过拟合的训练方法策略等。
国内研究对深度学习在预后预测中的应用现状进行综述,指出深度学习在临床诊断和公共卫生领域尚未得到足够应用。传统的回归预测模型如logistics 回归、cox 回归等描述了自变量和因变量之间的线性关系,不能对非线性的变量如医学图像特征和疾病风险因素之间关系做较好描述。相关研究将深度学习应用于结合肿瘤影像的肿瘤患者生存分析[4],预测结果较传统回归模型有显著提升。
医学影像大数据平台可采用深度学习算法,基于医学影像并结合不同分期的确诊年龄、生存率和治疗模式分布等,进行预后评估,为规范化治疗提供支持;结合深度学习和传统回归模型,针对不同年龄段、不同性别和不同民族的疾病发病和死亡状况,分析诱发疾病的危险因素。
平台可采用Hadoop Spark 实现预后预测模型。Spark 包括Spark SQL、Spark Streaming、Spark MLlib 和GraphX 四个组件。Spark 除了以 Standalone 方式运行以外,还能够直接构建在Hadoop YARN 资源管理器之上。数据计算任务提交至Hadoop 集群任务节点,实现集群CPU 和内存的资源重复利用。避免数据在不同集群不同机柜的服务器网络节点之间的移动传输,直接将计算发送到数据存储的节点进行计算,并将结果汇总。使用Spark SQL 完成各主题库数据查询,使用Spark Streaming 实现日志实时分析,使用Spark MLlib 完成大数据分析建模。Spark MLlib 中的Pipeline 可以用来保存一个完整的模型训练、评估流程,并支持将训练好的模型输出保存,需要使用的时候直接加载模型,并给模型输入,即可得到模型输出。
本文讨论了医学影像大数据平台的构建方法,以及深度学习在医学影像大数据平台中的应用模型,包括医学影像辅助诊断和预后预测模型。随着医学影像大数据应用场景的逐步成熟,大数据平台的构建和深度学习的应用融合将成为该领域研究的关键方面。