1 Imagenet验证集介绍
Imagenet验证集数据大小为6.5G,共有1000类的50000张图片。本文主要是对这1000类的50000张图片的标签信息进行处理分类汇总成一个csv表格,便于实验读入信息需要。Imagenet验证集标签整理的文件和代码链接如下所示:
2 Imagenet验证集处理
待处理的文件有两个,一个是imagenet_img_info.txt文件,它包含了50000张图片与100个类别的对应关系。
另一个文件是imagenet_img_info.txt文件,它包含了Imagenet数据集中1000个类别详细信息。
最终输出的用于实验的csv文件如下所示,它详细的概括了图片与其类别的关系。
2 实例程序
用imagenet_img_info.txt文件和imagenet_img_info.txt文件最终生成的csv文件的程序如下所示:
import os
import re
import json
import csv
path1 = 'imagenet_label_info.txt'
path2 = 'imagenet_img_info.txt'
f1 = open(path1,'r')
str_all = f1.read()
json_all = json.loads(str_all)
f1.close()
img_dict = {
}
img_list = []
f2 = open(path2,'r')
image_list = []
for item in f2.readlines():
ditem = item.strip().split('\t')
img_dict[ditem[0]] = ditem[1]
img_list.append(ditem[0])
f2.close()
data_list = []
for img_name in img_list:
temp_list = []
temp_list.append(int(img_dict[img_name]))
temp_list.append(json_all[img_dict[img_name]][0])
temp_list.append(img_name.strip())
temp_list.append(json_all[img_dict[img_name]][1])
data_list.append(tuple(temp_list))
header = ['class_index', 'class', 'image_name', 'class_name']
with open('selected_imagenet.csv', 'w+', newline='') as file_obj:
writer = csv.writer(file_obj)
writer.writerow(header)
for data in data_list:
writer.writerow(data)
reader = csv.reader(open('selected_imagenet.csv', 'r'))
for row in reader:
print(row)