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

发布于:2025-04-10 ⋅ 阅读:(32) ⋅ 点赞:(0)

整体实验介绍

实验主要是结合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