首页
/ 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项目所需的各种数据集,为后续的模型训练和评估奠定坚实基础。

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

项目优选

收起
kernelkernel
deepin linux kernel
C
22
6
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
168
2.05 K
openHiTLS-examplesopenHiTLS-examples
本仓将为广大高校开发者提供开源实践和创新开发平台,收集和展示openHiTLS示例代码及创新应用,欢迎大家投稿,让全世界看到您的精巧密码实现设计,也让更多人通过您的优秀成果,理解、喜爱上密码技术。
C
105
616
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
8
0
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
199
279
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
954
563
金融AI编程实战金融AI编程实战
为非计算机科班出身 (例如财经类高校金融学院) 同学量身定制,新手友好,让学生以亲身实践开源开发的方式,学会使用计算机自动化自己的科研/创新工作。案例以量化投资为主线,涉及 Bash、Python、SQL、BI、AI 等全技术栈,培养面向未来的数智化人才 (如数据工程师、数据分析师、数据科学家、数据决策者、量化投资人)。
Python
78
71
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
60
17
apintoapinto
基于golang开发的网关。具有各种插件,可以自行扩展,即插即用。此外,它可以快速帮助企业管理API服务,提高API服务的稳定性和安全性。
Go
22
0