在图像/视频超分辨率研究中,充分了解数据集是重要的一环。作为面向底层视觉任务的工具包,MMEditing 目前已经支持了大量先进的超分辨率模型,同时也支持了相关的主流超分数据集。本文将从图像和视频两个方向介绍主要的超分数据集及其使用。
图像超分辨率数据集
DIV2K
DIV2K 数据集源自 NTIRE2017 和 NTIRE2018 超分辨率挑战赛,是图像超分辨率中最流行使用的数据集之一。该数据集由 800 幅训练集图片,100 幅验证集图片和 100 幅测试集图片组成,每张图片具有 2K 分辨率。
下载
DIV2K 数据集可以从其主页下载。对于一般的图像超分辨率任务,数据集的文件目录结构应如下所示:
data
├── DIV2K
│ ├── DIV2K_train_HR
│ │ ├── 0001.png
│ │ ├── 0002.png
│ │ ├── ...
│ ├── DIV2K_train_LR_bicubic
│ │ ├── X2
│ │ ├── X3
│ │ ├── X4
│ ├── DIV2K_valid_HR
│ ├── DIV2K_valid_LR_bicubic
│ │ ├── X2
│ │ ├── X3
│ │ ├── X4
使用
MMEditing 中提供了 DIV2K 数据集的使用教程。
如果想使用 LMDB 以获得更快的 IO 速度,可以通过以下命令来构建 LMDB 文件:
python tools/dataset_converters/div2k/preprocess_div2k_dataset.py --data-root ./data/DIV2K --make-lmdb
MMEditing 中也支持了将 DIV2K 数据集图像裁剪为子图以加快 IO 速度,可以运行以下命令:
python tools/dataset_converters/div2k/preprocess_div2k_dataset.py --data-root ./data/DIV2K
DF2K
DF2K 数据集提出自 Enhanced Deep Residual Networks for Single Image Super-Resolution,是 DIV2K 和 Flickr2K 合并得到的数据集。Flickr2K 数据集包含 2650 张 2K 分辨率的图片。
下载
可以分别下载 DIV2K 和 Flickr2K ,然后将二者合并。
使用
Flickr2K 数据集的文件目录结构与 DIV2K 数据集相同,二者的合并非常容易。
data
├── Flickr2K
│ ├── Flickr2K_HR
│ │ ├── 000001.png
│ │ ├── 000002.png
│ │ ├── ...
│ ├── Flickr2K_LR_bicubic
│ │ ├── X2
│ │ ├── X3
│ │ ├── X4
DF2K_OST
DF2K_OST 数据集提出自 Real-ESRGAN,是和 OST 合并得到的数据集。
下载
可以分别下载 DIV2K, Flickr2K 和 OST,或者从这里下载合并后的数据集。
使用
MMEditing 中提供了 DF2K_OST 数据集的使用教程。
如果想使用 LMDB 以获得更快的 IO 速度,可以通过以下命令来构建 LMDB 文件:
python tools/dataset_converters/df2k_ost/preprocess_df2k_ost_dataset.py --data-root ./data/df2k_ost --make-lmdb
MMEditing 中也支持了将 DF2K_OST 数据集图像裁剪为子图以加快 IO 速度,可以运行以下命令:
python tools/dataset_converters/df2k_ost/preprocess_df2k_ost_dataset.py --data-root ./data/df2k_ost
人脸超分辨率数据集
一些人脸图像数据集常被用在人脸超分辨率中,例如 FFHQ 和 CelebA-HQ。FFHQ(Flickr-Faces-HQ) 数据集是一个高质量人脸图像数据集,包含 70000 张 1024x1024 分辨率的高清人脸图像。CelebA-HQ 数据集是 CelebA 数据集的高清版本,包含 30000 张 1024x1024 分辨率的高清人脸图像。
下载
FFHQ 数据集可以从其主页下载。CelebA-HQ 数据集可以按照其主页教程准备,
使用
MMEditing 中提供了 FFHQ 和 CelebA-HQ 数据集的使用教程。运行以下命令就可以生成数据集的下采样图像:
python tools/dataset_converters/glean/preprocess_ffhq_celebahq_dataset.py --data-root ./data/ffhq/images
python tools/dataset_converters/glean/preprocess_ffhq_celebahq_dataset.py --data-root ./data/CelebA-HQ/GT
常用 Benchmark 数据集
测试图像超分辨率性能的常用 Benchmark 数据集包括 Set5,Set14,Urban100,BSDS100,Manga109 等。
- Set5 数据集由 5 张图片组成(“baby”,“bird”,“butterfly”,“head”,“woman”);
- Set14 数据集由 14 张图片组成("baboon","barbara","bridge","coastguard","comic","face","flowers","foreman","lenna","man","monarch","pepper","ppt3","zebra");
- Urban100 数据集包含 100 张城市场景的建筑图片;
- BSDS100 数据集包含 100 张类别丰富的图片,从自然场景到具体物体,例如植物、人、食物等;
- Manga109 数据集包含 109 张日本漫画合订本的封面图片。
这些测试数据集可以从这里下载。
视频超分辨率数据集
REDS
REDS(Realistic and Dynamic Scenes) 数据集是在 NTIRE19 挑战赛中提出的数据集,常用于视频去模糊和视频超分辨率任务。该数据集由 240 个训练视频序列, 30 个验证视频序列和 30 个测试视频序列组成,每个视频序列由 100 个分辨率为 720x1280 的连续视频帧构成。
下载
REDS 数据集可以从其主页下载。对于视频超分辨率任务,应下载 train_sharp,train_sharp_bicubic,val_sharp 和 val_sharp_bicubic。
使用
在 REDS 官方数据集中,训练集和验证集是可以公开获取的,而测试集是非公开的。最常见的使用方法是将原始的训练集和验证集合并作为训练集,选取原始训练集中的 4 个视频序列('000', '011', '015' 和 '020') 作为测试集,命名为REDS4。
数据集的文件目录结构应如下所示:
data
├── REDS
│ ├── train_sharp
│ │ ├── 000
│ │ ├── 001
│ │ ├── ...
│ ├── train_sharp_bicubic
│ │ ├── X4
│ │ | ├── 000
│ │ | ├── 001
│ │ | ├── ...
├── REDS4
│ ├── sharp
│ ├── sharp_bicubic
MMEditing 中提供了 REDS 数据集的使用教程。仅运行以下命令就可以完成 REDS 数据集的准备:
python tools/dataset_converters/reds/preprocess_reds_dataset.py --root-path ./data/REDS
如果想使用 LMDB 以获得更快的 IO 速度,可以通过以下命令来构建 LMDB 文件:
python tools/dataset_converters/reds/preprocess_reds_dataset.py --root-path ./data/REDS --make-lmdb
MMEditing 中也支持了将 REDS 数据集图像裁剪为子图以加快 IO 速度,可以运行以下命令:
python tools/dataset_converters/reds/crop_sub_images.py --data-root ./data/REDS -scales 4
Vimeo-90K
Vimeo-90K 是一个大规模、高质量的视频数据集,提出自 Video Enhancement with Task-Oriented Flow。该数据集可被用作以下 4 个视频处理任务:视频插帧、视频去噪、视频去块和视频超分辨率。该数据集由 Triplet 数据集(用作视频插帧)和 Septuplet 数据集(用作视频去噪、视频去块和视频超分辨率)组成。Septuplet 数据集由 91701 个分辨率为 256x448 的 7 帧 视频序列组成。
下载
Vimeo-90K 数据集可以从其主页下载。对于视频超分辨率任务,应下载 Septuplet dataset(82GB)。
数据集的文件目录结构应如下所示:
vimeo_septuplet
├── sequences
│ ├── 00001
│ │ ├── 0001
│ │ │ ├── im1.png
│ │ │ ├── im2.png
│ │ │ ├── ...
│ │ ├── 0002
│ │ ├── 0003
│ │ ├── ...
│ ├── 00002
│ ├── ...
├── sep_trainlist.txt
├── sep_testlist.txt
使用
原始的 Vimeo-90K 数据集没有提供下采样的视频序列,所以在使用前需要先生成下采样的 LR 视频序列。
MMEditing 中提供了 Vimeo-90K 数据集的使用教程。仅运行以下命令就可以生成下采样图像:
python tools/dataset_converters/vimeo90k/preprocess_vimeo90k_dataset.py --data-root ./data/vimeo90k
如果想使用 LMDB 以获得更快的 IO 速度,可以通过以下命令来构建 LMDB 文件:
python tools/dataset_converters/vimeo90k/preprocess_vimeo90k_dataset.py --data-root ./data/vimeo90k --train_list ./data/vimeo90k/sep_trainlist.txt --gt-path ./data/vimeo90k/GT --lq-path ./data/Vimeo90k/BIx4 --make-lmdb
Vid4
Vid4 数据集是最流行的视频超分辨率测试集之一。该数据集由 4 个视频序列组成: 'calendar' (41 帧,分辨率为 576x720),'city' (34 帧,分辨率为 576x704),'foliage' (49 帧,分辨率为 480x720) 和 'walk'(47 帧,分辨率为 480x720)。
下载
Vid4 数据集可以从这里下载。
使用
UDM10
UDM10 数据集是常用的视频超分辨率测试集。该数据集由 10 个视频序列组成,每个视频序列包含分辨率为 720x1272 的 32 个连续帧。
下载
UDM10 数据集可以从这里下载。
使用
MMEditing 中提供了 UDM10 数据集的使用教程。
SPMCS
SPMCS 数据集由 30 个视频序列组成,每个视频序列包含分辨率为 540x960 的 31 个连续帧。每个视频序列包括 x2,x3 和 x4 倍下采样的输入图像和高分辨率的原始图像。
下载
使用
MMEditing 中提供了 SPMCS 数据集的使用教程。
以上就是主流的超分数据集及其使用方法。MMEditing 支持了使用这些数据集训练先进的图像超分和视频超分模型,同时也提供了这些数据集的使用文档和预处理脚本。除此之外,你也可以设计自己的数据集来训练超分模型。