25/4/9 算法笔记 DBGAN+强化学习+迁移学习实现青光眼图像去模糊1

整体实验介绍

实验主要是结合DBGAN对抗网络+强化学习增强+迁移学习增强实现青光眼图像去模糊。今天则是先完成了DBGAN板块模型的训练。

实验背景介绍

青光眼的主要特征有:

视盘形态与杯盘比CDR:青光眼患者主要表现为视杯扩大,盘沿变窄。

视网膜神经纤维RNFL:RNFL的厚度与完整性也是一个特征,青光眼患者可见局部或弥漫性变薄透光性增加。

OCT影像可量化RNFL厚度,正常值与年龄相关,青光眼患者常出现RNFL厚度低于年龄匹配标准值(如<5%分位为黄色预警,<1%为红色)

OCTA影像可显示盘周微血管密度降低,与RNFL变薄区域相关。

实验流程介绍

先整理得到的青光眼数据,青光眼的各个主要特征数据,之后训练多分类多分割模型(能更好的将关键区域分割,青光眼分级,用来辅助判断),然后迁移进DBGAN对抗微调,训练去模糊模型。

数据介绍:

首先我先介绍一下我有的数据

Annotations_Merged:合并的标注文件夹。(这是在一开始做的整理合并工作)

Images:原始图像文件夹。

Images_Cropped:裁剪后的图像文件夹。

Images_Square:调整为方形的图像文件夹。

Masks:掩膜文件夹,通常用于图像分割。

Masks_Cropped:裁剪后的掩膜文件夹。

Masks_Square:调整为方形的掩膜文件夹。

Semi-automatic-annotations:半自动标注文件夹。

data_index.json:数据索引文件,包含数据集的元数据。

index_errors.log:索引错误日志文件,记录索引构建过程中遇到的错误。

merged_labels.csv:合并的标签文件,包含图像的标签信息。(在一开始合并的工作生成的,这是把下面两个csv文件合并了)

origa_info.csv:包含图像信息的CSV文件。

OrigaList.csv:包含图像列表的CSV文件。

merged_labels.csv文件

  1. image_id:图像的唯一标识符。

  2. CDR:杯盘比(Cup-to-Disc Ratio),是青光眼诊断中的一个重要指标,用于评估视神经的健康状况。

  3. Ecc-Cup:视杯的偏心率,用于描述视杯的形状特征。

  4. Ecc-Disc:视盘的偏心率,用于描述视盘的形状特征。

  5. Glaucoma:是否为青光眼病例,0表示非青光眼,1表示青光眼。

  6. Eye:图像来自左眼(OS)还是右眼(OD)。

预训练模型介绍

一个是分类模型,一个是分割模型。

数据的验证和整理

实验代码的一开始都是在做一些数据的验证和整理

训练多任务多分类模型

此模型能够:

1.分类任务:判断图像是否显示青光眼特征。2.分割任务:定位和分割视盘和视杯区域。

数据加载模块 (ORIGADataset 类)

之后划分训练集验证集(8:2),接着使用数据增强技术(如随机旋转、水平翻转)来提高模型的泛化能力。

这里定义如何获取数据集中的一项数据——(根据索引获取图像和掩膜的路径。),方便后面数据的获取

之后我将图像和掩膜调整为统一尺寸,并将掩膜转换为二值掩膜。

模型构建模块 (MultiTaskModel 类)

定义了一个多任务学习模型,用于同时进行分类和分割任务。

使用 PyTorch 的预训练模型 fcn_resnet50 作为基础模型。

提取基础模型的编码器部分,用于特征提取。

定义分类器部分,将特征映射到两个类别(青光眼或非青光眼)。

训练流程模块 (train_model 函数)

设置参数,开始训练模型。

基于DBGAN的去模糊模型

代码实现了一个深度学习模型,用于从模糊的医学影像中恢复清晰图像。该模型基于生成对抗网络(GAN),包含生成器和判别器两个主要组件。生成器负责将模糊图像转换为清晰图像,而判别器则负责区分生成的图像和真实的清晰图像。通过对抗训练,生成器学习到如何生成更真实的清晰图像。


模型定义

生成器Generator

Generator:生成器采用U-Net架构,包含下采样、瓶颈层和上采样部分。下采样部分通过卷积和池化操作提取图像特征,瓶颈层进一步处理特征,上采样部分通过反卷积操作恢复图像尺寸。最终输出去模糊后的图像。

判别器

Discriminator:判别器采用PatchGAN架构,用于判断输入的图像是真实的还是生成的。它接收模糊图像和清晰图像(或生成图像)作为输入,输出判别结果。

