医学图像的图像处理、分割、分类和定位-1

一、说明

        本报告全面探讨了应用于医学图像的图像处理和分类技术。开展了四项不同的任务来展示这些方法的多功能性和有效性。任务 1 涉及读取、写入和显示 PNG、JPG 和 DICOM 图像。任务 2 涉及基于定向变化的多类图像分类。此外,我们在任务 3 中包括了胸部 X 光图像的性别分类(男性/女性的 2 类分类),并在任务 4 中通过回归分析从 X 射线图像中估计了年龄。任务 5 侧重于胸部 X 射线图像中的肺区域分割,任务 6 将隔离扩展到四个不同的区域,任务 7 深入研究医学图像中的物体定位。总之,这些任务提供了机器学习在医学图像分析中的各种应用的整体视图。总之,这些任务提供了机器学习在医学图像分析中的各种应用的整体视图。这是我在医学影像方面的学术任务的一部分。

       内容提要:

  • 介绍。
  • 任务1:医学图像的加载、写入和显示。
  • 任务 2:基于方向方向的多类图像分类。
  • 任务 3:使用卷积神经网络对胸部 X 射线图像进行性别分类。
  • 任务 4:使用深度学习从胸部 X 射线图像估计年龄。
  • 任务 5:从胸部 X 射线图像中分割肺区域。
  • 任务 6:分割 2- 胸部 X 射线图像的肺面积外(肺面积:255/心脏:85/肺外:170/体外:0)。
  • 任务 7:胸部 X 射线图像中的物体定位方法。

二、介绍 

        由于机器学习技术的集成,医学图像处理和分类取得了重大进展。在这项研究中,我们深入研究了一系列任务,旨在突出图像处理和分类的综合管道。任务范围从简单的图像加载、写入和显示到更复杂的分类场景。此外,我们还扩大了我们的研究范围,在任务 3 中包括胸部 X 射线图像的性别分类(男性/女性的 2 类分类),并在任务 4 中通过回归分析从 X 射线图像进行年龄估计。这些补充扩大了我们的研究范围,并强调了卷积神经网络(CNN)模型在医学图像分析领域的广泛应用。任务 5 侧重于胸部 X 射线图像中的肺区域分割,利用基于颜色的分割技术提取感兴趣的解剖区域。任务 6 将隔离扩展到医学图像中的四个不同区域,包括肺区、心脏区、肺外区和体外。任务 7 使用基于 YOLO 的对象检测深入研究医学图像中的对象定位。这项任务突出了关键结构精确定位的潜力,使疾病检测和治疗计划等应用成为可能。

三、任务1:医学图像的加载、写入和显示

  • 数据加载:PNG和JPG格式的图像是从指定文件夹中收集的。此外,DICOM 图像来源于其各自的目录。开发了 Cus-tom 函数来读取这些图像并将其加载到环境中。
  • 图像预处理:对不同格式的图像进行处理,以促进均匀性。图像大小调整为一致的尺寸,以实现无缝比较和显示。对于 DICOM 图像,执行了额外的步骤,将像素数据转换为受支持的 8 位无符号整数数组。
  • 显示和可视化:加载和预处理的图像使用IPython显示功能显示,可以目视检查和比较医学图像。
  • 结果与观察:加载、预处理和显示不同格式的医学图像的综合结果展示了图像与工作环境的成功集成。从 PNG、JPG 到 DICOM 图像的无缝过渡突出了实现的功能对不同图像类型的适应性。

四、任务2:基于方向方向的多类图像分类

        任务 2 通过将胸部 X 射线图像分类为多个方向(上、下、左和右)来介绍图像分类的概念。该任务涉及数据加载、预处理、构建 CNN 模型、根据数据对其进行训练以及评估其性能。这项任务强调了多类分类任务的复杂性和卷积神经网络的必要性。

4.1. 数据收集和预处理

        对于这项任务,使用了分类为不同方向的胸部 X 射线图像数据集。收集图像并用各自的方向进行标记。在模型开发之前,图像经过了严格的预处理阶段。

  • 数据加载:数据集是使用自定义函数加载的,这些函数从指定目录中读取图像文件及其关联标签。这些图像随后被调整为一个通用尺寸,以确保训练和评估期间的一致性。
  • 数据增强: 为了平衡类不平衡并增强模型的泛化能力,应用了数据增强技术。采用旋转、翻转和缩放等技术来人为地扩展数据集。

