5.07 Pneumonia Detection in Chest X-Rays using Neural Networks

肺炎诊断是一个耗时的过程,需要高技能的专业人员分析胸部X光片chest X-ray (CXR),并通过临床病史、生命体征和实验室检查确认诊断。 它可以帮助医生确定肺部感染的程度和位置。呼吸道疾病在 X 光片上表现为一处膨胀的不透明区域。然而,由于不同的情况(如癌症、出血、肺水肿等)可能表现为肺部不透明,因此在 CXR 中识别呼吸道疾病很麻烦。以不同间隔拍摄的患者 CXR 以及与临床症状的相关性有助于识别肺炎。

胸部X光检查使用聚焦辐射束检查您的肺部、骨骼和心脏。这些辐射束产生的图像是身体内部的图像。黑白照片的底片类似于 X 射线图像。身体组织的厚度各不相同,导致身体的每个部位都有不同比例的辐射穿过。例如,你的骨头非常厚,不会让太多辐射穿过。在 X 光照片上,骨头呈白色。另一方面,肺部可以让更多的辐射通过,则肺部的 X 光照片显示它们呈灰色。

X 射线检测是这些专业人员的专长。 CXR 的外观受到患者姿势和吸气深度等因素的影响,使其更难以解读。放射科医生每天必须解读大量 CXR。借助人工智能和机器学习的潜力,可以最大程度地减少临床医生的重复性任务和高端专业知识,从而自动对潜在呼吸道疾病病例进行初始检测或图像筛查,以对其进行分级和加快审查。


1.1文献综述

大多数死亡可以通过简单的干预措施来预防,并通过低成本、低技术含量的药物和护理来治疗。肺炎通常在进行胸部 X 光检查后即可确诊。它可以帮助医生确定感染的程度和位置。呼吸道疾病有时会在 X 光检查中表现为邻近区域的不透明区域膨胀。由于不同的情况可能会出现肺部浑浊,例如癌症、出血、肺水肿等,通过CXR来识别呼吸系统疾病是很麻烦的。

在医学领域,大多数人使用CNN的迁移学习方法在足够的数据集下进行分类。

我们可以使用图像增强技术增加训练数据集,例如随机旋转、平移、缩放、水平翻转以及随机常数的加法或减法。数据集分为 95% 的训练集和 5% 的验证集。使用在 ImageNet 数据集上预训练的 RetinNet 对图像进行分类。

实施DenseNet模型是因为研究发现可以很好地预测肺炎疾病。较少的特征和参数最能防止过度拟合。深度学习和机器学习的混合特征比传统方法具有更高的效率。现代诊断方法是常见的X射线可视化技术,同样是抗原测试/分子,用于确定疾病的严重程度和存在。

2. 数据及其预处理的介绍

北美放射学会 (RSNA) 是一个由放射科医生、医疗专业人员和其他医学物理学家组成的国际协会。他们提出,机器学习可以通过优化可能的肺炎病例,帮助确定优先顺序并加速评估可能的肺炎病例初步检测(影像学筛查)。

每张 X 射线图像均采用医学数字成像和通信 (DICOM) 格式,这是全球公认的标准医学成像格式。

它是一种附加元数据以及像素数据或图像数据的格式。因此,每张图像都有元数据信息,如患者 ID、姓名、年龄和其他图像相关数据。

2.1 样本数据

RSNA - CXR 数据集包含 DICOM 格式的 30227 个 X 射线图像。共有三类,其中 31.61% 为肺部混浊,39.11% 为无肺部混浊,29.28% 为正常图像。因此,在目标类别中,肺炎类别图像占31.61%,非肺炎图像占68.38%。有 3543 个重复条目。其中一些是同一患者的不同 X 射线视图。肺炎患者的边界框在列车标签文件中定义。该档案中有 9555 名阳性患者。每张 X 射线都有与其关联的元数据。它提供了有关患者、视图位置等的信息。有 3543 个重复条目。

分层抽样保证了样本的多样性和总体的总体方差。

2.2 探索性数据分析

2.2.1 诊断CSV文件

2.2.2 边界框信息