数据预处理

生成模糊图像(作为判别器的输入)。

SafeBlur:自定义的模糊处理类,用于在数据增强时对图像进行高斯模糊。

DeblurDataset:自定义的数据集类,用于加载和预处理图像数据。它从JSON文件中读取数据索引,应用数据增强,并返回模糊图像和对应的清晰图像。

训练模块

DBGAN对抗训练

这里先训练了没加入强化学习的一个DBGAN。

下面是模型的检验

  1. PSNR (32.83 dB)​

    超过30 dB的医学影像处理基准线与顶级期刊《Medical Image Analysis》中青光眼图像增强研究(平均PSNR 31.2 dB)相比,提升约5%
  2. ​SSIM (0.8827)​

    达到眼科设备厂商标准(如蔡司眼底相机软件要求SSIM≥0.85)在血管分支处的结构相似性可达0.91,黄斑区域0.86

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

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

相关文章

智能复盘自动化系统搭建指南—基于DeepSeek API与Apple日历的整合实践

一、系统架构设计 本方案通过iOS快捷指令实现日历数据与AI分析的自动化交互&#xff0c;核心流程包含&#xff1a; 日历事件管理 创建每日循环的"AI复盘"日历事项实现当日备注信息的动态更新 数据处理模块时间日志标准化处理多维度数据特征提取 AI交互层对接DeepSeek…

01 位运算

12days 章节结构 00 算法前导课-编程基础&#xff08;自学的视频&#xff09; 01 位运算的奇巧淫技 02 查找与排序&#xff08;上&#xff09; 03 数组、查找与排序(下) 04 多维数组与矩阵 05 字符串专题 06 基本数学问题 06 递归、DFS、剪枝、回溯等问题 07 贪心策…

HDFS Full Block Report超限导致性能下降的原因分析

文章目录 前言发现问题失败的为什么是FBR块汇报频率的变化为什么FBR会反复失败HDFS性能下降导致Yarn负载变高的形式化分析理解线程理解IO Wait理解HDFS性能下降导致Yarn负载和使用率增高 引用 前言 我们的Yarn Cluster主要用来运行一批由Airflow定时调度的Spark Job&#xff0…

【Kubernetes基础--Pod深入理解】--查阅笔记2

深入理解Pod 为什么要有个Pod1. 容器协作与资源共享2. 简化调度和资源管理3. 设计模式支持 Pod 基本用法Pod 容器共享 VolumePod 的配置管理ConfigMap 概述创建 ConfigMap 资源对象在 Pod 中使用 ConfigMap使用 ConfigMap 的限制条件 为什么要有个Pod Pod 的引入并非技术冗余&…

Margin和Padding在WPF和CSS中的不同

CSS和WPF中 margin 与 padding 在方向上的规定基本一致&#xff0c;但在使用场景和一些细节上有所不同。 CSS - 方向规定&#xff1a; margin 和 padding 属性可以分别指定上、右、下、左四个方向的值。例如 margin:10px 20px 30px 40px; 表示上外边距为10px、右外边距为20…

