ImageNet 2012 数据集的下载与处理

ImageNet 2012 数据集的下载与处理,第1张

ImageNet 2012 数据集的下载与处理 ImageNet 2012 数据集的下载与处理 ImageNet的介绍

ImageNet数据集是一个计算机视觉数据集,是由斯坦福大学的李飞飞教授带领创建。该数据集包合 14,197,122张图片和21,841个Synset索引。 ImageNet数据集一直是评估图像分类算法性能的基准。
ImageNet数据集里总共有1000个类别。

ImageNet的下载 1、百度网盘链接:

链接:https://pan.baidu.com/s/1pd5aATHnp2YshaSHosBXWA
提取码:lnb2

2、具体介绍


数据集包含1000类对象的图像。这些类别一一对应于WordNet中1000个synsets (同义词名词集)。

仅供分类和定位任务使用:

图片:

  • 训练集 ILSVRC2012_img_train、
  • 验证集 ILSVRC2012_img_val.tar、
  • 测试集 ILSVRC2012_img_test.tar
开发包: ILSVRC2012_devkit_t12.tar

类名 imagenet-classes.txt

ImageNet的处理(Linux)

1、对ILSVRC2012_img_train文件夹的处理

  1. 在当前文件夹中新建 train 文件夹,将当前文件夹中的压缩包复制到 train 文件中;
  2. 进入 train 文件夹中,解压压缩包并且删除;
  3. 解压之后得到多个压缩文件,继续解压,创建对应的文件夹来保存解压出来的图片。
  4. 处理命令如下
mkdir train
cp ./ILSVRC2012_img_train/*.tar ./train
cd train
find . -name "*.tar" | while read NAME ; do mkdir -p "${NAME%.tar}"; tar -xvf "${NAME}" -C "${NAME%.tar}"; rm -f "${NAME}"; done
cd ..

2、对ILSVRC2012_img_val.tar 的处理

分为两部分

    1. 在当前文件夹中新建 val 文件夹,将当前文件夹中的压缩包复制到 val 文件中;
    2. 进入 val 文件夹中,解压压缩包并且删除;
    3. 解压出来全部图片;
mkdir val
cp ./ILSVRC2012_img_val.tar ./val
cd val
tar -xvf ILSVRC2012_img_val.tar && rm -f ILSVRC2012_img_val.tar
cd ..
# 解压ILSVRC2012_devkit_t12.tar
tar -xvf IILSVRC2012_devkit_t12.tar
  • 根据 Development kit(Task 1 & 2) 中的文件对 val 数据集图片进行归档.

在同一级目录创建valprep.py文件,

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()

3、对ILSVRC2012_img_test.tar 的处理

  1. 在当前文件夹中新建 test 文件夹,将当前文件夹中的压缩包复制到 test 文件中;
  2. 进入 test 文件夹中,解压压缩包并且删除;
  3. 解压出来全部图片。
mkdir val
cp ./ILSVRC2012_img_test.tar ./val
cd val
tar -xvf ILSVRC2012_img_test.tar && rm -f ILSVRC2012_img_test.tar
cd ..

最后,将train、val、test放在同一目录(ILSVRC2012)下

参考: https://blog.csdn.net/chenxyelin/article/details/112848166

https://blog.csdn.net/weixin_43233550/article/details/110715096

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5689521.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存