首页
/ Surgical-Image-Restoration项目数据集准备指南

Surgical-Image-Restoration项目数据集准备指南

2025-06-19 02:11:30作者:姚月梅Lane

前言

在医学图像处理领域,高质量的数据集对于训练优秀的图像恢复模型至关重要。本文将详细介绍Surgical-Image-Restoration项目所需数据集的准备工作,包括数据存储格式选择、常用数据集获取与处理方式等,帮助研究人员快速搭建实验环境。

数据存储格式选择

项目支持三种数据存储格式,各有优缺点:

1. 直接硬盘存储

特点

  • 原始图像/视频帧直接存储在硬盘上
  • 实现简单,无需额外处理
  • 适合小规模数据集或测试阶段

配置示例

type: PairedImageDataset
dataroot_gt: datasets/DIV2K/DIV2K_train_HR_sub
dataroot_lq: datasets/DIV2K/DIV2K_train_LR_bicubic/X4_sub
io_backend:
  type: disk

2. LMDB格式

优势

  • 显著加速训练时的IO和解压缩速度
  • 特别适合大规模数据集
  • 减少小文件数量,提高存储效率

实现原理: LMDB(Lightning Memory-Mapped Database)是一种基于内存映射的键值存储数据库,通过将整个数据集映射到内存地址空间,避免了频繁的文件系统操作。

性能优化建议

  1. 确保机器有足够内存缓存整个LMDB数据集
  2. 首次使用时预缓存数据:cat data.mdb > /dev/null
  3. 监控系统缓存使用情况:free -h

LMDB文件结构

数据集名称.lmdb/
├── data.mdb      # 实际数据存储
├── lock.mdb      # 锁文件
├── meta_info.txt # 元信息文件

3. Memcached

适用场景

  • 集群环境
  • 需要分布式缓存的情况

配置要求

  • 需预先安装配置memcached服务
  • 需要指定服务器列表和客户端配置

医学图像超分辨率数据集准备

DIV2K数据集处理

处理流程

  1. 数据获取

    • 从官方网站下载原始DIV2K数据集
    • 包含800张训练图像和100张验证图像,分辨率均为2K
  2. 子图像裁剪

    python scripts/data_preparation/extract_subimages.py
    
    • 将大图裁剪为480x480的子图
    • 训练时再从子图中随机裁剪更小的patch
  3. LMDB转换(可选)

    python scripts/data_preparation/create_lmdb.py
    
    • 显著提升数据读取速度
    • 适合大规模训练场景
  4. 元信息文件生成(可选)

    python scripts/data_preparation/generate_meta_info.py
    

其他常用医学图像数据集

数据集类型 代表性数据集 特点
经典训练集 T91, BSDS200 小规模训练集
经典测试集 Set5, Set14 标准测试基准
高分辨率集 DIV2K, Flickr2K 2K分辨率图像
特殊场景集 OST, PIRM 特定场景数据

视频超分辨率数据集

REDS数据集处理

关键步骤

  1. 数据集重组:将原始训练集和验证集合并后重新划分

    python scripts/data_preparation/regroup_reds_dataset.py
    
  2. 两种验证划分方式:

    • 官方划分:30个clip(240-269)
    • REDS4划分:4个特定clip(000,011,015,020)

Vimeo90K数据集处理

处理要点

  1. 下载原始Septuplets数据集(82GB)
  2. 使用MATLAB脚本生成低分辨率版本
  3. 可选转换为LMDB格式

StyleGAN2相关数据集

FFHQ数据集处理

处理流程

  1. 下载TFRecords格式原始数据
  2. 提取为图像或LMDB格式
    python scripts/data_preparation/extract_images_from_tfrecords.py
    
  3. 按分辨率分别存储

最佳实践建议

  1. 存储策略选择

    • 小规模实验:直接使用硬盘存储
    • 大规模训练:优先使用LMDB格式
    • 集群环境:考虑Memcached
  2. 性能优化

    • 合理设置PNG压缩级别(1-9)
    • 首次使用LMDB时预缓存数据
    • 监控系统缓存使用情况
  3. 数据预处理

    • 根据实际需求裁剪适当大小的子图
    • 保持训练和测试数据预处理方式一致

通过本文的指导,研究人员可以高效地准备Surgical-Image-Restoration项目所需的各种数据集,为后续的模型训练和评估奠定坚实基础。

登录后查看全文
热门项目推荐

项目优选

收起
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
338
1.18 K
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
898
534
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
188
265
kernelkernel
deepin linux kernel
C
22
6
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
140
188
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
374
387
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.09 K
0
note-gennote-gen
一款跨平台的 Markdown AI 笔记软件,致力于使用 AI 建立记录和写作的桥梁。
TSX
86
4
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
7
0
arkanalyzerarkanalyzer
方舟分析器:面向ArkTS语言的静态程序分析框架
TypeScript
114
45