文章目录

  • 1. ImageNet 说明
  • 2. ILSVRC2012 说明
  • 3. ImageNet下载方式
  • 4. ImageNet数据组织与使用

1. ImageNet 说明

ImageNet官网:http://image-net.org/

ImageNet 由斯坦福李飞飞教授带领创建,ImageNet 本身有2万多个的类别,超过 1400 万张图片,其中超过 100 万张图片有明确类别标注和物体位置标注。

ImageNet 按照 WordNet 层级结构组织数据,首先介绍一下 WordNet。在 WordNet 中每一个概念(concept)都会由很多个词(word)或者短语(word phrase)来描述,就好比说 “动物 animal” 作为一个 concept,可以包含 “domestic animal 家畜”、“work animal 役畜” 等 work phrase,而 “domestic animal 家畜” 又可以继续细分为 “domestic dog”、“dog” 等。因此将每一个 concept 记作一个 “synonym set 或 synset”(同义词集合)。WordNet 中包含超过 100,000 个 synset,其中 80,000+ 是名词。WordNet 以 Synset 为基本单位来组织单词,可以认为 WordNet 是一个树状结构,从其根结点到叶子结点是一个不断细分的过程,并且每个结点都是一个 Synset。

ImageNet 包含 82,115 个 Synset(均为 WordNet 中的名词),平均在每个 Synset 上都设置了 1,000 张图像。


适用任务:图像分类,目标检测,目标定位、视频目标检测、场景分类

特别解释:ILSVRC (ImageNet Large-Scale Visual Recognition Challenge) 是一个基于 ImageNet 的比赛,每年都会从ImageNet中抽取部分数据作为比赛数据集。ILSVRC 从 2010 年开始举行,每年一次,到 2017 年最后一届结束,因此 “ILSVRC+年份” 也用来特指某一年比赛的数据集(属于ImageNet的子集),基于 ILSVRC 比赛的子数据集也是各种论文中最常用的数据集。

2. ILSVRC2012 说明

很多论文都常用 ILSVRC2012 作为实验数据集,ILSVRC2012 包含1000个类别(ImageNet 的 1000 个 Synset),每个类别大约有1000张图片。其中测试集未公开标注信息,因此常用验证集来进行模型的测试。

ILSVRC2012 的类别编号和类别名称参考:类别名称对应表

ILSVRC2012 类别数 (Number of classes) 图片数 (Number of images) 文件大小 (Size on disk) 标注
训练集 1000类 约120万张图片 ~140GB 公开
验证集 1000类 5万张图片 ~6GB 公开
测试集 1000类 10万张图片 ~13GB 未公开

在官网下载ILSVRC2012时,可以看到训练数据集(Training images)被分为了 (Task1 & 2) 和 (Task 3),其中 (Task 1 & 2) 是用于图像识别任务的。

验证集(Validation images)对应的标注信息在Development kit (Task 1 & 2)中,下载压缩包后解压,找到ILSVRC2012_devkit_t12/data文件夹,里面的ILSVRC2012_validation_ground_truth.txt就是验证集对应的标注label。

3. ImageNet下载方式

ImageNet不可用于商业目的,因此需要认证edu邮箱,直接用学校邮箱认证的话请求会立马通过,如果用其他后缀的普通邮箱需要审核1~5天还不一定能审核通过。用学校邮箱认证之后会收到邮件,从邮件内提供的链接就可以进入数据的Download页面,ILSVRC下面按照年份分类,一般最常用的就是ILSVRC 2012,可以根据自己的需要选择年份。进入之后在Images条目下就是Train/Val/Test数据。

step1:进入Download页面 - 按需选择ILSVRC年份:

step2:在Images部分就是训练/验证/测试数据集

关于下载方式,如果不方便从官网下载,可以选择以下备用方案:

  • 方式1:https://hyper.ai/datasets/4889
  • 方式2:迅雷种子下载,提取码 x7jn
  • 方式3:ImageNet LSVRC 2012 Training Set (Object Detection)

4. ImageNet数据组织与使用

仍以 ILSVRC 2012 为例,在这里能够下载到关于 ILSVRC 2012 的所有数据文件。其中,带有 bbox 标识的用于目标检测任务,包括以下 4 个文件:

用于图像分类任务的包含以下 4 个文件:其中 train 分为了 traintrain_t3,分别对应着 task 1&2task 3

