Spaces:
Build error
Build error
import itertools | |
import logging | |
import os.path as osp | |
import tempfile | |
from collections import OrderedDict | |
import numpy as np | |
from mmcv.utils import print_log | |
from terminaltables import AsciiTable | |
from .builder import DATASETS | |
from .coco import CocoDataset | |
class LVISV05Dataset(CocoDataset): | |
CLASSES = ( | |
'acorn', 'aerosol_can', 'air_conditioner', 'airplane', 'alarm_clock', | |
'alcohol', 'alligator', 'almond', 'ambulance', 'amplifier', 'anklet', | |
'antenna', 'apple', 'apple_juice', 'applesauce', 'apricot', 'apron', | |
'aquarium', 'armband', 'armchair', 'armoire', 'armor', 'artichoke', | |
'trash_can', 'ashtray', 'asparagus', 'atomizer', 'avocado', 'award', | |
'awning', 'ax', 'baby_buggy', 'basketball_backboard', 'backpack', | |
'handbag', 'suitcase', 'bagel', 'bagpipe', 'baguet', 'bait', 'ball', | |
'ballet_skirt', 'balloon', 'bamboo', 'banana', 'Band_Aid', 'bandage', | |
'bandanna', 'banjo', 'banner', 'barbell', 'barge', 'barrel', | |
'barrette', 'barrow', 'baseball_base', 'baseball', 'baseball_bat', | |
'baseball_cap', 'baseball_glove', 'basket', 'basketball_hoop', | |
'basketball', 'bass_horn', 'bat_(animal)', 'bath_mat', 'bath_towel', | |
'bathrobe', 'bathtub', 'batter_(food)', 'battery', 'beachball', 'bead', | |
'beaker', 'bean_curd', 'beanbag', 'beanie', 'bear', 'bed', | |
'bedspread', 'cow', 'beef_(food)', 'beeper', 'beer_bottle', 'beer_can', | |
'beetle', 'bell', 'bell_pepper', 'belt', 'belt_buckle', 'bench', | |
'beret', 'bib', 'Bible', 'bicycle', 'visor', 'binder', 'binoculars', | |
'bird', 'birdfeeder', 'birdbath', 'birdcage', 'birdhouse', | |
'birthday_cake', 'birthday_card', 'biscuit_(bread)', 'pirate_flag', | |
'black_sheep', 'blackboard', 'blanket', 'blazer', 'blender', 'blimp', | |
'blinker', 'blueberry', 'boar', 'gameboard', 'boat', 'bobbin', | |
'bobby_pin', 'boiled_egg', 'bolo_tie', 'deadbolt', 'bolt', 'bonnet', | |
'book', 'book_bag', 'bookcase', 'booklet', 'bookmark', | |
'boom_microphone', 'boot', 'bottle', 'bottle_opener', 'bouquet', | |
'bow_(weapon)', 'bow_(decorative_ribbons)', 'bow-tie', 'bowl', | |
'pipe_bowl', 'bowler_hat', 'bowling_ball', 'bowling_pin', | |
'boxing_glove', 'suspenders', 'bracelet', 'brass_plaque', 'brassiere', | |
'bread-bin', 'breechcloth', 'bridal_gown', 'briefcase', | |
'bristle_brush', 'broccoli', 'broach', 'broom', 'brownie', | |
'brussels_sprouts', 'bubble_gum', 'bucket', 'horse_buggy', 'bull', | |
'bulldog', 'bulldozer', 'bullet_train', 'bulletin_board', | |
'bulletproof_vest', 'bullhorn', 'corned_beef', 'bun', 'bunk_bed', | |
'buoy', 'burrito', 'bus_(vehicle)', 'business_card', 'butcher_knife', | |
'butter', 'butterfly', 'button', 'cab_(taxi)', 'cabana', 'cabin_car', | |
'cabinet', 'locker', 'cake', 'calculator', 'calendar', 'calf', | |
'camcorder', 'camel', 'camera', 'camera_lens', 'camper_(vehicle)', | |
'can', 'can_opener', 'candelabrum', 'candle', 'candle_holder', | |
'candy_bar', 'candy_cane', 'walking_cane', 'canister', 'cannon', | |
'canoe', 'cantaloup', 'canteen', 'cap_(headwear)', 'bottle_cap', | |
'cape', 'cappuccino', 'car_(automobile)', 'railcar_(part_of_a_train)', | |
'elevator_car', 'car_battery', 'identity_card', 'card', 'cardigan', | |
'cargo_ship', 'carnation', 'horse_carriage', 'carrot', 'tote_bag', | |
'cart', 'carton', 'cash_register', 'casserole', 'cassette', 'cast', | |
'cat', 'cauliflower', 'caviar', 'cayenne_(spice)', 'CD_player', | |
'celery', 'cellular_telephone', 'chain_mail', 'chair', 'chaise_longue', | |
'champagne', 'chandelier', 'chap', 'checkbook', 'checkerboard', | |
'cherry', 'chessboard', 'chest_of_drawers_(furniture)', | |
'chicken_(animal)', 'chicken_wire', 'chickpea', 'Chihuahua', | |
'chili_(vegetable)', 'chime', 'chinaware', 'crisp_(potato_chip)', | |
'poker_chip', 'chocolate_bar', 'chocolate_cake', 'chocolate_milk', | |
'chocolate_mousse', 'choker', 'chopping_board', 'chopstick', | |
'Christmas_tree', 'slide', 'cider', 'cigar_box', 'cigarette', | |
'cigarette_case', 'cistern', 'clarinet', 'clasp', 'cleansing_agent', | |
'clementine', 'clip', 'clipboard', 'clock', 'clock_tower', | |
'clothes_hamper', 'clothespin', 'clutch_bag', 'coaster', 'coat', | |
'coat_hanger', 'coatrack', 'cock', 'coconut', 'coffee_filter', | |
'coffee_maker', 'coffee_table', 'coffeepot', 'coil', 'coin', | |
'colander', 'coleslaw', 'coloring_material', 'combination_lock', | |
'pacifier', 'comic_book', 'computer_keyboard', 'concrete_mixer', | |
'cone', 'control', 'convertible_(automobile)', 'sofa_bed', 'cookie', | |
'cookie_jar', 'cooking_utensil', 'cooler_(for_food)', | |
'cork_(bottle_plug)', 'corkboard', 'corkscrew', 'edible_corn', | |
'cornbread', 'cornet', 'cornice', 'cornmeal', 'corset', | |
'romaine_lettuce', 'costume', 'cougar', 'coverall', 'cowbell', | |
'cowboy_hat', 'crab_(animal)', 'cracker', 'crape', 'crate', 'crayon', | |
'cream_pitcher', 'credit_card', 'crescent_roll', 'crib', 'crock_pot', | |
'crossbar', 'crouton', 'crow', 'crown', 'crucifix', 'cruise_ship', | |
'police_cruiser', 'crumb', 'crutch', 'cub_(animal)', 'cube', | |
'cucumber', 'cufflink', 'cup', 'trophy_cup', 'cupcake', 'hair_curler', | |
'curling_iron', 'curtain', 'cushion', 'custard', 'cutting_tool', | |
'cylinder', 'cymbal', 'dachshund', 'dagger', 'dartboard', | |
'date_(fruit)', 'deck_chair', 'deer', 'dental_floss', 'desk', | |
'detergent', 'diaper', 'diary', 'die', 'dinghy', 'dining_table', 'tux', | |
'dish', 'dish_antenna', 'dishrag', 'dishtowel', 'dishwasher', | |
'dishwasher_detergent', 'diskette', 'dispenser', 'Dixie_cup', 'dog', | |
'dog_collar', 'doll', 'dollar', 'dolphin', 'domestic_ass', 'eye_mask', | |
'doorbell', 'doorknob', 'doormat', 'doughnut', 'dove', 'dragonfly', | |
'drawer', 'underdrawers', 'dress', 'dress_hat', 'dress_suit', | |
'dresser', 'drill', 'drinking_fountain', 'drone', 'dropper', | |
'drum_(musical_instrument)', 'drumstick', 'duck', 'duckling', | |
'duct_tape', 'duffel_bag', 'dumbbell', 'dumpster', 'dustpan', | |
'Dutch_oven', 'eagle', 'earphone', 'earplug', 'earring', 'easel', | |
'eclair', 'eel', 'egg', 'egg_roll', 'egg_yolk', 'eggbeater', | |
'eggplant', 'electric_chair', 'refrigerator', 'elephant', 'elk', | |
'envelope', 'eraser', 'escargot', 'eyepatch', 'falcon', 'fan', | |
'faucet', 'fedora', 'ferret', 'Ferris_wheel', 'ferry', 'fig_(fruit)', | |
'fighter_jet', 'figurine', 'file_cabinet', 'file_(tool)', 'fire_alarm', | |
'fire_engine', 'fire_extinguisher', 'fire_hose', 'fireplace', | |
'fireplug', 'fish', 'fish_(food)', 'fishbowl', 'fishing_boat', | |
'fishing_rod', 'flag', 'flagpole', 'flamingo', 'flannel', 'flash', | |
'flashlight', 'fleece', 'flip-flop_(sandal)', 'flipper_(footwear)', | |
'flower_arrangement', 'flute_glass', 'foal', 'folding_chair', | |
'food_processor', 'football_(American)', 'football_helmet', | |
'footstool', 'fork', 'forklift', 'freight_car', 'French_toast', | |
'freshener', 'frisbee', 'frog', 'fruit_juice', 'fruit_salad', | |
'frying_pan', 'fudge', 'funnel', 'futon', 'gag', 'garbage', | |
'garbage_truck', 'garden_hose', 'gargle', 'gargoyle', 'garlic', | |
'gasmask', 'gazelle', 'gelatin', 'gemstone', 'giant_panda', | |
'gift_wrap', 'ginger', 'giraffe', 'cincture', | |
'glass_(drink_container)', 'globe', 'glove', 'goat', 'goggles', | |
'goldfish', 'golf_club', 'golfcart', 'gondola_(boat)', 'goose', | |
'gorilla', 'gourd', 'surgical_gown', 'grape', 'grasshopper', 'grater', | |
'gravestone', 'gravy_boat', 'green_bean', 'green_onion', 'griddle', | |
'grillroom', 'grinder_(tool)', 'grits', 'grizzly', 'grocery_bag', | |
'guacamole', 'guitar', 'gull', 'gun', 'hair_spray', 'hairbrush', | |
'hairnet', 'hairpin', 'ham', 'hamburger', 'hammer', 'hammock', | |
'hamper', 'hamster', 'hair_dryer', 'hand_glass', 'hand_towel', | |
'handcart', 'handcuff', 'handkerchief', 'handle', 'handsaw', | |
'hardback_book', 'harmonium', 'hat', 'hatbox', 'hatch', 'veil', | |
'headband', 'headboard', 'headlight', 'headscarf', 'headset', | |
'headstall_(for_horses)', 'hearing_aid', 'heart', 'heater', | |
'helicopter', 'helmet', 'heron', 'highchair', 'hinge', 'hippopotamus', | |
'hockey_stick', 'hog', 'home_plate_(baseball)', 'honey', 'fume_hood', | |
'hook', 'horse', 'hose', 'hot-air_balloon', 'hotplate', 'hot_sauce', | |
'hourglass', 'houseboat', 'hummingbird', 'hummus', 'polar_bear', | |
'icecream', 'popsicle', 'ice_maker', 'ice_pack', 'ice_skate', | |
'ice_tea', 'igniter', 'incense', 'inhaler', 'iPod', | |
'iron_(for_clothing)', 'ironing_board', 'jacket', 'jam', 'jean', | |
'jeep', 'jelly_bean', 'jersey', 'jet_plane', 'jewelry', 'joystick', | |
'jumpsuit', 'kayak', 'keg', 'kennel', 'kettle', 'key', 'keycard', | |
'kilt', 'kimono', 'kitchen_sink', 'kitchen_table', 'kite', 'kitten', | |
'kiwi_fruit', 'knee_pad', 'knife', 'knight_(chess_piece)', | |
'knitting_needle', 'knob', 'knocker_(on_a_door)', 'koala', 'lab_coat', | |
'ladder', 'ladle', 'ladybug', 'lamb_(animal)', 'lamb-chop', 'lamp', | |
'lamppost', 'lampshade', 'lantern', 'lanyard', 'laptop_computer', | |
'lasagna', 'latch', 'lawn_mower', 'leather', 'legging_(clothing)', | |
'Lego', 'lemon', 'lemonade', 'lettuce', 'license_plate', 'life_buoy', | |
'life_jacket', 'lightbulb', 'lightning_rod', 'lime', 'limousine', | |
'linen_paper', 'lion', 'lip_balm', 'lipstick', 'liquor', 'lizard', | |
'Loafer_(type_of_shoe)', 'log', 'lollipop', 'lotion', | |
'speaker_(stero_equipment)', 'loveseat', 'machine_gun', 'magazine', | |
'magnet', 'mail_slot', 'mailbox_(at_home)', 'mallet', 'mammoth', | |
'mandarin_orange', 'manger', 'manhole', 'map', 'marker', 'martini', | |
'mascot', 'mashed_potato', 'masher', 'mask', 'mast', | |
'mat_(gym_equipment)', 'matchbox', 'mattress', 'measuring_cup', | |
'measuring_stick', 'meatball', 'medicine', 'melon', 'microphone', | |
'microscope', 'microwave_oven', 'milestone', 'milk', 'minivan', | |
'mint_candy', 'mirror', 'mitten', 'mixer_(kitchen_tool)', 'money', | |
'monitor_(computer_equipment) computer_monitor', 'monkey', 'motor', | |
'motor_scooter', 'motor_vehicle', 'motorboat', 'motorcycle', | |
'mound_(baseball)', 'mouse_(animal_rodent)', | |
'mouse_(computer_equipment)', 'mousepad', 'muffin', 'mug', 'mushroom', | |
'music_stool', 'musical_instrument', 'nailfile', 'nameplate', 'napkin', | |
'neckerchief', 'necklace', 'necktie', 'needle', 'nest', 'newsstand', | |
'nightshirt', 'nosebag_(for_animals)', 'noseband_(for_animals)', | |
'notebook', 'notepad', 'nut', 'nutcracker', 'oar', 'octopus_(food)', | |
'octopus_(animal)', 'oil_lamp', 'olive_oil', 'omelet', 'onion', | |
'orange_(fruit)', 'orange_juice', 'oregano', 'ostrich', 'ottoman', | |
'overalls_(clothing)', 'owl', 'packet', 'inkpad', 'pad', 'paddle', | |
'padlock', 'paintbox', 'paintbrush', 'painting', 'pajamas', 'palette', | |
'pan_(for_cooking)', 'pan_(metal_container)', 'pancake', 'pantyhose', | |
'papaya', 'paperclip', 'paper_plate', 'paper_towel', 'paperback_book', | |
'paperweight', 'parachute', 'parakeet', 'parasail_(sports)', | |
'parchment', 'parka', 'parking_meter', 'parrot', | |
'passenger_car_(part_of_a_train)', 'passenger_ship', 'passport', | |
'pastry', 'patty_(food)', 'pea_(food)', 'peach', 'peanut_butter', | |
'pear', 'peeler_(tool_for_fruit_and_vegetables)', 'pegboard', | |
'pelican', 'pen', 'pencil', 'pencil_box', 'pencil_sharpener', | |
'pendulum', 'penguin', 'pennant', 'penny_(coin)', 'pepper', | |
'pepper_mill', 'perfume', 'persimmon', 'baby', 'pet', 'petfood', | |
'pew_(church_bench)', 'phonebook', 'phonograph_record', 'piano', | |
'pickle', 'pickup_truck', 'pie', 'pigeon', 'piggy_bank', 'pillow', | |
'pin_(non_jewelry)', 'pineapple', 'pinecone', 'ping-pong_ball', | |
'pinwheel', 'tobacco_pipe', 'pipe', 'pistol', 'pita_(bread)', | |
'pitcher_(vessel_for_liquid)', 'pitchfork', 'pizza', 'place_mat', | |
'plate', 'platter', 'playing_card', 'playpen', 'pliers', | |
'plow_(farm_equipment)', 'pocket_watch', 'pocketknife', | |
'poker_(fire_stirring_tool)', 'pole', 'police_van', 'polo_shirt', | |
'poncho', 'pony', 'pool_table', 'pop_(soda)', 'portrait', | |
'postbox_(public)', 'postcard', 'poster', 'pot', 'flowerpot', 'potato', | |
'potholder', 'pottery', 'pouch', 'power_shovel', 'prawn', 'printer', | |
'projectile_(weapon)', 'projector', 'propeller', 'prune', 'pudding', | |
'puffer_(fish)', 'puffin', 'pug-dog', 'pumpkin', 'puncher', 'puppet', | |
'puppy', 'quesadilla', 'quiche', 'quilt', 'rabbit', 'race_car', | |
'racket', 'radar', 'radiator', 'radio_receiver', 'radish', 'raft', | |
'rag_doll', 'raincoat', 'ram_(animal)', 'raspberry', 'rat', | |
'razorblade', 'reamer_(juicer)', 'rearview_mirror', 'receipt', | |
'recliner', 'record_player', 'red_cabbage', 'reflector', | |
'remote_control', 'rhinoceros', 'rib_(food)', 'rifle', 'ring', | |
'river_boat', 'road_map', 'robe', 'rocking_chair', 'roller_skate', | |
'Rollerblade', 'rolling_pin', 'root_beer', | |
'router_(computer_equipment)', 'rubber_band', 'runner_(carpet)', | |
'plastic_bag', 'saddle_(on_an_animal)', 'saddle_blanket', 'saddlebag', | |
'safety_pin', 'sail', 'salad', 'salad_plate', 'salami', | |
'salmon_(fish)', 'salmon_(food)', 'salsa', 'saltshaker', | |
'sandal_(type_of_shoe)', 'sandwich', 'satchel', 'saucepan', 'saucer', | |
'sausage', 'sawhorse', 'saxophone', 'scale_(measuring_instrument)', | |
'scarecrow', 'scarf', 'school_bus', 'scissors', 'scoreboard', | |
'scrambled_eggs', 'scraper', 'scratcher', 'screwdriver', | |
'scrubbing_brush', 'sculpture', 'seabird', 'seahorse', 'seaplane', | |
'seashell', 'seedling', 'serving_dish', 'sewing_machine', 'shaker', | |
'shampoo', 'shark', 'sharpener', 'Sharpie', 'shaver_(electric)', | |
'shaving_cream', 'shawl', 'shears', 'sheep', 'shepherd_dog', | |
'sherbert', 'shield', 'shirt', 'shoe', 'shopping_bag', 'shopping_cart', | |
'short_pants', 'shot_glass', 'shoulder_bag', 'shovel', 'shower_head', | |
'shower_curtain', 'shredder_(for_paper)', 'sieve', 'signboard', 'silo', | |
'sink', 'skateboard', 'skewer', 'ski', 'ski_boot', 'ski_parka', | |
'ski_pole', 'skirt', 'sled', 'sleeping_bag', 'sling_(bandage)', | |
'slipper_(footwear)', 'smoothie', 'snake', 'snowboard', 'snowman', | |
'snowmobile', 'soap', 'soccer_ball', 'sock', 'soda_fountain', | |
'carbonated_water', 'sofa', 'softball', 'solar_array', 'sombrero', | |
'soup', 'soup_bowl', 'soupspoon', 'sour_cream', 'soya_milk', | |
'space_shuttle', 'sparkler_(fireworks)', 'spatula', 'spear', | |
'spectacles', 'spice_rack', 'spider', 'sponge', 'spoon', 'sportswear', | |
'spotlight', 'squirrel', 'stapler_(stapling_machine)', 'starfish', | |
'statue_(sculpture)', 'steak_(food)', 'steak_knife', | |
'steamer_(kitchen_appliance)', 'steering_wheel', 'stencil', | |
'stepladder', 'step_stool', 'stereo_(sound_system)', 'stew', 'stirrer', | |
'stirrup', 'stockings_(leg_wear)', 'stool', 'stop_sign', 'brake_light', | |
'stove', 'strainer', 'strap', 'straw_(for_drinking)', 'strawberry', | |
'street_sign', 'streetlight', 'string_cheese', 'stylus', 'subwoofer', | |
'sugar_bowl', 'sugarcane_(plant)', 'suit_(clothing)', 'sunflower', | |
'sunglasses', 'sunhat', 'sunscreen', 'surfboard', 'sushi', 'mop', | |
'sweat_pants', 'sweatband', 'sweater', 'sweatshirt', 'sweet_potato', | |
'swimsuit', 'sword', 'syringe', 'Tabasco_sauce', 'table-tennis_table', | |
'table', 'table_lamp', 'tablecloth', 'tachometer', 'taco', 'tag', | |
'taillight', 'tambourine', 'army_tank', 'tank_(storage_vessel)', | |
'tank_top_(clothing)', 'tape_(sticky_cloth_or_paper)', 'tape_measure', | |
'tapestry', 'tarp', 'tartan', 'tassel', 'tea_bag', 'teacup', | |
'teakettle', 'teapot', 'teddy_bear', 'telephone', 'telephone_booth', | |
'telephone_pole', 'telephoto_lens', 'television_camera', | |
'television_set', 'tennis_ball', 'tennis_racket', 'tequila', | |
'thermometer', 'thermos_bottle', 'thermostat', 'thimble', 'thread', | |
'thumbtack', 'tiara', 'tiger', 'tights_(clothing)', 'timer', 'tinfoil', | |
'tinsel', 'tissue_paper', 'toast_(food)', 'toaster', 'toaster_oven', | |
'toilet', 'toilet_tissue', 'tomato', 'tongs', 'toolbox', 'toothbrush', | |
'toothpaste', 'toothpick', 'cover', 'tortilla', 'tow_truck', 'towel', | |
'towel_rack', 'toy', 'tractor_(farm_equipment)', 'traffic_light', | |
'dirt_bike', 'trailer_truck', 'train_(railroad_vehicle)', 'trampoline', | |
'tray', 'tree_house', 'trench_coat', 'triangle_(musical_instrument)', | |
'tricycle', 'tripod', 'trousers', 'truck', 'truffle_(chocolate)', | |
'trunk', 'vat', 'turban', 'turkey_(bird)', 'turkey_(food)', 'turnip', | |
'turtle', 'turtleneck_(clothing)', 'typewriter', 'umbrella', | |
'underwear', 'unicycle', 'urinal', 'urn', 'vacuum_cleaner', 'valve', | |
'vase', 'vending_machine', 'vent', 'videotape', 'vinegar', 'violin', | |
'vodka', 'volleyball', 'vulture', 'waffle', 'waffle_iron', 'wagon', | |
'wagon_wheel', 'walking_stick', 'wall_clock', 'wall_socket', 'wallet', | |
'walrus', 'wardrobe', 'wasabi', 'automatic_washer', 'watch', | |
'water_bottle', 'water_cooler', 'water_faucet', 'water_filter', | |
'water_heater', 'water_jug', 'water_gun', 'water_scooter', 'water_ski', | |
'water_tower', 'watering_can', 'watermelon', 'weathervane', 'webcam', | |
'wedding_cake', 'wedding_ring', 'wet_suit', 'wheel', 'wheelchair', | |
'whipped_cream', 'whiskey', 'whistle', 'wick', 'wig', 'wind_chime', | |
'windmill', 'window_box_(for_plants)', 'windshield_wiper', 'windsock', | |
'wine_bottle', 'wine_bucket', 'wineglass', 'wing_chair', | |
'blinder_(for_horses)', 'wok', 'wolf', 'wooden_spoon', 'wreath', | |
'wrench', 'wristband', 'wristlet', 'yacht', 'yak', 'yogurt', | |
'yoke_(animal_equipment)', 'zebra', 'zucchini') | |
def load_annotations(self, ann_file): | |
"""Load annotation from lvis style annotation file. | |
Args: | |
ann_file (str): Path of annotation file. | |
Returns: | |
list[dict]: Annotation info from LVIS api. | |
""" | |
try: | |
import lvis | |
assert lvis.__version__ >= '10.5.3' | |
from lvis import LVIS | |
except AssertionError: | |
raise AssertionError('Incompatible version of lvis is installed. ' | |
'Run pip uninstall lvis first. Then run pip ' | |
'install mmlvis to install open-mmlab forked ' | |
'lvis. ') | |
except ImportError: | |
raise ImportError('Package lvis is not installed. Please run pip ' | |
'install mmlvis to install open-mmlab forked ' | |
'lvis.') | |
self.coco = LVIS(ann_file) | |
self.cat_ids = self.coco.get_cat_ids() | |
self.cat2label = {cat_id: i for i, cat_id in enumerate(self.cat_ids)} | |
self.img_ids = self.coco.get_img_ids() | |
data_infos = [] | |
for i in self.img_ids: | |
info = self.coco.load_imgs([i])[0] | |
if info['file_name'].startswith('COCO'): | |
# Convert form the COCO 2014 file naming convention of | |
# COCO_[train/val/test]2014_000000000000.jpg to the 2017 | |
# naming convention of 000000000000.jpg | |
# (LVIS v1 will fix this naming issue) | |
info['filename'] = info['file_name'][-16:] | |
else: | |
info['filename'] = info['file_name'] | |
data_infos.append(info) | |
return data_infos | |
def evaluate(self, | |
results, | |
metric='bbox', | |
logger=None, | |
jsonfile_prefix=None, | |
classwise=False, | |
proposal_nums=(100, 300, 1000), | |
iou_thrs=np.arange(0.5, 0.96, 0.05)): | |
"""Evaluation in LVIS protocol. | |
Args: | |
results (list[list | tuple]): Testing results of the dataset. | |
metric (str | list[str]): Metrics to be evaluated. Options are | |
'bbox', 'segm', 'proposal', 'proposal_fast'. | |
logger (logging.Logger | str | None): Logger used for printing | |
related information during evaluation. Default: None. | |
jsonfile_prefix (str | None): | |
classwise (bool): Whether to evaluating the AP for each class. | |
proposal_nums (Sequence[int]): Proposal number used for evaluating | |
recalls, such as recall@100, recall@1000. | |
Default: (100, 300, 1000). | |
iou_thrs (Sequence[float]): IoU threshold used for evaluating | |
recalls. If set to a list, the average recall of all IoUs will | |
also be computed. Default: 0.5. | |
Returns: | |
dict[str, float]: LVIS style metrics. | |
""" | |
try: | |
import lvis | |
assert lvis.__version__ >= '10.5.3' | |
from lvis import LVISResults, LVISEval | |
except AssertionError: | |
raise AssertionError('Incompatible version of lvis is installed. ' | |
'Run pip uninstall lvis first. Then run pip ' | |
'install mmlvis to install open-mmlab forked ' | |
'lvis. ') | |
except ImportError: | |
raise ImportError('Package lvis is not installed. Please run pip ' | |
'install mmlvis to install open-mmlab forked ' | |
'lvis.') | |
assert isinstance(results, list), 'results must be a list' | |
assert len(results) == len(self), ( | |
'The length of results is not equal to the dataset len: {} != {}'. | |
format(len(results), len(self))) | |
metrics = metric if isinstance(metric, list) else [metric] | |
allowed_metrics = ['bbox', 'segm', 'proposal', 'proposal_fast'] | |
for metric in metrics: | |
if metric not in allowed_metrics: | |
raise KeyError('metric {} is not supported'.format(metric)) | |
if jsonfile_prefix is None: | |
tmp_dir = tempfile.TemporaryDirectory() | |
jsonfile_prefix = osp.join(tmp_dir.name, 'results') | |
else: | |
tmp_dir = None | |
result_files = self.results2json(results, jsonfile_prefix) | |
eval_results = OrderedDict() | |
# get original api | |
lvis_gt = self.coco | |
for metric in metrics: | |
msg = 'Evaluating {}...'.format(metric) | |
if logger is None: | |
msg = '\n' + msg | |
print_log(msg, logger=logger) | |
if metric == 'proposal_fast': | |
ar = self.fast_eval_recall( | |
results, proposal_nums, iou_thrs, logger='silent') | |
log_msg = [] | |
for i, num in enumerate(proposal_nums): | |
eval_results['AR@{}'.format(num)] = ar[i] | |
log_msg.append('\nAR@{}\t{:.4f}'.format(num, ar[i])) | |
log_msg = ''.join(log_msg) | |
print_log(log_msg, logger=logger) | |
continue | |
if metric not in result_files: | |
raise KeyError('{} is not in results'.format(metric)) | |
try: | |
lvis_dt = LVISResults(lvis_gt, result_files[metric]) | |
except IndexError: | |
print_log( | |
'The testing results of the whole dataset is empty.', | |
logger=logger, | |
level=logging.ERROR) | |
break | |
iou_type = 'bbox' if metric == 'proposal' else metric | |
lvis_eval = LVISEval(lvis_gt, lvis_dt, iou_type) | |
lvis_eval.params.imgIds = self.img_ids | |
if metric == 'proposal': | |
lvis_eval.params.useCats = 0 | |
lvis_eval.params.maxDets = list(proposal_nums) | |
lvis_eval.evaluate() | |
lvis_eval.accumulate() | |
lvis_eval.summarize() | |
for k, v in lvis_eval.get_results().items(): | |
if k.startswith('AR'): | |
val = float('{:.3f}'.format(float(v))) | |
eval_results[k] = val | |
else: | |
lvis_eval.evaluate() | |
lvis_eval.accumulate() | |
lvis_eval.summarize() | |
lvis_results = lvis_eval.get_results() | |
if classwise: # Compute per-category AP | |
# Compute per-category AP | |
# from https://github.com/facebookresearch/detectron2/ | |
precisions = lvis_eval.eval['precision'] | |
# precision: (iou, recall, cls, area range, max dets) | |
assert len(self.cat_ids) == precisions.shape[2] | |
results_per_category = [] | |
for idx, catId in enumerate(self.cat_ids): | |
# area range index 0: all area ranges | |
# max dets index -1: typically 100 per image | |
nm = self.coco.load_cats(catId)[0] | |
precision = precisions[:, :, idx, 0, -1] | |
precision = precision[precision > -1] | |
if precision.size: | |
ap = np.mean(precision) | |
else: | |
ap = float('nan') | |
results_per_category.append( | |
(f'{nm["name"]}', f'{float(ap):0.3f}')) | |
num_columns = min(6, len(results_per_category) * 2) | |
results_flatten = list( | |
itertools.chain(*results_per_category)) | |
headers = ['category', 'AP'] * (num_columns // 2) | |
results_2d = itertools.zip_longest(*[ | |
results_flatten[i::num_columns] | |
for i in range(num_columns) | |
]) | |
table_data = [headers] | |
table_data += [result for result in results_2d] | |
table = AsciiTable(table_data) | |
print_log('\n' + table.table, logger=logger) | |
for k, v in lvis_results.items(): | |
if k.startswith('AP'): | |
key = '{}_{}'.format(metric, k) | |
val = float('{:.3f}'.format(float(v))) | |
eval_results[key] = val | |
ap_summary = ' '.join([ | |
'{}:{:.3f}'.format(k, float(v)) | |
for k, v in lvis_results.items() if k.startswith('AP') | |
]) | |
eval_results['{}_mAP_copypaste'.format(metric)] = ap_summary | |
lvis_eval.print_results() | |
if tmp_dir is not None: | |
tmp_dir.cleanup() | |
return eval_results | |
LVISDataset = LVISV05Dataset | |
DATASETS.register_module(name='LVISDataset', module=LVISDataset) | |
class LVISV1Dataset(LVISDataset): | |
CLASSES = ( | |
'aerosol_can', 'air_conditioner', 'airplane', 'alarm_clock', 'alcohol', | |
'alligator', 'almond', 'ambulance', 'amplifier', 'anklet', 'antenna', | |
'apple', 'applesauce', 'apricot', 'apron', 'aquarium', | |
'arctic_(type_of_shoe)', 'armband', 'armchair', 'armoire', 'armor', | |
'artichoke', 'trash_can', 'ashtray', 'asparagus', 'atomizer', | |
'avocado', 'award', 'awning', 'ax', 'baboon', 'baby_buggy', | |
'basketball_backboard', 'backpack', 'handbag', 'suitcase', 'bagel', | |
'bagpipe', 'baguet', 'bait', 'ball', 'ballet_skirt', 'balloon', | |
'bamboo', 'banana', 'Band_Aid', 'bandage', 'bandanna', 'banjo', | |
'banner', 'barbell', 'barge', 'barrel', 'barrette', 'barrow', | |
'baseball_base', 'baseball', 'baseball_bat', 'baseball_cap', | |
'baseball_glove', 'basket', 'basketball', 'bass_horn', 'bat_(animal)', | |
'bath_mat', 'bath_towel', 'bathrobe', 'bathtub', 'batter_(food)', | |
'battery', 'beachball', 'bead', 'bean_curd', 'beanbag', 'beanie', | |
'bear', 'bed', 'bedpan', 'bedspread', 'cow', 'beef_(food)', 'beeper', | |
'beer_bottle', 'beer_can', 'beetle', 'bell', 'bell_pepper', 'belt', | |
'belt_buckle', 'bench', 'beret', 'bib', 'Bible', 'bicycle', 'visor', | |
'billboard', 'binder', 'binoculars', 'bird', 'birdfeeder', 'birdbath', | |
'birdcage', 'birdhouse', 'birthday_cake', 'birthday_card', | |
'pirate_flag', 'black_sheep', 'blackberry', 'blackboard', 'blanket', | |
'blazer', 'blender', 'blimp', 'blinker', 'blouse', 'blueberry', | |
'gameboard', 'boat', 'bob', 'bobbin', 'bobby_pin', 'boiled_egg', | |
'bolo_tie', 'deadbolt', 'bolt', 'bonnet', 'book', 'bookcase', | |
'booklet', 'bookmark', 'boom_microphone', 'boot', 'bottle', | |
'bottle_opener', 'bouquet', 'bow_(weapon)', 'bow_(decorative_ribbons)', | |
'bow-tie', 'bowl', 'pipe_bowl', 'bowler_hat', 'bowling_ball', 'box', | |
'boxing_glove', 'suspenders', 'bracelet', 'brass_plaque', 'brassiere', | |
'bread-bin', 'bread', 'breechcloth', 'bridal_gown', 'briefcase', | |
'broccoli', 'broach', 'broom', 'brownie', 'brussels_sprouts', | |
'bubble_gum', 'bucket', 'horse_buggy', 'bull', 'bulldog', 'bulldozer', | |
'bullet_train', 'bulletin_board', 'bulletproof_vest', 'bullhorn', | |
'bun', 'bunk_bed', 'buoy', 'burrito', 'bus_(vehicle)', 'business_card', | |
'butter', 'butterfly', 'button', 'cab_(taxi)', 'cabana', 'cabin_car', | |
'cabinet', 'locker', 'cake', 'calculator', 'calendar', 'calf', | |
'camcorder', 'camel', 'camera', 'camera_lens', 'camper_(vehicle)', | |
'can', 'can_opener', 'candle', 'candle_holder', 'candy_bar', | |
'candy_cane', 'walking_cane', 'canister', 'canoe', 'cantaloup', | |
'canteen', 'cap_(headwear)', 'bottle_cap', 'cape', 'cappuccino', | |
'car_(automobile)', 'railcar_(part_of_a_train)', 'elevator_car', | |
'car_battery', 'identity_card', 'card', 'cardigan', 'cargo_ship', | |
'carnation', 'horse_carriage', 'carrot', 'tote_bag', 'cart', 'carton', | |
'cash_register', 'casserole', 'cassette', 'cast', 'cat', 'cauliflower', | |
'cayenne_(spice)', 'CD_player', 'celery', 'cellular_telephone', | |
'chain_mail', 'chair', 'chaise_longue', 'chalice', 'chandelier', | |
'chap', 'checkbook', 'checkerboard', 'cherry', 'chessboard', | |
'chicken_(animal)', 'chickpea', 'chili_(vegetable)', 'chime', | |
'chinaware', 'crisp_(potato_chip)', 'poker_chip', 'chocolate_bar', | |
'chocolate_cake', 'chocolate_milk', 'chocolate_mousse', 'choker', | |
'chopping_board', 'chopstick', 'Christmas_tree', 'slide', 'cider', | |
'cigar_box', 'cigarette', 'cigarette_case', 'cistern', 'clarinet', | |
'clasp', 'cleansing_agent', 'cleat_(for_securing_rope)', 'clementine', | |
'clip', 'clipboard', 'clippers_(for_plants)', 'cloak', 'clock', | |
'clock_tower', 'clothes_hamper', 'clothespin', 'clutch_bag', 'coaster', | |
'coat', 'coat_hanger', 'coatrack', 'cock', 'cockroach', | |
'cocoa_(beverage)', 'coconut', 'coffee_maker', 'coffee_table', | |
'coffeepot', 'coil', 'coin', 'colander', 'coleslaw', | |
'coloring_material', 'combination_lock', 'pacifier', 'comic_book', | |
'compass', 'computer_keyboard', 'condiment', 'cone', 'control', | |
'convertible_(automobile)', 'sofa_bed', 'cooker', 'cookie', | |
'cooking_utensil', 'cooler_(for_food)', 'cork_(bottle_plug)', | |
'corkboard', 'corkscrew', 'edible_corn', 'cornbread', 'cornet', | |
'cornice', 'cornmeal', 'corset', 'costume', 'cougar', 'coverall', | |
'cowbell', 'cowboy_hat', 'crab_(animal)', 'crabmeat', 'cracker', | |
'crape', 'crate', 'crayon', 'cream_pitcher', 'crescent_roll', 'crib', | |
'crock_pot', 'crossbar', 'crouton', 'crow', 'crowbar', 'crown', | |
'crucifix', 'cruise_ship', 'police_cruiser', 'crumb', 'crutch', | |
'cub_(animal)', 'cube', 'cucumber', 'cufflink', 'cup', 'trophy_cup', | |
'cupboard', 'cupcake', 'hair_curler', 'curling_iron', 'curtain', | |
'cushion', 'cylinder', 'cymbal', 'dagger', 'dalmatian', 'dartboard', | |
'date_(fruit)', 'deck_chair', 'deer', 'dental_floss', 'desk', | |
'detergent', 'diaper', 'diary', 'die', 'dinghy', 'dining_table', 'tux', | |
'dish', 'dish_antenna', 'dishrag', 'dishtowel', 'dishwasher', | |
'dishwasher_detergent', 'dispenser', 'diving_board', 'Dixie_cup', | |
'dog', 'dog_collar', 'doll', 'dollar', 'dollhouse', 'dolphin', | |
'domestic_ass', 'doorknob', 'doormat', 'doughnut', 'dove', 'dragonfly', | |
'drawer', 'underdrawers', 'dress', 'dress_hat', 'dress_suit', | |
'dresser', 'drill', 'drone', 'dropper', 'drum_(musical_instrument)', | |
'drumstick', 'duck', 'duckling', 'duct_tape', 'duffel_bag', 'dumbbell', | |
'dumpster', 'dustpan', 'eagle', 'earphone', 'earplug', 'earring', | |
'easel', 'eclair', 'eel', 'egg', 'egg_roll', 'egg_yolk', 'eggbeater', | |
'eggplant', 'electric_chair', 'refrigerator', 'elephant', 'elk', | |
'envelope', 'eraser', 'escargot', 'eyepatch', 'falcon', 'fan', | |
'faucet', 'fedora', 'ferret', 'Ferris_wheel', 'ferry', 'fig_(fruit)', | |
'fighter_jet', 'figurine', 'file_cabinet', 'file_(tool)', 'fire_alarm', | |
'fire_engine', 'fire_extinguisher', 'fire_hose', 'fireplace', | |
'fireplug', 'first-aid_kit', 'fish', 'fish_(food)', 'fishbowl', | |
'fishing_rod', 'flag', 'flagpole', 'flamingo', 'flannel', 'flap', | |
'flash', 'flashlight', 'fleece', 'flip-flop_(sandal)', | |
'flipper_(footwear)', 'flower_arrangement', 'flute_glass', 'foal', | |
'folding_chair', 'food_processor', 'football_(American)', | |
'football_helmet', 'footstool', 'fork', 'forklift', 'freight_car', | |
'French_toast', 'freshener', 'frisbee', 'frog', 'fruit_juice', | |
'frying_pan', 'fudge', 'funnel', 'futon', 'gag', 'garbage', | |
'garbage_truck', 'garden_hose', 'gargle', 'gargoyle', 'garlic', | |
'gasmask', 'gazelle', 'gelatin', 'gemstone', 'generator', | |
'giant_panda', 'gift_wrap', 'ginger', 'giraffe', 'cincture', | |
'glass_(drink_container)', 'globe', 'glove', 'goat', 'goggles', | |
'goldfish', 'golf_club', 'golfcart', 'gondola_(boat)', 'goose', | |
'gorilla', 'gourd', 'grape', 'grater', 'gravestone', 'gravy_boat', | |
'green_bean', 'green_onion', 'griddle', 'grill', 'grits', 'grizzly', | |
'grocery_bag', 'guitar', 'gull', 'gun', 'hairbrush', 'hairnet', | |
'hairpin', 'halter_top', 'ham', 'hamburger', 'hammer', 'hammock', | |
'hamper', 'hamster', 'hair_dryer', 'hand_glass', 'hand_towel', | |
'handcart', 'handcuff', 'handkerchief', 'handle', 'handsaw', | |
'hardback_book', 'harmonium', 'hat', 'hatbox', 'veil', 'headband', | |
'headboard', 'headlight', 'headscarf', 'headset', | |
'headstall_(for_horses)', 'heart', 'heater', 'helicopter', 'helmet', | |
'heron', 'highchair', 'hinge', 'hippopotamus', 'hockey_stick', 'hog', | |
'home_plate_(baseball)', 'honey', 'fume_hood', 'hook', 'hookah', | |
'hornet', 'horse', 'hose', 'hot-air_balloon', 'hotplate', 'hot_sauce', | |
'hourglass', 'houseboat', 'hummingbird', 'hummus', 'polar_bear', | |
'icecream', 'popsicle', 'ice_maker', 'ice_pack', 'ice_skate', | |
'igniter', 'inhaler', 'iPod', 'iron_(for_clothing)', 'ironing_board', | |
'jacket', 'jam', 'jar', 'jean', 'jeep', 'jelly_bean', 'jersey', | |
'jet_plane', 'jewel', 'jewelry', 'joystick', 'jumpsuit', 'kayak', | |
'keg', 'kennel', 'kettle', 'key', 'keycard', 'kilt', 'kimono', | |
'kitchen_sink', 'kitchen_table', 'kite', 'kitten', 'kiwi_fruit', | |
'knee_pad', 'knife', 'knitting_needle', 'knob', 'knocker_(on_a_door)', | |
'koala', 'lab_coat', 'ladder', 'ladle', 'ladybug', 'lamb_(animal)', | |
'lamb-chop', 'lamp', 'lamppost', 'lampshade', 'lantern', 'lanyard', | |
'laptop_computer', 'lasagna', 'latch', 'lawn_mower', 'leather', | |
'legging_(clothing)', 'Lego', 'legume', 'lemon', 'lemonade', 'lettuce', | |
'license_plate', 'life_buoy', 'life_jacket', 'lightbulb', | |
'lightning_rod', 'lime', 'limousine', 'lion', 'lip_balm', 'liquor', | |
'lizard', 'log', 'lollipop', 'speaker_(stero_equipment)', 'loveseat', | |
'machine_gun', 'magazine', 'magnet', 'mail_slot', 'mailbox_(at_home)', | |
'mallard', 'mallet', 'mammoth', 'manatee', 'mandarin_orange', 'manger', | |
'manhole', 'map', 'marker', 'martini', 'mascot', 'mashed_potato', | |
'masher', 'mask', 'mast', 'mat_(gym_equipment)', 'matchbox', | |
'mattress', 'measuring_cup', 'measuring_stick', 'meatball', 'medicine', | |
'melon', 'microphone', 'microscope', 'microwave_oven', 'milestone', | |
'milk', 'milk_can', 'milkshake', 'minivan', 'mint_candy', 'mirror', | |
'mitten', 'mixer_(kitchen_tool)', 'money', | |
'monitor_(computer_equipment) computer_monitor', 'monkey', 'motor', | |
'motor_scooter', 'motor_vehicle', 'motorcycle', 'mound_(baseball)', | |
'mouse_(computer_equipment)', 'mousepad', 'muffin', 'mug', 'mushroom', | |
'music_stool', 'musical_instrument', 'nailfile', 'napkin', | |
'neckerchief', 'necklace', 'necktie', 'needle', 'nest', 'newspaper', | |
'newsstand', 'nightshirt', 'nosebag_(for_animals)', | |
'noseband_(for_animals)', 'notebook', 'notepad', 'nut', 'nutcracker', | |
'oar', 'octopus_(food)', 'octopus_(animal)', 'oil_lamp', 'olive_oil', | |
'omelet', 'onion', 'orange_(fruit)', 'orange_juice', 'ostrich', | |
'ottoman', 'oven', 'overalls_(clothing)', 'owl', 'packet', 'inkpad', | |
'pad', 'paddle', 'padlock', 'paintbrush', 'painting', 'pajamas', | |
'palette', 'pan_(for_cooking)', 'pan_(metal_container)', 'pancake', | |
'pantyhose', 'papaya', 'paper_plate', 'paper_towel', 'paperback_book', | |
'paperweight', 'parachute', 'parakeet', 'parasail_(sports)', 'parasol', | |
'parchment', 'parka', 'parking_meter', 'parrot', | |
'passenger_car_(part_of_a_train)', 'passenger_ship', 'passport', | |
'pastry', 'patty_(food)', 'pea_(food)', 'peach', 'peanut_butter', | |
'pear', 'peeler_(tool_for_fruit_and_vegetables)', 'wooden_leg', | |
'pegboard', 'pelican', 'pen', 'pencil', 'pencil_box', | |
'pencil_sharpener', 'pendulum', 'penguin', 'pennant', 'penny_(coin)', | |
'pepper', 'pepper_mill', 'perfume', 'persimmon', 'person', 'pet', | |
'pew_(church_bench)', 'phonebook', 'phonograph_record', 'piano', | |
'pickle', 'pickup_truck', 'pie', 'pigeon', 'piggy_bank', 'pillow', | |
'pin_(non_jewelry)', 'pineapple', 'pinecone', 'ping-pong_ball', | |
'pinwheel', 'tobacco_pipe', 'pipe', 'pistol', 'pita_(bread)', | |
'pitcher_(vessel_for_liquid)', 'pitchfork', 'pizza', 'place_mat', | |
'plate', 'platter', 'playpen', 'pliers', 'plow_(farm_equipment)', | |
'plume', 'pocket_watch', 'pocketknife', 'poker_(fire_stirring_tool)', | |
'pole', 'polo_shirt', 'poncho', 'pony', 'pool_table', 'pop_(soda)', | |
'postbox_(public)', 'postcard', 'poster', 'pot', 'flowerpot', 'potato', | |
'potholder', 'pottery', 'pouch', 'power_shovel', 'prawn', 'pretzel', | |
'printer', 'projectile_(weapon)', 'projector', 'propeller', 'prune', | |
'pudding', 'puffer_(fish)', 'puffin', 'pug-dog', 'pumpkin', 'puncher', | |
'puppet', 'puppy', 'quesadilla', 'quiche', 'quilt', 'rabbit', | |
'race_car', 'racket', 'radar', 'radiator', 'radio_receiver', 'radish', | |
'raft', 'rag_doll', 'raincoat', 'ram_(animal)', 'raspberry', 'rat', | |
'razorblade', 'reamer_(juicer)', 'rearview_mirror', 'receipt', | |
'recliner', 'record_player', 'reflector', 'remote_control', | |
'rhinoceros', 'rib_(food)', 'rifle', 'ring', 'river_boat', 'road_map', | |
'robe', 'rocking_chair', 'rodent', 'roller_skate', 'Rollerblade', | |
'rolling_pin', 'root_beer', 'router_(computer_equipment)', | |
'rubber_band', 'runner_(carpet)', 'plastic_bag', | |
'saddle_(on_an_animal)', 'saddle_blanket', 'saddlebag', 'safety_pin', | |
'sail', 'salad', 'salad_plate', 'salami', 'salmon_(fish)', | |
'salmon_(food)', 'salsa', 'saltshaker', 'sandal_(type_of_shoe)', | |
'sandwich', 'satchel', 'saucepan', 'saucer', 'sausage', 'sawhorse', | |
'saxophone', 'scale_(measuring_instrument)', 'scarecrow', 'scarf', | |
'school_bus', 'scissors', 'scoreboard', 'scraper', 'screwdriver', | |
'scrubbing_brush', 'sculpture', 'seabird', 'seahorse', 'seaplane', | |
'seashell', 'sewing_machine', 'shaker', 'shampoo', 'shark', | |
'sharpener', 'Sharpie', 'shaver_(electric)', 'shaving_cream', 'shawl', | |
'shears', 'sheep', 'shepherd_dog', 'sherbert', 'shield', 'shirt', | |
'shoe', 'shopping_bag', 'shopping_cart', 'short_pants', 'shot_glass', | |
'shoulder_bag', 'shovel', 'shower_head', 'shower_cap', | |
'shower_curtain', 'shredder_(for_paper)', 'signboard', 'silo', 'sink', | |
'skateboard', 'skewer', 'ski', 'ski_boot', 'ski_parka', 'ski_pole', | |
'skirt', 'skullcap', 'sled', 'sleeping_bag', 'sling_(bandage)', | |
'slipper_(footwear)', 'smoothie', 'snake', 'snowboard', 'snowman', | |
'snowmobile', 'soap', 'soccer_ball', 'sock', 'sofa', 'softball', | |
'solar_array', 'sombrero', 'soup', 'soup_bowl', 'soupspoon', | |
'sour_cream', 'soya_milk', 'space_shuttle', 'sparkler_(fireworks)', | |
'spatula', 'spear', 'spectacles', 'spice_rack', 'spider', 'crawfish', | |
'sponge', 'spoon', 'sportswear', 'spotlight', 'squid_(food)', | |
'squirrel', 'stagecoach', 'stapler_(stapling_machine)', 'starfish', | |
'statue_(sculpture)', 'steak_(food)', 'steak_knife', 'steering_wheel', | |
'stepladder', 'step_stool', 'stereo_(sound_system)', 'stew', 'stirrer', | |
'stirrup', 'stool', 'stop_sign', 'brake_light', 'stove', 'strainer', | |
'strap', 'straw_(for_drinking)', 'strawberry', 'street_sign', | |
'streetlight', 'string_cheese', 'stylus', 'subwoofer', 'sugar_bowl', | |
'sugarcane_(plant)', 'suit_(clothing)', 'sunflower', 'sunglasses', | |
'sunhat', 'surfboard', 'sushi', 'mop', 'sweat_pants', 'sweatband', | |
'sweater', 'sweatshirt', 'sweet_potato', 'swimsuit', 'sword', | |
'syringe', 'Tabasco_sauce', 'table-tennis_table', 'table', | |
'table_lamp', 'tablecloth', 'tachometer', 'taco', 'tag', 'taillight', | |
'tambourine', 'army_tank', 'tank_(storage_vessel)', | |
'tank_top_(clothing)', 'tape_(sticky_cloth_or_paper)', 'tape_measure', | |
'tapestry', 'tarp', 'tartan', 'tassel', 'tea_bag', 'teacup', | |
'teakettle', 'teapot', 'teddy_bear', 'telephone', 'telephone_booth', | |
'telephone_pole', 'telephoto_lens', 'television_camera', | |
'television_set', 'tennis_ball', 'tennis_racket', 'tequila', | |
'thermometer', 'thermos_bottle', 'thermostat', 'thimble', 'thread', | |
'thumbtack', 'tiara', 'tiger', 'tights_(clothing)', 'timer', 'tinfoil', | |
'tinsel', 'tissue_paper', 'toast_(food)', 'toaster', 'toaster_oven', | |
'toilet', 'toilet_tissue', 'tomato', 'tongs', 'toolbox', 'toothbrush', | |
'toothpaste', 'toothpick', 'cover', 'tortilla', 'tow_truck', 'towel', | |
'towel_rack', 'toy', 'tractor_(farm_equipment)', 'traffic_light', | |
'dirt_bike', 'trailer_truck', 'train_(railroad_vehicle)', 'trampoline', | |
'tray', 'trench_coat', 'triangle_(musical_instrument)', 'tricycle', | |
'tripod', 'trousers', 'truck', 'truffle_(chocolate)', 'trunk', 'vat', | |
'turban', 'turkey_(food)', 'turnip', 'turtle', 'turtleneck_(clothing)', | |
'typewriter', 'umbrella', 'underwear', 'unicycle', 'urinal', 'urn', | |
'vacuum_cleaner', 'vase', 'vending_machine', 'vent', 'vest', | |
'videotape', 'vinegar', 'violin', 'vodka', 'volleyball', 'vulture', | |
'waffle', 'waffle_iron', 'wagon', 'wagon_wheel', 'walking_stick', | |
'wall_clock', 'wall_socket', 'wallet', 'walrus', 'wardrobe', | |
'washbasin', 'automatic_washer', 'watch', 'water_bottle', | |
'water_cooler', 'water_faucet', 'water_heater', 'water_jug', | |
'water_gun', 'water_scooter', 'water_ski', 'water_tower', | |
'watering_can', 'watermelon', 'weathervane', 'webcam', 'wedding_cake', | |
'wedding_ring', 'wet_suit', 'wheel', 'wheelchair', 'whipped_cream', | |
'whistle', 'wig', 'wind_chime', 'windmill', 'window_box_(for_plants)', | |
'windshield_wiper', 'windsock', 'wine_bottle', 'wine_bucket', | |
'wineglass', 'blinder_(for_horses)', 'wok', 'wolf', 'wooden_spoon', | |
'wreath', 'wrench', 'wristband', 'wristlet', 'yacht', 'yogurt', | |
'yoke_(animal_equipment)', 'zebra', 'zucchini') | |
def load_annotations(self, ann_file): | |
try: | |
import lvis | |
assert lvis.__version__ >= '10.5.3' | |
from lvis import LVIS | |
except AssertionError: | |
raise AssertionError('Incompatible version of lvis is installed. ' | |
'Run pip uninstall lvis first. Then run pip ' | |
'install mmlvis to install open-mmlab forked ' | |
'lvis. ') | |
except ImportError: | |
raise ImportError('Package lvis is not installed. Please run pip ' | |
'install mmlvis to install open-mmlab forked ' | |
'lvis.') | |
self.coco = LVIS(ann_file) | |
self.cat_ids = self.coco.get_cat_ids() | |
self.cat2label = {cat_id: i for i, cat_id in enumerate(self.cat_ids)} | |
self.img_ids = self.coco.get_img_ids() | |
data_infos = [] | |
for i in self.img_ids: | |
info = self.coco.load_imgs([i])[0] | |
# coco_url is used in LVISv1 instead of file_name | |
# e.g. http://images.cocodataset.org/train2017/000000391895.jpg | |
# train/val split in specified in url | |
info['filename'] = info['coco_url'].replace( | |
'http://images.cocodataset.org/', '') | |
data_infos.append(info) | |
return data_infos | |