gravity`(控制 View 内部内容的对齐方式)

文章目录 **1. 常用取值****示例** **2. layout_gravity&#xff08;控制 View 在父容器中的对齐方式&#xff09;****常用取值****示例** **3. gravity vs layout_gravity 对比****4. 注意事项****5. 总结** 作用对象&#xff1a;当前 View 的内部内容&#xff08;如 TextView…

Go:使用共享变量实现并发

竞态 在串行程序中&#xff0c;步骤执行顺序由程序逻辑决定&#xff1b;而在有多个 goroutine 的并发程序中&#xff0c;不同 goroutine 的事件先后顺序不确定&#xff0c;若无法确定两个事件先后&#xff0c;它们就是并发的。若一个函数在并发调用时能正确工作&#xff0c;称…

Vue3 SSR Serverless架构革命:弹性计算与量子加速

一、全维度Serverless SSR架构 1.1 蜂巢式弹性调度系统 1.2 冷启动时间优化表 优化策略Node.js冷启(ms)Deno冷启(ms)Bun冷启(ms)裸启动1800960420预编译二进制650380210内存快照预热22016090WASM实例池15011075量子状态预载453832 二、边缘渲染协议升级 2.1 流式SSR响应协议…

FPAG IP核调用小练习

一、调用步骤 1、打开Quartus 右上角搜索ROM&#xff0c;如图所示 2、点击后会弹出如图所示 其中文件路径需要选择你自己的 3、点击OK弹出如图所示 图中红色改为12与1024 4、然后一直点NEXT&#xff0c;直到下图 这里要选择后缀为 .mif的文件 5、用C语言生成 .mif文件 //…

Spring Cloud 服务间调用深度解析

前言 在构建微服务架构时&#xff0c;服务间的高效通信是至关重要的。Spring Cloud 提供了一套完整的解决方案来实现服务间的调用、负载均衡、服务发现等功能。本文将深入探讨 Spring Cloud 中服务之间的调用机制&#xff0c;并通过源码片段和 Mermaid 图表帮助读者更好地理解…

AF3 generate_chain_data_cache脚本解读

AlphaFold3 generate_chain_data_cache 脚本在源代码的scripts文件夹下。该脚本从指定目录中批量解析 mmCIF/PDB 文件的工具,并将每个链的基本信息(序列、分辨率、是否属于聚类等)提取并写入 JSON 文件,主要用于后续蛋白质建模、过滤或训练数据准备。 源代码: import ar…

vue项目打包部署到maven仓库

需要的资源文件&#xff0c;都放在根目录下&#xff1a; 1. versionInfo.js const fs require(fs) const path require(path) const mkdirp require(mkdirp) const spawn require(child_process).spawnconst packageObj require(./package.json) const versionNo packa…

MegaTTS3: 下一代高效语音合成技术,重塑AI语音的自然与个性化

在近期的发布中&#xff0c;浙江大学赵洲教授团队与字节跳动联合推出了革命性的第三代语音合成模型——MegaTTS3&#xff0c;该模型不仅在多个专业评测中展现了卓越的性能&#xff0c;还为AI语音的自然性和个性化开辟了新的篇章。 MegaTTS3技术亮点 零样本语音合成 MegaTTS3采用…

【教程】PyTorch多机多卡分布式训练的参数说明 | 附通用启动脚本

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 目录 torchrun 一、什么是 torchrun 二、torchrun 的核心参数讲解 三、torchrun 会自动设置的环境变量 四、torchrun 启动过程举例 机器 A&#…

计算机视觉——基于 Yolov8 目标检测与 OpenCV 光流实现目标追踪

1. 概述 目标检测&#xff08;Object Detection&#xff09;和目标追踪&#xff08;Object Tracking&#xff09;是计算机视觉中的两个关键技术&#xff0c;它们在多种实际应用场景中发挥着重要作用。 目标检测指的是在静态图像或视频帧中识别出特定类别的目标对象&#xff0…

MySQL——流程控制

一、IF条件语句 语法 IF condition THENstatements; ELSEIF condition THENstatements; ELSEstatements; END IF; 判断成绩等级 # 判断成绩等级 # 输入学生的编号,取出学生的第一门课&#xff0c;然后判断当前的课程的等级 drop procedure if exists p2; delimiter $$ crea…

C# + Python混合开发实战:优势互补构建高效应用

文章目录 前言&#x1f94f;一、典型应用场景1. 桌面应用智能化2. 服务端性能优化3. 自动化运维工具 二、四大技术实现方案方案1&#xff1a;进程调用&#xff08;推荐指数&#xff1a;★★★★☆&#xff09;方案2&#xff1a;嵌入Python解释器&#xff08;推荐指数&#xff1…

MLflow 入门

官方主页 MLflow | MLflow官方文档 MLflow: A Tool for Managing the Machine Learning Lifecycle | MLflow 0. 简介 MLflow 是一个开源平台&#xff0c;专门为了帮助机器学习的从业者和团队处理机器学习过程中的复杂性而设计。MLflow 关注机器学习项目的完整生命周期&#x…

【蓝桥杯选拔赛真题101】Scratch吐丝的蜘蛛 第十五届蓝桥杯scratch图形化编程 少儿编程创意编程选拔赛真题解析

目录 scratch吐丝的蜘蛛 一、题目要求 1、准备工作 2、功能实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 四、程序编写 五、考点分析 六、推荐资料 1、scratch资料 2、python资料 3、C++资料 scratch吐丝的蜘蛛 第十五届青少年蓝桥杯s…

智谱最新模型GLM4是如何练成的

写在前面 这篇博客将基于《ChatGLM: A Family of Large Language Models from GLM-130B to GLM-4 All Tools》,深入剖析 GLM-4 系列在**模型架构设计、预训练、后训练(对齐)、以及关键技术创新(如长上下文处理、Agent 能力构建)**等环节的实现逻辑与设计考量,带你全面了…