ILSVRC2012(ImageNet2012)数据集的下载及ILSVRC2012_img_val数据集的分类

1.下载地址

ILSVR2012及其分类文件下载地址

train数据集过大(对个人电脑来说),我们用val数据集进行数据收集及训练,caffe文件存放着数据集的标签及一些数据的排布:

在这里插入图片描述

下载好解压后是这个样子

caffe_ilsvrc12文件里是这个样子

在这里插入图片描述

ILSVR2012_img_val文件里是这个样子

在这里插入图片描述

2、图片整理分类

此时的ILSVR2012_img_val文件里的图片是未分类好的(如上图),我们在ILSVR2012_img_val文件以及caffe_ilsvrc12文件同路径下用下面的的代码创建一个.py文件:
import os
import shutil
import tqdm

def openreadtxt(file_name):
    data = []
    file = open(file_name, 'r')  # 打开文件
    file_data = file.readlines()  # 读取所有行
    for row in file_data:
        tmp_list = row.split(' ')  # 按‘,’切分每行的数据

        tmp_list[-1] = tmp_list[-1].replace('\n',',') #去掉换行符
        data.append(tmp_list)  # 将每行数据插入data中
    return data



if __name__ == "__main__":
    data = openreadtxt('./caffe_ilsvrc12/val.txt')
    a = []
    b = []
    print(data)
    for i in range(len(data)):
        a.append(data[i][1])
    for i in range(len(a)):
        b.append(int(a[i].replace(',','')))
    print(len(b))


#给ILSVR2012_img_val数据集分类

    old_path = '.\ILSVR2012_img_val'
    new_path = '.\image'#分类好的图片文件夹所存放的位置,每一类图片存放到同一个文件夹中
    files = os.listdir(old_path)
    for i in tqdm.tqdm(range(len(files))):
        if (files[i][-4:] == 'JPEG'):
            old_file_path = old_path + '/' + files[i]
            new_file_path = new_path + '/' + str(b[i]) + '/' + files[i]
            new_file_path_class = new_path + '/' + str(b[i])

            if not os.path.exists(new_file_path_class):
                os.mkdir(new_file_path_class)
                shutil.copy(old_file_path, new_file_path)
            else:
                shutil.copy(old_file_path, new_file_path)

再在同路径创建一个存放分类好的图片的文件夹image如下图所示(classfy是我创建的.py文件):

接下来就可以运行代码了(我用的pycharm):

在这里插入图片描述

可以看到代码正在运行:

在这里插入图片描述

运行完毕后分类成功,在image文件夹下可看到如下文件夹(每一类文件存到同一个文件夹中):

在这里插入图片描述

且文件夹中是同一类图片:

在这里插入图片描述

分类完毕。
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