在边界框数据集中,x、y、宽度和高度列有空值。由于这些患者没有患有肺炎,因此此类患者不需要边界框信息。因此,这些值为 Null。在对象检测期间,将省略 Null 值。

 2.2.3 DICOM元数据

  1. Examined Body Part - ‘Chest’:被检查的身体部位是胸部。
  2. View Position - ‘AP/PA’:这是拍摄的视图位置。AP代表前-后(Anterior-Posterior),而PA代表后-前(Posterior-Anterior)。这通常指的是X光拍摄的方向。
  3. Patient’s Sex - ‘M/F’:患者的性别。M代表男性(Male),F代表女性(Female)。
  4. Photometric Interpretation - ‘Monochrome’:这是图像的色彩解释。Monochrome表示单色,即黑白图像。
  5. Rows - 1024:图像的行数为1024。
  6. Columns - 1024:图像的列数为1024。这意味着图像是一个1024x1024像素的正方形。
  7. Bits Allocated - 8:每个像素分配了8位,即每个像素是8位的灰度值。在这个表示方法中,0通常代表黑色,而255代表白色。
  8. Conversion Type - ‘WSD’ (Workstation):这是图像的转换类型。WSD通常指的是工作站(Workstation)上的某种转换或处理。
  9. Modality - ‘CR’ (Computed Radiography):这是图像的模态。CR代表计算放射学,是一种数字化的X光成像技术。

 2.2.5 统计、相关

  1. 只有系列描述、患者性别、视图位置和像素间距与类属性有一定关系。
  2. 系列描述和视图位置具有相同的值,但表示方式不同,因此这两个属性中的任何一个都可以用于建模。
  3. 在总共 40 个属性中,只有 4 个属性对分类有一些影响因素。
  4. 我们可以使用年龄、性别、视图位置和像素间距作为输入来形成分类器的倒数第二层以提高性能。

2.2.6 图像化

2.2.6.1 单一变量分析

与女性患者相比,男性患者接受胸部 X 光检查的比例更高。

2.2.6.1 双变量分析

“PA”视图位置对于“目标”属性高度不平衡,而“AP”视图位置是平衡的。

事实上,患者应该以直立的 PA 位置进行成像,因为 AP 视图的用处不大,仅适用于无法直立的病情严重的患者。在 AP 位置成像的患者病情较重,因此更有可能感染肺炎。

与女性患者相比,肺炎阳性的男性患者更多。

2.2.8 图像过滤

它通常指的是对图像进行某种数学运算或处理,以达到改善图像质量、提取图像特征或增强图像中某些信息的目的。

一种称为 Clahe 的图像直方图均衡处理已作为实验应用于 X 射线图像。

直方图均衡化是指一幅输入图像经过点运算变化,得到一幅灰度直方图均匀分布的新图像的方法。该方法的主要目的是让图片中各个灰度级数的像素数目相等,均匀分布,以达到信息熵最大的目的,从而突出更多的图像细节。

直方图均衡化的过程通常包括统计图像的直方图,归一化到[0,1],计算映射函数,然后利用得到的映射函数对图像进行处理。这种处理的结果可以使图像中的亮度值更加均匀分布,提高图像的对比度,使图像变得更加清晰。同时,直方图均衡化还可以自动地增加像素灰度的分布范围,达到增强整个图像对比度的效果。

在滤波过程中,图像中检测到大量噪声。因此,应用Clahe可以尽力防止这些噪声并尽力提高图像质量。

3. 方法论

3.1 概述

从数据和调查中收集的推论用于创建基本的 CNN 模型。研究从基本的 CNN 模型转向迁移学习模型。迁移学习模型层没有经过训练,而是仅使用 imagnet 中的预训练权重。

3.2 CNN

对于基础模型,使用CNN架构对X射线进行二元分类。首先从数据中删除重复项,删除重复项后,剩下 26684 张独特的 X 射线。此外,手动对类标签进行编码。所有没有肺部不透明度或正常的条目被视为 0,而具有肺部不透明度的条目则标记为 1。然后删除原始类列。

之后使用 Cochran 公式对数据进行分层抽样。总共产生了 2203 张 X 射线,标签分布为 0 类 1707 张,1 类 496 张。分层后,从主数据集中提取了 2203 张 X 射线。使用 pydicom 库提取这些图像并将其转换为像素阵列以进行进一步处理。这样获得的胸部 X 光片矩阵必须形状为 (2203, 1024, 1024)。对于相同的 2203 名患者,提取相应的标签。标签矩阵的形状被改为(2203,1),以便于使用 CNN 架构。

