最新可行 ImageNet2012的验证集val数据分为1000类 及对应txt标签文件

文章描述了一个手动创建分类脚本的过程,用于整理Image2012数据集的验证集。作者首先创建了1000个对应训练集的空文件夹,然后使用Python脚本读取categories.txt文件,将验证集的50000张图片按类别移动到对应的文件夹中,每个文件夹包含50张图片,实现了与训练集的一一对应。
摘要由CSDN通过智能技术生成

Iamge2012下载解压后发现训练集有对应1000类及文件,而验证集只有50000张凌乱的图片,听说能用.sh文件自动分类但我也没有找到这个文件,并且.sh是Linux的指令,我的windows是不行滴,索性手写一个分类脚本,别的博主给对应的标签文件大部分过期了,别担心,我带着文件来啦。

1.创建1000个对应训练集空文件夹

复制放在github里的mkdir.txt标签信息,粘贴在新建的一个mkdir.txt
在这里插入图片描述
代码:(因为路径都用绝对路径,python脚本路径随意,注意代码中只用改变两个注释处的路径即可)

import os

files_name = []

# 这里是打开mkdir.txt的路径
for line in open(r"E:\ILSVRC2012\done\mkdir.txt", "r"):  
    files_name.append(line[9:18])
    
# print(files_name[0],files_name[-1])
# print(len(files_name))

for each in files_name:

    # 这里是打开要放一千个文件夹的路径
    os.makedirs("E://ILSVRC2012//done//after_categories//{}".format(each))
print("make dir done")

完成后就得到了一千个对应训练集的空文件夹
在这里插入图片描述

2.把五千张验证图分别放入文件夹

对应的标签文件我放在categories.txt里了,点击Download自取
在这里插入图片描述
内容有五千行,每行一张图片的Linux移动指令
在这里插入图片描述
代码:(python脚本的位置随意,代码中也只用改三个注释处路径的内容即可)

import sys
# import cv2
import matplotlib.pyplot as plt
import re,os
from PIL import Image
import numpy as np

lines = []

# 这个是放categories.txt的路径
for each in open(r"D:\Users\CaiJiyuan\Desktop\categories.txt", "r"):  

    lines.append((each[3:31],each[32:41]))
    
# print(len(lines))

for i,item in enumerate(lines):
    if i%100==0:
        print(i,'done')

    #这个是获取原始验证集ILSVRC2012_img_val中每个图像的路径
    image = Image.open('E://ILSVRC2012//done//ILSVRC2012_img_val//{}'.format(item[0]))  
    
    
    #这个是上面的代码里放一千个空文件夹的路径
    path = 'E://ILSVRC2012//done//after_categories//{}'.format(item[1])
    image.save(os.path.join(path, item[0]))
    image.close()

大概40分钟以后慢慢跑完了
在这里插入图片描述

验证集里每个文件夹中有五十张图,并且文件夹与训练集一一对应:

在这里插入图片描述

  • 10
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

汤米尼克

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值