4.2. 模型架构和训练

        模型架构经过精心设计,以适应多类分类任务。构建了卷积神经网络(CNN),由多个卷积层和池化层组成,然后是全连接层。ReLU 激活函数用于隐藏层,而 softmax 激活用于输出层。

4.3.  训练

        该模型使用分类交叉熵损失函数进行训练。在训练过程中,使用 Adam 优化器更新模型的权重,该优化器根据梯度大小调整学习率。训练过程包括遍历成批的图像,通过网络向前传递它们,计算损失,以及向后传播以更新权重。

4.4. 验证和提前停止

        为了防止过度拟合,使用了验证数据集。对模型在验证集上的性能进行监控,如果没有观察到改进,则提前停止训练,这表现为验证损失没有减少。

4.5. 结果和评估

        训练后,在单独的测试数据集上评估模型的性能。计算准确率、精确度、召回率和 F1 分数等指标来评估模型的分类性能。生成混淆矩阵以可视化模型在每个类中的性能。结果表明,该模型能够根据胸部X射线图像的直接方向对胸部X射线图像进行准确分类。在对模型进行定义数量的 epoch 训练后,我们获得了以下结果:

        测试精度:0.92 精度:1.00 召回率:1.00

达到 0.92 的测试精度表明该模型能够根据其方向正确分类胸部 X 射线图像。此外,1.00 的精确率和召回率值表明该模型擅长对至少一个类别进行准确预测,确保低误报和漏报。

精度和召回率值为 1.00 可能表明您的模型在给定数据集上表现异常出色,但也可能引起一些问题并需要进一步调查。原因如下:

        精度 1.00:精度为 1.00 表示模型做出的所有正预测都是正确的。换句话说,没有误报。虽然这是一个积极的结果,但它可能表明该模型在做出积极的预测时过于谨慎。验证模型是否未遗漏任何真正的阳性病例非常重要。

        召回 1.00:召回率为 1.00 意味着模型已正确识别正类的所有实例。这是一个理想的结果,但它也可能表明模型过度拟合训练数据或记忆特定模式。确保模型的性能在不同的数据集或看不见的数据中保持一致至关重要。可以使用以下方法改进模型:验证新数据、检查类不平衡、交叉验证、微调等。

五、任务 3:使用卷积神经网络从胸部 X 射线图像进行性别分类

        本任务探讨了深度学习技术在胸部 X 射线图像性别分类任务中的应用。该研究提出了一个全面的管道,包括数据准备、模型构建、训练和评估。主要目标是将胸部 X 射线图像分为两类:男性和女性。CNN模型取得了可喜的结果,展示了机器学习在医学图像分析中的潜力。

5.1. 数据准备:

该数据集由胸部 X 射线图像组成,分为训练集和测试集。图像大小调整为 224x224 像素的标准尺寸,并进行归一化以实现模型兼容性。从文本文件加载标签信息,并应用独热编码来表示性别类别。

5.2. 模型架构:

我们的模型架构建立在卷积神经网络 (CNN) 之上,CNN 以其在视觉分类任务中的有效性而闻名。它由三个卷积层组成,具有最大池化功能,用于从 X 射线图像中提取相关特征。采用具有ReLU激活和丢弃正则化的全连接层进行分类。最后一层使用 softmax 激活进行性别预测。

5.3. 模型训练:

该模型使用亚当优化器和分类交叉熵损失函数进行训练。训练在训练数据集上进行了 15 个 epoch。此阶段的重点是学习区分胸部 X 线图像中的男性和女性模式。

5.4. 模型评估:

训练后,在测试数据集上对模型的性能进行了细致的评估,结果如下。

5.5. 结果:

分类报告: 分类报告提供了两个类别(女性和男性)的详细指标:

分类报告提供了两个类别(女性和男性)的详细指标:

女性:

精度:0.74 召回率:0.81 F1 得分:0.77 支撑:42

雄:

精度:0.83 召回率:0.76 F1 得分:0.80 支撑:51 精度:0.78

宏平均值(精确率/召回率/F1 分数):0.78

