- Mô tả :
Tập dữ liệu này chứa các hình ảnh xác thực ILSVRC-2012 (ImageNet) được chú thích bằng các nhãn nhiều lớp từ "Đánh giá độ chính xác của máy trên ImageNet" , ICML, 2020. Các nhãn nhiều lớp đã được xem xét bởi một nhóm chuyên gia được đào tạo chuyên sâu về các vấn đề phức tạp của phân biệt lớp chi tiết trong hệ thống phân cấp lớp ImageNet (xem bài viết để biết thêm chi tiết). So với các nhãn ban đầu, các nhãn đa lớp được chuyên gia đánh giá này cho phép đánh giá độ chính xác mạch lạc hơn về mặt ngữ nghĩa.
Phiên bản 3.0.0 của bộ dữ liệu này chứa nhiều nhãn đã sửa hơn từ "Khi nào bột nhào trở thành bánh mì tròn? Phân tích các lỗi còn lại trên ImageNet cũng như phân tách 68 ví dụ ImageNet-Major (ImageNet-M) trong 'imagenet-m'.
Chỉ 20.000 trong số 50.000 hình ảnh xác thực ImageNet có chú thích nhiều nhãn. Tập hợp nhiều nhãn lần đầu tiên được tạo bởi một nhóm thử nghiệm gồm 67 mô hình ImageNet đã được đào tạo và sau đó, từng dự đoán mô hình riêng lẻ được các chuyên gia chú thích theo cách thủ công là correct
(nhãn đúng cho hình ảnh), wrong
(nhãn không đúng cho hình ảnh). hình ảnh), hoặc unclear
(không đạt được sự đồng thuận giữa các chuyên gia).
Ngoài ra, trong quá trình chú thích, hội đồng chuyên gia đã xác định một tập hợp các hình ảnh có vấn đề . Một hình ảnh có vấn đề nếu nó đáp ứng bất kỳ tiêu chí nào dưới đây:
- Nhãn ImageNet ban đầu (nhãn top 1) không chính xác hoặc không rõ ràng
- Hình ảnh là một bản vẽ, tranh vẽ, phác họa, phim hoạt hình hoặc kết xuất bằng máy tính
- Hình ảnh đã được chỉnh sửa quá mức
- Hình ảnh có nội dung không phù hợp
Các hình ảnh có vấn đề được bao gồm trong tập dữ liệu này nhưng nên được bỏ qua khi tính toán độ chính xác của nhiều nhãn. Ngoài ra, vì tập hợp ban đầu gồm 20.000 chú thích được cân bằng theo lớp, nhưng tập hợp các hình ảnh có vấn đề thì không, chúng tôi khuyên bạn nên tính toán độ chính xác cho mỗi lớp rồi lấy trung bình của chúng. Chúng tôi cũng khuyên bạn nên tính một dự đoán là chính xác nếu dự đoán đó được đánh dấu là chính xác hoặc không rõ ràng (nghĩa là khoan dung với các nhãn không rõ ràng).
Một cách khả thi để thực hiện việc này là sử dụng mã NumPy sau:
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
Trang chủ : https://github.com/modestyachts/evaluating_machine_accuracy_on_imagenet
Phiên bản :
-
1.0.0
: Bản phát hành đầu tiên. -
2.0.0
: Đã sửa tệp ILSVRC2012_img_val.tar. -
3.0.0
(mặc định): Đã sửa nhãn và tách ImageNet-M.
-
Kích thước tải xuống :
191.13 MiB
Kích thước tập dữ liệu :
2.50 GiB
Hướng dẫn tải xuống thủ công : Bộ dữ liệu này yêu cầu bạn tải xuống dữ liệu nguồn theo cách thủ công vào
download_config.manual_dir
(mặc định là~/tensorflow_datasets/downloads/manual/
):
manual_dir phải chứa tệpILSVRC2012_img_val.tar
. Bạn cần đăng ký trên http://www.image-net.org/download-images để nhận liên kết tải xuống tập dữ liệu.Tự động lưu vào bộ nhớ cache ( tài liệu ): Không
Chia tách :
Tách ra | ví dụ |
---|---|
'imagenet_m' | 68 |
'validation' | 20.000 |
- Cấu trúc tính năng :
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)),
})
- Tài liệu tính năng :
Tính năng | Lớp | Hình dạng | Dtype | Sự mô tả |
---|---|---|---|---|
Tính năngDict | ||||
đúng_multi_labels | Trình tự (Nhãn lớp) | (Không có,) | int64 | |
tên_tệp | Chữ | sợi dây | ||
hình ảnh | Hình ảnh | (Không, Không có, 3) | uint8 | |
is_problematic | tenxơ | bool | ||
original_label | LớpNhãn | int64 | ||
không rõ ràng_multi_labels | Trình tự (Nhãn lớp) | (Không có,) | int64 | |
sai_multi_labels | Trình tự (Nhãn lớp) | (Không có,) | int64 |
Các khóa được giám sát (Xem
as_supervised
doc ):('image', 'correct_multi_labels')
Hình ( tfds.show_examples ):
- Ví dụ ( tfds.as_dataframe ):
- trích dẫn :
@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}
}