我直接先给一个整体结论:ImageNet-1k = ImageNet 中最经典的那个“1000 类分类子集”,有 1000 个类别、≈128 万训练图像、5 万验证图像,是深度学习里各种 CNN/ViT 论文、预训练模型几乎必提的那个标准数据集。

下面我分块详细说清楚:


1. ImageNet 与 ImageNet-1k 的关系

  • ImageNet
    最初是一个超大规模图像数据库,基于 WordNet 的概念层次结构,每个“概念(synset)”对应一类图像。总共上千万张图片、上万类类别(常说的 ImageNet-21k 等)。

  • ImageNet-1k(有时写作 ImageNet-1K、ImageNet-ILSVRC-2012):
    是从完整 ImageNet 中挑选出的 1000 个类别,专门为 ILSVRC(ImageNet Large Scale Visual Recognition Challenge)竞赛准备的分类任务数据集。
    这就是大家平时说:

    “在 ImageNet 上预训练”、“ImageNet top-1 acc”、“ResNet-50 在 ImageNet 上 76% top-1”
    指的基本都是 这个 1k 子集


2. 数据规模与划分

经典的 ImageNet-1k(ILSVRC 2012)包含:

  • 类别数(Classes):1000 个

  • 训练集(train)

    • 图像数:1,281,167 张

    • 每个类别大约 1300 张左右(略有不均衡,但差不多)

  • 验证集(val)

    • 图像数:50,000 张

    • 每类 50 张(1000 × 50)

  • 测试集(test)

    • 图像数:100,000 张

    • 不公开标签(原来用于比赛评测)

💡 训练/验证的标签是公开的,测试集标签原本只在竞赛服务器侧存在。


3. 数据内容:图像长什么样、类别怎么选的?

3.1 图像内容特征

  • 都是自然图像,主要来源于互联网(Flickr 等)

  • 分辨率不统一,原图大小各不相同
    → 在训练时,通常要做:

    • 缩放到短边 256 或 384 等

    • 再随机裁剪成固定大小(通常 224×224)

  • 图像风格:

    • 包含大量真实场景:动物、日常物体、场景的一部分等

    • 背景通常复杂、多样,比简单数据集(MNIST、CIFAR)复杂得多

3.2 类别选择

  • 1000 个类别来自 WordNet synsets,如:

    • n01440764 tench(丁鲶鱼)

    • n02123045 tabby cat(虎斑猫)

  • 类别覆盖大致包括:

    • 各种动物(狗、猫、鸟、鱼、昆虫)

    • 日用品(杯子、键盘、沙发、电视等)

    • 交通工具(汽车、飞机、轮船等)

    • 乐器、工具、家具等

注意

  • 类别间有时非常细粒度,比如几十种不同犬种;

  • 有些类别间的差别很细微(细粒度分类任务的天然来源)。


4. 标注方式与标签格式

4.1 基本标注

  • 每张图像一个主标签(单标签分类),对应一个 synset

  • 标注由**众包(Amazon Mechanical Turk)**完成,多人投票确认

4.2 标签的具体形式

训练/验证集通常会有:

  • 一张图片对应一个 synset ID,例如:

    • n02123045(WordNet ID)

  • 在实际训练代码中:

    • 通常把 1000 个 synset 映射成整数索引 0 ~ 999

    • 模型最后输出一个长度为 1000 的向量,做 softmax


5. 常见的预处理和训练配置(“ImageNet 标准设置”)

虽然数据集本身不规定你一定要怎么处理,但在论文和开源代码里,出现了非常“标准化”的做法。常见配置大概是:

5.1 输入尺寸

  • 经典 CNN(AlexNet / VGG / ResNet 等)

    • 训练:随机裁剪为 224 × 224

    • 测试:通常取中心裁剪 224 × 224,或者多裁剪测试(现在多用单中心裁剪/全图 resize)

  • 现代 ViT / ConvNeXt 等

    • 也常用 224×224、256×256 或 384×384 作为输入大小

5.2 数据增强(train)

