- 媒体生成
- 计算机视觉
- 深度学习
- 人工智能
- 大模型
【免费下载链接】mmagic
OpenMMLab Multimodal Advanced, Generative, and Intelligent Creation Toolbox. Unlock the magic 🪄: Generative-AI (AIGC), easy-to-use APIs, awsome model zoo, diffusion models, for text-to-image generation, image/video restoration/enhancement, etc.
本文以 MMagic 仓库中
tools/dataset_converters/dpdd/README_zh-CN.md为核心,系统讲解 DPDD(Dense Per-pixel Defocus Deblurring)测试数据集的下载方式、目录结构与配置要点,并结合仓库内的 Restormer 失焦去模糊配置文件(单像素与双像素两种任务)说明该数据集在 MMagic 推理测试流程中的实际组织方式。读完本文,你将掌握在本地正确摆放 DPDD 数据集、并通过tools/test.py复现 Restormer (CVPR'2022) 失焦去模糊评测的完整操作路径。
DPDD 数据集是什么
DPDD(Dense Per-pixel Defocus Deblurring)是失焦去模糊(Defocus Deblurring)领域的标准测试数据集,常用于评估模型在散焦模糊场景下的复原能力。在 MMagic 中,它被 Restormer 的官方评测配置 restormer_official_dpdd-single.py 与 restormer_official_dpdd-dual.py 所引用,对应论文为:
@inproceedings{Zamir2021Restormer, title={Restormer: Efficient Transformer for High-Resolution Image Restoration}, author={Syed Waqas Zamir and Aditya Arora and Salman Khan and Munawar Hayat and Fahad Shahbaz Khan and Ming-Hsuan Yang}, booktitle={CVPR}, year={2022} }该数据集由左右双视角(dual-pixel)图像对构成,这也是 DPDD 目录中出现inputL与inputR两个输入子目录的原因:双像素(dual-pixel)相机传感器可以同时捕获两个略有视差的模糊视图,利用这一线索有助于恢复更高质量的清晰图像。
下载测试数据集
MMagic 官方说明中,DPDD 测试数据集从 Google Drive 下载,链接为:
https://drive.google.com/file/d/1dDWUQ_D93XGtcywoUcZE1HOXCV4EuLyw/注意:该下载链接来自仓库文档原文(README_zh-CN.md)。由于访问 Google Drive 需要稳定的网络环境,在国内或受限网络下可能需要代理工具辅助下载。下载完成后得到的是压缩包,请解压后按下一节的目录结构进行摆放。
下载解压后,数据集应放置于仓库根目录下的data/DPDD文件夹中。仓库文档明确要求:data目录与mmagic、tools、configs平级,位于项目根目录下。
标准目录结构(必须严格遵循)
将数据集解压并摆放后,data/DPDD目录下应包含以下内容:
mmagic ├── mmagic ├── tools ├── configs ├── data │ ├── DPDD │ │ ├── inputL │ │ ├── inputR │ │ ├── inputC │ │ ├── target │ │ ├── indoor_labels.npy │ │ ├── indoor_labels.txt │ │ ├── outdoor_labels.npy │ │ └── outdoor_labels.txt各子目录与文件的作用说明如下:
| 路径 | 内容 | 用途 |
|---|---|---|
data/DPDD/inputL | 左视角模糊图(dual-pixel 左侧视图) | 双像素任务输入之一 |
data/DPDD/inputR | 右视角模糊图(dual-pixel 右侧视图) | 双像素任务输入之一 |
data/DPDD/inputC | 中心合成模糊图(中心视角) | 单像素任务输入 |
data/DPDD/target | 清晰参考图(Ground Truth) | 评测时计算 PSNR/SSIM/MAE 的对照 |
data/DPDD/indoor_labels.npy | 室内场景样本索引(numpy 格式) | 供加载样本标签使用 |
data/DPDD/indoor_labels.txt | 室内场景样本清单(文本格式) | 供BasicImageDataset的ann_file读取 |
data/DPDD/outdoor_labels.npy | 室外场景样本索引(numpy 格式) | 供加载样本标签使用 |
data/DPDD/outdoor_labels.txt | 室外场景样本清单(文本格式) | 供BasicImageDataset的ann_file读取 |
需要特别说明的是.npy与.txt两种格式的差异:.txt标注文件是 MMagic 数据管线实际读取的样本清单,而.npy文件是数据集原始发布时自带的 numpy 格式索引,两者内容对应同一批样本。在 MMagic 配置中,真正被ann_file参数引用的是.txt文件。
配置如何消费这套目录结构
DPDD 目录结构并非随意设计,它与 configs/base/datasets/deblurring-defocus_test_config.py 中的数据前缀映射一一对应。该基础配置中,数据根目录被定义为:
dpdd_data_root = 'data/DPDD'即相对于仓库根目录的data/DPDD路径,这也解释了为什么文档要求将数据集解压到该位置。随后,配置通过data_prefix将输入目录映射到数据管线中的键名:
data_prefix=dict( img='inputC', imgL='inputL', imgR='inputR', gt='target'),映射关系可以理解为:
img(中心合成输入)→data/DPDD/inputCimgL(左视角输入)→data/DPDD/inputLimgR(右视角输入)→data/DPDD/inputRgt(清晰参考)→data/DPDD/target
对应的ann_file参数分别引用indoor_labels.txt与outdoor_labels.txt,将 DPDD 划分为室内(Indoor)与室外(Outdoor)两个评测子集,并额外合并出一个 Combined(全部样本)评测集合:
dpdd_indoor_dataloader = dict( ... dataset=dict( type='BasicImageDataset', metainfo=dict(dataset_type='DPDD-Indoor', task_name='deblurring'), data_root=dpdd_data_root, data_prefix=dict( img='inputC', imgL='inputL', imgR='inputR', gt='target'), ann_file='indoor_labels.txt', pipeline=test_pipeline))三个 dataloader(Indoor / Outdoor / Combined)配合MultiTestLoop与三组评估器(MAE、PSNR、SSIM,见 deblurring-defocus_test_config.py)共同完成一次完整评测,最终分别输出DPDD-Indoor、DPDD-Outdoor、DPDD-Combined三组指标。
单像素与双像素两种评测模式
DPDD 目录之所以同时包含inputC、inputL、inputR,是因为 MMagic 为 Restormer 提供了两种失焦去模糊评测模式:
单像素模式(Single)
配置 restormer_official_dpdd-single.py 中,模型以 3 通道中心图inputC作为唯一输入:
model = dict( type='BaseEditModel', generator=dict( type='Restormer', inp_channels=3, out_channels=3, dim=48, num_blocks=[4, 6, 6, 8], num_refinement_blocks=4, heads=[1, 2, 4, 8], ffn_expansion_factor=2.66, bias=False, LayerNorm_type='WithBias', dual_pixel_task=False), pixel_loss=dict(type='L1Loss', loss_weight=1.0, reduction='mean'), data_preprocessor=dict( type='DataPreprocessor', mean=[0., 0., 0.], std=[255., 255., 255.], ))关键点在于inp_channels=3与dual_pixel_task=False,即只利用中心视角的模糊图进行去模糊。
双像素模式(Dual)
配置 restormer_official_dpdd-dual.py 则在此基础上做了两处关键修改:
# modify PackInputs test_dataloader = _base_.test_dataloader for dataloader in test_dataloader: test_pipeline = dataloader['dataset']['pipeline'] test_pipeline[4] = dict(type='PackInputs', keys=['imgL', 'imgR']) # model settings model = dict( generator=dict(inp_channels=6, dual_pixel_task=True), data_preprocessor=dict(type='DataPreprocessor'))PackInputs的打包键从默认改为['imgL', 'imgR'],即同时打包左右双视角图像;- 生成器输入通道改为
inp_channels=6(左右两图各 3 通道拼接),并开启dual_pixel_task=True。
这一改动对应网络实现 restormer_net.py 中的逻辑:当dual_pixel_task=True时,网络在前向传播中按dual_keys=['imgL', 'imgR']取出两幅图像并在通道维度拼接(torch.cat(dual_images, dim=1)),再送入编码器;同时解码路径使用skip_conv引入跳跃连接,与单像素模式(output + inp_img残差输出)的路径不同。从源码注释看,dual_pixel_task专门为 dual-pixel 失焦去模糊设计("True for dual-pixel defocus deblurring only. Also set inp_channels=6")。
验证数据集摆放是否正确的自查清单
完成下载与解压后,可以按以下步骤快速自查:
- 路径检查:确认
data/DPDD位于仓库根目录(与configs、tools、mmagic平级); - 目录完整性:确认
inputL、inputR、inputC、target四个子目录都存在且非空; - 标签文件检查:确认
indoor_labels.txt与outdoor_labels.txt存在,且文件内每一行对应一个样本的路径(相对data/DPDD); - 内容抽查:随机选取
indoor_labels.txt中的一行样本名,检查inputC、inputL、inputR、target四个子目录下均存在同名文件,保证四路输入对齐。
之后即可运行 Restormer 的失焦去模糊评测,例如单 GPU 测试:
# 单像素模式评测 python tools/test.py configs/restormer/restormer_official_dpdd-single.py \ https://download.openmmlab.com/mmediting/restormer/restormer_official_dpdd-single-6bc31582.pth # 双像素模式评测 python tools/test.py configs/restormer/restormer_official_dpdd-dual.py \ https://download.openmmlab.com/mmediting/restormer/restormer_official_dpdd-dual-52c94c00.pth多卡测试则使用仓库自带的分布式脚本 tools/dist_test.sh(用法参考 configs/restormer/README_zh-CN.md 与 docs/zh_cn/user_guides/train_test.md)。测试完成后,评估器会分别输出 Indoor、Outdoor 与 Combined 三组 PSNR/SSIM/MAE 指标,与 configs/restormer/metafile.yml 中记录的官方结果(如单像素 Indoor 28.8681 / Outdoor 23.2410 / Combined 25.9805)进行对照。
小结
DPDD 数据集的准备本质上是三件事:下载官方测试压缩包 → 解压至data/DPDD→ 保持inputL、inputR、inputC、target及两组标签文件的结构不变。该结构与 deblurring-defocus_test_config.py 的data_prefix映射严格对应,任何目录改名或层级变动都会导致数据加载失败。准备就绪后,通过 restormer_official_dpdd-single.py 与 restormer_official_dpdd-dual.py 即可一键复现单像素与双像素两种失焦去模糊评测。
- 媒体生成
- 计算机视觉
- 深度学习
- 人工智能
- 大模型
【免费下载链接】mmagic
OpenMMLab Multimodal Advanced, Generative, and Intelligent Creation Toolbox. Unlock the magic 🪄: Generative-AI (AIGC), easy-to-use APIs, awsome model zoo, diffusion models, for text-to-image generation, image/video restoration/enhancement, etc.
相关推荐
DeepChat 的 MCP Tasks 扩展门禁:为什么明确不实现,以及何时才会重新打开
DeepChat 的 MCP Tasks 扩展门禁:为什么明确不实现,以及何时才会重新打开 本篇技术指南解读 DeepChat 仓库中 docs/feature
媒体生成计算机视觉深度学习人工智能大模型Swift属性与方法完全指南:存储属性、计算属性、下标与懒加载(Swift编程语言中文版)
Swift属性与方法完全指南:存储属性、计算属性、下标与懒加载(Swift编程语言中文版) 本文基于 Apple 官方《Swift 编程语言》(the swif
媒体生成计算机视觉深度学习人工智能大模型mmagic 中 HIDE 运动去模糊数据集的准备与配置指南
mmagic 中 HIDE 运动去模糊数据集的准备与配置指南 HIDE(Heterogeneous Image Deblurring Evaluation)是单
媒体生成计算机视觉深度学习人工智能大模型
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考