devkit 工具包包含以下 2 个文件:

训练集 ILSVRC2012_img_train 下包含两级目录,第一级目录包含 1000 个子文件夹,对应 1000 个类别。每个二级目录包含 1300 张图片,表示每个类别提供了 1300 个样本。每个子文件夹的名称为 n******,其下对应的图片名称也以文件夹名称为前缀,其后为图片序号。


验证集 ILSVRC2012_img_val 下包含 50K 张图片,可以看到验证集图片名称前缀没有类别信息。要获取验证集标签信息,需要从 ILSVRC2012_devkit_t12/data 中的 ILSVRC2012_validation_ground_truth.txt 得到。

1. 解压 train 和 val 数据,由于 test 数据未提供标签,因此这里不使用。

# 解压trian数据
tar -xvf ILSVRC2012_img_train.tar
# 解压val数据
mkdir ILSVRC2012_img_val
tar -xvf ILSVRC2012_img_val.tar -C ILSVRC2012_img_val
# 解压devkit
tar -xzvf ILSVRC2012_devkit_t12.tar.gz

2. 重新组织 val 数据,按照 train 数据的组织方式,对 val 数据进行处理,方便后续训练验证时对数据的加载。

def imagenet_val_process(images_dir, devkit_dir):"""move val images to correspongding class folders."""# load synset, val ground truth and val images listsynset = scipy.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(images_dir))for filename in filenames:# val image name -> ILSVRC ID -> WINDval_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 imagesoutput_dir = os.path.join(root, WIND)if os.path.isdir(output_dir):passelse:os.mkdir(output_dir)shutil.move(os.path.join(root, filename), os.path.join(output_dir, filename))if __name__ == '__main__':img_dir = "/data/imagenet/ILSVRC2012_img_val"dev_dir = "/data/imagenet/ILSVRC2012_devkit_t12"imagenet_val_process(img_dir, dev_dir)

重新组织后的 val 数据与 train 数据的组织方式相同,按照二级目录的方式,包含 1000 个子文件夹(类别),每个子文件夹下包含 50 张用于验证的图片。

3. ImageNet 数据读取(PyTorch)

一种比较简单的读取方式是,使用 PyTorch 中自带的库 ImageFolder。ImageFolder 适合读取数据组织结构如下的数据集:

--| root
----| class1
------| img1.png
------| img2.png
------| ...
----| class2
------| ...
----| class3
------| ...

即数据按照两级目录组织,第一级目录是类别,第二级是每个类别对应的所有样本。

import torchvision.transforms as transforms
from torch.utils.data import DataLoader
from torchvision.datasets import ImageFolderdata_transform = transforms.Compose([transforms.Resize(299),transforms.CenterCrop(299),transforms.ToTensor(),transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])])# 使用ImageFolder读取
train_dataset = ImageFolder(root='/data/imagenet/ILSVRC2012_img_train',transform=data_transform)
train_dataset_loader = DataLoader(train_dataset, batch_size=4, shuffle=False, num_workers=4)print(train_dataset.imgs == train_dataset.samples)  # True
for i, (images, labels) in enumerate(train_dataset_loader):print(images.size())print(labels.size())

通过 ImageFolder 读取的结果,可以看到包含以下内容:

其中:

  • class:List,包含 1000 个类别名称
  • class_to_idx:Dict,每个类别名称字符串与其对应的类别序号
  • imgssamples:List,每个 List 元素为 Tuple,为每张图片的路径和其对应的类别序号
  • targets:List,每张图片对应的类别序号

施工中…

