一、Mini-ImageNet数据集介绍
ImageNet 1000类的数据太大了,全部下载大概有100GB左右。
2016年google DeepMind团队从ImagNet数据集中抽取的一小部分(大小约3GB)制作了Mini-ImageNet数据集,共有100个类别,每个类别有600张图片,共6w张(都是.jpg结尾的文件),而且图像的大小并不是固定的,作为小样本学习(Few-shot Learning)常用数据集。
训练,验证,测试数据集中的类别不交叉重复。基础集(Base Class,64个类别),验证集(Validation Class,16个类别)和新类别集(Novel Class,20个类别)。
1、数据集结构
├── mini-imagenet: 数据集根目录
├── images: 所有的图片都存在这个文件夹中
├── train.csv: 对应训练集的标签文件
├── val.csv: 对应验证集的标签文件
└── test.csv: 对应测试集的标签文件
2、数据集下载
百度网盘链接
下载地址:https://pan.baidu.com/s/1bQTtrkEgWfs_iaVRwxPF3Q
提取码:33e7
标签对应类别名json文件下载
imagenet_class_index.json文件是每个类别对应的实际物体名称,这个文件是ImageNet1000类数据集中对应的标签文件。
imagenet_class_index.json文件部分内容如下,n01440764标签对应类别为tench。
{
"0": ["n01440764", "tench"],
"1": ["n01443537", "goldfish"],
"2": ["n01484850", "great_white_shark"],
...
}
ImageNet数据集风格——WordNet层次结构
ImageNet是是目前深度学习图像领域应用得非常多的,根据WordNet层次结构组织的图像数据集,由李飞飞团队创建,目前常用的是2012年版本的。
官网链接下载需要教育邮箱登录。
WordNet层次结构,文件夹名为类别名,文件夹下是该类别的所有图片,如下所示,实际更加复杂,可嵌套很多层。
ImageNet
│
├── Dog
│ ├── img_dog_0001.jpg
│ ├── img_dog_0002.jpg
│ ├── ...
├── Cat
│ ├── img_cat_0001.jpg
│ ├── img_cat_0002.jpg
│ ├── ...
└── ...
二、python处理数据集为分类数据集
1、文件目录结构
├── data
│ ├── images
│ ├── train.csv
│ ├── val.csv
│ ├── test.csv
│ └── imagenet_class_index.json
│
├── classification_process.py
└── dataset_process.py
2、classification_process.py
划分出新的CSV文件和json文件:new_train.csv 、new_val.csv、classes_name.json。
import os
import json
import pandas as pd
from PIL import Image
import matplotlib.pyplot as plt
def read_csv_classes(csv_dir: str, csv_name: str):
data = pd.read_csv(os.path.join(csv_dir, csv_name))
label_set = set(data["label"].drop_duplicates().values)
print("{} have {} images and {} classes.".format(csv_name,
data.shape[0],
len