加权平均值(精确率/召回率/F1 分数):0.79

这些指标表明模型的性能平衡,总体准确率为 78

受试者工作特征 (ROC) 曲线:

ROC 曲线区域量化了模型区分类别的能力,如下所示:

女性的ROC曲线面积:0.88

男性的ROC曲线面积:0.88

女性和男性类别的ROC曲线面积均为0.88,表明该模型表现出强大的判别能力

实验结果表明,基于胸部X线图像的性别分类卷积神经网络(CNN)模型取得了令人满意的性能。女性和男性类别的准确率、召回率和 F1 分数指标都相当高,总体准确率为 78。

六、任务 4:使用深度学习从胸部 X 射线图像估计年龄:

        该任务的重点是利用深度学习技术从胸部 X 射线图像中估计年龄的任务。根据医学图像估算年龄是医疗保健领域的一项重要应用。在这项研究中,我们提出了一个全面的管道,涉及数据加载和预处理、模型构建、训练和评估。主要目的是根据胸部 X 射线图像预测患者的年龄。

6.1. 简介:

        医学图像的年龄估计在各种医疗保健应用中具有实用性。本研究解决了使用胸部 X 线成像进行年龄预测的问题,这是一个有可能改善患者护理和诊断的领域。

6.2. 数据准备:

        医学图像的年龄估计在各种医疗保健应用中具有实用性。本研究解决了使用胸部 X 线成像进行年龄预测的问题,这是一个有可能改善患者护理和诊断的领域。

6.3. 模型架构:

        我们采用深度卷积神经网络 (CNN) 架构进行年龄估计。该模型的核心基于 ResNet-50 架构,在 ImageNet 上进行了预训练。使用全局平均池化层和密集层来预测年龄作为回归任务。

6.4. 模型训练:

        该模型采用Adam优化器和均方误差损失函数编译,适用于回归任务。它在训练数据集上训练了 10 个 epoch。或者,应用提前停止以防止过拟合。

6.5. 模型评估:

        使用验证数据进行模型评估,并计算均方误差(MSE)损失。该指标量化了该模型基于胸部 X 射线图像预测年龄的准确性。

6.6. 结果 

培训进度:

        在十个训练周期中,模型的性能不断提高,均方误差 (MSE) 损失的减少证明了这一点:

        在初始时期(纪元 1/10),模型开始时的训练损失相对较高,约为 2898.96,验证损失约为 2692.35。

        随后的 epoch 显示训练和验证损失持续减少,表明模型能够从数据中学习和泛化。在训练结束时,该模型的训练损失约为 243.32,验证损失约为 229.69。

        验证损失: 以 MSE 衡量的验证损失是模型在年龄估计中准确性的关键指标。训练结束时大约229.69的验证损失表明该模型能够根据胸部X射线图像做出相当精确的年龄预测。

        在整个训练过程中损失值的降低表明了该模型对年龄估计任务的有效学习和适应。

        对于每张图像,都会打印相应的预测年龄以进行随机评估:

未来方向:

        虽然该模型显示出有希望的结果,但进一步的重新搜索和微调可以提高其性能。潜在的改进途径包括探索不同的架构、超参数调整和数据增强技术,以提高模型在年龄估计中的鲁棒性和准确性。

七、任务 5:从胸部 X 射线图像中分割肺区域

7.1. 数据加载和预处理:

        该代码有效地处理了胸部 X 射线图像及其相应肺区域掩模的加载和预处理。实施了强大的路径格式,以确保跨平台兼容性,这对于协作项目至关重要。将图像大小适当调整为一致 (256, 256) 像素尺寸,并归一化为 [0, 1] 范围内的值。这种标准化是深度学习图像预处理的常见做法。

7.2. 模型架构:

        该代码实现了 U-Net 架构,这是医学图像分割任务中一种成熟且广泛使用的方法。该模型由编码器和解码器组成,具有跳跃连接,以保留整个网络的空间信息。对卷积层使用“relu”激活,对最终输出层使用“sigmoid”激活,符合二进制分割问题的最佳实践。

7.3. 训练:

        模型训练过程经过适当配置,包括优化器(Adam)和损失函数(二元交叉熵)的选择。训练循环运行 10 个 epoch,批次大小为 16,其中 20% 的数据被分配用于验证,确保在训练时间和模型性能之间进行合理的权衡。