检查胸部 X 光矩阵的像素信息,发现最大值和最小值分别为 255 和 0。然后将图像大小从 1024 像素调整为 224 像素。为此,使用了 skimage 库中的 resize 函数。调整大小后,像素的最大值和最小值变为 1.000 和 0。然后将数据分成训练和测试,分割率为 30%。X_train 和 X_test 被重塑为(1542, 224, 224, 1)和(661, 224, 224, 1),以使它们与 CNN 算法兼容。

基本模型架构

5个卷积层以及MaxPooling层。前两个卷积层有16和32个卷积核,大小为(3,3)。其余三个卷积层有64个大小为(3,3)的卷积核。对于卷积层使用的激活函数是ReLU。对于MaxPooling层,使用池大小为(2,2)。在最后的 MaxPooling 层之后,输出被展平,以将其作为全连接层的输入。使用具有 512 个神经元和 Relu 激活函数的密集层。最后的输出层有 1 个神经元,用于二元分类,激活函数为 Sigmoid。

3.3 迁移学习

3.3.1 模型Ⅰ

  1. 第一个模型的目的是通过胸部 X 光检查检测肺炎。
  2. 实验中,实现了两种独立的 CNN 迁移学习模型——ResNet50 和 InceptionV4(修改版)。
  3. 模型的形状 - (224x224),仅在 ResNet50 中使用 Imagenet 权重,并包括自定义顶层 GlobalAveragePooling 和 20% 的 dropout。
  4. 参数 - 20 epoch (ResNet50)、30 epoch (InceptionV4) 和 64 个批量大小、sigmoid 激活和具有默认学习率的 Adam 优化器。

3.3.2 模型Ⅱ

  1. 第二个模型目标是找到胸部的视图位置(PA-AP)。
  2. 该模型在RSNA数据集上进行训练,并使用其测试数据进行验证。
  3. 在EDA(探索性数据分析)中,与模型I类似,AP-PA部分也不平衡,因此采用了下采样技术来平衡特征
  4. 该模型在迁移学习模型EfficientNetB0上执行。
  5. 参数和超参数的应用与模型I相同。

下采样(Downsampling)是机器学习中处理不平衡数据的一种常用方法,特别是在分类问题中,当某一类别的样本数量远多于其他类别时。下采样的主要目的是通过减少多数类样本的数量,使数据分布更加平衡,从而避免模型偏向多数类。然而,下采样可能会导致一些重要信息的丢失,因为被剔除的样本可能包含有价值的信息。

 3.3.2 模型Ⅲ

  1. 第三个模型的目的是用 clahe 过滤器检测肺炎。
  2. 该模型在修改后的骨干架构 InceptionNetV4 上进行训练,没有预训练权重,缩放比例为 -1 到 1,形状为 (224x224),顶层为 GlobalAveragePooling,dropout 为 0.25。 
  3. 参数和超参数与模型 I 几乎相同。

3.4 Mask R-CNN

将感兴趣区域作为输入并预测分割掩码

当说到“预测分割掩模”时,通常指的是使用某种算法(如深度学习模型)来自动确定图像中不同对象的边界,并为每个对象生成一个掩模。

这个掩模是一个与原始图像大小相同的二维矩阵,其中每个像素都被赋予一个标签,以表明它属于哪个对象或背景。这样,分割掩模就能够精确地描述图像中不同对象的位置和边界。

将ROI作为输入并预测分割掩模的任务,就是使用一个算法(例如卷积神经网络)来处理ROI图像,并输出一个分割掩模,这个掩模能够准确地标出ROI中各个对象的位置和形状。

3.5 YOLO v3

Yolo 代表“你只看一次”。它是一个实时物体检测系统。众所周知,它比其他类似的 CNN 架构更快。然而,它保留了检测的准确性。 Yolo 架构将图像划分为多个区域。为图像的每个区域预测边界框及其概率。

该模型仅针对肺炎类图像进行训练。训练集有 5410 张图像,验证集有 602 张图像。图像增强应用于数据集。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/681807.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

科技云报道:从亚运到奥运,大型国际赛事共赴“云端”

科技云报道原创。 “广播电视转播技术拯救了奥运会”前奥委会主席萨马兰奇这句话广为流传。 奥运会、世界杯、亚运会这样的全球大型体育赛事不仅是体育竞技的盛宴,也是商业盛宴,还是技术与人文的融合秀。随着科技的进步,技术在体育赛事中扮…

