imagenet2012_multilabel

  • 説明

このデータセットからマルチクラスのラベルで注釈を付けILSVRC-2012(ImageNet)検証画像を含んでいる「ImageNet上のマシンの精度を評価し、」 2020年マルチクラスラベルが広範囲に微の複雑で訓練を受けた専門家のパネルによって検討された、ICMLを、 ImageNetクラス階層でのきめ細かいクラスの区別(詳細については、ペーパーを参照してください)。元のラベルと比較して、これらの専門家がレビューしたマルチクラスラベルは、より意味的に一貫した精度の評価を可能にします。

50,000個のImageNet検証画像のうち20,000個だけがマルチラベル注釈を持っています。マルチラベルのセットは、第67に訓練ImageNetモデルのテストベッドによって生成された後、各個々のモデル予測は、手動でのいずれかとしての専門家によって注釈されたcorrect 、(ラベルイメージの正しい) wrong (ラベルのために間違っています画像)、またはunclear (コンセンサス)が専門家の間で達しありませんでした。

また、注釈の際に、専門家パネルは、問題のあるイメージのセットを同定しました。以下の基準のいずれかを満たしている場合、画像に問題がありました。

  • 元のImageNetラベル(トップ1ラベル)が正しくないか、不明瞭でした
  • 画像は、ドローイング、ペインティング、スケッチ、漫画、またはコンピューターでレンダリングされたものでした
  • 画像が過度に編集されました
  • 画像に不適切なコンテンツが含まれていました

問題のある画像はこのデータセットに含まれていますが、マルチラベルの精度を計算するときは無視する必要があります。さらに、20,000個の注釈の初期セットはクラスバランスが取れていますが、問題のある画像のセットはバランスが取れていないため、クラスごとの精度を計算してから平均化することをお勧めします。また、予測が正しいまたは不明確であるとマークされている場合(つまり、不明確なラベルに寛容である場合)、予測を正しいものとしてカウントすることをお勧めします。

これを行う1つの可能な方法は、次のNumPyコードを使用することです。

import tensorflow_datasets as tfds

ds = tfds.load('imagenet2012_multilabel', split='validation')

# We assume that predictions is a dictionary from file_name to a class index between 0 and 999

num_correct_per_class = {}
num_images_per_class = {}

for example in ds:
    # We ignore all problematic images
    if example[‘is_problematic’].numpy():
        continue

    # The label of the image in ImageNet
    cur_class = example['original_label'].numpy()

    # If we haven't processed this class yet, set the counters to 0
    if cur_class not in num_correct_per_class:
        num_correct_per_class[cur_class] = 0
        assert cur_class not in num_images_per_class
        num_images_per_class[cur_class] = 0

    num_images_per_class[cur_class] += 1

    # Get the predictions for this image
    cur_pred = predictions[example['file_name'].numpy()]

    # We count a prediction as correct if it is marked as correct or unclear
    # (i.e., we are lenient with the unclear labels)
    if cur_pred is in example['correct_multi_labels'].numpy() or cur_pred is in example['unclear_multi_labels'].numpy():
        num_correct_per_class[cur_class] += 1

# Check that we have collected accuracy data for each of the 1,000 classes
num_classes = 1000
assert len(num_correct_per_class) == num_classes
assert len(num_images_per_class) == num_classes

# Compute the per-class accuracies and then average them
final_avg = 0
for cid in range(num_classes):
  assert cid in num_correct_per_class
  assert cid in num_images_per_class
  final_avg += num_correct_per_class[cid] / num_images_per_class[cid]
final_avg /= num_classes

スプリット
'validation' 20,000
  • 特長
FeaturesDict({
    'correct_multi_labels': Sequence(ClassLabel(shape=(), dtype=tf.int64, num_classes=1000)),
    'file_name': Text(shape=(), dtype=tf.string),
    'image': Image(shape=(None, None, 3), dtype=tf.uint8),
    'is_problematic': tf.bool,
    'original_label': ClassLabel(shape=(), dtype=tf.int64, num_classes=1000),
    'unclear_multi_labels': Sequence(ClassLabel(shape=(), dtype=tf.int64, num_classes=1000)),
    'wrong_multi_labels': Sequence(ClassLabel(shape=(), dtype=tf.int64, num_classes=1000)),
})

視覚化

  • 引用
@article{shankar2019evaluating,
  title={Evaluating Machine Accuracy on ImageNet},
  author={Vaishaal Shankar* and Rebecca Roelofs* and Horia Mania and Alex Fang and Benjamin Recht and Ludwig Schmidt},
  journal={ICML},
  year={2020},
  note={\url{http://proceedings.mlr.press/v119/shankar20c.html} }
}
@article{ImageNetChallenge,
  title={ {ImageNet} large scale visual recognition challenge},
  author={Olga Russakovsky and Jia Deng and Hao Su and Jonathan Krause
   and Sanjeev Satheesh and Sean Ma and Zhiheng Huang and Andrej Karpathy and Aditya Khosla and Michael Bernstein and
   Alexander C. Berg and Fei-Fei Li},
  journal={International Journal of Computer Vision},
  year={2015},
  note={\url{https://arxiv.org/abs/1409.0575} }
}
@inproceedings{ImageNet,
   author={Jia Deng and Wei Dong and Richard Socher and Li-Jia Li and Kai Li and Li Fei-Fei},
   booktitle={Conference on Computer Vision and Pattern Recognition (CVPR)},
   title={ {ImageNet}: A large-scale hierarchical image database},
   year={2009},
   note={\url{http://www.image-net.org/papers/imagenet_cvpr09.pdf} }
}