7.4. 测试和可视化:

        该代码演示了模型对测试数据集进行预测的能力。可视化是模型评估的重要组成部分,我的方法有效地利用 Matplotlib 在地面实况掩码和预测掩码旁边显示随机测试图像。

        实现的肺区域分割模型在测试数据集上的准确率为 0.70。虽然该模型在识别胸部 X 射线图像中的肺部区域方面提供了相当高的准确性,但值得注意的是,预测的掩模在肺部区域内似乎是浅灰色的,这表明在准确描绘肺边界方面还有进一步改进的余地。为了解决这个问题,考虑了几种策略,包括使用更复杂的U-Net架构进行体验,应用数据增强技术,使用加权损失函数来解决类不平衡问题,实现学习速率调度,以及探索后处理方法。这些努力旨在提高模型的分割精度,并确保更精确地识别胸部 X 射线图像中的肺部区域。需要进一步的优化和微调,以达到肺区域分割所需的准确性水平。

7.5. 改进建议:

        为了进一步增强模型的泛化性,请考虑实施数据增强技术,例如旋转、翻转和亮度调整。这些技术可以提高对看不见的数据的性能。在训练过程中保存模型检查点的合并机制。这种做法可确保不会丢失宝贵的训练进度,从而轻松恢复模型或进行微调。在医学图像分析的背景下,使用适当的指标(如骰子系数、灵敏度、特异性和 ROC AUC)评估模型至关重要。这些指标提供了对模型性能的全面评估。如果数据集中存在类不平衡,则解决类不平衡问题至关重要。探索加权损失函数或数据重采样等技术,以减轻类不平衡对训练的影响。

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

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

相关文章