ImageNet数据集 下载相关推荐

  1. ImageNet数据集下载及整理

    记录一下下载过程防止遗忘: 如果只是用来做分类,可以先看第二个链接,下载其中三个文件即可. 1. 下载. 官网下载需要注册,找到了一个分享的网址: ImageNet 10 图像识别数据集 因为比较文件 ...

  2. 人工智能大数据,公开的海量数据集下载,ImageNet数据集下载,数据挖掘机器学习数据集下载...

    人工智能大数据,公开的海量数据集下载,ImageNet数据集下载,数据挖掘机器学习数据集下载 ImageNet挑战赛中超越人类的计算机视觉系统 微软亚洲研究院视觉计算组基于深度卷积神经网络(CNN)的 ...

  3. 人工智能大数据,公开的海量数据集下载,ImageNet数据集下载,数据挖掘机器学习数据集下载

    人工智能大数据,公开的海量数据集下载,ImageNet数据集下载,数据挖掘机器学习数据集下载 ImageNet挑战赛中超越人类的计算机视觉系统 微软亚洲研究院视觉计算组基于深度卷积神经网络(CNN)的 ...

  4. ImageNet 数据集的下载及处理

    将imagenet数据集下载并且导入 一.首先将数据集从官网下载下来 这里给出官网下载的链接:http://www.image-net.org/download-images 如果想要下载原始图片,需 ...

  5. ImageNet数据下载

    [时间]2019.12.24 [题目]ImageNet数据下载 详见:ImageNet数据集下载与处理 ImageNet官网下载:http://www.image-net.org/download.p ...

  6. ImageNet数据集简介与下载详细步骤

    ImagNet与ILSVRC简介    ImageNet是一种数据集,而不是神经网络模型.斯坦福大学教授李飞飞为了解决机器学习中过拟合和泛化的问题而牵头构建的数据集.该数据集从2007年开始手机建立, ...

  7. Imagenet 数据集迅雷下载种子

    Imagenet 数据集迅雷下载种子 复制使用迅雷打开进行下载 验证集 http://academictorrents.com/download/5d6d0df7ed81efd49ca99ea4737 ...

  8. 人工智能Java SDK:图片分类(支持imagenet数据集分类)

    图片分类(支持imagenet数据集分类)SDK 识别图片1000种分类. 支持分类如下: tench, Tinca tinca goldfish, Carassius auratus great w ...

  9. 常见目标跟踪数据集下载链接整理(更新中)

    搜罗一下,感觉没人把常见的目标跟踪数据集下载链接汇总整理的,这里就整理一下,因为有些网址很难打开,这里也是想方便之后大家获取,来看看吧!我就从大佬图中来找几个吧!因为不是全接触过,有些链接不是很好,有 ...

  10. 国内外深度学习开放数据集下载集合(值得收藏,不断更新)

    国内外深度学习开放数据集下载集合(值得收藏,不断更新) 一.Image processing data set 1.MNIST ,是最流行的深度学习数据集之一.这是一个手写数字数据集,包含一个有着 6 ...

最新文章

  1. ARM处理器中“8位位图”
  2. JavaScript onerror 事件( window.onerror = )
  3. Android 自定义焦点框,Android给自定义按键添加广播和通过广播给当前焦点输入框赋值...
  4. C++ 在一个cpp文件中使用另一个cpp文件中定义的函数
  5. MM32看门狗学习(兼容STM32)
  6. django 1.8 官方文档翻译: 2-5-1 管理器
  7. Nssm Edit XXX
  8. nginx相关概念——正向代理和反向代理
  9. 我为什么要放弃RESTful,选择拥抱GraphQL?
  10. 基于Python的《庆余年》评论分析
  11. 组件化,插件化和热更新
  12. Layui 表单验证汇总
  13. 烽火HG680-R-MSO9280-河南电信_湖北联通免费刷机固件及说明
  14. Express框架概述
  15. java-php-python-ssm医药网络挂号系统计算机毕业设计
  16. 全基因组关联分析学习资料(GWAS tutorial)20210313更新版
  17. 闯荡江湖的必备指南(2)
  18. 计算机文献中的经典语录,经典文献语录摘抄
  19. 【微分方程数值解】常微分方程(一)欧拉方法和改进欧拉方法(附python算例,封装类)
  20. 楼兰古城如何变成了沙漠戈壁的

热门文章

  1. 魔域充值卡表cq_card里chk_sum参数的算法
  2. 3款常见的网站文章采集工具推荐(2019最新)
  3. 阿里技术专家甘盘:浅谈双十一背后的支付宝LDC架构和其CAP分析(含phil补充)
  4. shim是什么?Vue响应式原理
  5. 使用include-what-you-use优化编译速度
  6. 融创孙宏斌:我们现在是安全第一|一点财经
  7. 加速进化,浪潮存储正在梦想成真
  8. 计算机桌面图标有阴影,解决电脑桌面图标出现蓝色阴影的小方法
  9. Odoo 继承对象增加属性,不显示protal o_affix_enabled 内容
  10. 什么是软件验收测试?验收测试的标准和流程介绍