经典 baseline 大概是:

  • 随机 resize/crop:

    • 把短边缩放到一个范围内,然后随机裁剪 224×224

  • 随机水平翻转(p=0.5)

  • 归一化:

    • 按 ImageNet 统计的 mean/std 做通道归一化:

      • mean ≈ [0.485, 0.456, 0.406]

      • std ≈ [0.229, 0.224, 0.225]

现代增强还会加:

  • RandAugment / AutoAugment

  • Random Erasing / Cutout

  • Mixup, CutMix 等

这些不属于数据集本身,但已经和“ImageNet 训练”绑得很紧。


6. 评价指标:Top-1 / Top-5

在 ImageNet-1k 上,最常见的两个指标:

  1. Top-1 accuracy

    • 模型预测概率最大的那个类别 = 真正标签时计为正确。

    • 对应普通的分类准确率。

  2. Top-5 accuracy

    • 模型预测概率最大的前 5 个类别中,只要包含真正类别就算对。

    • 用于缓和细粒度类别/标签歧义带来的影响,是 ILSVRC 比赛的官方指标之一。

在论文里经常看到:

ResNet-50:76.0% top-1 / 93.0% top-5(仅举例)

这些都是在 ImageNet-1k 验证集 上测出来的。


7. ImageNet-1k 在深度学习中的地位

为什么这个数据集这么重要?

  1. 标准 benchmark

    • 类别多,图像复杂度高,是“通用图像理解能力”的一个重要测试。

    • 成为 CNN、Transformer 视觉模型的“金标准”之一。

  2. 预训练的核心数据

    • 许多模型(ResNet、DenseNet、MobileNet、ViT 等)都先在 ImageNet-1k 上预训练,再迁移到下游任务(检测、分割等)。

    • 几乎所有深度学习框架(PyTorch / TensorFlow / JAX)都内置了在 ImageNet-1k 上预训练的模型权重。

  3. 历史意义

    • AlexNet(2012)在 ImageNet 竞赛上实现了巨大突破,直接把 deep learning 推向计算机视觉的中心舞台,“ImageNet moment”。


8. 常见的几个“容易混淆”的 ImageNet 版本

说 “ImageNet” 时,可能指的不止一种东西,简单理一理:

  1. ImageNet-1k / ILSVRC2012

    • 1000 类、128 万训练图片

    • 最经典的分类版本

  2. ImageNet-21k

    • ≈ 21k 类别,约 1400 万张图像

    • 一般用于更大规模的预训练(如一些 ViT 模型)

  3. ImageNet-A / ImageNet-C / ImageNet-R

    • ImageNet 的鲁棒性评测子集,包含各种扰动、分布偏移等

    • 常用来测试模型的鲁棒性、泛化性能

  4. Tiny ImageNet

    • 200 类,每类 500 张训练、50 张验证、50 张测试

    • 64×64 尺寸

    • 教学/课程常用的更小版本,不是官方 ILSVRC 主赛道。

如果只说 “ImageNet-1k”,基本就是指 ILSVRC2012 的 1000 类分类数据集


9. 数据集的一些争议与局限

虽然很经典,但也有一些需要注意的点:

  1. 标签噪声

    • 标注主要来自众包,个别图片可能标签不准确或有歧义。

  2. 类别与数据分布偏差

    • 类别不完全代表现实世界物体的分布(比如犬种远多于很多其他类别)。

    • 数据主要来源于西方互联网,对其他地区/文化的覆盖有限。

  3. 版权与隐私

    • 图像来自网络,版权状况复杂,所以现在直接公开下载的途径减少,有些镜像站可能被下架。

    • 一些机构开始尝试用其他、更加合规的数据集替代。


10. 如果你要“用” ImageNet-1k,通常会怎么做?

一般流程(以 PyTorch 为例的思路):

  1. 准备目录结构(典型):

    imagenet/
      train/
        n01440764/
          xxx.jpg
          yyy.jpg
          ...
        n01443537/
          ...
        ...
      val/
        n01440764/
        ...
    
  2. 使用 ImageFolder + 自定义 transform

    • 训练 transform:随机裁剪、随机翻转、归一化

    • 验证 transform:缩放 + 中心裁剪 + 归一化

  3. 创建 DataLoader,送入模型训练/验证。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