java数据结构与算法刷题-----LeetCode977. 有序数组的平方

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 时间复杂度 空间复杂度 O(n * l o g 2 n log_2{n} log2​…

PyTorch 中的距离函数深度解析:掌握向量间的距离和相似度计算

目录 Pytorch中Distance functions详解 pairwise_distance 用途 用法 参数 数学理论公式 示例代码 cosine_similarity 用途 用法 参数 数学理论 示例代码 输出结果 pdist 用途 用法 参数 数学理论 示例代码 总结 Pytorch中Distance functions详解 pair…

JVM工作原理与实战(十九):运行时数据区-方法区

专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、运行时数据区 二、方法区 1.方法区介绍 2.方法区在Java虚拟机的实现 3.类的元信息 4.运行时常量池 5.字符串常量池 6.静态变量的存储 总结 前言 JVM作为Java程序的运行环境…

App分发测试平台:改变应用开发的游戏规则

App分发测试平台是一个提供应用开发者上传、测试、分享和发布应用的在线服务平台。它为开发者提供了一个高效的测试环境,并为用户提供了一个方便的应用获取渠道。其中,测试环节尤为关键,因为它能够确保应用在上线之前达到预期的功能和性能。 …

问题:Feem无法发送信息OR无法连接(手机端无法发给电脑端)

目录 前言 问题分析 资源、链接 其他问题 前言 需要在小米手机、华为平板、Dell电脑之间传输文件,试过安装破解的华为电脑管家、小米的MIUI文件传输等,均无果。(小米“远程管理”ftp传输倒是可以,但速度太慢了,且…

Java JVM 堆、栈、方法区详解

目录 1. 栈 2. 堆 3. 方法区 4. 本地方法栈 5. 程序计数器 首先来看一下JVM运行时数据区有哪些。 1. 栈 在介绍JVM栈之前,先了解一下 栈帧 概念。 栈帧:一个栈帧随着一个方法的调用开始而创建,这个方法调用完成而销毁。栈帧内存放者方…

ROS学习笔记8——实现ROS通信时的常用命令

机器人系统中启动的节点少则几个,多则十几个、几十个,不同的节点名称各异,通信时使用话题、服务、消息、参数等等都各不相同,一个显而易见的问题是: 当需要自定义节点和其他某个已经存在的节点通信时,如何获取对方的话…

gitgud.io+Sapphire注册账号教程

gitgud.io是一个仓库,地址 https://gitgud.io/,点进去之后会看到注册页面。 意思是需要通过注册这个Sapphire账户来登录。点击右边的Sapphire,就跳转到Sapphire的登陆页面,点击创建新账号,就进入注册页面。&#xff0…

SpiderFlow爬虫平台漏洞利用分析(CVE-2024-0195)

1. 漏洞介绍 SpiderFlow爬虫平台项目中spider-flow-web\src\main\java\org\spiderflow\controller\FunctionController.java文件的FunctionService.saveFunction函数调用了saveFunction函数,该调用了自定义函数validScript,该函数中用户能够控制 functi…

Spring | Spring中的Bean--下

Spring中的Bean: 4.Bean的生命周期5.Bean的配装配式 ( 添加Bean到IOC容器的方式 依赖注入的方式 )5.1 基于XML的配置5.2 基于Annotation (注解) 的装配 (更常用)5.3 自动装配 4.Bean的生命周期 Spring容器可以管理 singleton作用域的Bean的生命周期,在此…

go语言(七)----slice的声明方式

1、声明方式一 //声明一个slice1是一个切片,但是并没有给slice分配空间var slice1 []intslice1 make([]int,3)2、声明方式二 声明一个slice切片,同时给slice分配空间,3个空间,初始化值是0var slice1 []int make([]int,3)3、声…

ICCV2023 | PTUnifier+:通过Soft Prompts(软提示)统一医学视觉语言预训练

论文标题:Towards Unifying Medical Vision-and-Language Pre-training via Soft Prompts 代码:https://github.com/zhjohnchan/ptunifier Fusion-encoder type和Dual-encoder type。前者在多模态任务中具有优势,因为模态之间有充分的相互…

从临床和科研场景分析ChatGPT在医疗健康领域的应用可行性

2023年4月发表在Journal Medical Systems的文献《Evaluating the Feasibility of ChatGPT in Healthcare: An Analysis of Multiple Clinical and Research Scenarios》(评估 ChatGPT 在医疗健康领域的可行性:对多种临床和研究场景的分析)介绍…

IPv6自动隧道---6to4中继

6to4中继 普通IPv6网络需要与6to4网络通过IPv4网络互通,这可以通过6to4中继路由器方式实现。所谓6to4中继,就是通过6to4隧道转发的IPv6报文的目的地址不是6to4地址,但转发的下一跳是6to4地址,该下一跳为路由器我们称之为6to4中继。隧道的IPv4目的地址依然从下一跳的6to4地…

PPT 编辑模式滚动页面不居中

PPT 编辑模式滚动页面不居中 目标:编辑模式下适应窗口大小、切换页面居中显示 调整视图大小,编辑模式通过Ctrl 鼠标滚轮 或 在视图菜单中点击适应窗口大小。 2. 翻页异常,调整视图大小后,PPT翻页但内容不居中或滚动&#xff0c…

『MySQL快速上手』-⑩-索引特性

文章目录 1.索引的作用2.索引的理解建立测试表插入多条记录查看结果 2.1 MySQL与磁盘交互的基本单位2.1 为何IO交互要是 Page2.3 理解单个Page2.4 理解多个Page2.5 页目录2.6 单页情况2.7 多页情况2.8 B vs B2.9 聚簇索引 vs 非聚簇索引非聚簇索引聚簇索引 3.索引操作3.1 创建主…

pytest + allure(windows)安装

背景 软硬件环境: windows11,已安装anaconda,python,pycharm用途:使用pytest allure 生成报告allure 依赖java,点击查看java安装教程 allure 下载与安装 从 allure下载网址下载最新版本.zip文件 放在自…

基于YOLOv8深度学习的葡萄簇目标检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

【llm 微调code-llama 训练自己的数据集 一个小案例】

这也是一个通用的方案,使用peft微调LLM。 准备自己的数据集 根据情况改就行了,jsonl格式,三个字段:context, answer, question import pandas as pd import random import jsondata pd.read_csv(dataset.csv) train_data data…

pyspark 笔记:窗口函数window

窗口函数相关的概念和基本规范可以见:pyspark笔记:over-CSDN博客 1 创建Pyspark dataFrame from pyspark.sql.window import Window import pyspark.sql.functions as F employee_salary [("Ali", "Sales", 8000),("Bob&qu…