2.外卖点餐系统(Java项目 springboot)

目录 0.系统的受众说明 1.系统功能设计 2.系统结构设计 3.数据库设计 3.1实体ER图 3.2数据表 4.系统实现 4.1用户功能模块 4.2管理员功能模块 4.3商家功能模块 4.4用户前台功能模块 4.5骑手功能模块 5.相关说明 新鲜运行起来的项目:如需要源码数据库…

树形数据结构---堆

1.概念 什么是堆?堆和树的区别是什么?它的应用场景有哪些? 堆(Heap)是一种基于树形结构的数据结构,它是一种特殊的完全二叉树。堆的特点是每个节点都满足堆的性质,即父节点的键值总是大于或等…

8.删除有序数组中的重复项 II

文章目录 题目简介题目解答解法一:双指针(快慢指针)代码:复杂度分析: 题目链接 大家好,我是晓星航。今天为大家带来的是 删除有序数组中的重复项 II 相关的讲解!😀 题目简介 题目解…

[NSSRound#1 Basic]sql_by_sql

[NSSRound#1 Basic]sql_by_sql 这题没啥难的&#xff0c;二次注入盲注的套题 先注册&#xff0c;进去有个修改密码 可能是二次注入 修改密码处源码 <!-- update user set password%s where username%s; -->重新注册一个admin-- 获得admin身份&#xff08;原理看sqli-l…

【日常开发之FTP】Windows开启FTP、Java实现FTP文件上传下载

【日常开发之FTP】windows开启FTP、Java实现FTP文件上传下载 FTP前言FTP是什么&#xff1f;FTP两种模式 Windows开启FTPFTP windows 配置防火墙配置 Java部分Maven配置创建FTPClient 注意 FTP前言 FTP是什么&#xff1f; FTP是一个专门进行文件管理的操作服务&#xff0c;一般…

从github上复制代码,记录失败过程,最后放弃挣扎直接去github上手动下载了

从github中复制代码出现一下两种报错 1、Failed to connect to github.com port 443: 连接超时 2、Failed to connect to github.com port 443: 拒绝连接 解决办法如下&#xff1a; https://www.ipaddress.com/ github.com的IP地址为140.82.114.3 终端打开hosts文件加入140…

智慧变电站守护者:TSINGSEE青犀AI视频智能管理系统引领行业革新

一、方案概述 随着科技的不断进步&#xff0c;人工智能&#xff08;AI&#xff09;技术已经深入到各个领域。在变电站安全监控领域&#xff0c;引入AI视频监控智能分析系统&#xff0c;可以实现对站内环境、设备状态的实时监控与智能分析&#xff0c;从而提高变电站的安全运行…

找不到msvcr120.dll无法继续执行

windows&#xff08;新安装的系统&#xff09;安装mysql&#xff0c;报错MSVCR120.dll找不到 官方下载地址 https://www.microsoft.com/zh-CN/download/details.aspx?id40784&wd&eqid9eba4d380059694e00000004658ce260 安装上就好了

Linux —— 信号初识

Linux —— 信号初识 什么是信号测试几个信号signal函数函数原型参数说明返回值注意事项示例 后台程序前台转后台检测输入中断向量表 我们今天来继续学习Linux的内容&#xff0c;今天我们要了解的是Linux操作系统中的信号&#xff1a; 什么是信号 信号是操作系统内核与进程之…

Kubernetes的基本概念

目录 一.基本内容 1.定义 2.作用 二.特性 1.弹性伸缩 2.自我修复 3.服务发现和负载均衡 4.自动发布&#xff08;默认滚动发布模式&#xff09;和回滚 5.集中化配置管理和密钥管理 6.存储编排&#xff0c;支持外挂存储并对外挂存储资源进行编排 7.任务批处理运行 三…

二、使用插件一键安装HybirdCLR

预告 本专栏将介绍如何使用这个支持热更的AR开发插件&#xff0c;快速地开发AR应用。 插件简介 通过热更技术实现动态地加载AR场景&#xff0c;简化了AR开发流程&#xff0c;让用户可更多地关注Unity场景内容的制作。 热更方案 基于HybirdCLR HybridCLR是一个特性完整、零成…