ช่วยปกป้อง Great Barrier Reef กับ TensorFlow บน Kaggle เข้าร่วมท้าทาย

imagenet2012_multilabel

  • รายละเอียด:

ชุดนี้ประกอบด้วย ILSVRC 2012 (ImageNet) ภาพการตรวจสอบข้อเขียนที่มีป้ายหลายระดับจาก "การประเมินความถูกต้องในเครื่อง ImageNet" , ICML, 2020 ป้ายหลายชั้นได้รับการตรวจสอบโดยคณะผู้เชี่ยวชาญด้านการฝึกอบรมอย่างกว้างขวางในความซับซ้อนของการปรับที่เป็น ความแตกต่างของคลาสแบบเกรนในลำดับชั้นของคลาส ImageNet (ดูกระดาษสำหรับรายละเอียดเพิ่มเติม) เมื่อเปรียบเทียบกับฉลากดั้งเดิม ฉลากแบบหลายคลาสที่ได้รับการตรวจสอบโดยผู้เชี่ยวชาญเหล่านี้ช่วยให้สามารถประเมินความถูกต้องในความหมายที่สัมพันธ์กันมากขึ้น

มีเพียง 20,000 รูปจากทั้งหมด 50,000 รูปสำหรับการตรวจสอบความถูกต้องของ ImageNet ที่มีคำอธิบายประกอบแบบหลายป้ายกำกับ ชุดของหลายป้ายถูกสร้างขึ้นเป็นครั้งแรกโดย testbed 67 รุ่น ImageNet ผ่านการฝึกอบรมแล้วแต่ละทำนายรูปแบบของแต่ละบุคคลได้รับข้อเขียนด้วยตนเองโดยผู้เชี่ยวชาญเป็นทั้ง correct (ฉลากที่ถูกต้องสำหรับภาพ) wrong (ฉลากไม่ถูกต้องสำหรับ ภาพ) หรือ unclear (มติไม่ถึงในหมู่ผู้เชี่ยวชาญ)

นอกจากนี้ในระหว่างการบันทึกย่อแผงผู้เชี่ยวชาญระบุชุดของภาพที่มีปัญหา รูปภาพมีปัญหาหากตรงตามเกณฑ์ด้านล่าง:

  • ป้ายกำกับ ImageNet ดั้งเดิม (ป้ายกำกับ 1 อันดับแรก) ไม่ถูกต้องหรือไม่ชัดเจน
  • รูปภาพเป็นภาพวาด ภาพวาด สเก็ตช์ การ์ตูน หรือคอมพิวเตอร์เรนเดอร์
  • แก้ไขรูปภาพมากเกินไป
  • รูปภาพมีเนื้อหาที่ไม่เหมาะสม

รูปภาพที่มีปัญหาจะรวมอยู่ในชุดข้อมูลนี้ แต่ควรละเว้นเมื่อคำนวณความถูกต้องของป้ายกำกับหลายป้าย นอกจากนี้ เนื่องจากชุดคำอธิบายประกอบเริ่มต้น 20,000 รายการมีความสมดุลของชั้นเรียน แต่ชุดของภาพที่มีปัญหาไม่ใช่ชุดที่มีปัญหา เราขอแนะนำให้คำนวณความแม่นยำต่อคลาสแล้วหาค่าเฉลี่ย นอกจากนี้เรายังแนะนำให้นับการคาดคะเนว่าถูกต้องหากมีการทำเครื่องหมายว่าถูกต้องหรือไม่ชัดเจน (เช่น การผ่อนปรนกับป้ายกำกับที่ไม่ชัดเจน)

วิธีหนึ่งที่เป็นไปได้ในการทำเช่นนี้คือใช้รหัส 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

  • โฮมเพจ: https://github.com/modestyachts/evaluating_machine_accuracy_on_imagenet

  • รหัสที่มา: tfds.image_classification.imagenet2012_multilabel.Imagenet2012Multilabel

  • รุ่น:

    • 1.0.0 : เริ่มต้นปล่อย
    • 2.0.0 (เริ่มต้น) : แก้ไขไฟล์ ILSVRC2012_img_val.tar
  • ขนาดการดาวน์โหลด: 236.72 MiB

  • ขนาดชุด: 2.50 GiB

  • คำแนะนำการดาวน์โหลดคู่มือ: ชุดนี้คุณจะต้องดาวน์โหลดข้อมูลแหล่งที่มาของตนเองลงใน download_config.manual_dir (ค่าเริ่มต้น ~/tensorflow_datasets/downloads/manual/ ):
    manual_dir ควรมี ILSVRC2012_img_val.tar ไฟล์ คุณจำเป็นต้องลงทะเบียนใน http://www.image-net.org/download-images เพื่อให้ได้รับลิงค์เพื่อดาวน์โหลดชุดข้อมูล

  • ออโต้แคช ( เอกสาร ): ไม่มี

  • แยก:

แยก ตัวอย่าง
'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} }
}