一、下载方法
1、需访问官网(官网地址)
2、点击Sign up键注册,通过学校或者企业邮箱注册,否则无法注册账号
3、注册完毕后,点击Download
4、选择2012
5、选择下载接下来几项即可
二、数据处理
ImageNet文件目录是如下图所示。否则无法使用。
1、train目录制作
Windows下可创建txt文本将其复制后,更改后缀.sh,直接运行即可。
dir=xxxx/train
for x in `ls $dir/*tar` do
filename=`basename $x .tar`
mkdir $dir/$filename
tar -xvf $x -C $dir/$filename
done
rm *.tar
2.val目录制作
需要将之前下载的tar -xzf ILSVRC2012_devkit_t12.tar.gz解压出来。
在imagenet目录(devkit和val的根目录下)创建并运行如下 python 代码,即可完成文件的分类。
from scipy import io
import os
import shutil
def move_valimg(val_dir='./val', devkit_dir='./ILSVRC2012_devkit_t12'):
"""
move valimg to correspongding folders.
val_id(start from 1) -> ILSVRC_ID(start from 1) -> WIND
organize like:
/val
/n01440764
images
/n01443537
images
.....
"""
# load synset, val ground truth and val images list
synset = io.loadmat(os.path.join(devkit_dir, 'data', 'meta.mat'))
ground_truth = open(os.path.join(devkit_dir, 'data', 'ILSVRC2012_validation_ground_truth.txt'))
lines = ground_truth.readlines()
labels = [int(line[:-1]) for line in lines]
root, _, filenames = next(os.walk(val_dir))
for filename in filenames:
# val image name -> ILSVRC ID -> WIND
val_id = int(filename.split('.')[0].split('_')[-1])
ILSVRC_ID = labels[val_id-1]
WIND = synset['synsets'][ILSVRC_ID-1][0][1][0]
print("val_id:%d, ILSVRC_ID:%d, WIND:%s" % (val_id, ILSVRC_ID, WIND))
# move val images
output_dir = os.path.join(root, WIND)
if os.path.isdir(output_dir):
pass
else:
os.mkdir(output_dir)
shutil.move(os.path.join(root, filename), os.path.join(output_dir, filename))
if __name__ == '__main__':
move_valimg()