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.mfbz.cn/a/608640.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32 ADC学习

ADC Analog-to-Digital Converter,即模拟/数字转换器 常见ADC类型 分辨率和采样速度相互矛盾,分辨率越高,采样速率越低。 ADC的特性参数 分辨率:表示ADC能辨别的最小模拟量,用二进制位数表示,比如8,10…

OpenAI 正在开发一种可以防止版权诉讼的工具

OpenAI 正在开发一种名为 Media Manager 的工具,该工具将使内容创建者和所有者能够确定他们是否愿意将自己的内容用于 ML 研究和 AI 模型训练。 Media Manager 将做什么? 明年推出的 Media Manager 将使内容创作者和所有者能够更好地控制他们的工作是否…

C语言初阶(6) - 指针

目录 1.指针是什么? 2. 指针和指针类型 2.1 指针 - 整数 2.2 指针的解引用 3. 野指针 3.1 野指针成因 3.2 如何规避野指针 4. 常量指针和指针常量 (const) 4.1.常量指针 4.2.指针常量 5. 指针运算 5.1 指针-整数 5.2 指针-指针 5.3指针的关系运算 6.…

Vitis HLS 学习笔记--理解串流Stream(2)

目录 1. 简介 2. 极简的对比 3. 硬件模块的多次触发 4. 进一步探讨 do-while 5. 总结 1. 简介 在这篇博文中《Vitis HLS 学习笔记--AXI_STREAM_TO_MASTER-CSDN博客》,我分享了关于 AXI Stream 接口的实际应用案例。然而,尽管文章中提供了代码示例&…

如何向Linux内核提交开源补丁?

2021年,我曾经在openEuler社区上看到一项改进Linux内核工具的需求,因此参与过Linux内核社区的开源贡献。贡献开源社区的流程都可以在内核社区文档中找到,但是,单独学习需要一个较长的过程,新手难以入门,因此…

分享四种免费获取SSL的方式

SSL证书目前需要部署安装的网站很多,主要还是基于国内目前对证书的需求度在不断的升高,网站多了、服务器多了之后。网络安全问题就成为了大家不得不面对的一个重要的问题了。SSL证书的作用有很多,这里就不一一详述了,本期作品主要…

如何在线阅读Linux内核源码?

开源社区有一句名言:Talk is cheap, show me your code。阅读源代码是学习Linux操作系统的必经之路。但是,Linux内核的代码量超过3000万行,工程包非常大,直接下载耗时较长,这就需要使用一些在线阅读的技巧。 方式1&am…

【深度学习】【Lora训练0】StabelDiffusion,Lora训练,kohya_ss训练

文章目录 环境数据自动标注kohya_ss BLIP2kohya_ss WD14 后续 资源: (1)训练ui kohya_ss: https://github.com/bmaltais/kohya_ss (2)kohya_ss 的docker 其他docker https://github.com/ashleykleynhans…

韩顺平0基础学Java——第7天

p110-p154 控制结构(第四章) 多分支 if-elseif-else import java.util.Scanner; public class day7{public static void main(String[] args) {Scanner myscanner new Scanner(System.in);System.out.println("input your score?");int s…

Word表格标题间距大修改环绕为无仍无法解决

1.选中表格,右键选择【表格属性】 2.选择【环绕】,此时【定位】可以被启用(如下),点击进入窗口 3.修改参数和下面一模一样 注意:【垂直】那里的修改方式是先选段落,后在位置输入0

【linux】主分区,扩展分区,逻辑分区,动态分区,引导分区,标准分区

目录 主分区,扩展分区,逻辑分区 主分区和引导分区 主分区,扩展分区,逻辑分区(标准分区) 硬盘一般划分为一个“主分区”和“扩展分区”,然后在扩展分区上再分成数个逻辑分区。 磁盘主分区扩展…

html+css-Day1(盒子模型)

一、常用属性 1、字体设置font "line-height" 是 CSS 中的一个属性,用于设置文本行之间的距离,也就是行间距。它影响着段落、行内元素或者任何包含文本的元素的可读性。"line-height" 可以设置为数字、长度单位(如 px、e…

现货黄金流程到何种程度?现货黄金在金融产品中的占比是多少?

踏入2024年以来,受美联储降息以及地缘局势紧张的影响,美元受压,避险情绪高涨,众多因素影响下黄金价格出现了强势的上涨,屡创历史新高。在上涨如此强劲的背景下,投资者希望通过黄金投资来实现资产增值。市场…

力扣爆刷第135天之数组五连刷(双指针快慢指针滑动窗口)

力扣爆刷第135天之数组五连刷(双指针快慢指针滑动窗口) 文章目录 力扣爆刷第135天之数组五连刷(双指针快慢指针滑动窗口)一、704. 二分查找二、27. 移除元素三、977. 有序数组的平方四、209. 长度最小的子数组五、59. 螺旋矩阵 II…

Adversarial Synthesis of Human Pose From Text # 论文阅读

URL https://arxiv.org/pdf/2005.00340 TD;DR 20 年 5 月来自高校的一篇论文,任务是用 GAN 生成 pose,目前 7 引用。 Model & Method 输入的是描述动作的 text,通过 text encoder(本文用的是叫做 fastText 的方法&#…

Kafka应用Demo:指派分区订阅消息消费

环境准备 Kafka环境搭建和生产者样例代码与《Kafka应用Demo:按主题订阅消费消息》相同。 消费者代码样例 public class KafkaConsumerService {private static final Logger LOGGER LoggerFactory.getLogger(KafkaConsumerService.class);private static final S…

word图片水印

一、word中旧水印如何删除 打开word模板,想要删除旧水印,如下图所示操作,但是旧水印删除不掉。 以为上传新水印图片会替换掉旧水印,结果显示了2个水印,要怎么删除呢? 如下截图所示,双击打开页…

vue+element的表格(el-table)排班情况表(2024-05-09)

vueelement的表格&#xff08;el-table&#xff09;排班情况&#xff0c;增删查改等简单功能 代码&#xff1a; <template><!-- 表格 --><div class"sedules"><el-header><el-date-pickerv-model"monthValue2"type"month…

YOLOv8网络结构介绍

将按照YOLOv8目标检测任务、实例分割任务、关键点检测任务以及旋转目标检测任务的顺序来介绍&#xff0c;主要内容也是在目标检测任务中介绍&#xff0c;其他任务也只是Head层不相同。 1.YOLOv8_det网络结构 首先&#xff0c;YOLOv8网络分成了三部分&#xff0c;分别是主干网络…

制鞋5G智能工厂数字孪生可视化平台,推进行业数字化转型

制鞋5G智能工厂数字孪生可视化平台&#xff0c;推进行业数字化转型。随着科技的飞速发展&#xff0c;5G技术与智能制造的结合正成为推动制鞋行业数字化转型的重要力量。制鞋5G智能工厂数字孪生可视化平台&#xff0c;不仅提高了生产效率&#xff0c;还优化了资源配置&#xff0…
最新文章