| FSL数据集 | 来源 | 类别数 | 图片数 | 图片尺寸 |
|---|---|---|---|---|
| CUB-200-2011 | / | 200 | 11,788 | \ |
| Omniglot | / | 1623 | 32,460 | 105*105 |
| mini-ImageNet | ImageNet | 100 | 60,000 | \ |
| tiered-ImageNet | ImageNet | 608 | 779,165 | \ |
| CIFAR-FS | CIFAR 100 | 100 | 60,000 | 32*32 |
| FC100 | CIFAR 100 | 100 | 60,000 | 32*32 |
数据集论文:The Caltech-UCSD Birds-200-2011 Dataset
数据来源:CUB-200-2011 数据集全称 Caltech-UCSD Birds-200-2011,是由加利福尼亚理工学院提供的鸟类数据库,共包含 200 种鸟类,共 11,788 张图像。
适用任务:Few-shot Image Classification & Detection & Segmentation
数据集使用说明:

images:所有图像数据,每个类别对应一个子文件夹,共划分为 200 个子文件夹,每类都有 60 张左右的图片。image.txt:所有图像的路径classes.txt:200 个类别名称image_class_labels.txt:对图像和其对应标签按照数字编号bounding_boxes.txt:所有图像中目标的 bounding box,共 11788 个条目,用于目标检测任务train_test_split.txt:训练测试数据划分,第一个序号表示样本序号,后面的0/1表示属于训练/测试样本下载方式:
数据集论文:Omniglot第一次使用在2015年的论文 Human-level concept learning through probabilistic program induction
数据来源:Omniglot数据集来自 50 种不同语言的手写字符,共包含 1623 个类别(即1623种手写字符),每个类别只有 20 个样本,图像大小为 105 × 105 105 \times 105 105×105。因此 Omniglot 数据集是一个类别极多,但每个类别的样本数量很少的小样本手写字符数据集。
比如,1623个类别里包含:日语平假名52个,日语片假名47个,韩语元音和辅音分别有21个和19个,最常见的拉丁字母表26个,等等。每个类别的字符有20个不同的手写体。
适用任务:Few-shot Image Classification
数据使用说明:
background set 和 evaluation set,分别包含 30 个类别和 20 个类别。其实 background set 对应的就是我们常说的 training set,用于模型的学习,evaluation set 对应我们的 test set,用于测试模型的性能。background small 1 和 background small 2 作为训练集,而测试集不变。small 1 和 small 2 分别仅包含 5 个 background set,用于模拟成年人真实的学习数据量。(x,y,time),且时间 time 以毫秒为单位,笔画数据存储在 matlab 文件中。笔画以 ‘START’ 为开始,笔画间的断点标记为 ‘BREAK’(即抬笔),原始的笔画数据是未经处理的,在时间和空间上的interval不一致,因此如果需要用到笔画数据,需要进行一定的插值处理来获取统一的数据分布。因此,对于普通使用,只要使用 background set 和 evaluation set 即可:
images_background.zip 和 images_evaluation.zipstrokes_background.zip 和 strokes_evaluation.zip对于更有难度的任务设置,使用 small set 1 或者 small set 2(注意测试数据不变):
images_background_small1.zip(或 2) 和 images_evaluation.zipstrokes_background_small1.zip(或 2) 和 strokes_evaluation.zip下载方式:
python目录下
解压压缩包后,在 python 文件夹下可以看到所有的数据压缩包,其中:
demo.py 用于展示数据集的部分数据images_background.zip 训练数据,包含30个文件夹,每个文件夹都对应一个语言;每个语言文件夹下又包含个数不等的character文件夹,对应该语言的不同字符;每个字符文件夹下包含20张图片,对应该字符来自20个不同人的手写体。images_evaluation.zip 测试数据,同上strokes_background.zip 训练数据对应的笔画,数据组织同images,每张图片都对应一个txt文件,文件中START和BREAK分别表示开始书写和抬笔,其余的数据格式为 (x, y, time),表示笔尖坐标位置和时间。strokes_evaluation.zip 测试数据对应的笔画,同上images_background_small1.zip images_background 的子集,包含5个类别images_background_small2.zip images_background 的子集,包含5个类别strokes_background_small1.zip images_background_small1对应的笔画strokes_background_small2.zip images_background_small1对应的笔画运行python/demo.py,可以得到如下的可视化字符,其中不同的颜色代表不同的笔画:

可视化指定字母表字母代码:
import glob
from PIL import Image
def plot_image(alphabet):
image_path = f'../omniglot/*/{alphabet}/*/'
characters = glob.glob(image_path)
image_files = []
for character in characters:
img = glob.glob(f"{character}*.png")[0]
image_files.append(Image.open(img))
W, H = 40, 40
ROW, COL = 4, 13
target = Image.new("RGB", (W * COL, H *ROW))
for row in range(ROW):
for col in range(COL):
target.paste(image_files[COL*row+col], (0 + W*col, 0 + H*row))
target.save(f"{alphabet}_patchs.png", quality=80)
if __name__ == '__main__':
plot_image("Japanese_(hiragana)")
数据集论文:
[1] Matching networks for one shot learning, NIPS 2016. Vinyals et al.
[2] Optimization as a model for few-shot learning, ICLR 2017. Ravi and Larochelle.
数据来源:从 ImageNet ILSVRC-2012 中抽取了 100 个类别的图像组成,每个类别包含 600 张图像,共 60,000 张图像。miniImageNet 在 2016 年由 工作 [1] 提出,作者将 100 个类别随机划分为 64:16:20,分别作为 training、validation 和 testing set,三个 sets 互不重叠。但是 工作 [1] 发表时没有提供他们的数据划分文件,因此 工作 [2] 按照同样的比例重新划分了数据。因此目前有两种数据划分方式,但大多数工作都使用了 工作 [2] 的数据划分。两种数据划分方式可以参考:mini-ImageNet 数据划分方式
适用任务:Few-shot Image Classification
数据集使用说明:
images 文件夹,下面包含了所有的 60,000 张图片,图片命名方式是 “类别+图片序号”,每张图片的前缀 nxxxx 是类别,后面的序号以 0 为填充。train.csv、val.csv 和 test.csv,分别对应训练、验证和测试的数据名称及其标签,这个数据划分文件是工作[2]提出的,也是大部分工作所使用的。工作 [1] 提出的数据划分方式:Vinyals et al.
工作 [2] 提出的数据划分方式:Ravi and Larochelle.
下面是部分图片,可以看到 mini-ImageNet 的图片大小并不统一,因此在输入网络前通常需要 resize。
下载方式:
.csv索引文件。.csv 索引文件作为 train/val/test 的划分。.csv 文件内容如下:第一例为文件名(和图片名称一一对应),第二列为标签(和文件名前缀对应)。

数据集论文:[1] Meta-learning for semi-supervised few-shot classification, ICLR 2018.
数据来源:tieredImageNet 在 2018 年由 工作[1] 提出,从 ImageNet ILSVRC-2012 中抽取了 34 个超类别(Categories),每个超类别包含 10~30 个不等的子类别(Classes),共 608 个子类别。每个子类别有数量不等的图像,共 779,165 张图像。与 miniImageNet 不同的是,tieredImageNet 考虑了 ImageNet 的类别层级结构。数据按照超类别进行划分,其中 20 个超类(351个子类)作为 training set,6 个超类(97个子类)作为 validation set,8 个超类(160个子类)作为 test set。
与 mini-Imagenet 相比:
| Train | Val | Test | Total | |
|---|---|---|---|---|
| Categories | 20 | 6 | 8 | 34 |
| Classes | 351 | 97 | 160 | 608 |
| Images | 448,695 | 124,261 | 206,209 | 779,165 |
适用任务:Few-shot Image Classification
数据集使用说明:和 mini-ImageNet 几乎一致,原数据压缩包按照 train、val 和 test 对数据进行了划分,但没有相应的索引文件,建议生成索引文件(按照 mini-ImageNet 的索引文件格式)方便训练。
下载方式:
.csv 索引文件。.csv 文件内容如下:第一例为文件名(和图片名称一一对应),第二列为标签(和文件名前缀对应)。

数据来源:CIFAR-FS 全称 CIFAR100 Few-Shot 数据集,来源于 CIFAR-100。CIFAR-FS 共包含 100 个类别,每个类别包含 600 张图像,合计 60,000 张图像。使用中通常划分为训练集(64类),验证集(16类) 和 测试集(20类),图像尺寸统一为 32*32。
适用任务:Few-shot Image Classification
数据集使用说明:压缩包内包含 data 和 split 两个文件夹,分别为数据和数据划分文件 .txt,划分文件按照类别名称进行了划分。
下载方式:CIFAR-FS 百度云下载
数据来源:FC100 数据集全称是 Few-shot CIFAR100数据集,与 CIFAR-FS 类似,同样来自 CIFAR-100。共包含 100 个类别,每个类别 600 张图像,合计 60,000 张图像。与 CIFAR-FS 不同之处在于,FC100 不是按照类别(Class)进行训练/验证/测试集划分的,而是按照超类(Superclass)进行划分的。FC100 共包含 20 个超类(100 class),其中训练集有 12 个超类(60 class),验证集有 4 个超类(20 class),测试集有 4 个超类(20 class)。
适用任务:Few-shot Image Classification
数据集使用说明:和 CIFAR-FS 数据一致,仅划分 训练/验证/测试集 的方式不同。
下载方式:FC100 百度云下载