imagenet2012_multilabel

  • คำอธิบาย :

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

เวอร์ชัน 3.0.0 ของชุดข้อมูลนี้มีป้ายกำกับที่ได้รับการแก้ไขเพิ่มเติมจาก "แป้งกลายเป็นเบเกิลเมื่อใด การวิเคราะห์ข้อผิดพลาดที่เหลืออยู่บน ImageNet รวมถึงการแยกตัวอย่าง ImageNet-Major (ImageNet-M) 68 ตัวอย่างภายใต้ 'imagenet-m'

อิมเมจการตรวจสอบ ImageNet เพียง 20,000 จาก 50,000 ภาพเท่านั้นที่มีคำอธิบายประกอบแบบหลายเลเบล ชุดของป้ายกำกับหลายรายการถูกสร้างขึ้นครั้งแรกโดยชุดทดสอบของโมเดล ImageNet ที่ผ่านการฝึกอบรม 67 รุ่น จากนั้นผู้เชี่ยวชาญจะใส่คำอธิบายประกอบในแต่ละโมเดลด้วยตนเองว่า 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.datasets.imagenet2012_multilabel.Builder

  • รุ่น :

    • 1.0.0 : การเปิดตัวครั้งแรก
    • 2.0.0 : แก้ไขไฟล์ ILSVRC2012_img_val.tar
    • 3.0.0 (ค่าเริ่มต้น): แก้ไขฉลากและแยก ImageNet-M
  • ขนาดการดาวน์โหลด : 191.13 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 เพื่อรับลิงก์สำหรับดาวน์โหลดชุดข้อมูล

  • แคชอัตโนมัติ ( เอกสารประกอบ ): ไม่

  • แยก :

แยก ตัวอย่าง
'imagenet_m' 68
'validation' 20,000
  • โครงสร้างคุณลักษณะ :
FeaturesDict({
    'correct_multi_labels': Sequence(ClassLabel(shape=(), dtype=int64, num_classes=1000)),
    'file_name': Text(shape=(), dtype=string),
    'image': Image(shape=(None, None, 3), dtype=uint8),
    'is_problematic': bool,
    'original_label': ClassLabel(shape=(), dtype=int64, num_classes=1000),
    'unclear_multi_labels': Sequence(ClassLabel(shape=(), dtype=int64, num_classes=1000)),
    'wrong_multi_labels': Sequence(ClassLabel(shape=(), dtype=int64, num_classes=1000)),
})
  • เอกสารคุณสมบัติ :
ลักษณะเฉพาะ ระดับ รูปร่าง Dประเภท คำอธิบาย
คุณสมบัติDict
Correct_multi_labels ลำดับ (ClassLabel) (ไม่มี,) int64
ชื่อไฟล์ ข้อความ สตริง
ภาพ ภาพ (ไม่มี, ไม่มี, 3) uint8
is_problematic เทนเซอร์ บูล
original_label ป้ายกำกับคลาส int64
unclear_multi_labels ลำดับ (ClassLabel) (ไม่มี,) int64
ผิด_multi_labels ลำดับ (ClassLabel) (ไม่มี,) int64

การสร้างภาพ

  • การอ้างอิง :
@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} }
}
@article{vasudevan2022does,
  title={When does dough become a bagel? Analyzing the remaining mistakes on ImageNet},
  author={Vasudevan, Vijay and Caine, Benjamin and Gontijo-Lopes, Raphael and Fridovich-Keil, Sara and Roelofs, Rebecca},
  journal={arXiv preprint arXiv:2205.04596},
  year={2022}
}