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.mzph.cn/news/834705.shtml

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

相关文章

力扣HOT100 - 155. 最小栈

解题思路&#xff1a; 辅助栈 class MinStack {private Stack<Integer> stack;private Stack<Integer> min_stack;public MinStack() {stack new Stack<>();min_stack new Stack<>();}public void push(int val) {stack.push(val);if (min_stack.i…

LeetCode 404.左叶子之和

LeetCode 404.左叶子之和 1、题目 题目链接&#xff1a;404. 左叶子之和 给定二叉树的根节点 root &#xff0c;返回所有左叶子之和。 示例 1&#xff1a; 输入: root [3,9,20,null,null,15,7] 输出: 24 解释: 在这个二叉树中&#xff0c;有两个左叶子&#xff0c;分别…

SaToken框架实现在Rpc上下文的login处理逻辑

最近在工作中遇到一个需求&#xff0c;需要在项目A中实现一个rpc接口供其他项目调用&#xff0c;接口返回登录token&#xff0c;从而实现其他项目的用户能免密登录到项目A。 项目A是用了SaToken来做的鉴权&#xff0c;原本我的打算是直接在rpc中调用StpUtil.login()方法来实现登…

在Flask中使用Celery完成异步和定时任务(Flask、Celery、Redis)

编程目标 通过使用Flask和Celery&#xff0c;实现一个简单的Web应用程序&#xff0c;能够接收HTTP POST请求&#xff0c;并异步发送电子邮件。 说明 使用Flask创建一个简单的Web应用程序&#xff0c;包含一个HTTP POST路由&#xff0c;用于接收发送电子邮件的请求。使用Cele…

基于Spring Boot的酒店管理系统设计与实现

基于Spring Boot的酒店管理系统设计与实现 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea 系统部分展示 系统首页界面图&#xff0c;在系统首页可以查看首页…

java io包

InputStream InputStream 是 Java I/O 中所有输入流的抽象基类&#xff0c;它定义了读取字节流的基本方法。InputStream 类提供了许多子类&#xff0c;用于从不同的数据源读取数据&#xff0c;如文件、网络连接、内存等。 InputStream 提供了以下常用的方法&#xff1a; int…

【数学建模】天然肠衣搭配问题衍生问题/线性规划限制条件建立问题

线性规划限制条件建立问题 前景回顾/提出问题回顾1回顾2/问题提出解决前提 解决方法坐标轴(区间)法总结 前景回顾/提出问题 回顾1 首先回顾一下DVD在线租赁问题 在 question2中&#xff0c;需要保证每个人都不会收到自己不喜欢的DVD&#xff0c;即客户在线订单数为0时候&…

umi6.x + react + antd的项目增加403(无权限页面拦截),404,错误处理页面

首先在src/pages下创建403&#xff0c;404&#xff0c;ErrorBoundary 403 import { Button, Result } from antd; import { history } from umijs/max;const UnAccessible () > (<Resultstatus"403"title"403"subTitle"抱歉&#xff0c;您无权…

HarmonyOS开发之ArkTS使用:新建活动页面

目录 目录 引言 关于ArkTS 开发环境准备 新建项目 新建活动页面 编写ArkTS代码 注册页面 运行应用 最后 引言 随着HarmonyOS&#xff08;鸿蒙操作系统&#xff09;的不断发展&#xff0c;越来越多的前端开发者投入到这个全新的生态系统中。而在HarmonyOS的开发中&…

线上副业新选择:宅家工作,4个项目助力增收!

在这个繁华世界&#xff0c;财富与智慧并驾齐驱。越来越多的人意识到&#xff0c;除了主业外&#xff0c;开拓一份副业是实现财富增长的重要途径。在此&#xff0c;我为大家精心挑选了几个值得一试的网上赚钱副业。 1&#xff0c;参与网络调查与问卷填写 随着大数据时代的到来…

kkkkkkkkkkkk564

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 人工智能与机器学习 &#x1f4dd;人工智能相关概念☞什么是人工智能、机器学习、深度学习☞人工智能发…

YOLOv8 Tensorrt Python/C++部署详解

按照大佬的方法进行部署&#xff0c;但是中间出现了很多问题&#xff0c;这里进行一下总结。 YOLOv8 Tensorrt Python/C部署教程_yolo 安装tensorrt-CSDN博客https://blog.csdn.net/weixin_45747759/article/details/130341118 Monday-Leo/Yolov5_Tensorrt_Win10: A simple i…

Kafka从0到消费者开发

安装ZK Index of /zookeeper/zookeeper-3.9.2 下载安装包 一定要下载-bin的&#xff0c;不带bin的是源码&#xff0c;没有编译的&#xff0c;无法执行。-bin的才可以执行。 解压 tar -zxvf apache-zookeeper-3.9.2-bin.tar.gz 备份配置 cp zoo_sample.cfg zoo_sample.cfg-b…

物流集成商巨头-员工薪酬PK:今天国际、音飞存储,诺力股份

语 大家好&#xff0c;我是智能仓储物流技术研习社的社长&#xff0c;老K。专注分享智能仓储物流技术、智能制造等内容。 新书《智能物流系统构成与技术实践》 以下内容为根据上市财报和公开数据整理&#xff0c;若有偏差&#xff0c;请联系小编修改。注意&#xff1a;各公司员…

ZYNQ实验--裸机程序固化

参考资料 正点原子《领航者 ZYNQ 之嵌入式 SDK 开发指南》详细的配置资料中都有介绍&#xff0c;本文只针对个人实验需求进行简要说明 固化流程 调试阶段是通过 JTAG 接口将 FPGA 配置文件和应用程序下载到 ZYNQ 器件中。但在实际应用中需要程序在上电或者复位时让程序自动运…

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

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

迷宫中离入口最近的出口

题目链接 迷宫中离入口最近的出口 题目描述 注意点 maze[i][j] 要么是 ‘.’ &#xff0c;要么是 ‘’entrance.length 2entrance 一定是空格子出口的含义是 maze 边界上的空格子entrance格子不算出口 解答思路 广度优先遍历找到走i步时所能到达的所有节点位置&#xff0…

认识 Pixel 8a:这款 Google AI 手机拥有无与伦比的价值。

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

html+css-Day1(盒子模型)

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

数据结构——希尔排序

基本思想&#xff1a; 希尔排序法又称缩小增量法。希尔排序法的基本思想是&#xff1a;先选定一个整数&#xff0c;把待排序文件中所有记录分成个组&#xff0c;所有距离为的记录分在同一组内&#xff0c;并对每一组内的记录进行排序。然后&#xff0c;取&#xff0c;重复上述…