图像分类任务CIFAR-10数据集如何下载

1.CIFAR-10数据介绍

 
Cifar-10 是由 Hinton 的学生 Alex Krizhevsky、Ilya Sutskever 收集的一个用于普适物体识别的计算机视觉数据集,它包含 60000 张 32 X 32 的 RGB 彩色图片,总共 10 个分类。其中,包括 50000 张用于训练集,10000 张用于测试集。

一共包含10 个类别的RGB 彩色图片:飞机( airplane )、汽车( automobile )、鸟类( bird )、猫( cat )、鹿( deer )、狗( dog )、蛙类( frog )、马( horse )、船( ship )和卡车( truck )

2.官网下载地址

CIFAR-10 and CIFAR-100 datasets

有python版本 Matlab版本 二进制版本(我以python版本为例)

下载这个文件,该数据集文件包含data_batch1……data_batch5,和test_batch。batches.meta是一个python字典对象,如:abel_names[0] == “airplane”, label_names[1] == “automobile”

3.将data_batch1-5转换为jpg图片

代码和数据集文件夹上下级关系如下红框

11.py就是转换代码,如下:

import pickle
import numpy as np
import os
import cv2

def unpickle(file):
    with open(file, 'rb') as f:
        return pickle.load(f, encoding='bytes')

def main(cifar10_data_dir):
    # 创建 train 和 test 文件夹
    os.makedirs(os.path.join(cifar10_data_dir, 'train'), exist_ok=True)
    os.makedirs(os.path.join(cifar10_data_dir, 'test'), exist_ok=True)

    for i in range(1, 6):
        train_data_file = os.path.join(cifar10_data_dir, 'data_batch_' + str(i))
        print(train_data_file)
        data = unpickle(train_data_file)
        print('unpickle done')
        for j in range(len(data[b'data'])):
            img = np.reshape(data[b'data'][j], (3, 32, 32))
            img = img.transpose(1, 2, 0)
            img_name = 'train/' + str(data[b'labels'][j]) + '_' + str(j + (i - 1) * 10000) + '.jpg'
            cv2.imwrite(os.path.join(cifar10_data_dir, img_name), img)

    test_data_file = os.path.join(cifar10_data_dir, 'test_batch')
    data = unpickle(test_data_file)
    for i in range(len(data[b'data'])):
        img = np.reshape(data[b'data'][i], (3, 32, 32))
        img = img.transpose(1, 2, 0)
        img_name = 'test/' + str(data[b'labels'][i]) + '_' + str(i) + '.jpg'
        cv2.imwrite(os.path.join(cifar10_data_dir, img_name), img)

if __name__ == "__main__":
    main('cifar-10-batches-py')

运行此代码后,应该会在 cifar-10-batches-py/traincifar-10-batches-py/test 文件夹中生成JPEG图像

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

初窺门径

谢谢鼓励!共同进步~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值