1,CIFAR-10数据集
CIFAR-10数据集由10个类的60000个32x32彩色图像组成,每个类有6000个图像。有50000个训练图像和10000个测试图像。
数据集分为五个训练批次和一个测试批次,每个批次有10000个图像。测试批次包含来自每个类别的恰好1000个随机选择的图像。训练批次以随机顺序包含剩余图像,但一些训练批次可能包含来自一个类别的图像比另一个更多。总体来说,所有训练批组成的训练集,每一类都有5000张图。
下载地址:https://www.cs.toronto.edu/~kriz/cifar.html
可视化代码:
import numpy as np
from PIL import Image
import pickle
import os
import matplotlib.image as plimg
CHANNEL = 3
WIDTH = 32
HEIGHT = 32
data = []
labels=[]
classification = ['airplane','automobile','bird','cat','deer','dog','frog','horse','ship','truck']
for i in range(5):
with open("./cifar-10-batches-py/data_batch_"+ str(i+1),mode='rb') as file:
#数据集在当脚本前文件夹下
data_dict = pickle.load(file, encoding='bytes')
data+= list(data_dict[b'data'])
labels+= list(data_dict[b'labels'])
img = np.reshape(data,[-1,CHANNEL, WIDTH, HEIGHT])
#代码创建文件夹,也可以自行创建
data_path = "./pic3/"
if not os.path.exists(data_path):
os.makedirs(data_path)
for i in range(100):
r = img[i][0]
g = img[i][1]
b = img[i][2]
plimg.imsave("./pic4/" +str(i)+"r"+".png",r)
plimg.imsave("./pic4/" +str(i)+"g"+".png",g)
plimg.imsave("./pic4/" +str(i) +"b"+".png",b)
ir = Image.fromarray(r)
ig = Image.fromarray(g)
ib = Image.fromarray(b)
rgb = Image.merge("RGB", (ir, ig, ib))
name = "img-" + str(i) +"-"+ classification[labels[i]]+ ".png"
rgb.save(data_path + name, "PNG")
2,cifar100数据集
这个数据集和cifar10类似,它包含同样的60,000张图像,它有100个类,每个类包含600个图像,600个图像中有500个训练图像和100个测试图像。100类实际是由20个类(每个类又包含5个子类)构成(5*20=100)。
3,ImageNet数据集
ImageNet数据集是一个计算机视觉数据集,是由斯坦福大学的李飞飞教授带领创建。该数据集包合 14,197,122张图片和21,841个Synset索引。 Synset是WordNet层次结构中的一个节点,它又是 一组同义词集合。 ImageNet数据集一直是评估图像分类算法性能的基准。
ImageNet 中目前共有 14,197,122 幅图像,总共分为 21,841 个类别(synsets),通常我们所说的 ImageNet 数据集其实是指 ISLVRC2012 比赛用的子数据集,其中 train 有 1,281,167 张照片和标签,共 1000 类,大概每类 1300 张图片,val 有 50,000 副图像,每类 50 个数据,test 有 100,000 副图片,每类 100 个数据。相比CIFAR-10 , ImageNet 数据集图片数量更多, 分辨率更高,含有的类别更多(高上干个图像类别),图片中含高更多的无关噪声和变化,因此识别难度比CIFAR-10 高得多。