本文记录计算机视觉中常用的数据集,包括它们的官网、下载链接、目录结构、文件大小、加载方式等等。其中「本地目录结构」为我个人组织数据的方式,仅供参考。
AFHQ
官网 | Paper with Code | Dropbox
简要介绍 :Animal FacesHQ (AFHQ) 是一个高质量动物面部图像的数据集,包含猫、狗和野生动物三个域。所有图像都已经过水平和垂直对齐,以确保将眼睛置于图像中心。低质量图像已由人工剔除。
基本信息 :
数量:15,803
划分(train / test):
Total:14,336 / 1,467
Cat:5,065 / 493
Dog:4,678 / 491
Wild:4,593 / 483
分辨率:512×512
注意 :上述信息对应第二个版本(AFHQv2),其在 v1 版本上更换了更好的重采样方式(Nearest neighbor => Lanczos)、删除了大约 2% 的图片、以及改用 png 格式保存。
本地目录结构 :
1 2 3 4 5 6 7 8 9 10 11 data └── AFHQ ├── afhq_v2.zip (7.0 GB) ├── train (extracted from afhq_v2.zip) │ ├── cat (contains 5065 images) │ ├── dog (contains 4678 images) │ └── wild (contains 4593 images) └── test (extracted from afhq_v2.zip) ├── cat (contains 493 images) ├── dog (contains 491 images) └── wild (contains 483 images)
需要自定义 Dataset
加载数据集 。
CelebA
官网 | Papers with Code | Google drive | Baidu drive (password: rp0s)
简要介绍 :CelebFaces Attribute (CelebA) 数据集包含来自 10,177 位名人的 202,599 张面部图像,每张图像的尺寸为 178×218 像素,并且用 40 个二进制标签进行注释,这些标签指示了面部属性,如头发颜色、性别和年龄。
基本信息 :
数量:202,599
划分:162,770 / 19,867 / 19,962 (train / valid / test)
分辨率:
align 处理后:178×218
原始图片:不一致,200+ 到 2000+ 都有
标注:每张图像有
40 个 binary labels,指示发色、性别、年龄等信息
人脸 bounding box
5 个位置的 landmark(左眼、右眼、鼻尖、左嘴角、右嘴角)
identity(名人身份 id,共 10,177 人)
官方目录结构 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 . ├── Anno │ ├── identity_CelebA.txt │ ├── list_attr_celeba.txt │ ├── list_bbox_celeba.txt │ ├── list_landmarks_align_celeba.txt │ └── list_landmarks_celeba.txt ├── Eval │ └── list_eval_partition.txt ├── Img │ ├── img_align_celeba_png.7z │ ├── img_celeba.7z │ └── img_align_celeba.zip └── README.txt
注:三个图片压缩包中,一般用 img_align_celeba.zip
即可.
本地目录结构 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 data └── CelebA └── celeba ├── identity_CelebA.txt ├── img_align_celeba.zip (1.44 GB) ├── img_celeba.7z (10.19 GB) ├── img_align_celeba (extracted from img_align_celeba.zip) │ ├── 000001.jpg │ ├── ... │ └── 202599.jpg ├── img_celeba (extracted from img_celeba.7z) │ ├── 000001.jpg │ ├── ... │ └── 202599.jpg ├── list_attr_celeba.txt ├── list_bbox_celeba.txt ├── list_eval_partition.txt ├── list_landmarks_align_celeba.txt ├── list_landmarks_celeba.txt └── README.txt
使用 torchvision 加载数据集 :
1 2 3 4 5 6 7 8 9 10 11 12 13 >>> import torchvision.datasets as dset>>> celeba = dset.CelebA(root='/data/CelebA' , split='train' )>>> len (celeba)162770 >>> celeba = dset.CelebA(root='/data/CelebA' , split='valid' )>>> len (celeba)19867 >>> celeba = dset.CelebA(root='/data/CelebA' , split='test' )>>> len (celeba)19962 >>> celeba = dset.CelebA(root='/data/CelebA' , split='all' )>>> len (celeba)202599
CelebA-HQ
官网 | Papers with Code
简要介绍 :CelebA-HQ 数据集是 CelebA 数据集的高质量版本,由 30,000 张 1024×1024 分辨率的图像组成。
基本信息 :
数量:30,000,是 CelebA 的子集
遵从 CelebA 原始划分:24,183 / 2,993 / 2,824 (train / valid / test)
分辨率:1024×1024
官方生成方式 :下载 img_celeba.7z 和 delta 文件,使用 dataset_tool.py
生成高清图片。
其他生成方式 :用网上其他人魔改的 h5tool.py
生成高清图片。问题:生成的图片可能有噪点或质量不高。
推荐方式 :下载 CelebAMask-HQ 数据集(见下文),然后根据 CelebA-HQ-to-CelebA-mapping.txt
把文件名映射回原 id,例如,以下是一个简单的映射脚本 map_index.py
:
1 2 3 4 5 6 7 8 9 10 11 12 import osimport pandas as pd mapping = pd.read_table('CelebA-HQ-to-CelebA-mapping.txt' , sep='\s+' , index_col=0 ) mapping_dict = dict ()for i in range (30000 ): mapping_dict.update({f'{i} .jpg' : mapping.iloc[i]['orig_file' ]})for key, value in mapping_dict.items(): assert os.path.isfile(os.path.join('CelebA-HQ-img' , key)) os.rename(os.path.join('CelebA-HQ-img' , key), os.path.join('CelebA-HQ-img' , value))
本地目录结构 :
1 2 3 4 5 6 7 8 9 data └── CelebA-HQ ├── CelebA-HQ-img.zip (2.74 GB) ├── CelebA-HQ-img (extracted from CelebA-HQ-img.zip) │ ├── 000004.jpg │ ├── ... │ └── 202591.jpg ├── CelebA-HQ-to-CelebA-mapping.txt └── map_index.py
需要自定义 Dataset
加载数据集 ,例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 import osfrom PIL import Imagefrom torch.utils.data import Datasetclass CelebA_HQ (Dataset ): """ The downloaded 30,000 images should be stored under `root/CelebA-HQ-img/`. The file names should be the same as their counterparts in the original CelebA dataset. The train/valid/test sets are split according to the original CelebA dataset, resulting in 24,183 training images, 2,993 validation images, and 2,824 test images. """ def __init__ (self, root, split='train' , transform=None ): image_root = os.path.join(os.path.expanduser(root), 'CelebA-HQ-img' ) assert os.path.isdir(image_root), f'{image_root} is not a valid directory' assert split in ['train' , 'valid' , 'test' , 'all' ] self.transform = transform img_ext = ['.png' , '.jpg' , '.jpeg' ] self.img_paths = [] for curdir, subdirs, files in os.walk(image_root): for file in files: if os.path.splitext(file)[1 ].lower() in img_ext: self.img_paths.append(os.path.join(curdir, file)) self.img_paths = sorted (self.img_paths) celeba_splits = [1 , 162771 , 182638 , 202600 ] def filter_func (p ): if split == 'all' : return True k = 0 if split == 'train' else (1 if split == 'valid' else 2 ) return celeba_splits[k] <= int (os.path.splitext(os.path.basename(p))[0 ]) < celeba_splits[k+1 ] self.img_paths = list (filter (filter_func, self.img_paths)) def __len__ (self ): return len (self.img_paths) def __getitem__ (self, item ): X = Image.open (self.img_paths[item]) if self.transform is not None : X = self.transform(X) return Xif __name__ == '__main__' : dataset = CelebA_HQ(root='/data/CelebA-HQ/' , split='train' ) print (len (dataset)) dataset = CelebA_HQ(root='/data/CelebA-HQ/' , split='valid' ) print (len (dataset)) dataset = CelebA_HQ(root='/data/CelebA-HQ/' , split='test' ) print (len (dataset)) dataset = CelebA_HQ(root='/data/CelebA-HQ/' , split='all' ) print (len (dataset))
CelebAMask-HQ
官网 | Google drive | Baidu drive
简要介绍 :在 CelebA-HQ 数据集的基础上增加了对应 CelebA 面部属性的 segmentation mask.
本地目录结构 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 data ├── CelebAMask-HQ.zip (3.15 GB) └── CelebAMask-HQ (extracted from CelebAMask-HQ.zip) ├── CelebA-HQ-img │ ├── 0.jpg │ ├── ... │ └── 29999.jpg ├── CelebA-HQ-to-CelebA-mapping.txt ├── CelebAMask-HQ-attribute-anno.txt ├── CelebAMask-HQ-mask-anno │ ├── 0 │ │ ├── 00000_hair.png │ │ └── ... │ └── ... ├── CelebAMask-HQ-pose-anno.txt └── README.txt
需要自定义 Dataset
加载数据集 。
CIFAR-10
官网 | Papers with Code
简要介绍 :CIFAR-10 数据集是 Tiny Images 数据集的子集,包括 60,000 张 32×32 像素的彩色图像。这些图像被标记为10个相互独立的类别:飞机、汽车(但不包括卡车或皮卡车)、鸟、猫、鹿、狗、青蛙、马、船和卡车(但不包括皮卡车)。每个类别有 6,000 张图像,每个类别包含 5,000 张训练图像和 1,000 张测试图像。
基本信息 :
数量:60,000
划分:50,000 / 10,000 (train / test)
分辨率:32×32
标注:10 类
存储为 png :原文件并非图片格式,如果有 png 格式的需求,可用以下脚本转换 makepng.py
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 import osfrom tqdm import tqdmimport torchvision.datasets as dsetsfor i in range (10 ): os.makedirs(f'./png/train/{i} /' , exist_ok=True ) os.makedirs(f'./png/test/{i} /' , exist_ok=True ) ids = {k: 0 for k in range (10 )} cifar10 = dsets.CIFAR10(root='.' , train=True )for X, y in tqdm(cifar10): X.save(f'./png/train/{y} /{ids[y]} .png' ) ids[y] += 1 ids = {k: 0 for k in range (10 )} cifar10 = dsets.CIFAR10(root='.' , train=False )for X, y in tqdm(cifar10): X.save(f'./png/test/{y} /{ids[y]} .png' ) ids[y] += 1
本地目录结构 :
1 2 3 4 5 6 7 8 9 10 11 12 data └── CIFAR-10 ├── cifar-10-python.tar.gz (170.5 MB) └── cifar-10-batches-py (extracted from cifar-10-python.tar.gz) ├── batches.meta ├── data_batch_1 ├── data_batch_2 ├── data_batch_3 ├── data_batch_4 ├── data_batch_5 ├── readme.html └── test_batch
使用 torchvision 加载数据集 :
1 2 3 4 5 6 7 >>> import torchvision.datasets as dset>>> cifar10 = dset.CIFAR10(root='/data/CIFAR-10' , train=True )>>> len (cifar10)50000 >>> cifar10 = dset.CIFAR10(root='/data/CIFAR-10' , train=False )>>> len (cifar10)10000
CIFAR-100
官网 | Papers with Code
简要介绍 :CIFAR-100 数据集是 Tiny Images 数据集的子集,包括 60,000 张 32×32 像素的彩色图像。CIFAR-100 的 100 个类别被分成 20 个超类别。每个图像都带有一个“细”标签(它所属的类别)和一个“粗”标签(它所属的超类别)。每个类别有 600 张图像——500 张训练图像和 100 张测试图像。
基本信息 :
数量:60,000
划分:50,000 / 10,000 (train / test)
分辨率:32×32
标注:100 类,分组为 20 个 superclass
存储为 png :原文件并非图片格式,如果有 png 格式的需求,可用以下脚本转换 makepng.py
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 import osfrom tqdm import tqdmimport torchvision.datasets as dsetsfor i in range (100 ): os.makedirs(f'./png/train/{i} /' , exist_ok=True ) os.makedirs(f'./png/test/{i} /' , exist_ok=True ) ids = {k: 0 for k in range (100 )} cifar100 = dsets.CIFAR100(root='.' , train=True )for X, y in tqdm(cifar100): X.save(f'./png/train/{y} /{ids[y]} .png' ) ids[y] += 1 ids = {k: 0 for k in range (100 )} cifar100 = dsets.CIFAR100(root='.' , train=False )for X, y in tqdm(cifar100): X.save(f'./png/test/{y} /{ids[y]} .png' ) ids[y] += 1
本地目录结构 :
1 2 3 4 5 6 7 data ├── cifar-100-python.tar.gz (169 MB) └── cifar-100-python (extracted from cifar-100-python.tar.gz) ├── file.txt~ ├── meta ├── test └── train
使用 torchvision 加载数据集 :
1 2 3 4 5 6 7 >>> import torchvision.datasets as dset>>> cifar100 = dset.CIFAR100(root='/data/CIFAR-100' , train=True )>>> len (cifar100)50000 >>> cifar100 = dset.CIFAR100(root='/data/CIFAR-100' , train=False )>>> len (cifar100)10000
Fashion-MNIST
官网 | Papers with Code
简要介绍 :Fashion-MNIST 是一个由 10 个类别、每个类别 7,000 张 28×28 像素的灰度图像组成数据集,总计70,000 张时尚产品图像。训练集包含 60,000 张图像,测试集包含 10,000 张图像。Fashion-MNIST 与原始的 MNIST 数据集具有相同的图像大小、数据格式以及训练和测试集的划分结构。
基本信息 :
数量:70,000
划分:60,000 / 10,000 (train / test)
分辨率:28×28
标注:10 类
本地目录结构 :
1 2 3 4 5 6 7 8 9 10 11 12 data └── Fashion-MNIST └── FashionMNIST └── raw ├── t10k-images-idx3-ubyte ├── t10k-images-idx3-ubyte.gz ├── t10k-labels-idx1-ubyte ├── t10k-labels-idx1-ubyte.gz ├── train-images-idx3-ubyte ├── train-images-idx3-ubyte.gz ├── train-labels-idx1-ubyte └── train-labels-idx1-ubyte.gz
使用 torchvision 加载数据集 :
1 2 3 4 5 6 7 >>> import torchvision.datasets as dset>>> fashion = dset.FashionMNIST(root='/data/Fashion-MNIST' , train=True )>>> len (fashion)60000 >>> fashion = dset.FashionMNIST(root='/data/Fashion-MNIST' , train=False )>>> len (fashion)10000
FFHQ
官网 | Papers with Code | Google drive
简要介绍 :Flickr-Faces-HQ (FFHQ) 由 70,000 张高质量 PNG 图像组成,分辨率为 1024×1024,具有年龄、种族和图像背景等方面的相当大的变化。它还涵盖了各种饰品,如眼镜、太阳镜、帽子等。这些图像是从 Flickr 爬取的,因此继承了该网站的所有偏见,并使用 dlib 自动对齐和裁剪。只收集了许可证宽松的图像。使用各种自动过滤器对数据集进行了修剪,最后使用 Amazon Mechanical Turk 删除了偶尔出现的雕像、绘画或照片等。
基本信息 :
数量:70,000
划分:60,000 / 10,000 (train / valid)
分辨率:1024×1024
官方目录结构 :
1 2 3 4 5 6 7 8 9 . ├── LICENSE.txt ├── README.txt ├── ffhq-dataset-v2.json ├── images1024x1024 (89.1 GB) ├── in-the-wild-images (955 GB) ├── tfrecords (273 GB) ├── thumbnails128x128 (1.95 GB) └── zips (1.28 TB)
注:一般而言,我们只需要用 images1024x1024 图片。
本地目录结构 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 data └── FFHQ ├── LICENSE.txt ├── README.txt ├── ffhq-dataset-v2.json ├── images1024x1024.zip (95.73 GB) └── images1024x1024 (extracted from images1024x1024.zip) ├── LICENSE.txt ├── 00000 │ ├── 00000.png │ ├── ... │ └── 00999.png ├── ... └── 69000 ├── 69000.png ├── ... └── 69999.png
需要自定义 Dataset
加载数据集 ,例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 import osfrom PIL import Imagefrom torch.utils.data import Datasetclass FFHQ (Dataset ): """ The downloaded 70,000 images should be organized in the following structure: - root/ - image1024x1024/ - 00000/ - 00000.png - 00001.png - ... - 00999.png - ... - 69000/ - 69000.png - 69001.png - ... - 69999.png If `official_split` is True, the first 60,000 images will be the training set and the remaining 10,000 images will be the test set. Otherwise, the 10,000 images in the test set are further divided into a 5,000-image validation set and a 5,000-image test set. """ def __init__ (self, root, split='train' , original_size=1024 , transform=None , official_split=True ): image_root = os.path.join(os.path.expanduser(root), f'images{original_size} x{original_size} ' ) assert os.path.isdir(image_root), f'{image_root} is not a valid directory' assert split in ['train' , 'valid' , 'test' , 'all' ] self.transform = transform img_ext = ['.png' , '.jpg' , '.jpeg' ] self.img_paths = [] for curdir, subdirs, files in os.walk(image_root): for file in files: if os.path.splitext(file)[1 ].lower() in img_ext: self.img_paths.append(os.path.join(curdir, file)) self.img_paths = sorted (self.img_paths) if official_split: if split == 'train' : self.img_paths = list (filter (lambda p: '00000' <= (os.path.dirname(p)).split('/' )[-1 ] < '60000' , self.img_paths)) elif split == 'test' : self.img_paths = list (filter (lambda p: '60000' <= (os.path.dirname(p)).split('/' )[-1 ] < '70000' , self.img_paths)) elif split == 'valid' : raise ValueError(f'FFHQ official split does not have a validation set.' ) else : if split == 'train' : self.img_paths = list (filter (lambda p: '00000' <= (os.path.dirname(p)).split('/' )[-1 ] < '60000' , self.img_paths)) elif split == 'valid' : self.img_paths = list (filter (lambda p: '60000' <= (os.path.dirname(p)).split('/' )[-1 ] < '65000' , self.img_paths)) elif split == 'test' : self.img_paths = list (filter (lambda p: '65000' <= (os.path.dirname(p)).split('/' )[-1 ] < '70000' , self.img_paths)) def __len__ (self ): return len (self.img_paths) def __getitem__ (self, item ): X = Image.open (self.img_paths[item]) if self.transform is not None : X = self.transform(X) return Xif __name__ == '__main__' : dataset = FFHQ(root='/data/FFHQ/' , split='train' , official_split=False ) print (len (dataset)) dataset = FFHQ(root='/data/FFHQ/' , split='valid' , official_split=False ) print (len (dataset)) dataset = FFHQ(root='/data/FFHQ/' , split='test' , official_split=False ) print (len (dataset)) dataset = FFHQ(root='/data/FFHQ/' , split='all' , official_split=False ) print (len (dataset)) print () dataset = FFHQ(root='/data/FFHQ/' , split='train' , official_split=True ) print (len (dataset)) dataset = FFHQ(root='/data/FFHQ/' , split='test' , official_split=True ) print (len (dataset)) dataset = FFHQ(root='/data/FFHQ/' , split='all' , official_split=True ) print (len (dataset))
Flare7K
官网 | Papers with Code
简要介绍 :Flare7K 是第一个夜间光晕去除数据集,它是基于真实世界夜间镜头光晕的观察和统计生成的。该数据集包括 5,000 张散射光晕图像和 2,000 张反射光晕图像,涵盖了 25 种散射光晕类型和 10 种反射光晕类型。这 7,000 个光晕图案可以随机添加到无光晕的图像中,形成光晕污染和无光晕的图像对。
下载 :官方 github 页面包含了以下三个下载链接:
Flares
Flare7k.zip
5,000 张散射光晕和 2,000 张反射光晕图像
3.01 GB
Background Images
Flickr24K.zip
23,949 张背景图像
1.12 GB
Flare-corrupted images
flare_corrupted_test_imgs.zip
额外 645 张无 ground-truth 的有光晕图像
212.4 MB
本地目录结构 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 data └── Flare7K ├── flare_corrupted_test_imgs.zip (222.7 MB) ├── Flare7k.zip (3.24 GB) ├── Flickr24K.zip (1.2 GB) ├── flare_corrupted_test_imgs (extracted from flare_corrupted_test_imgs.zip) │ ├── test_00000.png │ ├── ... │ └── test_00644.png ├── Flare7k (extracted Flare7k.zip) │ ├── Reflective_Flare (contains 2000 png images) │ │ ├── reflective_img_000000.png │ │ ├── ... │ │ └── reflective_img_001999.png │ ├── Scattering_Flare │ │ ├── Compound_Flare (contains 5000 png images) │ │ ├── Glare_with_shimmer (contains 5000 png images) │ │ ├── Light_Source (contains 5000 png images) │ │ └── Streak (contains 5000 png images) │ └── test_data │ ├── real │ │ ├── gt (contains 100 png images) │ │ └── input (contains 100 png images) │ └── synthetic │ ├── gt (contains 100 png images) │ └── input (contains 100 png images) └── Flickr24K (extracted from Flickr24K.zip, contains 23949 jpg images) ├── 2.jpg ├── ... └── r (13746).jpg
ImageNet-21K (ImageNet-22K)
官网 | Papers with Code
简要介绍 :完整的 ImageNet 数据集包含 14,197,122 张按 WordNet 层次结构注释的图像,共有 21,841 类,因此也被称作 ImageNet-21K 或 ImageNet-22K. 自 2010 年以来,该数据集被用于 ImageNet 大规模视觉识别挑战赛(ILSVRC),成为了图像分类和目标检测的基准。其中,ILSVRC2012 比赛所采用的子集成为了研究者最常用的版本,详见下文 ImageNet-1K.
基本信息 :
数量:14,197,122
标注:21,814 类
下载 :用教育邮箱登录官网,选择下载页面,可以在 Winter 2021 release 处看到链接,有若干版本:
原始全部数据
可以只下载某一类
使用论文 "ImageNet-21K pretraining for the masses" 的脚本处理后的版本
ImageNet10K from ECCV2010
WIP :尚未下载和使用过完整的 ImageNet-21K,因此无法给出更多的细节。
ImageNet-1K (ILSVRC2012)
官网
简要介绍 :ILSVRC2012 是最常用的 ImageNet 子集,包含 1000 类物体,因此也被称作 ImageNet-1K.
基本信息 :
数量:1,431,167
划分:1,281,167 / 50,000 / 100,000 (train / valid / test)
分辨率:各图片不一致,据说平均 469×387
标注:1000 类。此链接 有标签到类别名称的映射。
下载 :用教育邮箱登录官网,选择 ILSVRC2012 下载页面可看到链接,包含:
内容
文件名
大小
Development Kit
Development Kit (Task 1 & 2)
ILSVRC2012_devkit_t12.tar.gz
2.5MB
Development Kit (Task 3)
ILSVRC2012_devkit_t3.tar.gz
22MB
Images
Training images (Task 1 & 2)
ILSVRC2012_img_train.tar
138GB
Training images (Task 3)
ILSVRC2012_img_train_t3.tar
728MB
Validation images (all tasks)
ILSVRC2012_img_val.tar
6.3GB
Test images (all tasks)
ILSVRC2012_img_test_v10102019.tar
13GB
Bounding Boxes
Training bounding box annotations (Task 1 & 2 only)
ILSVRC2012_bbox_train_v2.tar.gz
20MB
Training bounding box annotations (Task 3 only)
ILSVRC2012_bbox_train_dogs.tar.gz
1MB
Validation bounding box annotations (all tasks)
ILSVRC2012_bbox_val_v3.tgz
2.2MB
Test bounding box annotations (Task 3 only)
ILSVRC2012_bbox_test_dogs.zip
33MB
其中 Task 1 是粗粒度分类任务、Task 2 是分类并定位任务、Task 3 是细粒度分类任务。
注:一般使用的(以及「基本信息」里面描述的)是 Task 1 & 2 任务的训练数据。
本地目录结构 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 data └── ImageNet ├── ILSVRC2012_bbox_train_v2.tar.gz (20.9 MB) ├── ILSVRC2012_bbox_train_dogs.tar.gz (726 KB) ├── ILSVRC2012_bbox_val_v3.tgz (2.2 MB) ├── ILSVRC2012_bbox_test_dogs.zip (34.6 MB) ├── ILSVRC2012_devkit_t12.tar.gz (2.6 MB) ├── ILSVRC2012_devkit_t3.tar.gz (22.4 MB) ├── ILSVRC2012_img_train.tar (147.9 GB) ├── ILSVRC2012_img_train_t3.tar (762.5 MB) ├── ILSVRC2012_img_val.tar (6.74 GB) ├── ILSVRC2012_img_test_v10102019.tar (13.69 GB) ├── meta.bin (created by torchvision) ├── train (extracted and organized by torchvision) │ ├── n01440764 │ ├── ... │ └── n15075141 ├── val (extracted and organized by torchvision) │ ├── n01440764 │ ├── ... │ └── n15075141 └── test (extracted from ILSVRC2012_img_test_v10102019.tar) ├── ILSVRC2012_test_00000001.JPEG ├── ... └── ILSVRC2012_test_00100000.JPEG
注:第一次使用 torchvision 加载 ImageNet 数据集时,它会自动帮你解压并组织文件,最终得到上述目录结构,这个过程耗时较长。这个目录结构与直接解压不同,例如 ILSVRC2012_img_val.tar
中其实是直接包含了所有图片,但 torchvision 将它组织成和训练集一致的结构便于加载。
使用 torchvision 加载数据集(不支持测试集,因为测试集没有 ground-truth 标签) :
1 2 3 4 5 6 7 >>> import torchvision.datasets as dset>>> imagenet = dset.ImageNet(root='/data/ImageNet' , split='train' )>>> len (imagenet)1281167 >>> imagenet = dset.ImageNet(root='/data/ImageNet' , split='val' )>>> len (imagenet)50000
对于不需要标签的任务,可以自定义 Dataset
加载测试集 。
ImageNet-Downsampled
官网 | 官方博客
简要介绍 :论文 “A Downsampled Variant of ImageNet as an Alternative to the CIFAR datasets” 提出的 ImageNet-1K 数据集的下采样版本,包括 8x8, 16x16, 32x32 和 64x64 四种分辨率版本。
基本信息 :
划分:1,281,167 / 50,000 (train / valid)
标注:1000 类
下载 :用教育邮箱登录官网,选择下载页面,可以在 Download downsampled image data (32x32, 64x64) 处看到链接。
本地目录结构 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 data └── ImageNet64 ├── Imagenet64_train_part1.zip (6.9 GB) ├── Imagenet64_train_part2.zip (6.9 GB) ├── Imagenet64_val.zip (534 MB) ├── train_data_batch_1 (extracted from Imagenet64_train_part1.zip) ├── train_data_batch_2 (extracted from Imagenet64_train_part1.zip) ├── train_data_batch_3 (extracted from Imagenet64_train_part1.zip) ├── train_data_batch_4 (extracted from Imagenet64_train_part1.zip) ├── train_data_batch_5 (extracted from Imagenet64_train_part1.zip) ├── train_data_batch_6 (extracted from Imagenet64_train_part2.zip) ├── train_data_batch_7 (extracted from Imagenet64_train_part2.zip) ├── train_data_batch_8 (extracted from Imagenet64_train_part2.zip) ├── train_data_batch_9 (extracted from Imagenet64_train_part2.zip) ├── train_data_batch_10 (extracted from Imagenet64_train_part2.zip) └── val_data (extracted from Imagenet64_val.zip)
自定义 Dataset
加载数据集 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 import osimport pickleimport numpy as npfrom PIL import Imagefrom torch.utils.data import Datasetimport torchvision.transforms as Tclass ImageNet64 (Dataset ): def __init__ (self, root, split='train' , transform=None ): assert split in ['train' , 'valid' ] assert os.path.isdir(root), f'{root} is not an existing directory' self.transform = transform if split == 'train' : self.data, self.labels = [], [] for idx in range (1 , 11 ): filepath = os.path.join(root, f'train_data_batch_{idx} ' ) with open (filepath, 'rb' ) as f: d = pickle.load(f) self.data.append(d['data' ]) self.labels.extend(d['labels' ]) self.data = np.concatenate(self.data, axis=0 ) self.labels = [i-1 for i in self.labels] else : with open (os.path.join(root, f'val_data' ), 'rb' ) as f: d = pickle.load(f) self.data = d['data' ] self.labels = [i-1 for i in d['labels' ]] self.data = np.dstack((self.data[:, :64 *64 ], self.data[:, 64 *64 :2 *64 *64 ], self.data[:, 2 *64 *64 :])) self.data = self.data.reshape((self.data.shape[0 ], 64 , 64 , 3 )) def __len__ (self ): return len (self.data) def __getitem__ (self, item ): img, label = self.data[item], self.labels[item] img = Image.fromarray(img) if self.transform is not None : img = self.transform(img) return img, labelif __name__ == '__main__' : dataset = ImageNet64(root='/data/ImageNet64/' , split='train' ) print (len (dataset)) dataset = ImageNet64(root='/data/ImageNet64/' , split='valid' ) print (len (dataset))
ISTD
官网 | Papers with Code
简要介绍 :Image Shadow Triplets Dataset (ISTD) 是一个用于阴影理解(检测/去除)的数据集,包含 1,870 个图像三元组,每个三元组由阴影图像、阴影掩膜和无阴影图像构成。
基本信息 :
数量:1,870
划分:1,330 / 540 (train / test)
分辨率:640×480
标注:三元组(A:阴影图像;B:阴影掩膜;C:无阴影图像)
本地目录结构 :
1 2 3 4 5 6 7 8 9 10 11 data └── ISTD ├── ISTD_Dataset.rar (2.14 GB) ├── train (extracted from ISTD_Dataset.rar) │ ├── train_A (contains 1330 images) │ ├── train_B (contains 1330 images) │ └── train_C (contains 1330 images) └── test (extracted from ISTD_Dataset.rar) ├── test_A (contains 540 images) ├── test_B (contains 540 images) └── test_C (contains 540 images)
需要自定义 Dataset
加载数据集 。
LOGO
官网 | OneDrive
简要介绍 :LOGO 是一个用于水印去除的数据集。背景图像选自 MSCOCO 数据集的 VAL2014 子集;水印收集自互联网上 1000 多个不同的著名标志。将水印(标志)在不同位置、半透明度和大小随机放置在自然图像上来生成水印样本。每个训练/测试样本都包含合成的水印图像、原始背景、水印以及水印掩膜以进行监督。所有水印和背景图像在训练和验证分区中都没有重叠。按照水印的不同透明度和大小,整个数据集分为四种设置:LOGO-L、LOGO-H、LOGO-Gray、LOGO30K.
基本信息 :
transparency
35% - 60%
60% - 85%
35% - 85%
35% - 85%
Percentage of the watermarks size
35% - 60%
60% - 85%
35% - 85%
35% - 85%
Numbers of samples (train : val)
12k : 2k
12k : 2k
12k : 2k
28k : 4k
Colorful watermark?
yes
yes
no
yes
数量:
LOGO-L、LOGO-H、LOGO-Gray:14,176
LOGO30K:32,403
划分(train / valid):
LOGO-L、LOGO-H、LOGO-Gray:12,151 / 2,025
LOGO30K:28,352 / 4,051
分辨率:对应 COCO 数据集的原始图片大小,另提供 resize 到 256×256 的验证集。
本地目录结构 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 data └── LOGO ├── 10 kgray.zip (14.99 GB) ├── 10 khigh.zip (15.18 GB) ├── 10 kmid.zip (15 GB) ├── 27 kpng.zip (24.11 GB) ├── 10 kgray (extracted from 27 kpng.zip) │ ├── train_images.txt │ ├── train_wm.txt │ ├── val_images.txt │ ├── val_wm.txt │ ├── natural (contains 40504 jpg images selected from COCO_val2014) │ ├── train_images │ │ ├── image (contains 12151 png images) │ │ ├── mask (contains 12151 png images) │ │ └── wm (contains 12151 png images) │ ├── val_images │ │ ├── image (contains 2025 png images) │ │ ├── mask (contains 2025 png images) │ │ └── wm (contains 2025 png images) │ ├── val_input_256 (contains 2025 png images, resized to 256 x256) │ └── val_target_256 (contains 2025 png images, resized to 256 x256) ├── 10 khigh (extracted from 10 khigh.zip) │ └── same as 10 kgray ├── 10 kmid (extracted from 10 kmid.zip) │ └── same as 10 kgray └── 27 kpng (extracted from 27 kpng.zip) ├── natural (contains 32403 jpg images selected from COCO_val2014) ├── train_images │ ├── image (contains 28352 png images) │ ├── mask (contains 28352 png images) │ └── wm (contains 28352 png images) ├── val_images │ ├── image (contains 4055 png images) │ ├── mask (contains 4051 png images) │ └── wm (contains 4051 png images) └── val_target_256 (contains 4051 png images, cropped to 256 x256)
需要自定义 Dataset
加载数据集 。
MNIST
官网
简要介绍 :MNIST 手写数字数据集包含 60,000 个训练样本和 10,000 个测试样本。数字的大小已标准化且放置在图像中心。
基本信息 :
数量:70,000
划分:60,000 / 10,000 (train / test)
分辨率:28×28
标注:10 类
本地目录结构 :
1 2 3 4 5 6 7 8 9 10 11 12 data └── MNIST └── MNIST └── raw ├── t10k-images-idx3-ubyte ├── t10k-images-idx3-ubyte.gz ├── t10k-labels-idx1-ubyte ├── t10k-labels-idx1-ubyte.gz ├── train-images-idx3-ubyte ├── train-images-idx3-ubyte.gz ├── train-labels-idx1-ubyte └── train-labels-idx1-ubyte.gz
使用 torchvision 加载数据集 :
1 2 3 4 5 6 7 >>> import torchvision.datasets as dset>>> mnist = dset.MNIST(root='/data/MNIST' , train=True )>>> len (mnist)60000 >>> mnist = dset.MNIST(root='/data/MNIST' , train=False )>>> len (mnist)10000
NVIDIA Irregular Mask Dataset
官网 | Dropbox (irregular_mask.zip) | Dropbox (test_mask.zip)
简要介绍 :随机掩码来源于估计视频中两个相邻帧之间遮挡/非遮挡掩码。数据集提出者采用这种方式生成了 55,116 个用于训练的掩码,训练时首先从 55,116 个掩码中随机采样一个掩码,然后进行随机膨胀、旋转和裁剪来增强掩码数据集。用同样的方式生成了 24,866 个测试掩码,经过随机增强后按照面积比例划分为 6 组:(0.01, 0.1], (0.1, 0.2], (0.2, 0.3], (0.3, 0.4], (0.4, 0.5], (0.5, 0.6],每组 2,000 个掩码,其中 1,000 个没有靠近边缘的缺失像素,另外 1,000 个有靠近边缘的缺失像素,最终形成大小为 12,000 的测试集。
基本信息 :
划分(官方):55,116 / 12,000 (train / test)
划分(个人用法,见「使用说明」):76,800 / 19,200 (train / test)
分辨率:
训练集(增强前):960×640
测试集:512×512
使用说明(重要!) :从「简要介绍」可以看到,NVIDIA 官方提供的训练集并不是最终的训练数据,需要在训练时做增强操作。但考虑到数据增强的耗时,很多研究只采用官方测试集中的图片训练和测试,因此需要重新制作和划分训练、测试集。我这里采用类似于 EdgeConnect 的做法重新划分训练、测试集,具体方法为:每张官方测试集中的掩码图片在翻转和旋转后可以生成 8 张图片,因此原来的测试集大小被扩张到 96,000,再随机按 4:1 划分新的训练/测试集(详见 knazeri/edge-connect#28 (comment) )。划分脚本如下 _make_irregular_dataset.py
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 import osimport numpy as npfrom PIL import Imagefrom tqdm import tqdmimport torchimport torchvision.transforms as Tif __name__ == '__main__' : irregular_mask = '/data/NVIDIAIrregularMaskDataset/downloaded_test/' save_path_train = '/data/NVIDIAIrregularMaskDataset/train/' save_path_test = '/data/NVIDIAIrregularMaskDataset/test/' masks = os.listdir(irregular_mask) for k in range (6 ): if not os.path.exists(os.path.join(save_path_train, str (k))): os.mkdir(os.path.join(save_path_train, str (k))) if not os.path.exists(os.path.join(save_path_test, str (k))): os.mkdir(os.path.join(save_path_test, str (k))) tests = np.random.choice(np.arange(2000 ), size=400 , replace=False ) for idx, fileid in enumerate (tqdm(range (k * 2000 , (k + 1 ) * 2000 ))): mask = Image.open (os.path.join(irregular_mask, str (fileid).zfill(5 )+'.png' )) mask = T.ToTensor()(mask) mask = torch.where(mask < 0.5 , 0. , 1. ) for i in range (4 ): for j in range (2 ): tmp = T.RandomRotation((i * 90 , i * 90 ))(mask) tmp = T.RandomHorizontalFlip(p=j)(tmp) tmp = T.ToPILImage()(tmp) if idx in tests: tmp.save(os.path.join(save_path_test, str (k), str (fileid).zfill(5 )+f'_{i*2 +j} .png' )) else : tmp.save(os.path.join(save_path_train, str (k), str (fileid).zfill(5 )+f'_{i*2 +j} .png' ))
本地目录结构 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 data └── NVIDIAIrregularMaskDataset ├── _make_irregular_dataset.py ├── downloaded_train.zip (1.33 GB, renamed) ├── downloaded_test.zip (44.9 MB, renamed) ├── downloaded_train (extracted from downloaded_train.zip, renamed) │ ├── 00001.png │ ├── ... │ └── 55116.png ├── downloaded_test (extracted from downloaded_test.zip, renamed) │ ├── 00000.png │ ├── ... │ └── 11999.png ├── train.zip (285 MB) ├── test.zip (71.3 MB) ├── train (created by _make_irregular_dataset.py) └── test (created by _make_irregular_dataset.py)
需要自定义 Dataset
加载数据集 。
Oxford 102 Flower
官网 | Papers with Code
简要介绍 :Oxford 102 Flower 是一个包含 102 个花卉类别的图像分类数据集。所选花卉是英国常见的花卉。每个类别包含 40 至 258 张图像。这些图像在大小、姿态和光照上都有很大的变化。此外,有些类别内部变化很大,还有一些类别非常相似。
基本信息 :
数量:8,189
划分:1,020 / 1,020 / 6,149 (train / valid / test)
分辨率:不一致,但最小边长均为 500
标注:102 类
下载 :官网提供了 6 个下载链接,分别是:
Dataset images
102flowers.tgz
344.9 MB
Image segmentations
102segmentations.tgz
203.6 MB
&Chi2 distances
distancematrices102.mat
1.98 GB
The image labels
imagelabels.mat
502 B
The data splits
setid.mat
15 KB
README
README.txt
/
本地目录结构 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 data └── Oxford-102-Flower └── flowers-102 ├── README.txt ├── imagelabels.mat ├── setid.mat ├── distancematrices102.mat ├── 102flowers.tgz (344.9 MB) ├── 102segmentations.tgz (203.6 MB) ├── jpg (extracted from 102flowers.tgz) │ ├── image_00001.jpg │ ├── ... │ └── image_08189.jpg └── segmim (extracted from 102segmentations.tgz) ├── segmim_00001.jpg ├── ... └── segmim_08189.jpg
使用 torchvision 加载数据集 。
Paris StreetView
官网与下载 :需要联系作者,见 https://github.com/pathak22/context-encoder/issues/24
基本信息 :
数量:15,000
划分:14,900 / 100 (train / test)
分辨率:
本地目录结构 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 data └── ParisStreetView ├── paris_eval_75876.zip (16.2 MB) ├── paris_train_original.zip (1.22 GB) ├── paris_eval_gt (extracted from paris_eval_75876.zip) │ ├── 001_im.png │ ├── ... │ └── 100_im.png ├── paris_eval_corrupted (extracted from paris_eval_75876.zip) │ ├── 001_im.png │ ├── ... │ └── 100_im.png └── paris_train_original (extracted from paris_train_original.zip) ├── 48.842502_2.344968_90_-004.JPG ├── ... └── 48.867048_2.348918_270_-004.JPG
需要自定义 Dataset
加载数据集 ,例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 import osfrom PIL import Imagefrom torch.utils.data import Datasetclass ParisStreetView (Dataset ): """ The downloaded data should be organized in the following structure: - root/ - paris_train_original/ (14,900 images extracted from paris_train_original.zip) - 48.842502_2.344968_90_-004.JPG - ... - paris_eval_gt/ (100 images extracted from paris_eval_75876.zip) - 001_im.png - ... """ def __init__ (self, root, split='train' , transform=None ): assert split in ['train' , 'test' , 'all' ] train_root = os.path.join(root, 'paris_train_original' ) eval_root = os.path.join(root, 'paris_eval_gt' ) assert os.path.isdir(root) and os.path.isdir(train_root) and os.path.isdir(eval_root) self.transform = transform img_ext = ['.png' , '.jpg' , '.jpeg' ] self.img_paths = [] if split in ['train' , 'all' ]: for curdir, subdirs, files in os.walk(train_root): for file in files: if os.path.splitext(file)[1 ].lower() in img_ext: self.img_paths.append(os.path.join(curdir, file)) if split in ['test' , 'all' ]: for curdir, subdirs, files in os.walk(eval_root): for file in files: if os.path.splitext(file)[1 ].lower() in img_ext: self.img_paths.append(os.path.join(curdir, file)) self.img_paths = sorted (self.img_paths) def __len__ (self ): return len (self.img_paths) def __getitem__ (self, item ): X = Image.open (self.img_paths[item]) if self.transform is not None : X = self.transform(X) return Xif __name__ == '__main__' : dataset = ParisStreetView(root='/data/ParisStreetView' , split='train' ) print (len (dataset)) dataset = ParisStreetView(root='/data/ParisStreetView' , split='test' ) print (len (dataset)) dataset = ParisStreetView(root='/data/ParisStreetView' , split='all' ) print (len (dataset))
PASCAL-VOC
官网 | Papers with Code
详细统计数据 :http://host.robots.ox.ac.uk/pascal/VOC/voc2007/dbstats.html
说明 :最常用的两个版本是 2007 和 2012,检测和分割可用的数据量也有所不同
本地目录结构 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 data └── PASCAL-VOC ├── VOCtrainval_06-Nov-2007.tar (460 MB) ├── VOCtest_06-Nov-2007.tar (451 MB) ├── VOCtrainval_11-May-2012.tar (2 GB) └── VOCdevkit (extracted from *.tar) ├── VOC2007 │ ├── Annotations │ │ ├── 000001.xml │ │ ├── ... │ │ └── 009963.xml │ ├── ImageSets │ │ ├── Layout │ │ │ ├── test.txt │ │ │ ├── train.txt │ │ │ ├── trainval.txt │ │ │ └── val.txt │ │ ├── Main │ │ │ ├── aeroplane_test.txt │ │ │ ├── ... │ │ │ └── val.txt │ │ └── Segmentation │ │ ├── test.txt │ │ ├── train.txt │ │ ├── trainval.txt │ │ └── val.txt │ ├── JPEGImages │ │ ├── 000001.jpg │ │ ├── ... │ │ └── 009963.jpg │ ├── SegmentationClass │ │ ├── 000032.jpg │ │ ├── ... │ │ └── 009950.jpg │ └── SegmentationObject │ ├── 000032.jpg │ ├── ... │ └── 009950.jpg └── VOC2012 (same as VOC2007)
使用 torchvision 加载数据集 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 >>> import torchvision.datasets as dset>>> voc = dset.VOCDetection(root='/data/PASCAL-VOC' , year='2007' , image_set='train' )>>> len (voc)2501 >>> voc = dset.VOCDetection(root='/data/PASCAL-VOC' , year='2007' , image_set='val' )>>> len (voc)2510 >>> voc = dset.VOCDetection(root='/data/PASCAL-VOC' , year='2007' , image_set='trainval' )>>> len (voc)5011 >>> voc = dset.VOCDetection(root='/data/PASCAL-VOC' , year='2007' , image_set='test' )>>> len (voc)4952 >>> voc = dset.VOCSegmentation(root='/data/PASCAL-VOC' , year='2007' , image_set='train' )>>> len (voc)209 >>> voc = dset.VOCSegmentation(root='/data/PASCAL-VOC' , year='2007' , image_set='val' )>>> len (voc)213 >>> voc = dset.VOCSegmentation(root='/data/PASCAL-VOC' , year='2007' , image_set='trainval' )>>> len (voc)422 >>> voc = dset.VOCSegmentation(root='/data/PASCAL-VOC' , year='2007' , image_set='test' )>>> len (voc)210 >>> voc = dset.VOCDetection(root='/data/PASCAL-VOC' , year='2012' , image_set='train' )>>> len (voc)5717 >>> voc = dset.VOCDetection(root='/data/PASCAL-VOC' , year='2012' , image_set='val' )>>> len (voc)5823 >>> voc = dset.VOCDetection(root='/data/PASCAL-VOC' , year='2012' , image_set='trainval' )>>> len (voc)11540 >>> voc = dset.VOCSegmentation(root='/data/PASCAL-VOC' , year='2012' , image_set='train' )>>> len (voc)1464 >>> voc = dset.VOCSegmentation(root='/data/PASCAL-VOC' , year='2012' , image_set='val' )>>> len (voc)1449 >>> voc = dset.VOCSegmentation(root='/data/PASCAL-VOC' , year='2012' , image_set='trainval' )>>> len (voc)2913
Places365
官网 | Papers with Code | 下载链接
简要介绍 :Places365 数据集是一个场景识别数据集,由 1000 万张图像组成,包括 434 个场景类别。数据集有两个版本:Places365-Standard 包括 180 万个训练图像和 36000 个验证图像,涵盖了 365 个场景类别;Places365-Challenge-2016 在训练集中增加了 620 万张额外的图像,包括了 69 个新的场景类别(总共涵盖了 434 个场景类别),达到了 800 万张的训练图像。
基本信息 :
Places365-Standard
数量:2,168,460
划分:1,803,460 / 36,500 / 328,500 (train / valid / test)
分辨率:
High-resolution:按照短边 512、保留长宽比缩放,若原图小于 512 则不变
Small:直接缩放至 256×256,不管原始长宽比
标注:365 类场景
Places365-Challenge-2016
数量:训练集在 Standard 的基础上额外添加了 6.2 million;验证集和测试集不变
划分:8,026,628 / 36,500 / 328,500 (train / valid / test)
标注:365 类场景
Places-Extra69
划分:98,721 / 6,600 (train / test)
标注:额外 69 类场景
本地目录结构 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 data └── Places365 ├── categories_places365.txt ├── places365_train_standard.txt ├── places365_train_challenge.txt ├── places365_val.txt ├── places365_test.txt ├── train_256_places365standard.tar (26.1 GB, MD5: 53ca1c756c3d1e7809517cc47c5561c5) ├── train_large_places365standard.tar (112.6 GB, MD5: 67e186b496a84c929568076ed01a8aa1) ├── train_256_places365challenge.tar (108 GB, MD5: 741915038a5e3471ec7332404dfb64ef) ├── train_large_places365challenge.tar (477 GB, MD5: 605f18e68e510c82b958664ea134545f) ├── val_256.tar (525.2 MB, MD5: e27b17d8d44f4af9a78502beb927f808) ├── val_large.tar (2.27 GB, MD5: 9b71c4993ad89d2d8bcbdc4aef38042f) ├── test_256.tar (4.74 GB, MD5: f532f6ad7b582262a2ec8009075e186b) ├── test_large.tar (20.48 GB, MD5: 41a4b6b724b1d2cd862fb3871ed59913) ├── data_256_standard (extracted from train_256_places365standard.tar) │ ├── a │ ├── ... │ └── z ├── data_large_standard (extracted from train_large_places365standard.tar) │ ├── a │ ├── ... │ └── z ├── val_256 (extracted from val_256.tar) │ ├── Places365_val_00000001.jpg │ ├── ... │ └── Places365_val_00036500.jpg ├── val_large (extracted from val_large.tar) │ ├── Places365_val_00000001.jpg │ ├── ... │ └── Places365_val_00036500.jpg ├── test_256 (extracted from test_256.tar) │ ├── Places365_test_00000001.jpg │ ├── ... │ └── Places365_test_00328500.jpg └── test_large (extracted from test_large.tar) ├── Places365_test_00000001.jpg ├── ... └── Places365_test_00328500.jpg
注:我目前只下载了 Places365-Standard.
使用 torchvision 加载数据集(不支持测试集) :
1 2 3 4 5 6 7 >>> import torchvision.datasets as dset>>> places = dset.Places365(root='/data/Places365' , split='train-standard' , small=True )>>> len (places)1803460 >>> places = dset.Places365(root='/data/Places365' , split='val' , small=True )>>> len (places)36500
可以自定义 Dataset
加载测试集 。
Raindrop
官网 | Papers with Code | Google Drive
简要介绍 :Raindrop 是一个真实拍摄(而非合成)的用于去雨滴任务的数据集,由若干图像对构成。每对图像包含完全相同的背景,但其中一个图像有雨滴,而另一个图像则没有。为此,使用两片完全相同的玻璃——一片喷有水、另一片保持干净——附在相机镜头上拍摄。拍摄设备为 Sony A6000 和 Canon EOS 60.
基本信息 :
数量:1,110
划分:861 / 249 (train / test_b);另外,取 test_b 中对齐比较好的 58 对图片构成 test_a.
分辨率:多数 720×480,有少量例外,但也很接近。
本地目录结构 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 data └── Raindrop ├── train.zip (1.07 GB) ├── test_a.zip (63.7 MB) ├── test_b.zip (154.4 MB) ├── train (extracted from train.zip) │ ├── data (contains 861 png images) │ ├── gt (contains 861 png images) │ └── preview.html ├── test_a (extracted from test_a.zip) │ ├── data (contains 58 png images) │ └── gt (contains 58 png images) └── test_b (extracted from test_b.zip) ├── data (contains 249 jpg images) └── gt (contains 249 jpg images)
需要自定义 Dataset
加载数据集 。