#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Copyright (c) BaseDetection, Inc. and its affiliates. All Rights Reserved
import logging
import os
import os.path as osp
from copy import deepcopy
import numpy as np
import torch
from cvpods.utils import Timer
from ..base_dataset import BaseDataset
from ..registry import DATASETS
from .paths_route import _PREDEFINED_SPLITS_IMAGENET
"""
This file contains functions to parse ImageNet-format annotations into dicts in "cvpods format".
"""
logger = logging.getLogger(__name__)
[docs]@DATASETS.register()
class ImageNetDataset(BaseDataset):
def __init__(self, cfg, dataset_name, transforms=[], is_train=True):
super(ImageNetDataset, self).__init__(cfg, dataset_name, transforms, is_train)
image_root, label_file = _PREDEFINED_SPLITS_IMAGENET["imagenet"][self.name]
self.label_file = osp.join(self.data_root, image_root, label_file) \
if "://" not in image_root else osp.join(image_root, label_file)
self.image_root = osp.join(self.data_root, image_root) \
if "://" not in image_root else image_root
self.meta = self._get_metadata()
self.dataset_dicts = self._load_annotations()
self._set_group_flag()
self.eval_with_gt = cfg.TEST.get("WITH_GT", False)
[docs] def __getitem__(self, index):
"""Load data, apply transforms, converto to Instances.
"""
dataset_dict = deepcopy(self.dataset_dicts[index])
# read image
image = self._read_data(dataset_dict["file_name"])
annotations = dataset_dict.get("annotations", None)
# apply transfrom
images, annotations = self._apply_transforms(
image, annotations)
def process(dd, img, annos):
if isinstance(annos, list):
annos = [a for a in annos if a is not None]
# image shape: CHW / NCHW
# TODO: fix hack
if img.shape[0] == 3: # CHW
dd["image"] = torch.as_tensor(np.ascontiguousarray(img))
elif len(img.shape) == 3 and img.shape[-1] == 3:
dd["image"] = torch.as_tensor(
np.ascontiguousarray(img.transpose(2, 0, 1)))
elif len(img.shape) == 4 and img.shape[-1] == 3:
# NHWC -> NCHW
dd["image"] = torch.as_tensor(
np.ascontiguousarray(img.transpose(0, 3, 1, 2)))
return dd
if isinstance(images, dict):
ret = {}
# multiple input pipelines
for desc, item in images.items():
img, anno = item
ret[desc] = process(deepcopy(dataset_dict), img, anno)
return ret
else:
return process(dataset_dict, images, annotations)
def __len__(self):
return len(self.dataset_dicts)
def _get_metadata(self):
assert len(IMAGENET_CATEGORIES.keys()) == 1000
cat_ids = [v[0] for v in IMAGENET_CATEGORIES.values()]
assert min(cat_ids) == 1 and max(cat_ids) == len(cat_ids), \
"Category ids are not in [1, #categories], as expected"
# Ensure that the category list is sroted by id
imagenet_categories = sorted(IMAGENET_CATEGORIES.items(), key=lambda x: x[1][0])
thing_classes = [v[1][1] for v in imagenet_categories]
meta = {
"thing_classes": thing_classes,
"evaluator_type": _PREDEFINED_SPLITS_IMAGENET["evaluator_type"]["imagenet"],
}
return meta
def _load_annotations(self):
timer = Timer()
"""Constructs the imdb."""
# Compile the split data path
logger.info('{} data path: {}'.format(self.name, self.label_file))
# Images are stored per class in subdirs (format: n<number>)
class_ids = [k for k, v in IMAGENET_CATEGORIES.items()]
class_id_cont_id = {k: v[0] - 1 for k, v in IMAGENET_CATEGORIES.items()}
# class_ids = sorted([
# f for f in os.listdir(split_path) if re.match(r'^n[0-9]+$', f)
# ])
# # Map ImageNet class ids to contiguous ids
# class_id_cont_id = {v: i for i, v in enumerate(class_ids)}
# Construct the image db
imdb = []
if "://" not in self.image_root:
for class_id in class_ids:
cont_id = class_id_cont_id[class_id]
im_dir = os.path.join(self.label_file, class_id)
for im_name in os.listdir(im_dir):
imdb.append({
'im_path': os.path.join(im_dir, im_name),
'class': cont_id,
})
logging.info("Loading {} takes {:.2f} seconds.".format(self.label_file, timer.seconds()))
dataset_dicts = []
for i, item in enumerate(imdb):
dataset_dicts.append({
"image_id": i,
"category_id": item["class"],
"file_name": item["im_path"],
})
return dataset_dicts
IMAGENET_CATEGORIES = {
'n01440764': (449, 'tench'),
'n01443537': (450, 'goldfish'),
'n01484850': (442, 'great_white_shark'),
'n01491361': (443, 'tiger_shark'),
'n01494475': (444, 'hammerhead'),
'n01496331': (445, 'electric_ray'),
'n01498041': (446, 'stingray'),
'n01514668': (383, 'cock'),
'n01514859': (384, 'hen'),
'n01518878': (385, 'ostrich'),
'n01530575': (386, 'brambling'),
'n01531178': (387, 'goldfinch'),
'n01532829': (388, 'house_finch'),
'n01534433': (389, 'junco'),
'n01537544': (390, 'indigo_bunting'),
'n01558993': (391, 'robin'),
'n01560419': (392, 'bulbul'),
'n01580077': (393, 'jay'),
'n01582220': (394, 'magpie'),
'n01592084': (395, 'chickadee'),
'n01601694': (396, 'water_ouzel'),
'n01608432': (397, 'kite'),
'n01614925': (398, 'bald_eagle'),
'n01616318': (399, 'vulture'),
'n01622779': (400, 'great_grey_owl'),
'n01629819': (494, 'European_fire_salamander'),
'n01630670': (495, 'common_newt'),
'n01631663': (496, 'eft'),
'n01632458': (497, 'spotted_salamander'),
'n01632777': (498, 'axolotl'),
'n01641577': (499, 'bullfrog'),
'n01644373': (500, 'tree_frog'),
'n01644900': (501, 'tailed_frog'),
'n01664065': (458, 'loggerhead'),
'n01665541': (459, 'leatherback_turtle'),
'n01667114': (460, 'mud_turtle'),
'n01667778': (461, 'terrapin'),
'n01669191': (462, 'box_turtle'),
'n01675722': (463, 'banded_gecko'),
'n01677366': (464, 'common_iguana'),
'n01682714': (465, 'American_chameleon'),
'n01685808': (466, 'whiptail'),
'n01687978': (467, 'agama'),
'n01688243': (468, 'frilled_lizard'),
'n01689811': (469, 'alligator_lizard'),
'n01692333': (470, 'Gila_monster'),
'n01693334': (471, 'green_lizard'),
'n01694178': (472, 'African_chameleon'),
'n01695060': (473, 'Komodo_dragon'),
'n01697457': (475, 'African_crocodile'),
'n01698640': (476, 'American_alligator'),
'n01704323': (474, 'triceratops'),
'n01728572': (477, 'thunder_snake'),
'n01728920': (478, 'ringneck_snake'),
'n01729322': (479, 'hognose_snake'),
'n01729977': (480, 'green_snake'),
'n01734418': (481, 'king_snake'),
'n01735189': (482, 'garter_snake'),
'n01737021': (483, 'water_snake'),
'n01739381': (484, 'vine_snake'),
'n01740131': (485, 'night_snake'),
'n01742172': (486, 'boa_constrictor'),
'n01744401': (487, 'rock_python'),
'n01748264': (488, 'Indian_cobra'),
'n01749939': (489, 'green_mamba'),
'n01751748': (490, 'sea_snake'),
'n01753488': (491, 'horned_viper'),
'n01755581': (492, 'diamondback'),
'n01756291': (493, 'sidewinder'),
'n01768244': (601, 'trilobite'),
'n01770081': (602, 'harvestman'),
'n01770393': (603, 'scorpion'),
'n01773157': (604, 'black_and_gold_garden_spider'),
'n01773549': (605, 'barn_spider'),
'n01773797': (606, 'garden_spider'),
'n01774384': (607, 'black_widow'),
'n01774750': (608, 'tarantula'),
'n01775062': (609, 'wolf_spider'),
'n01776313': (610, 'tick'),
'n01784675': (611, 'centipede'),
'n01795545': (401, 'black_grouse'),
'n01796340': (402, 'ptarmigan'),
'n01797886': (403, 'ruffed_grouse'),
'n01798484': (404, 'prairie_chicken'),
'n01806143': (405, 'peacock'),
'n01806567': (406, 'quail'),
'n01807496': (407, 'partridge'),
'n01817953': (408, 'African_grey'),
'n01818515': (409, 'macaw'),
'n01819313': (410, 'sulphur-crested_cockatoo'),
'n01820546': (411, 'lorikeet'),
'n01824575': (412, 'coucal'),
'n01828970': (413, 'bee_eater'),
'n01829413': (414, 'hornbill'),
'n01833805': (415, 'hummingbird'),
'n01843065': (416, 'jacamar'),
'n01843383': (417, 'toucan'),
'n01847000': (418, 'drake'),
'n01855032': (419, 'red-breasted_merganser'),
'n01855672': (420, 'goose'),
'n01860187': (421, 'black_swan'),
'n01871265': (214, 'tusker'),
'n01872401': (215, 'echidna'),
'n01873310': (217, 'platypus'),
'n01877812': (216, 'wallaby'),
'n01882714': (213, 'koala'),
'n01883070': (218, 'wombat'),
'n01910747': (647, 'jellyfish'),
'n01914609': (648, 'sea_anemone'),
'n01917289': (649, 'brain_coral'),
'n01924916': (650, 'flatworm'),
'n01930112': (651, 'nematode'),
'n01943899': (652, 'conch'),
'n01944390': (653, 'snail'),
'n01945685': (654, 'slug'),
'n01950731': (655, 'sea_slug'),
'n01955084': (656, 'chiton'),
'n01968897': (226, 'chambered_nautilus'),
'n01978287': (613, 'Dungeness_crab'),
'n01978455': (614, 'rock_crab'),
'n01980166': (615, 'fiddler_crab'),
'n01981276': (616, 'king_crab'),
'n01983481': (617, 'American_lobster'),
'n01984695': (618, 'spiny_lobster'),
'n01985128': (619, 'crayfish'),
'n01986214': (620, 'hermit_crab'),
'n01990800': (612, 'isopod'),
'n02002556': (422, 'white_stork'),
'n02002724': (423, 'black_stork'),
'n02006656': (424, 'spoonbill'),
'n02007558': (425, 'flamingo'),
'n02009229': (427, 'little_blue_heron'),
'n02009912': (426, 'American_egret'),
'n02011460': (428, 'bittern'),
'n02012849': (429, 'crane'),
'n02013706': (430, 'limpkin'),
'n02017213': (438, 'European_gallinule'),
'n02018207': (431, 'American_coot'),
'n02018795': (432, 'bustard'),
'n02025239': (433, 'ruddy_turnstone'),
'n02027492': (434, 'red-backed_sandpiper'),
'n02028035': (435, 'redshank'),
'n02033041': (436, 'dowitcher'),
'n02037110': (437, 'oystercatcher'),
'n02051845': (439, 'pelican'),
'n02056570': (440, 'king_penguin'),
'n02058221': (441, 'albatross'),
'n02066245': (6, 'grey_whale'),
'n02071294': (22, 'killer_whale'),
'n02074367': (193, 'dugong'),
'n02077923': (14, 'sea_lion'),
'n02085620': (173, 'Chihuahua'),
'n02085782': (99, 'Japanese_spaniel'),
'n02085936': (87, 'Maltese_dog'),
'n02086079': (69, 'Pekinese'),
'n02086240': (116, 'Shih-Tzu'),
'n02086646': (198, 'Blenheim_spaniel'),
'n02086910': (43, 'papillon'),
'n02087046': (89, 'toy_terrier'),
'n02087394': (200, 'Rhodesian_ridgeback'),
'n02088094': (98, 'Afghan_hound'),
'n02088238': (161, 'basset'),
'n02088364': (132, 'beagle'),
'n02088466': (32, 'bloodhound'),
'n02088632': (180, 'bluetick'),
'n02089078': (42, 'black-and-tan_coonhound'),
'n02089867': (18, 'Walker_hound'),
'n02089973': (207, 'English_foxhound'),
'n02090379': (181, 'redbone'),
'n02090622': (105, 'borzoi'),
'n02090721': (77, 'Irish_wolfhound'),
'n02091032': (189, 'Italian_greyhound'),
'n02091134': (20, 'whippet'),
'n02091244': (204, 'Ibizan_hound'),
'n02091467': (63, 'Norwegian_elkhound'),
'n02091635': (31, 'otterhound'),
'n02091831': (66, 'Saluki'),
'n02092002': (21, 'Scottish_deerhound'),
'n02092339': (25, 'Weimaraner'),
'n02093256': (45, 'Staffordshire_bullterrier'),
'n02093428': (170, 'American_Staffordshire_terrier'),
'n02093647': (119, 'Bedlington_terrier'),
'n02093754': (210, 'Border_terrier'),
'n02093859': (107, 'Kerry_blue_terrier'),
'n02093991': (126, 'Irish_terrier'),
'n02094114': (88, 'Norfolk_terrier'),
'n02094258': (145, 'Norwich_terrier'),
'n02094433': (59, 'Yorkshire_terrier'),
'n02095314': (160, 'wire-haired_fox_terrier'),
'n02095570': (152, 'Lakeland_terrier'),
'n02095889': (72, 'Sealyham_terrier'),
'n02096051': (33, 'Airedale'),
'n02096177': (91, 'cairn'),
'n02096294': (4, 'Australian_terrier'),
'n02096437': (27, 'Dandie_Dinmont'),
'n02096585': (113, 'Boston_bull'),
'n02097047': (123, 'miniature_schnauzer'),
'n02097130': (36, 'giant_schnauzer'),
'n02097209': (156, 'standard_schnauzer'),
'n02097298': (109, 'Scotch_terrier'),
'n02097474': (158, 'Tibetan_terrier'),
'n02097658': (131, 'silky_terrier'),
'n02098105': (26, 'soft-coated_wheaten_terrier'),
'n02098286': (71, 'West_Highland_white_terrier'),
'n02098413': (56, 'Lhasa'),
'n02099267': (146, 'flat-coated_retriever'),
'n02099429': (144, 'curly-coated_retriever'),
'n02099601': (125, 'golden_retriever'),
'n02099712': (176, 'Labrador_retriever'),
'n02099849': (139, 'Chesapeake_Bay_retriever'),
'n02100236': (134, 'German_short-haired_pointer'),
'n02100583': (90, 'vizsla'),
'n02100735': (2, 'English_setter'),
'n02100877': (192, 'Irish_setter'),
'n02101006': (154, 'Gordon_setter'),
'n02101388': (150, 'Brittany_spaniel'),
'n02101556': (94, 'clumber'),
'n02102040': (5, 'English_springer'),
'n02102177': (19, 'Welsh_springer_spaniel'),
'n02102318': (191, 'cocker_spaniel'),
'n02102480': (196, 'Sussex_spaniel'),
'n02102973': (117, 'Irish_water_spaniel'),
'n02104029': (141, 'kuvasz'),
'n02104365': (68, 'schipperke'),
'n02105056': (93, 'groenendael'),
'n02105162': (51, 'malinois'),
'n02105251': (208, 'briard'),
'n02105412': (184, 'kelpie'),
'n02105505': (97, 'komondor'),
'n02105641': (29, 'Old_English_sheepdog'),
'n02105855': (171, 'Shetland_sheepdog'),
'n02106030': (124, 'collie'),
'n02106166': (128, 'Border_collie'),
'n02106382': (47, 'Bouvier_des_Flandres'),
'n02106550': (64, 'Rottweiler'),
'n02106662': (211, 'German_shepherd'),
'n02107142': (112, 'Doberman'),
'n02107312': (187, 'miniature_pinscher'),
'n02107574': (114, 'Greater_Swiss_Mountain_dog'),
'n02107683': (86, 'Bernese_mountain_dog'),
'n02107908': (115, 'Appenzeller'),
'n02108000': (79, 'EntleBucher'),
'n02108089': (130, 'boxer'),
'n02108422': (140, 'bull_mastiff'),
'n02108551': (110, 'Tibetan_mastiff'),
'n02108915': (82, 'French_bulldog'),
'n02109047': (17, 'Great_Dane'),
'n02109525': (177, 'Saint_Bernard'),
'n02109961': (149, 'Eskimo_dog'),
'n02110063': (15, 'malamute'),
'n02110185': (3, 'Siberian_husky'),
'n02110341': (41, 'dalmatian'),
'n02110627': (127, 'affenpinscher'),
'n02110806': (84, 'basenji'),
'n02110958': (143, 'pug'),
'n02111129': (133, 'Leonberg'),
'n02111277': (60, 'Newfoundland'),
'n02111500': (172, 'Great_Pyrenees'),
'n02111889': (179, 'Samoyed'),
'n02112018': (118, 'Pomeranian'),
'n02112137': (168, 'chow'),
'n02112350': (148, 'keeshond'),
'n02112706': (70, 'Brabancon_griffon'),
'n02113023': (197, 'Pembroke'),
'n02113186': (50, 'Cardigan'),
'n02113624': (106, 'toy_poodle'),
'n02113712': (49, 'miniature_poodle'),
'n02113799': (151, 'standard_poodle'),
'n02113978': (46, 'Mexican_hairless'),
'n02114367': (205, 'timber_wolf'),
'n02114548': (102, 'white_wolf'),
'n02114712': (28, 'red_wolf'),
'n02114855': (58, 'coyote'),
'n02115641': (155, 'dingo'),
'n02115913': (136, 'dhole'),
'n02116738': (202, 'African_hunting_dog'),
'n02117135': (34, 'hyena'),
'n02119022': (62, 'red_fox'),
'n02119789': (1, 'kit_fox'),
'n02120079': (159, 'Arctic_fox'),
'n02120505': (67, 'grey_fox'),
'n02123045': (174, 'tabby'),
'n02123159': (55, 'tiger_cat'),
'n02123394': (10, 'Persian_cat'),
'n02123597': (95, 'Siamese_cat'),
'n02124075': (8, 'Egyptian_cat'),
'n02125311': (11, 'cougar'),
'n02127052': (201, 'lynx'),
'n02128385': (85, 'leopard'),
'n02128757': (153, 'snow_leopard'),
'n02128925': (30, 'jaguar'),
'n02129165': (190, 'lion'),
'n02129604': (76, 'tiger'),
'n02130308': (206, 'cheetah'),
'n02132136': (61, 'brown_bear'),
'n02133161': (163, 'American_black_bear'),
'n02134084': (103, 'ice_bear'),
'n02134418': (209, 'sloth_bear'),
'n02137549': (74, 'mongoose'),
'n02138441': (35, 'meerkat'),
'n02165105': (621, 'tiger_beetle'),
'n02165456': (622, 'ladybug'),
'n02167151': (623, 'ground_beetle'),
'n02168699': (624, 'long-horned_beetle'),
'n02169497': (625, 'leaf_beetle'),
'n02172182': (626, 'dung_beetle'),
'n02174001': (627, 'rhinoceros_beetle'),
'n02177972': (628, 'weevil'),
'n02190166': (629, 'fly'),
'n02206856': (630, 'bee'),
'n02219486': (224, 'ant'),
'n02226429': (631, 'grasshopper'),
'n02229544': (632, 'cricket'),
'n02231487': (633, 'walking_stick'),
'n02233338': (634, 'cockroach'),
'n02236044': (635, 'mantis'),
'n02256656': (636, 'cicada'),
'n02259212': (637, 'leafhopper'),
'n02264363': (638, 'lacewing'),
'n02268443': (639, 'dragonfly'),
'n02268853': (640, 'damselfly'),
'n02276258': (641, 'admiral'),
'n02277742': (642, 'ringlet'),
'n02279972': (643, 'monarch'),
'n02280649': (644, 'cabbage_butterfly'),
'n02281406': (645, 'sulphur_butterfly'),
'n02281787': (646, 'lycaenid'),
'n02317335': (225, 'starfish'),
'n02319095': (657, 'sea_urchin'),
'n02321529': (658, 'sea_cucumber'),
'n02325366': (188, 'wood_rabbit'),
'n02326432': (129, 'hare'),
'n02328150': (164, 'Angora'),
'n02342885': (157, 'hamster'),
'n02346627': (13, 'porcupine'),
'n02356798': (53, 'fox_squirrel'),
'n02361337': (183, 'marmot'),
'n02363005': (195, 'beaver'),
'n02364673': (101, 'guinea_pig'),
'n02389026': (39, 'sorrel'),
'n02391049': (80, 'zebra'),
'n02395406': (147, 'hog'),
'n02396427': (78, 'wild_boar'),
'n02397096': (120, 'warthog'),
'n02398521': (167, 'hippopotamus'),
'n02403003': (108, 'ox'),
'n02408429': (162, 'water_buffalo'),
'n02410509': (165, 'bison'),
'n02412080': (81, 'ram'),
'n02415577': (52, 'bighorn'),
'n02417914': (9, 'ibex'),
'n02422106': (65, 'hartebeest'),
'n02422699': (57, 'impala'),
'n02423022': (12, 'gazelle'),
'n02437312': (121, 'Arabian_camel'),
'n02437616': (186, 'llama'),
'n02441942': (48, 'weasel'),
'n02442845': (23, 'mink'),
'n02443114': (182, 'polecat'),
'n02443484': (40, 'black-footed_ferret'),
'n02444819': (212, 'otter'),
'n02445715': (44, 'skunk'),
'n02447366': (16, 'badger'),
'n02454379': (178, 'armadillo'),
'n02457408': (38, 'three-toed_sloth'),
'n02480495': (83, 'orangutan'),
'n02480855': (104, 'gorilla'),
'n02481823': (96, 'chimpanzee'),
'n02483362': (185, 'gibbon'),
'n02483708': (122, 'siamang'),
'n02484975': (73, 'guenon'),
'n02486261': (135, 'patas'),
'n02486410': (137, 'baboon'),
'n02487347': (138, 'macaque'),
'n02488291': (203, 'langur'),
'n02488702': (54, 'colobus'),
'n02489166': (100, 'proboscis_monkey'),
'n02490219': (175, 'marmoset'),
'n02492035': (142, 'capuchin'),
'n02492660': (166, 'howler_monkey'),
'n02493509': (37, 'titi'),
'n02493793': (111, 'spider_monkey'),
'n02494079': (92, 'squirrel_monkey'),
'n02497673': (199, 'Madagascar_cat'),
'n02500267': (75, 'indri'),
'n02504013': (194, 'Indian_elephant'),
'n02504458': (24, 'African_elephant'),
'n02509815': (7, 'lesser_panda'),
'n02510455': (169, 'giant_panda'),
'n02514041': (447, 'barracouta'),
'n02526121': (451, 'eel'),
'n02536864': (448, 'coho'),
'n02606052': (452, 'rock_beauty'),
'n02607072': (453, 'anemone_fish'),
'n02640242': (456, 'sturgeon'),
'n02641379': (457, 'gar'),
'n02643566': (454, 'lionfish'),
'n02655020': (455, 'puffer'),
'n02666196': (547, 'abacus'),
'n02667093': (853, 'abaya'),
'n02669723': (896, 'academic_gown'),
'n02672831': (223, 'accordion'),
'n02676566': (345, 'acoustic_guitar'),
'n02687172': (246, 'aircraft_carrier'),
'n02690373': (230, 'airliner'),
'n02692877': (232, 'airship'),
'n02699494': (677, 'altar'),
'n02701002': (265, 'ambulance'),
'n02704792': (264, 'amphibian'),
'n02708093': (522, 'analog_clock'),
'n02727426': (688, 'apiary'),
'n02730930': (845, 'apron'),
'n02747177': (752, 'ashcan'),
'n02749479': (540, 'assault_rifle'),
'n02769748': (847, 'backpack'),
'n02776631': (704, 'bakery'),
'n02777292': (767, 'balance_beam'),
'n02782093': (233, 'balloon'),
'n02783161': (907, 'ballpoint'),
'n02786058': (967, 'Band_Aid'),
'n02787622': (341, 'banjo'),
'n02788148': (718, 'bannister'),
'n02790996': (916, 'barbell'),
'n02791124': (307, 'barber_chair'),
'n02791270': (705, 'barbershop'),
'n02793495': (683, 'barn'),
'n02794156': (518, 'barometer'),
'n02795169': (905, 'barrel'),
'n02797295': (258, 'barrow'),
'n02799071': (807, 'baseball'),
'n02802426': (908, 'basketball'),
'n02804414': (296, 'bassinet'),
'n02804610': (353, 'bassoon'),
'n02807133': (785, 'bathing_cap'),
'n02808304': (909, 'bath_towel'),
'n02808440': (884, 'bathtub'),
'n02814533': (266, 'beach_wagon'),
'n02814860': (733, 'beacon'),
'n02815834': (991, 'beaker'),
'n02817516': (849, 'bearskin'),
'n02823428': (777, 'beer_bottle'),
'n02823750': (811, 'beer_glass'),
'n02825657': (933, 'bell_cote'),
'n02834397': (941, 'bib'),
'n02835271': (254, 'bicycle-built-for-two'),
'n02837789': (985, 'bikini'),
'n02840245': (835, 'binder'),
'n02841315': (533, 'binoculars'),
'n02843684': (839, 'birdhouse'),
'n02859443': (689, 'boathouse'),
'n02860847': (252, 'bobsled'),
'n02865351': (940, 'bolo_tie'),
'n02869837': (805, 'bonnet'),
'n02870880': (300, 'bookcase'),
'n02871525': (706, 'bookshop'),
'n02877765': (779, 'bottlecap'),
'n02879718': (538, 'bow'),
'n02883205': (817, 'bow_tie'),
'n02892201': (716, 'brass'),
'n02892767': (872, 'brassiere'),
'n02894605': (719, 'breakwater'),
'n02895154': (949, 'breastplate'),
'n02906734': (851, 'broom'),
'n02909870': (820, 'bucket'),
'n02910353': (580, 'buckle'),
'n02916936': (833, 'bulletproof_vest'),
'n02917067': (887, 'bullet_train'),
'n02927161': (707, 'butcher_shop'),
'n02930766': (267, 'cab'),
'n02939185': (673, 'caldron'),
'n02948072': (591, 'candle'),
'n02950826': (539, 'cannon'),
'n02951358': (239, 'canoe'),
'n02951585': (377, 'can_opener'),
'n02963159': (836, 'cardigan'),
'n02965783': (576, 'car_mirror'),
'n02966193': (568, 'carousel'),
'n02966687': (891, "carpenter's_kit"),
'n02971356': (749, 'carton'),
'n02974003': (563, 'car_wheel'),
'n02977058': (548, 'cash_machine'),
'n02978881': (890, 'cassette'),
'n02979186': (929, 'cassette_player'),
'n02980441': (701, 'castle'),
'n02981792': (241, 'catamaran'),
'n02988304': (987, 'CD_player'),
'n02992211': (342, 'cello'),
'n02992529': (914, 'cellular_telephone'),
'n02999410': (827, 'chain'),
'n03000134': (721, 'chainlink_fence'),
'n03000247': (902, 'chain_mail'),
'n03000684': (382, 'chain_saw'),
'n03014705': (762, 'chest'),
'n03016953': (303, 'chiffonier'),
'n03017168': (335, 'chime'),
'n03018349': (301, 'china_cabinet'),
'n03026506': (801, 'Christmas_stocking'),
'n03028079': (690, 'church'),
'n03032252': (695, 'cinema'),
'n03041632': (370, 'cleaver'),
'n03042490': (713, 'cliff_dwelling'),
'n03045698': (797, 'cloak'),
'n03047690': (979, 'clog'),
'n03062245': (761, 'cocktail_shaker'),
'n03063599': (996, 'coffee_mug'),
'n03063689': (674, 'coffeepot'),
'n03065424': (698, 'coil'),
'n03075370': (583, 'combination_lock'),
'n03085013': (543, 'computer_keyboard'),
'n03089624': (708, 'confectionery'),
'n03095699': (243, 'container_ship'),
'n03100240': (268, 'convertible'),
'n03109150': (376, 'corkscrew'),
'n03110669': (347, 'cornet'),
'n03124043': (910, 'cowboy_boot'),
'n03124170': (881, 'cowboy_hat'),
'n03125729': (297, 'cradle'),
'n03126707': (545, 'crane'),
'n03127747': (778, 'crash_helmet'),
'n03127925': (898, 'crate'),
'n03131574': (298, 'crib'),
'n03133878': (670, 'Crock_Pot'),
'n03134739': (756, 'croquet_ball'),
'n03141823': (856, 'crutch'),
'n03146219': (865, 'cuirass'),
'n03160309': (720, 'dam'),
'n03179701': (313, 'desk'),
'n03180011': (550, 'desktop_computer'),
'n03187595': (959, 'dial_telephone'),
'n03188531': (966, 'diaper'),
'n03196217': (523, 'digital_clock'),
'n03197337': (529, 'digital_watch'),
'n03201208': (315, 'dining_table'),
'n03207743': (821, 'dishrag'),
'n03207941': (667, 'dishwasher'),
'n03208938': (579, 'disk_brake'),
'n03216828': (715, 'dock'),
'n03218198': (253, 'dogsled'),
'n03220513': (897, 'dome'),
'n03223299': (972, 'doormat'),
'n03240683': (834, 'drilling_platform'),
'n03249569': (336, 'drum'),
'n03250847': (799, 'drumstick'),
'n03255030': (1000, 'dumbbell'),
'n03259280': (662, 'Dutch_oven'),
'n03271574': (512, 'electric_fan'),
'n03272010': (346, 'electric_guitar'),
'n03272562': (262, 'electric_locomotive'),
'n03290653': (316, 'entertainment_center'),
'n03291819': (879, 'envelope'),
'n03297495': (660, 'espresso_maker'),
'n03314780': (808, 'face_powder'),
'n03325584': (796, 'feather_boa'),
'n03337140': (305, 'file'),
'n03344393': (235, 'fireboat'),
'n03345487': (279, 'fire_engine'),
'n03347037': (919, 'fire_screen'),
'n03355925': (995, 'flagpole'),
'n03372029': (356, 'flute'),
'n03376595': (309, 'folding_chair'),
'n03379051': (784, 'football_helmet'),
'n03384352': (261, 'forklift'),
'n03388043': (712, 'fountain'),
'n03388183': (934, 'fountain_pen'),
'n03388549': (299, 'four-poster'),
'n03393912': (256, 'freight_car'),
'n03394916': (348, 'French_horn'),
'n03400231': (671, 'frying_pan'),
'n03404251': (757, 'fur_coat'),
'n03417042': (280, 'garbage_truck'),
'n03424325': (971, 'gasmask'),
'n03425413': (567, 'gas_pump'),
'n03443371': (955, 'goblet'),
'n03444034': (275, 'go-kart'),
'n03445777': (792, 'golf_ball'),
'n03445924': (276, 'golfcart'),
'n03447447': (236, 'gondola'),
'n03447721': (337, 'gong'),
'n03450230': (911, 'gown'),
'n03452741': (227, 'grand_piano'),
'n03457902': (684, 'greenhouse'),
'n03459775': (725, 'grille'),
'n03461385': (703, 'grocery_store'),
'n03467068': (517, 'guillotine'),
'n03476684': (581, 'hair_slide'),
'n03476991': (895, 'hair_spray'),
'n03478589': (249, 'half_track'),
'n03481172': (375, 'hammer'),
'n03482405': (840, 'hamper'),
'n03483316': (505, 'hand_blower'),
'n03485407': (551, 'hand-held_computer'),
'n03485794': (750, 'handkerchief'),
'n03492542': (573, 'hard_disc'),
'n03494278': (350, 'harmonica'),
'n03495258': (344, 'harp'),
'n03496892': (554, 'harvester'),
'n03498962': (369, 'hatchet'),
'n03527444': (787, 'holster'),
'n03529860': (696, 'home_theater'),
'n03530642': (730, 'honeycomb'),
'n03532672': (562, 'hook'),
'n03534580': (802, 'hoopskirt'),
'n03535780': (924, 'horizontal_bar'),
'n03538406': (293, 'horse_cart'),
'n03544143': (525, 'hourglass'),
'n03584254': (980, 'iPod'),
'n03584829': (659, 'iron'),
'n03590841': (592, "jack-o'-lantern"),
'n03594734': (748, 'jean'),
'n03594945': (269, 'jeep'),
'n03595614': (961, 'jersey'),
'n03598930': (963, 'jigsaw_puzzle'),
'n03599486': (294, 'jinrikisha'),
'n03602883': (560, 'joystick'),
'n03617480': (770, 'kimono'),
'n03623198': (773, 'knee_pad'),
'n03627232': (582, 'knot'),
'n03630383': (918, 'lab_coat'),
'n03633091': (892, 'ladle'),
'n03637318': (814, 'lampshade'),
'n03642806': (228, 'laptop'),
'n03649909': (374, 'lawn_mower'),
'n03657121': (988, 'lens_cap'),
'n03658185': (371, 'letter_opener'),
'n03661043': (687, 'library'),
'n03662601': (238, 'lifeboat'),
'n03666591': (546, 'lighter'),
'n03670208': (270, 'limousine'),
'n03673027': (244, 'liner'),
'n03676483': (867, 'lipstick'),
'n03680355': (973, 'Loafer'),
'n03690938': (894, 'lotion'),
'n03691459': (508, 'loudspeaker'),
'n03692522': (536, 'loupe'),
'n03697007': (697, 'lumbermill'),
'n03706229': (532, 'magnetic_compass'),
'n03709823': (818, 'mailbag'),
'n03710193': (917, 'mailbox'),
'n03710637': (782, 'maillot'),
'n03710721': (977, 'maillot'),
'n03717622': (763, 'manhole_cover'),
'n03720891': (338, 'maraca'),
'n03721384': (339, 'marimba'),
'n03724870': (781, 'mask'),
'n03729826': (984, 'matchstick'),
'n03733131': (598, 'maypole'),
'n03733281': (922, 'maze'),
'n03733805': (946, 'measuring_cup'),
'n03742115': (302, 'medicine_chest'),
'n03743016': (717, 'megalith'),
'n03759954': (509, 'microphone'),
'n03761084': (661, 'microwave'),
'n03763968': (866, 'military_uniform'),
'n03764736': (875, 'milk_can'),
'n03769881': (920, 'minibus'),
'n03770439': (880, 'miniskirt'),
'n03770679': (271, 'minivan'),
'n03773504': (251, 'missile'),
'n03775071': (871, 'mitten'),
'n03775546': (829, 'mixing_bowl'),
'n03776460': (290, 'mobile_home'),
'n03777568': (272, 'Model_T'),
'n03777754': (764, 'modem'),
'n03781244': (686, 'monastery'),
'n03782006': (869, 'monitor'),
'n03785016': (277, 'moped'),
'n03786901': (824, 'mortar'),
'n03787032': (854, 'mortarboard'),
'n03788195': (691, 'mosque'),
'n03788365': (852, 'mosquito_net'),
'n03791053': (260, 'motor_scooter'),
'n03792782': (255, 'mountain_bike'),
'n03792972': (728, 'mountain_tent'),
'n03793489': (511, 'mouse'),
'n03794056': (599, 'mousetrap'),
'n03796401': (284, 'moving_van'),
'n03803284': (588, 'muzzle'),
'n03804744': (585, 'nail'),
'n03814639': (595, 'neck_brace'),
'n03814906': (755, 'necklace'),
'n03825788': (915, 'nipple'),
'n03832673': (552, 'notebook'),
'n03837869': (699, 'obelisk'),
'n03838899': (354, 'oboe'),
'n03840681': (351, 'ocarina'),
'n03841143': (520, 'odometer'),
'n03843555': (513, 'oil_filter'),
'n03854065': (333, 'organ'),
'n03857828': (870, 'oscilloscope'),
'n03866082': (937, 'overskirt'),
'n03868242': (295, 'oxcart'),
'n03868863': (506, 'oxygen_mask'),
'n03871628': (921, 'packet'),
'n03873416': (826, 'paddle'),
'n03874293': (564, 'paddlewheel'),
'n03874599': (584, 'padlock'),
'n03876231': (504, 'paintbrush'),
'n03877472': (759, 'pajama'),
'n03877845': (685, 'palace'),
'n03884397': (352, 'panpipe'),
'n03887697': (877, 'paper_towel'),
'n03888257': (942, 'parachute'),
'n03888605': (994, 'parallel_bars'),
'n03891251': (306, 'park_bench'),
'n03891332': (527, 'parking_meter'),
'n03895866': (257, 'passenger_car'),
'n03899768': (679, 'patio'),
'n03902125': (843, 'pay-phone'),
'n03903868': (732, 'pedestal'),
'n03908618': (842, 'pencil_box'),
'n03908714': (850, 'pencil_sharpener'),
'n03916031': (883, 'perfume'),
'n03920288': (783, 'Petri_dish'),
'n03924679': (789, 'photocopier'),
'n03929660': (575, 'pick'),
'n03929855': (926, 'pickelhaube'),
'n03930313': (722, 'picket_fence'),
'n03930630': (281, 'pickup'),
'n03933933': (596, 'pier'),
'n03935335': (931, 'piggy_bank'),
'n03937543': (901, 'pill_bottle'),
'n03938244': (888, 'pillow'),
'n03942813': (841, 'ping-pong_ball'),
'n03944341': (565, 'pinwheel'),
'n03947888': (245, 'pirate'),
'n03950228': (983, 'pitcher'),
'n03954731': (372, 'plane'),
'n03956157': (693, 'planetarium'),
'n03958227': (964, 'plastic_bag'),
'n03961711': (731, 'plate_rack'),
'n03967562': (381, 'plow'),
'n03970156': (378, 'plunger'),
'n03976467': (857, 'Polaroid_camera'),
'n03976657': (923, 'pole'),
'n03977966': (285, 'police_van'),
'n03980874': (855, 'poncho'),
'n03982430': (314, 'pool_table'),
'n03983396': (788, 'pop_bottle'),
'n03991062': (838, 'pot'),
'n03992509': (566, "potter's_wheel"),
'n03995372': (373, 'power_drill'),
'n03998194': (769, 'prayer_rug'),
'n04004767': (556, 'printer'),
'n04005630': (702, 'prison'),
'n04008634': (542, 'projectile'),
'n04009552': (534, 'projector'),
'n04019541': (572, 'puck'),
'n04023962': (846, 'punching_bag'),
'n04026417': (939, 'purse'),
'n04033901': (862, 'quill'),
'n04033995': (976, 'quilt'),
'n04037443': (273, 'racer'),
'n04039381': (860, 'racket'),
'n04040759': (571, 'radiator'),
'n04041544': (863, 'radio'),
'n04044716': (537, 'radio_telescope'),
'n04049303': (927, 'rain_barrel'),
'n04065272': (286, 'recreational_vehicle'),
'n04067472': (570, 'reel'),
'n04069434': (965, 'reflex_camera'),
'n04070727': (668, 'refrigerator'),
'n04074963': (578, 'remote_control'),
'n04081281': (694, 'restaurant'),
'n04086273': (219, 'revolver'),
'n04090263': (541, 'rifle'),
'n04099969': (310, 'rocking_chair'),
'n04111531': (663, 'rotisserie'),
'n04116512': (997, 'rubber_eraser'),
'n04118538': (876, 'rugby_ball'),
'n04118776': (519, 'rule'),
'n04120489': (760, 'running_shoe'),
'n04125021': (753, 'safe'),
'n04127249': (586, 'safety_pin'),
'n04131690': (952, 'saltshaker'),
'n04133789': (751, 'sandal'),
'n04136333': (938, 'sarong'),
'n04141076': (355, 'sax'),
'n04141327': (809, 'scabbard'),
'n04141975': (521, 'scale'),
'n04146614': (962, 'school_bus'),
'n04147183': (221, 'schooner'),
'n04149813': (729, 'scoreboard'),
'n04152593': (510, 'screen'),
'n04153751': (587, 'screw'),
'n04154565': (379, 'screwdriver'),
'n04162706': (589, 'seat_belt'),
'n04179913': (559, 'sewing_machine'),
'n04192698': (800, 'shield'),
'n04200800': (709, 'shoe_shop'),
'n04201297': (832, 'shoji'),
'n04204238': (950, 'shopping_basket'),
'n04204347': (259, 'shopping_cart'),
'n04208210': (380, 'shovel'),
'n04209133': (868, 'shower_cap'),
'n04209239': (747, 'shower_curtain'),
'n04228054': (590, 'ski'),
'n04229816': (776, 'ski_mask'),
'n04235860': (943, 'sleeping_bag'),
'n04238763': (549, 'slide_rule'),
'n04239074': (726, 'sliding_door'),
'n04243546': (557, 'slot'),
'n04251144': (507, 'snorkel'),
'n04252077': (288, 'snowmobile'),
'n04252225': (278, 'snowplow'),
'n04254120': (960, 'soap_dispenser'),
'n04254680': (222, 'soccer_ball'),
'n04254777': (986, 'sock'),
'n04258138': (577, 'solar_dish'),
'n04259630': (925, 'sombrero'),
'n04263257': (822, 'soup_bowl'),
'n04264628': (858, 'space_bar'),
'n04265275': (515, 'space_heater'),
'n04266014': (234, 'space_shuttle'),
'n04270147': (676, 'spatula'),
'n04273569': (237, 'speedboat'),
'n04275548': (600, 'spider_web'),
'n04277352': (775, 'spindle'),
'n04285008': (274, 'sports_car'),
'n04286575': (593, 'spotlight'),
'n04296562': (804, 'stage'),
'n04310018': (263, 'steam_locomotive'),
'n04311004': (680, 'steel_arch_bridge'),
'n04311174': (340, 'steel_drum'),
'n04317175': (530, 'stethoscope'),
'n04325704': (998, 'stole'),
'n04326547': (724, 'stone_wall'),
'n04328186': (528, 'stopwatch'),
'n04330267': (516, 'stove'),
'n04332243': (514, 'strainer'),
'n04335435': (287, 'streetcar'),
'n04336792': (957, 'stretcher'),
'n04344873': (311, 'studio_couch'),
'n04346328': (692, 'stupa'),
'n04347754': (247, 'submarine'),
'n04350905': (794, 'suit'),
'n04355338': (526, 'sundial'),
'n04355933': (574, 'sunglass'),
'n04356056': (535, 'sunglasses'),
'n04357314': (810, 'sunscreen'),
'n04366367': (681, 'suspension_bridge'),
'n04367480': (828, 'swab'),
'n04370456': (837, 'sweatshirt'),
'n04371430': (945, 'swimming_trunks'),
'n04371774': (569, 'swing'),
'n04372370': (561, 'switch'),
'n04376876': (531, 'syringe'),
'n04380533': (304, 'table_lamp'),
'n04389033': (250, 'tank'),
'n04392985': (978, 'tape_player'),
'n04398044': (675, 'teapot'),
'n04399382': (786, 'teddy'),
'n04404412': (944, 'television'),
'n04409515': (970, 'tennis_ball'),
'n04417672': (989, 'thatch'),
'n04418357': (903, 'theater_curtain'),
'n04423845': (758, 'thimble'),
'n04428191': (555, 'thresher'),
'n04429376': (308, 'throne'),
'n04435653': (780, 'tile_roof'),
'n04442312': (664, 'toaster'),
'n04443257': (710, 'tobacco_shop'),
'n04447861': (312, 'toilet_seat'),
'n04456115': (594, 'torch'),
'n04458633': (700, 'totem_pole'),
'n04461696': (282, 'tow_truck'),
'n04462240': (711, 'toyshop'),
'n04465501': (289, 'tractor'),
'n04467665': (283, 'trailer_truck'),
'n04476259': (766, 'tray'),
'n04479046': (825, 'trench_coat'),
'n04482393': (291, 'tricycle'),
'n04483307': (242, 'trimaran'),
'n04485082': (597, 'tripod'),
'n04486054': (678, 'triumphal_arch'),
'n04487081': (882, 'trolleybus'),
'n04487394': (349, 'trombone'),
'n04493381': (765, 'tub'),
'n04501370': (727, 'turnstile'),
'n04505470': (544, 'typewriter_keyboard'),
'n04507155': (220, 'umbrella'),
'n04509417': (292, 'unicycle'),
'n04515003': (334, 'upright'),
'n04517823': (666, 'vacuum'),
'n04522168': (874, 'vase'),
'n04523525': (990, 'vault'),
'n04525038': (969, 'velvet'),
'n04525305': (558, 'vending_machine'),
'n04532106': (790, 'vestment'),
'n04532670': (682, 'viaduct'),
'n04536866': (343, 'violin'),
'n04540053': (936, 'volleyball'),
'n04542943': (665, 'waffle_iron'),
'n04548280': (524, 'wall_clock'),
'n04548362': (928, 'wallet'),
'n04550184': (317, 'wardrobe'),
'n04552348': (231, 'warplane'),
'n04553703': (906, 'washbasin'),
'n04554684': (669, 'washer'),
'n04557648': (958, 'water_bottle'),
'n04560804': (819, 'water_jug'),
'n04562935': (795, 'water_tower'),
'n04579145': (772, 'whiskey_jug'),
'n04579432': (502, 'whistle'),
'n04584207': (899, 'wig'),
'n04589890': (912, 'window_screen'),
'n04590129': (904, 'window_shade'),
'n04591157': (935, 'Windsor_tie'),
'n04591713': (831, 'wine_bottle'),
'n04592741': (503, 'wing'),
'n04596742': (672, 'wok'),
'n04597913': (951, 'wooden_spoon'),
'n04599235': (815, 'wool'),
'n04604644': (723, 'worm_fence'),
'n04606251': (248, 'wreck'),
'n04612504': (240, 'yawl'),
'n04613696': (714, 'yurt'),
'n06359193': (553, 'web_site'),
'n06596364': (930, 'comic_book'),
'n06785654': (791, 'crossword_puzzle'),
'n06794110': (932, 'street_sign'),
'n06874185': (861, 'traffic_light'),
'n07248320': (774, 'book_jacket'),
'n07565083': (803, 'menu'),
'n07579787': (754, 'plate'),
'n07583066': (813, 'guacamole'),
'n07584110': (844, 'consomme'),
'n07590611': (771, 'hot_pot'),
'n07613480': (793, 'trifle'),
'n07614500': (974, 'ice_cream'),
'n07615774': (968, 'ice_lolly'),
'n07684084': (873, 'French_loaf'),
'n07693725': (768, 'bagel'),
'n07695742': (975, 'pretzel'),
'n07697313': (993, 'cheeseburger'),
'n07697537': (885, 'hotdog'),
'n07711569': (734, 'mashed_potato'),
'n07714571': (736, 'head_cabbage'),
'n07714990': (737, 'broccoli'),
'n07715103': (738, 'cauliflower'),
'n07716358': (739, 'zucchini'),
'n07716906': (740, 'spaghetti_squash'),
'n07717410': (741, 'acorn_squash'),
'n07717556': (742, 'butternut_squash'),
'n07718472': (743, 'cucumber'),
'n07718747': (744, 'artichoke'),
'n07720875': (735, 'bell_pepper'),
'n07730033': (745, 'cardoon'),
'n07734744': (746, 'mushroom'),
'n07742313': (318, 'Granny_Smith'),
'n07745940': (229, 'strawberry'),
'n07747607': (319, 'orange'),
'n07749582': (320, 'lemon'),
'n07753113': (321, 'fig'),
'n07753275': (322, 'pineapple'),
'n07753592': (323, 'banana'),
'n07754684': (324, 'jackfruit'),
'n07760859': (325, 'custard_apple'),
'n07768694': (326, 'pomegranate'),
'n07802026': (816, 'hay'),
'n07831146': (999, 'carbonara'),
'n07836838': (953, 'chocolate_sauce'),
'n07860988': (864, 'dough'),
'n07871810': (806, 'meat_loaf'),
'n07873807': (948, 'pizza'),
'n07875152': (830, 'potpie'),
'n07880968': (900, 'burrito'),
'n07892512': (798, 'red_wine'),
'n07920052': (947, 'espresso'),
'n07930864': (859, 'cup'),
'n07932039': (823, 'eggnog'),
'n09193705': (361, 'alp'),
'n09229709': (992, 'bubble'),
'n09246464': (359, 'cliff'),
'n09256479': (365, 'coral_reef'),
'n09288635': (368, 'geyser'),
'n09332890': (366, 'lakeside'),
'n09399592': (363, 'promontory'),
'n09421951': (364, 'sandbar'),
'n09428293': (367, 'seashore'),
'n09468604': (360, 'valley'),
'n09472597': (362, 'volcano'),
'n09835506': (954, 'ballplayer'),
'n10148035': (848, 'groom'),
'n10565667': (982, 'scuba_diver'),
'n11879895': (330, 'rapeseed'),
'n11939491': (357, 'daisy'),
'n12057211': (358, "yellow_lady's_slipper"),
'n12144580': (331, 'corn'),
'n12267677': (327, 'acorn'),
'n12620546': (328, 'hip'),
'n12768682': (332, 'buckeye'),
'n12985857': (886, 'coral_fungus'),
'n12998815': (913, 'agaric'),
'n13037406': (956, 'gyromitra'),
'n13040303': (893, 'stinkhorn'),
'n13044778': (878, 'earthstar'),
'n13052670': (812, 'hen-of-the-woods'),
'n13054560': (981, 'bolete'),
'n13133613': (329, 'ear'),
'n15075141': (889, 'toilet_tissue')}