转载自:https://blog.csdn.net/qq_43205738/article/details/86543766
简介
这是ILSVRC2012开发工具包的文档。
如有问题、评论或bug报告,请联系ilsvrc2012@image-net.org。
数据集
本次比赛的图像数据有三种类型:来自ImageNet的训练数据(TRAINING)、特定于本次比赛的验证数据(VALIDATION)和特定于本次比赛的测试数据(TEST)。在三个数据源中没有重叠:训练、验证和测试。这三组数据都包含1000类对象的图像。这些类别一一对应于WordNet中1000个synsets (同义词名词集)。如果图像包含X,则该图像属于该类别X,其中X是一个synset名词。有关集合和标记策略的详细信息,请参见[1]。
所选的1000个synsets类别之间没有重叠,对于任何sysnets i和j, i都不是WordNet(WordNet是一个大型英语语义网,里面将名词、动词、形容词和副词整理成了同义词集,并标注了同义词集之间的关系,而ImageNet中的图片是分类到WordNet的同义词集上的)中j的父类或子类。我们称这些synsets为“低等级的synsets”。
这1000个synsets是更大的ImageNet的一部分,我们可以认为ImageNet包含了1000个低等级的synsets和它们所有的父类。它们的父类有860个,我们称之为“高等级的synsets”。它们之间的关系可以理解为这样的层次结构,所有的低等级synsets都是“叶节点”,而高等级synsets是“枝节点”。即低等级类(1000类)的划分比较细,一个高等级类(860类)可能能划分成多个低等级类。
需要注意的是,低等级synsets在ImageNet中可能有子类,但是对于ILSVRC 2012,我们不考虑它们的子类别。即ILSVRC 2012可以看作是完整ImageNet的“修剪”版本。
还要注意的是,在本次比赛中,所有的ground truth标签都是低等级synsets,参赛作品必须预测出与1000个低水平synsets中的一个相对应的标签。不考虑预测高等级synsets。因为没有为高等级synsets提供额外的训练图像。
1.数据结构
所有关于synsets的信息都在data/meta.mat中的“synsets”数组中。可以在Matlab中访问它,输入:
load data/meta.mat;
synsets
你会看到
synsets =
1x1 struct array with fields:
ILSVRC2012_ID
WNID
words
gloss
num_children
children
wordnet_height
num_train_images
这个struct数组每个字段的意义如下:
'ILSVRC2012_ID’是分配给每个synset的整数ID。所有的低等级synsets都被分配了1到1000之间的ID。所有高等级synsets的ID都大于1000。在“synsets”数组中,按照ILSVRC2012_ID对synsets进行排序,即synsets(i)。i.预测结果提交使用ILSVRC2012_ID作为synset标签。
'WNID’是一个synset的WordNet ID。它是ImageNet或WordNet中synset的唯一标识。训练图像的tar文件使用WNID命名。此外,它还用于命名单个训练图像。
'num_children’是该synset的子类数量。对于所有低等级synsets,它都是零;对于高等级synsets,它是非零的。
'children’是该synset的子类的ILSVRC2012_IDs组成的向量。
'wordnet_height’是指在完整ImageNet/WordNet层次结构中的到其子节点(子类)的最长路径的长度(完整ImageNet层次结构中的叶子节点的wordnet_height为0)。
层次结构根的ILSVRC2012_ID为1001,即synset“实体”。
2.训练图像
每个synset都有一个tar文件,由其WNID命名。图像文件命名为x_y.JPEG,其中x是synset的WNID, y是一个整数(不是固定的长度,也不一定是连续的)。所有图像都是JPEG格式。
总共有1281167张图片用于训练。每个synset的图像数量从732到1300不等。
3.验证图像
总共有50,000张验证图像。它们被命名为:
ILSVRC2012_val_00000001.JPEG
ILSVRC2012_val_00000002.JPEG
...
ILSVRC2012_val_00049999.JPEG
ILSVRC2012_val_00050000.JPEG
每个synset有50个验证图像。
验证图像的groud_truth在:
data/ILSVRC2012_validation_ground_truth.txt,
其中每行包含一个图像的ILSVRC2012_ID,按图像文件名的字母顺序升序排列。
4.测试图像
总共有10万张测试图片,之后将单独发布。测试图像的名称为
ILSVRC2012_test_00000001.JPEG
ILSVRC2012_test_00000002.JPEG
...
ILSVRC2012_test_00099999.JPEG
ILSVRC2012_test_00100000.JPEG
每个synset有100个测试图像。
比赛期间将不公布测试图像的groud_truth
5.边框注释(Bounding Boxes)
验证和测试中的所有图像以及训练集中至少100个图像具有PASCAL VOC格式的边框注释。可以使用PASCAL开发工具包解析它。每个带有边框注释的图像都有一个XML文件。如果图像文件名是X。然后将边界框文件命名为X.xml。
有关边框注释(Bounding Boxes)的更多信息,请访问:
http://www.image-net.org/download-bboxes
如果一个图像中有多个目标,则每个目标都一定有一个边界框。
对于分类任务和目标检测任务,您都可以在竞赛中自由使用边框。
提交和评估
1.提交格式:
100,000张测试图像(从ILSVRC2012_test_00000001到ILSVRC2012_test_0100000.JPEG JPEG。)的格式都应该相同。
对于task 1(分类任务),测试数据的结果提交将由一个文本文件组成,每个图像有一行,按照图像文件名的字母顺序排列,即从ILSVRC2012_test_00000001到ILSVRC2012_test_0100000.JPEG JPEG。每行包含预测的标签,即预测类别的ILSVRC2012_IDs(1到1000之间的整数),按照置信度降序排序。每行标签的数量可以变化,但不能超过此数比5。
对于task 2(目标检测任务),提交结果类似于task 1,但是在每一行中,每个预测的标签后面都跟着按置信度降序排序的该对象的检测位置。它看起来如下:
<label(1)> <xmin(1)> <ymin(1)> <xmax(1)> <ymax(1)> <label(2)> <xmin(2)> <ymin(2)> <xmax(2)> <ymax(2)> …
每行的标签数量可以变化,但不超过5个(忽略额外的标签)。
验证集的预测样例文件是:
./evaluation/demo.val.pred.txt for Task 1
./evaluation/demo.val.pred.det.txt for Task 2
2.评估程序
用于评估Task 1的提交结果的Matlab程序如下:
./evaluation/eval_flat.m
对于Task2:
./evaluation/eval_localization_flat.m
要查看使用这些程序评估验证结果的演示示例,请在“evaluation”文件夹中启动Matlab并输入;
demo_eval;
你会看到如下输出:
pred_file = demo.val.pred.txt
ground_truth_file =../data/ILSVRC2012_validation_ground_truth.txt
Task 1: # guesses vs flat error
1.0000 0.9990
2.0000 0.9980
3.0000 0.9972
4.0000 0.9962
5.0000 0.9950
pred_localization_file =demo.val.pred.det.txt
ground_truth_file =../data/ILSVRC2012_validation_ground_truth.txt
Please enter the path to the Validation bounding box annotations directory: ~/AnnoVal/val
localization_ground_truth_dir =~/AnnoVal/val
Task 2: # guesses vs flat error
1.0000 1.0000
2.0000 0.9999
3.0000 0.9998
4.0000 0.9997
5.0000 0.9996