You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

lvis.py 46 kB

2 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738
  1. # Copyright (c) OpenMMLab. All rights reserved.
  2. import itertools
  3. import logging
  4. import os.path as osp
  5. import tempfile
  6. import warnings
  7. from collections import OrderedDict
  8. import numpy as np
  9. from mmcv.utils import print_log
  10. from terminaltables import AsciiTable
  11. from .builder import DATASETS
  12. from .coco import CocoDataset
  13. @DATASETS.register_module()
  14. class LVISV05Dataset(CocoDataset):
  15. CLASSES = (
  16. 'acorn', 'aerosol_can', 'air_conditioner', 'airplane', 'alarm_clock',
  17. 'alcohol', 'alligator', 'almond', 'ambulance', 'amplifier', 'anklet',
  18. 'antenna', 'apple', 'apple_juice', 'applesauce', 'apricot', 'apron',
  19. 'aquarium', 'armband', 'armchair', 'armoire', 'armor', 'artichoke',
  20. 'trash_can', 'ashtray', 'asparagus', 'atomizer', 'avocado', 'award',
  21. 'awning', 'ax', 'baby_buggy', 'basketball_backboard', 'backpack',
  22. 'handbag', 'suitcase', 'bagel', 'bagpipe', 'baguet', 'bait', 'ball',
  23. 'ballet_skirt', 'balloon', 'bamboo', 'banana', 'Band_Aid', 'bandage',
  24. 'bandanna', 'banjo', 'banner', 'barbell', 'barge', 'barrel',
  25. 'barrette', 'barrow', 'baseball_base', 'baseball', 'baseball_bat',
  26. 'baseball_cap', 'baseball_glove', 'basket', 'basketball_hoop',
  27. 'basketball', 'bass_horn', 'bat_(animal)', 'bath_mat', 'bath_towel',
  28. 'bathrobe', 'bathtub', 'batter_(food)', 'battery', 'beachball', 'bead',
  29. 'beaker', 'bean_curd', 'beanbag', 'beanie', 'bear', 'bed',
  30. 'bedspread', 'cow', 'beef_(food)', 'beeper', 'beer_bottle', 'beer_can',
  31. 'beetle', 'bell', 'bell_pepper', 'belt', 'belt_buckle', 'bench',
  32. 'beret', 'bib', 'Bible', 'bicycle', 'visor', 'binder', 'binoculars',
  33. 'bird', 'birdfeeder', 'birdbath', 'birdcage', 'birdhouse',
  34. 'birthday_cake', 'birthday_card', 'biscuit_(bread)', 'pirate_flag',
  35. 'black_sheep', 'blackboard', 'blanket', 'blazer', 'blender', 'blimp',
  36. 'blinker', 'blueberry', 'boar', 'gameboard', 'boat', 'bobbin',
  37. 'bobby_pin', 'boiled_egg', 'bolo_tie', 'deadbolt', 'bolt', 'bonnet',
  38. 'book', 'book_bag', 'bookcase', 'booklet', 'bookmark',
  39. 'boom_microphone', 'boot', 'bottle', 'bottle_opener', 'bouquet',
  40. 'bow_(weapon)', 'bow_(decorative_ribbons)', 'bow-tie', 'bowl',
  41. 'pipe_bowl', 'bowler_hat', 'bowling_ball', 'bowling_pin',
  42. 'boxing_glove', 'suspenders', 'bracelet', 'brass_plaque', 'brassiere',
  43. 'bread-bin', 'breechcloth', 'bridal_gown', 'briefcase',
  44. 'bristle_brush', 'broccoli', 'broach', 'broom', 'brownie',
  45. 'brussels_sprouts', 'bubble_gum', 'bucket', 'horse_buggy', 'bull',
  46. 'bulldog', 'bulldozer', 'bullet_train', 'bulletin_board',
  47. 'bulletproof_vest', 'bullhorn', 'corned_beef', 'bun', 'bunk_bed',
  48. 'buoy', 'burrito', 'bus_(vehicle)', 'business_card', 'butcher_knife',
  49. 'butter', 'butterfly', 'button', 'cab_(taxi)', 'cabana', 'cabin_car',
  50. 'cabinet', 'locker', 'cake', 'calculator', 'calendar', 'calf',
  51. 'camcorder', 'camel', 'camera', 'camera_lens', 'camper_(vehicle)',
  52. 'can', 'can_opener', 'candelabrum', 'candle', 'candle_holder',
  53. 'candy_bar', 'candy_cane', 'walking_cane', 'canister', 'cannon',
  54. 'canoe', 'cantaloup', 'canteen', 'cap_(headwear)', 'bottle_cap',
  55. 'cape', 'cappuccino', 'car_(automobile)', 'railcar_(part_of_a_train)',
  56. 'elevator_car', 'car_battery', 'identity_card', 'card', 'cardigan',
  57. 'cargo_ship', 'carnation', 'horse_carriage', 'carrot', 'tote_bag',
  58. 'cart', 'carton', 'cash_register', 'casserole', 'cassette', 'cast',
  59. 'cat', 'cauliflower', 'caviar', 'cayenne_(spice)', 'CD_player',
  60. 'celery', 'cellular_telephone', 'chain_mail', 'chair', 'chaise_longue',
  61. 'champagne', 'chandelier', 'chap', 'checkbook', 'checkerboard',
  62. 'cherry', 'chessboard', 'chest_of_drawers_(furniture)',
  63. 'chicken_(animal)', 'chicken_wire', 'chickpea', 'Chihuahua',
  64. 'chili_(vegetable)', 'chime', 'chinaware', 'crisp_(potato_chip)',
  65. 'poker_chip', 'chocolate_bar', 'chocolate_cake', 'chocolate_milk',
  66. 'chocolate_mousse', 'choker', 'chopping_board', 'chopstick',
  67. 'Christmas_tree', 'slide', 'cider', 'cigar_box', 'cigarette',
  68. 'cigarette_case', 'cistern', 'clarinet', 'clasp', 'cleansing_agent',
  69. 'clementine', 'clip', 'clipboard', 'clock', 'clock_tower',
  70. 'clothes_hamper', 'clothespin', 'clutch_bag', 'coaster', 'coat',
  71. 'coat_hanger', 'coatrack', 'cock', 'coconut', 'coffee_filter',
  72. 'coffee_maker', 'coffee_table', 'coffeepot', 'coil', 'coin',
  73. 'colander', 'coleslaw', 'coloring_material', 'combination_lock',
  74. 'pacifier', 'comic_book', 'computer_keyboard', 'concrete_mixer',
  75. 'cone', 'control', 'convertible_(automobile)', 'sofa_bed', 'cookie',
  76. 'cookie_jar', 'cooking_utensil', 'cooler_(for_food)',
  77. 'cork_(bottle_plug)', 'corkboard', 'corkscrew', 'edible_corn',
  78. 'cornbread', 'cornet', 'cornice', 'cornmeal', 'corset',
  79. 'romaine_lettuce', 'costume', 'cougar', 'coverall', 'cowbell',
  80. 'cowboy_hat', 'crab_(animal)', 'cracker', 'crape', 'crate', 'crayon',
  81. 'cream_pitcher', 'credit_card', 'crescent_roll', 'crib', 'crock_pot',
  82. 'crossbar', 'crouton', 'crow', 'crown', 'crucifix', 'cruise_ship',
  83. 'police_cruiser', 'crumb', 'crutch', 'cub_(animal)', 'cube',
  84. 'cucumber', 'cufflink', 'cup', 'trophy_cup', 'cupcake', 'hair_curler',
  85. 'curling_iron', 'curtain', 'cushion', 'custard', 'cutting_tool',
  86. 'cylinder', 'cymbal', 'dachshund', 'dagger', 'dartboard',
  87. 'date_(fruit)', 'deck_chair', 'deer', 'dental_floss', 'desk',
  88. 'detergent', 'diaper', 'diary', 'die', 'dinghy', 'dining_table', 'tux',
  89. 'dish', 'dish_antenna', 'dishrag', 'dishtowel', 'dishwasher',
  90. 'dishwasher_detergent', 'diskette', 'dispenser', 'Dixie_cup', 'dog',
  91. 'dog_collar', 'doll', 'dollar', 'dolphin', 'domestic_ass', 'eye_mask',
  92. 'doorbell', 'doorknob', 'doormat', 'doughnut', 'dove', 'dragonfly',
  93. 'drawer', 'underdrawers', 'dress', 'dress_hat', 'dress_suit',
  94. 'dresser', 'drill', 'drinking_fountain', 'drone', 'dropper',
  95. 'drum_(musical_instrument)', 'drumstick', 'duck', 'duckling',
  96. 'duct_tape', 'duffel_bag', 'dumbbell', 'dumpster', 'dustpan',
  97. 'Dutch_oven', 'eagle', 'earphone', 'earplug', 'earring', 'easel',
  98. 'eclair', 'eel', 'egg', 'egg_roll', 'egg_yolk', 'eggbeater',
  99. 'eggplant', 'electric_chair', 'refrigerator', 'elephant', 'elk',
  100. 'envelope', 'eraser', 'escargot', 'eyepatch', 'falcon', 'fan',
  101. 'faucet', 'fedora', 'ferret', 'Ferris_wheel', 'ferry', 'fig_(fruit)',
  102. 'fighter_jet', 'figurine', 'file_cabinet', 'file_(tool)', 'fire_alarm',
  103. 'fire_engine', 'fire_extinguisher', 'fire_hose', 'fireplace',
  104. 'fireplug', 'fish', 'fish_(food)', 'fishbowl', 'fishing_boat',
  105. 'fishing_rod', 'flag', 'flagpole', 'flamingo', 'flannel', 'flash',
  106. 'flashlight', 'fleece', 'flip-flop_(sandal)', 'flipper_(footwear)',
  107. 'flower_arrangement', 'flute_glass', 'foal', 'folding_chair',
  108. 'food_processor', 'football_(American)', 'football_helmet',
  109. 'footstool', 'fork', 'forklift', 'freight_car', 'French_toast',
  110. 'freshener', 'frisbee', 'frog', 'fruit_juice', 'fruit_salad',
  111. 'frying_pan', 'fudge', 'funnel', 'futon', 'gag', 'garbage',
  112. 'garbage_truck', 'garden_hose', 'gargle', 'gargoyle', 'garlic',
  113. 'gasmask', 'gazelle', 'gelatin', 'gemstone', 'giant_panda',
  114. 'gift_wrap', 'ginger', 'giraffe', 'cincture',
  115. 'glass_(drink_container)', 'globe', 'glove', 'goat', 'goggles',
  116. 'goldfish', 'golf_club', 'golfcart', 'gondola_(boat)', 'goose',
  117. 'gorilla', 'gourd', 'surgical_gown', 'grape', 'grasshopper', 'grater',
  118. 'gravestone', 'gravy_boat', 'green_bean', 'green_onion', 'griddle',
  119. 'grillroom', 'grinder_(tool)', 'grits', 'grizzly', 'grocery_bag',
  120. 'guacamole', 'guitar', 'gull', 'gun', 'hair_spray', 'hairbrush',
  121. 'hairnet', 'hairpin', 'ham', 'hamburger', 'hammer', 'hammock',
  122. 'hamper', 'hamster', 'hair_dryer', 'hand_glass', 'hand_towel',
  123. 'handcart', 'handcuff', 'handkerchief', 'handle', 'handsaw',
  124. 'hardback_book', 'harmonium', 'hat', 'hatbox', 'hatch', 'veil',
  125. 'headband', 'headboard', 'headlight', 'headscarf', 'headset',
  126. 'headstall_(for_horses)', 'hearing_aid', 'heart', 'heater',
  127. 'helicopter', 'helmet', 'heron', 'highchair', 'hinge', 'hippopotamus',
  128. 'hockey_stick', 'hog', 'home_plate_(baseball)', 'honey', 'fume_hood',
  129. 'hook', 'horse', 'hose', 'hot-air_balloon', 'hotplate', 'hot_sauce',
  130. 'hourglass', 'houseboat', 'hummingbird', 'hummus', 'polar_bear',
  131. 'icecream', 'popsicle', 'ice_maker', 'ice_pack', 'ice_skate',
  132. 'ice_tea', 'igniter', 'incense', 'inhaler', 'iPod',
  133. 'iron_(for_clothing)', 'ironing_board', 'jacket', 'jam', 'jean',
  134. 'jeep', 'jelly_bean', 'jersey', 'jet_plane', 'jewelry', 'joystick',
  135. 'jumpsuit', 'kayak', 'keg', 'kennel', 'kettle', 'key', 'keycard',
  136. 'kilt', 'kimono', 'kitchen_sink', 'kitchen_table', 'kite', 'kitten',
  137. 'kiwi_fruit', 'knee_pad', 'knife', 'knight_(chess_piece)',
  138. 'knitting_needle', 'knob', 'knocker_(on_a_door)', 'koala', 'lab_coat',
  139. 'ladder', 'ladle', 'ladybug', 'lamb_(animal)', 'lamb-chop', 'lamp',
  140. 'lamppost', 'lampshade', 'lantern', 'lanyard', 'laptop_computer',
  141. 'lasagna', 'latch', 'lawn_mower', 'leather', 'legging_(clothing)',
  142. 'Lego', 'lemon', 'lemonade', 'lettuce', 'license_plate', 'life_buoy',
  143. 'life_jacket', 'lightbulb', 'lightning_rod', 'lime', 'limousine',
  144. 'linen_paper', 'lion', 'lip_balm', 'lipstick', 'liquor', 'lizard',
  145. 'Loafer_(type_of_shoe)', 'log', 'lollipop', 'lotion',
  146. 'speaker_(stereo_equipment)', 'loveseat', 'machine_gun', 'magazine',
  147. 'magnet', 'mail_slot', 'mailbox_(at_home)', 'mallet', 'mammoth',
  148. 'mandarin_orange', 'manger', 'manhole', 'map', 'marker', 'martini',
  149. 'mascot', 'mashed_potato', 'masher', 'mask', 'mast',
  150. 'mat_(gym_equipment)', 'matchbox', 'mattress', 'measuring_cup',
  151. 'measuring_stick', 'meatball', 'medicine', 'melon', 'microphone',
  152. 'microscope', 'microwave_oven', 'milestone', 'milk', 'minivan',
  153. 'mint_candy', 'mirror', 'mitten', 'mixer_(kitchen_tool)', 'money',
  154. 'monitor_(computer_equipment) computer_monitor', 'monkey', 'motor',
  155. 'motor_scooter', 'motor_vehicle', 'motorboat', 'motorcycle',
  156. 'mound_(baseball)', 'mouse_(animal_rodent)',
  157. 'mouse_(computer_equipment)', 'mousepad', 'muffin', 'mug', 'mushroom',
  158. 'music_stool', 'musical_instrument', 'nailfile', 'nameplate', 'napkin',
  159. 'neckerchief', 'necklace', 'necktie', 'needle', 'nest', 'newsstand',
  160. 'nightshirt', 'nosebag_(for_animals)', 'noseband_(for_animals)',
  161. 'notebook', 'notepad', 'nut', 'nutcracker', 'oar', 'octopus_(food)',
  162. 'octopus_(animal)', 'oil_lamp', 'olive_oil', 'omelet', 'onion',
  163. 'orange_(fruit)', 'orange_juice', 'oregano', 'ostrich', 'ottoman',
  164. 'overalls_(clothing)', 'owl', 'packet', 'inkpad', 'pad', 'paddle',
  165. 'padlock', 'paintbox', 'paintbrush', 'painting', 'pajamas', 'palette',
  166. 'pan_(for_cooking)', 'pan_(metal_container)', 'pancake', 'pantyhose',
  167. 'papaya', 'paperclip', 'paper_plate', 'paper_towel', 'paperback_book',
  168. 'paperweight', 'parachute', 'parakeet', 'parasail_(sports)',
  169. 'parchment', 'parka', 'parking_meter', 'parrot',
  170. 'passenger_car_(part_of_a_train)', 'passenger_ship', 'passport',
  171. 'pastry', 'patty_(food)', 'pea_(food)', 'peach', 'peanut_butter',
  172. 'pear', 'peeler_(tool_for_fruit_and_vegetables)', 'pegboard',
  173. 'pelican', 'pen', 'pencil', 'pencil_box', 'pencil_sharpener',
  174. 'pendulum', 'penguin', 'pennant', 'penny_(coin)', 'pepper',
  175. 'pepper_mill', 'perfume', 'persimmon', 'baby', 'pet', 'petfood',
  176. 'pew_(church_bench)', 'phonebook', 'phonograph_record', 'piano',
  177. 'pickle', 'pickup_truck', 'pie', 'pigeon', 'piggy_bank', 'pillow',
  178. 'pin_(non_jewelry)', 'pineapple', 'pinecone', 'ping-pong_ball',
  179. 'pinwheel', 'tobacco_pipe', 'pipe', 'pistol', 'pita_(bread)',
  180. 'pitcher_(vessel_for_liquid)', 'pitchfork', 'pizza', 'place_mat',
  181. 'plate', 'platter', 'playing_card', 'playpen', 'pliers',
  182. 'plow_(farm_equipment)', 'pocket_watch', 'pocketknife',
  183. 'poker_(fire_stirring_tool)', 'pole', 'police_van', 'polo_shirt',
  184. 'poncho', 'pony', 'pool_table', 'pop_(soda)', 'portrait',
  185. 'postbox_(public)', 'postcard', 'poster', 'pot', 'flowerpot', 'potato',
  186. 'potholder', 'pottery', 'pouch', 'power_shovel', 'prawn', 'printer',
  187. 'projectile_(weapon)', 'projector', 'propeller', 'prune', 'pudding',
  188. 'puffer_(fish)', 'puffin', 'pug-dog', 'pumpkin', 'puncher', 'puppet',
  189. 'puppy', 'quesadilla', 'quiche', 'quilt', 'rabbit', 'race_car',
  190. 'racket', 'radar', 'radiator', 'radio_receiver', 'radish', 'raft',
  191. 'rag_doll', 'raincoat', 'ram_(animal)', 'raspberry', 'rat',
  192. 'razorblade', 'reamer_(juicer)', 'rearview_mirror', 'receipt',
  193. 'recliner', 'record_player', 'red_cabbage', 'reflector',
  194. 'remote_control', 'rhinoceros', 'rib_(food)', 'rifle', 'ring',
  195. 'river_boat', 'road_map', 'robe', 'rocking_chair', 'roller_skate',
  196. 'Rollerblade', 'rolling_pin', 'root_beer',
  197. 'router_(computer_equipment)', 'rubber_band', 'runner_(carpet)',
  198. 'plastic_bag', 'saddle_(on_an_animal)', 'saddle_blanket', 'saddlebag',
  199. 'safety_pin', 'sail', 'salad', 'salad_plate', 'salami',
  200. 'salmon_(fish)', 'salmon_(food)', 'salsa', 'saltshaker',
  201. 'sandal_(type_of_shoe)', 'sandwich', 'satchel', 'saucepan', 'saucer',
  202. 'sausage', 'sawhorse', 'saxophone', 'scale_(measuring_instrument)',
  203. 'scarecrow', 'scarf', 'school_bus', 'scissors', 'scoreboard',
  204. 'scrambled_eggs', 'scraper', 'scratcher', 'screwdriver',
  205. 'scrubbing_brush', 'sculpture', 'seabird', 'seahorse', 'seaplane',
  206. 'seashell', 'seedling', 'serving_dish', 'sewing_machine', 'shaker',
  207. 'shampoo', 'shark', 'sharpener', 'Sharpie', 'shaver_(electric)',
  208. 'shaving_cream', 'shawl', 'shears', 'sheep', 'shepherd_dog',
  209. 'sherbert', 'shield', 'shirt', 'shoe', 'shopping_bag', 'shopping_cart',
  210. 'short_pants', 'shot_glass', 'shoulder_bag', 'shovel', 'shower_head',
  211. 'shower_curtain', 'shredder_(for_paper)', 'sieve', 'signboard', 'silo',
  212. 'sink', 'skateboard', 'skewer', 'ski', 'ski_boot', 'ski_parka',
  213. 'ski_pole', 'skirt', 'sled', 'sleeping_bag', 'sling_(bandage)',
  214. 'slipper_(footwear)', 'smoothie', 'snake', 'snowboard', 'snowman',
  215. 'snowmobile', 'soap', 'soccer_ball', 'sock', 'soda_fountain',
  216. 'carbonated_water', 'sofa', 'softball', 'solar_array', 'sombrero',
  217. 'soup', 'soup_bowl', 'soupspoon', 'sour_cream', 'soya_milk',
  218. 'space_shuttle', 'sparkler_(fireworks)', 'spatula', 'spear',
  219. 'spectacles', 'spice_rack', 'spider', 'sponge', 'spoon', 'sportswear',
  220. 'spotlight', 'squirrel', 'stapler_(stapling_machine)', 'starfish',
  221. 'statue_(sculpture)', 'steak_(food)', 'steak_knife',
  222. 'steamer_(kitchen_appliance)', 'steering_wheel', 'stencil',
  223. 'stepladder', 'step_stool', 'stereo_(sound_system)', 'stew', 'stirrer',
  224. 'stirrup', 'stockings_(leg_wear)', 'stool', 'stop_sign', 'brake_light',
  225. 'stove', 'strainer', 'strap', 'straw_(for_drinking)', 'strawberry',
  226. 'street_sign', 'streetlight', 'string_cheese', 'stylus', 'subwoofer',
  227. 'sugar_bowl', 'sugarcane_(plant)', 'suit_(clothing)', 'sunflower',
  228. 'sunglasses', 'sunhat', 'sunscreen', 'surfboard', 'sushi', 'mop',
  229. 'sweat_pants', 'sweatband', 'sweater', 'sweatshirt', 'sweet_potato',
  230. 'swimsuit', 'sword', 'syringe', 'Tabasco_sauce', 'table-tennis_table',
  231. 'table', 'table_lamp', 'tablecloth', 'tachometer', 'taco', 'tag',
  232. 'taillight', 'tambourine', 'army_tank', 'tank_(storage_vessel)',
  233. 'tank_top_(clothing)', 'tape_(sticky_cloth_or_paper)', 'tape_measure',
  234. 'tapestry', 'tarp', 'tartan', 'tassel', 'tea_bag', 'teacup',
  235. 'teakettle', 'teapot', 'teddy_bear', 'telephone', 'telephone_booth',
  236. 'telephone_pole', 'telephoto_lens', 'television_camera',
  237. 'television_set', 'tennis_ball', 'tennis_racket', 'tequila',
  238. 'thermometer', 'thermos_bottle', 'thermostat', 'thimble', 'thread',
  239. 'thumbtack', 'tiara', 'tiger', 'tights_(clothing)', 'timer', 'tinfoil',
  240. 'tinsel', 'tissue_paper', 'toast_(food)', 'toaster', 'toaster_oven',
  241. 'toilet', 'toilet_tissue', 'tomato', 'tongs', 'toolbox', 'toothbrush',
  242. 'toothpaste', 'toothpick', 'cover', 'tortilla', 'tow_truck', 'towel',
  243. 'towel_rack', 'toy', 'tractor_(farm_equipment)', 'traffic_light',
  244. 'dirt_bike', 'trailer_truck', 'train_(railroad_vehicle)', 'trampoline',
  245. 'tray', 'tree_house', 'trench_coat', 'triangle_(musical_instrument)',
  246. 'tricycle', 'tripod', 'trousers', 'truck', 'truffle_(chocolate)',
  247. 'trunk', 'vat', 'turban', 'turkey_(bird)', 'turkey_(food)', 'turnip',
  248. 'turtle', 'turtleneck_(clothing)', 'typewriter', 'umbrella',
  249. 'underwear', 'unicycle', 'urinal', 'urn', 'vacuum_cleaner', 'valve',
  250. 'vase', 'vending_machine', 'vent', 'videotape', 'vinegar', 'violin',
  251. 'vodka', 'volleyball', 'vulture', 'waffle', 'waffle_iron', 'wagon',
  252. 'wagon_wheel', 'walking_stick', 'wall_clock', 'wall_socket', 'wallet',
  253. 'walrus', 'wardrobe', 'wasabi', 'automatic_washer', 'watch',
  254. 'water_bottle', 'water_cooler', 'water_faucet', 'water_filter',
  255. 'water_heater', 'water_jug', 'water_gun', 'water_scooter', 'water_ski',
  256. 'water_tower', 'watering_can', 'watermelon', 'weathervane', 'webcam',
  257. 'wedding_cake', 'wedding_ring', 'wet_suit', 'wheel', 'wheelchair',
  258. 'whipped_cream', 'whiskey', 'whistle', 'wick', 'wig', 'wind_chime',
  259. 'windmill', 'window_box_(for_plants)', 'windshield_wiper', 'windsock',
  260. 'wine_bottle', 'wine_bucket', 'wineglass', 'wing_chair',
  261. 'blinder_(for_horses)', 'wok', 'wolf', 'wooden_spoon', 'wreath',
  262. 'wrench', 'wristband', 'wristlet', 'yacht', 'yak', 'yogurt',
  263. 'yoke_(animal_equipment)', 'zebra', 'zucchini')
  264. def load_annotations(self, ann_file):
  265. """Load annotation from lvis style annotation file.
  266. Args:
  267. ann_file (str): Path of annotation file.
  268. Returns:
  269. list[dict]: Annotation info from LVIS api.
  270. """
  271. try:
  272. import lvis
  273. if getattr(lvis, '__version__', '0') >= '10.5.3':
  274. warnings.warn(
  275. 'mmlvis is deprecated, please install official lvis-api by "pip install git+https://github.com/lvis-dataset/lvis-api.git"', # noqa: E501
  276. UserWarning)
  277. from lvis import LVIS
  278. except ImportError:
  279. raise ImportError(
  280. 'Package lvis is not installed. Please run "pip install git+https://github.com/lvis-dataset/lvis-api.git".' # noqa: E501
  281. )
  282. self.coco = LVIS(ann_file)
  283. self.cat_ids = self.coco.get_cat_ids()
  284. self.cat2label = {cat_id: i for i, cat_id in enumerate(self.cat_ids)}
  285. self.img_ids = self.coco.get_img_ids()
  286. data_infos = []
  287. for i in self.img_ids:
  288. info = self.coco.load_imgs([i])[0]
  289. if info['file_name'].startswith('COCO'):
  290. # Convert form the COCO 2014 file naming convention of
  291. # COCO_[train/val/test]2014_000000000000.jpg to the 2017
  292. # naming convention of 000000000000.jpg
  293. # (LVIS v1 will fix this naming issue)
  294. info['filename'] = info['file_name'][-16:]
  295. else:
  296. info['filename'] = info['file_name']
  297. data_infos.append(info)
  298. return data_infos
  299. def evaluate(self,
  300. results,
  301. metric='bbox',
  302. logger=None,
  303. jsonfile_prefix=None,
  304. classwise=False,
  305. proposal_nums=(100, 300, 1000),
  306. iou_thrs=np.arange(0.5, 0.96, 0.05)):
  307. """Evaluation in LVIS protocol.
  308. Args:
  309. results (list[list | tuple]): Testing results of the dataset.
  310. metric (str | list[str]): Metrics to be evaluated. Options are
  311. 'bbox', 'segm', 'proposal', 'proposal_fast'.
  312. logger (logging.Logger | str | None): Logger used for printing
  313. related information during evaluation. Default: None.
  314. jsonfile_prefix (str | None):
  315. classwise (bool): Whether to evaluating the AP for each class.
  316. proposal_nums (Sequence[int]): Proposal number used for evaluating
  317. recalls, such as recall@100, recall@1000.
  318. Default: (100, 300, 1000).
  319. iou_thrs (Sequence[float]): IoU threshold used for evaluating
  320. recalls. If set to a list, the average recall of all IoUs will
  321. also be computed. Default: 0.5.
  322. Returns:
  323. dict[str, float]: LVIS style metrics.
  324. """
  325. try:
  326. import lvis
  327. if getattr(lvis, '__version__', '0') >= '10.5.3':
  328. warnings.warn(
  329. 'mmlvis is deprecated, please install official lvis-api by "pip install git+https://github.com/lvis-dataset/lvis-api.git"', # noqa: E501
  330. UserWarning)
  331. from lvis import LVISResults, LVISEval
  332. except ImportError:
  333. raise ImportError(
  334. 'Package lvis is not installed. Please run "pip install git+https://github.com/lvis-dataset/lvis-api.git".' # noqa: E501
  335. )
  336. assert isinstance(results, list), 'results must be a list'
  337. assert len(results) == len(self), (
  338. 'The length of results is not equal to the dataset len: {} != {}'.
  339. format(len(results), len(self)))
  340. metrics = metric if isinstance(metric, list) else [metric]
  341. allowed_metrics = ['bbox', 'segm', 'proposal', 'proposal_fast']
  342. for metric in metrics:
  343. if metric not in allowed_metrics:
  344. raise KeyError('metric {} is not supported'.format(metric))
  345. if jsonfile_prefix is None:
  346. tmp_dir = tempfile.TemporaryDirectory()
  347. jsonfile_prefix = osp.join(tmp_dir.name, 'results')
  348. else:
  349. tmp_dir = None
  350. result_files = self.results2json(results, jsonfile_prefix)
  351. eval_results = OrderedDict()
  352. # get original api
  353. lvis_gt = self.coco
  354. for metric in metrics:
  355. msg = 'Evaluating {}...'.format(metric)
  356. if logger is None:
  357. msg = '\n' + msg
  358. print_log(msg, logger=logger)
  359. if metric == 'proposal_fast':
  360. ar = self.fast_eval_recall(
  361. results, proposal_nums, iou_thrs, logger='silent')
  362. log_msg = []
  363. for i, num in enumerate(proposal_nums):
  364. eval_results['AR@{}'.format(num)] = ar[i]
  365. log_msg.append('\nAR@{}\t{:.4f}'.format(num, ar[i]))
  366. log_msg = ''.join(log_msg)
  367. print_log(log_msg, logger=logger)
  368. continue
  369. if metric not in result_files:
  370. raise KeyError('{} is not in results'.format(metric))
  371. try:
  372. lvis_dt = LVISResults(lvis_gt, result_files[metric])
  373. except IndexError:
  374. print_log(
  375. 'The testing results of the whole dataset is empty.',
  376. logger=logger,
  377. level=logging.ERROR)
  378. break
  379. iou_type = 'bbox' if metric == 'proposal' else metric
  380. lvis_eval = LVISEval(lvis_gt, lvis_dt, iou_type)
  381. lvis_eval.params.imgIds = self.img_ids
  382. if metric == 'proposal':
  383. lvis_eval.params.useCats = 0
  384. lvis_eval.params.maxDets = list(proposal_nums)
  385. lvis_eval.evaluate()
  386. lvis_eval.accumulate()
  387. lvis_eval.summarize()
  388. for k, v in lvis_eval.get_results().items():
  389. if k.startswith('AR'):
  390. val = float('{:.3f}'.format(float(v)))
  391. eval_results[k] = val
  392. else:
  393. lvis_eval.evaluate()
  394. lvis_eval.accumulate()
  395. lvis_eval.summarize()
  396. lvis_results = lvis_eval.get_results()
  397. if classwise: # Compute per-category AP
  398. # Compute per-category AP
  399. # from https://github.com/facebookresearch/detectron2/
  400. precisions = lvis_eval.eval['precision']
  401. # precision: (iou, recall, cls, area range, max dets)
  402. assert len(self.cat_ids) == precisions.shape[2]
  403. results_per_category = []
  404. for idx, catId in enumerate(self.cat_ids):
  405. # area range index 0: all area ranges
  406. # max dets index -1: typically 100 per image
  407. nm = self.coco.load_cats(catId)[0]
  408. precision = precisions[:, :, idx, 0, -1]
  409. precision = precision[precision > -1]
  410. if precision.size:
  411. ap = np.mean(precision)
  412. else:
  413. ap = float('nan')
  414. results_per_category.append(
  415. (f'{nm["name"]}', f'{float(ap):0.3f}'))
  416. num_columns = min(6, len(results_per_category) * 2)
  417. results_flatten = list(
  418. itertools.chain(*results_per_category))
  419. headers = ['category', 'AP'] * (num_columns // 2)
  420. results_2d = itertools.zip_longest(*[
  421. results_flatten[i::num_columns]
  422. for i in range(num_columns)
  423. ])
  424. table_data = [headers]
  425. table_data += [result for result in results_2d]
  426. table = AsciiTable(table_data)
  427. print_log('\n' + table.table, logger=logger)
  428. for k, v in lvis_results.items():
  429. if k.startswith('AP'):
  430. key = '{}_{}'.format(metric, k)
  431. val = float('{:.3f}'.format(float(v)))
  432. eval_results[key] = val
  433. ap_summary = ' '.join([
  434. '{}:{:.3f}'.format(k, float(v))
  435. for k, v in lvis_results.items() if k.startswith('AP')
  436. ])
  437. eval_results['{}_mAP_copypaste'.format(metric)] = ap_summary
  438. lvis_eval.print_results()
  439. if tmp_dir is not None:
  440. tmp_dir.cleanup()
  441. return eval_results
  442. LVISDataset = LVISV05Dataset
  443. DATASETS.register_module(name='LVISDataset', module=LVISDataset)
  444. @DATASETS.register_module()
  445. class LVISV1Dataset(LVISDataset):
  446. CLASSES = (
  447. 'aerosol_can', 'air_conditioner', 'airplane', 'alarm_clock', 'alcohol',
  448. 'alligator', 'almond', 'ambulance', 'amplifier', 'anklet', 'antenna',
  449. 'apple', 'applesauce', 'apricot', 'apron', 'aquarium',
  450. 'arctic_(type_of_shoe)', 'armband', 'armchair', 'armoire', 'armor',
  451. 'artichoke', 'trash_can', 'ashtray', 'asparagus', 'atomizer',
  452. 'avocado', 'award', 'awning', 'ax', 'baboon', 'baby_buggy',
  453. 'basketball_backboard', 'backpack', 'handbag', 'suitcase', 'bagel',
  454. 'bagpipe', 'baguet', 'bait', 'ball', 'ballet_skirt', 'balloon',
  455. 'bamboo', 'banana', 'Band_Aid', 'bandage', 'bandanna', 'banjo',
  456. 'banner', 'barbell', 'barge', 'barrel', 'barrette', 'barrow',
  457. 'baseball_base', 'baseball', 'baseball_bat', 'baseball_cap',
  458. 'baseball_glove', 'basket', 'basketball', 'bass_horn', 'bat_(animal)',
  459. 'bath_mat', 'bath_towel', 'bathrobe', 'bathtub', 'batter_(food)',
  460. 'battery', 'beachball', 'bead', 'bean_curd', 'beanbag', 'beanie',
  461. 'bear', 'bed', 'bedpan', 'bedspread', 'cow', 'beef_(food)', 'beeper',
  462. 'beer_bottle', 'beer_can', 'beetle', 'bell', 'bell_pepper', 'belt',
  463. 'belt_buckle', 'bench', 'beret', 'bib', 'Bible', 'bicycle', 'visor',
  464. 'billboard', 'binder', 'binoculars', 'bird', 'birdfeeder', 'birdbath',
  465. 'birdcage', 'birdhouse', 'birthday_cake', 'birthday_card',
  466. 'pirate_flag', 'black_sheep', 'blackberry', 'blackboard', 'blanket',
  467. 'blazer', 'blender', 'blimp', 'blinker', 'blouse', 'blueberry',
  468. 'gameboard', 'boat', 'bob', 'bobbin', 'bobby_pin', 'boiled_egg',
  469. 'bolo_tie', 'deadbolt', 'bolt', 'bonnet', 'book', 'bookcase',
  470. 'booklet', 'bookmark', 'boom_microphone', 'boot', 'bottle',
  471. 'bottle_opener', 'bouquet', 'bow_(weapon)', 'bow_(decorative_ribbons)',
  472. 'bow-tie', 'bowl', 'pipe_bowl', 'bowler_hat', 'bowling_ball', 'box',
  473. 'boxing_glove', 'suspenders', 'bracelet', 'brass_plaque', 'brassiere',
  474. 'bread-bin', 'bread', 'breechcloth', 'bridal_gown', 'briefcase',
  475. 'broccoli', 'broach', 'broom', 'brownie', 'brussels_sprouts',
  476. 'bubble_gum', 'bucket', 'horse_buggy', 'bull', 'bulldog', 'bulldozer',
  477. 'bullet_train', 'bulletin_board', 'bulletproof_vest', 'bullhorn',
  478. 'bun', 'bunk_bed', 'buoy', 'burrito', 'bus_(vehicle)', 'business_card',
  479. 'butter', 'butterfly', 'button', 'cab_(taxi)', 'cabana', 'cabin_car',
  480. 'cabinet', 'locker', 'cake', 'calculator', 'calendar', 'calf',
  481. 'camcorder', 'camel', 'camera', 'camera_lens', 'camper_(vehicle)',
  482. 'can', 'can_opener', 'candle', 'candle_holder', 'candy_bar',
  483. 'candy_cane', 'walking_cane', 'canister', 'canoe', 'cantaloup',
  484. 'canteen', 'cap_(headwear)', 'bottle_cap', 'cape', 'cappuccino',
  485. 'car_(automobile)', 'railcar_(part_of_a_train)', 'elevator_car',
  486. 'car_battery', 'identity_card', 'card', 'cardigan', 'cargo_ship',
  487. 'carnation', 'horse_carriage', 'carrot', 'tote_bag', 'cart', 'carton',
  488. 'cash_register', 'casserole', 'cassette', 'cast', 'cat', 'cauliflower',
  489. 'cayenne_(spice)', 'CD_player', 'celery', 'cellular_telephone',
  490. 'chain_mail', 'chair', 'chaise_longue', 'chalice', 'chandelier',
  491. 'chap', 'checkbook', 'checkerboard', 'cherry', 'chessboard',
  492. 'chicken_(animal)', 'chickpea', 'chili_(vegetable)', 'chime',
  493. 'chinaware', 'crisp_(potato_chip)', 'poker_chip', 'chocolate_bar',
  494. 'chocolate_cake', 'chocolate_milk', 'chocolate_mousse', 'choker',
  495. 'chopping_board', 'chopstick', 'Christmas_tree', 'slide', 'cider',
  496. 'cigar_box', 'cigarette', 'cigarette_case', 'cistern', 'clarinet',
  497. 'clasp', 'cleansing_agent', 'cleat_(for_securing_rope)', 'clementine',
  498. 'clip', 'clipboard', 'clippers_(for_plants)', 'cloak', 'clock',
  499. 'clock_tower', 'clothes_hamper', 'clothespin', 'clutch_bag', 'coaster',
  500. 'coat', 'coat_hanger', 'coatrack', 'cock', 'cockroach',
  501. 'cocoa_(beverage)', 'coconut', 'coffee_maker', 'coffee_table',
  502. 'coffeepot', 'coil', 'coin', 'colander', 'coleslaw',
  503. 'coloring_material', 'combination_lock', 'pacifier', 'comic_book',
  504. 'compass', 'computer_keyboard', 'condiment', 'cone', 'control',
  505. 'convertible_(automobile)', 'sofa_bed', 'cooker', 'cookie',
  506. 'cooking_utensil', 'cooler_(for_food)', 'cork_(bottle_plug)',
  507. 'corkboard', 'corkscrew', 'edible_corn', 'cornbread', 'cornet',
  508. 'cornice', 'cornmeal', 'corset', 'costume', 'cougar', 'coverall',
  509. 'cowbell', 'cowboy_hat', 'crab_(animal)', 'crabmeat', 'cracker',
  510. 'crape', 'crate', 'crayon', 'cream_pitcher', 'crescent_roll', 'crib',
  511. 'crock_pot', 'crossbar', 'crouton', 'crow', 'crowbar', 'crown',
  512. 'crucifix', 'cruise_ship', 'police_cruiser', 'crumb', 'crutch',
  513. 'cub_(animal)', 'cube', 'cucumber', 'cufflink', 'cup', 'trophy_cup',
  514. 'cupboard', 'cupcake', 'hair_curler', 'curling_iron', 'curtain',
  515. 'cushion', 'cylinder', 'cymbal', 'dagger', 'dalmatian', 'dartboard',
  516. 'date_(fruit)', 'deck_chair', 'deer', 'dental_floss', 'desk',
  517. 'detergent', 'diaper', 'diary', 'die', 'dinghy', 'dining_table', 'tux',
  518. 'dish', 'dish_antenna', 'dishrag', 'dishtowel', 'dishwasher',
  519. 'dishwasher_detergent', 'dispenser', 'diving_board', 'Dixie_cup',
  520. 'dog', 'dog_collar', 'doll', 'dollar', 'dollhouse', 'dolphin',
  521. 'domestic_ass', 'doorknob', 'doormat', 'doughnut', 'dove', 'dragonfly',
  522. 'drawer', 'underdrawers', 'dress', 'dress_hat', 'dress_suit',
  523. 'dresser', 'drill', 'drone', 'dropper', 'drum_(musical_instrument)',
  524. 'drumstick', 'duck', 'duckling', 'duct_tape', 'duffel_bag', 'dumbbell',
  525. 'dumpster', 'dustpan', 'eagle', 'earphone', 'earplug', 'earring',
  526. 'easel', 'eclair', 'eel', 'egg', 'egg_roll', 'egg_yolk', 'eggbeater',
  527. 'eggplant', 'electric_chair', 'refrigerator', 'elephant', 'elk',
  528. 'envelope', 'eraser', 'escargot', 'eyepatch', 'falcon', 'fan',
  529. 'faucet', 'fedora', 'ferret', 'Ferris_wheel', 'ferry', 'fig_(fruit)',
  530. 'fighter_jet', 'figurine', 'file_cabinet', 'file_(tool)', 'fire_alarm',
  531. 'fire_engine', 'fire_extinguisher', 'fire_hose', 'fireplace',
  532. 'fireplug', 'first-aid_kit', 'fish', 'fish_(food)', 'fishbowl',
  533. 'fishing_rod', 'flag', 'flagpole', 'flamingo', 'flannel', 'flap',
  534. 'flash', 'flashlight', 'fleece', 'flip-flop_(sandal)',
  535. 'flipper_(footwear)', 'flower_arrangement', 'flute_glass', 'foal',
  536. 'folding_chair', 'food_processor', 'football_(American)',
  537. 'football_helmet', 'footstool', 'fork', 'forklift', 'freight_car',
  538. 'French_toast', 'freshener', 'frisbee', 'frog', 'fruit_juice',
  539. 'frying_pan', 'fudge', 'funnel', 'futon', 'gag', 'garbage',
  540. 'garbage_truck', 'garden_hose', 'gargle', 'gargoyle', 'garlic',
  541. 'gasmask', 'gazelle', 'gelatin', 'gemstone', 'generator',
  542. 'giant_panda', 'gift_wrap', 'ginger', 'giraffe', 'cincture',
  543. 'glass_(drink_container)', 'globe', 'glove', 'goat', 'goggles',
  544. 'goldfish', 'golf_club', 'golfcart', 'gondola_(boat)', 'goose',
  545. 'gorilla', 'gourd', 'grape', 'grater', 'gravestone', 'gravy_boat',
  546. 'green_bean', 'green_onion', 'griddle', 'grill', 'grits', 'grizzly',
  547. 'grocery_bag', 'guitar', 'gull', 'gun', 'hairbrush', 'hairnet',
  548. 'hairpin', 'halter_top', 'ham', 'hamburger', 'hammer', 'hammock',
  549. 'hamper', 'hamster', 'hair_dryer', 'hand_glass', 'hand_towel',
  550. 'handcart', 'handcuff', 'handkerchief', 'handle', 'handsaw',
  551. 'hardback_book', 'harmonium', 'hat', 'hatbox', 'veil', 'headband',
  552. 'headboard', 'headlight', 'headscarf', 'headset',
  553. 'headstall_(for_horses)', 'heart', 'heater', 'helicopter', 'helmet',
  554. 'heron', 'highchair', 'hinge', 'hippopotamus', 'hockey_stick', 'hog',
  555. 'home_plate_(baseball)', 'honey', 'fume_hood', 'hook', 'hookah',
  556. 'hornet', 'horse', 'hose', 'hot-air_balloon', 'hotplate', 'hot_sauce',
  557. 'hourglass', 'houseboat', 'hummingbird', 'hummus', 'polar_bear',
  558. 'icecream', 'popsicle', 'ice_maker', 'ice_pack', 'ice_skate',
  559. 'igniter', 'inhaler', 'iPod', 'iron_(for_clothing)', 'ironing_board',
  560. 'jacket', 'jam', 'jar', 'jean', 'jeep', 'jelly_bean', 'jersey',
  561. 'jet_plane', 'jewel', 'jewelry', 'joystick', 'jumpsuit', 'kayak',
  562. 'keg', 'kennel', 'kettle', 'key', 'keycard', 'kilt', 'kimono',
  563. 'kitchen_sink', 'kitchen_table', 'kite', 'kitten', 'kiwi_fruit',
  564. 'knee_pad', 'knife', 'knitting_needle', 'knob', 'knocker_(on_a_door)',
  565. 'koala', 'lab_coat', 'ladder', 'ladle', 'ladybug', 'lamb_(animal)',
  566. 'lamb-chop', 'lamp', 'lamppost', 'lampshade', 'lantern', 'lanyard',
  567. 'laptop_computer', 'lasagna', 'latch', 'lawn_mower', 'leather',
  568. 'legging_(clothing)', 'Lego', 'legume', 'lemon', 'lemonade', 'lettuce',
  569. 'license_plate', 'life_buoy', 'life_jacket', 'lightbulb',
  570. 'lightning_rod', 'lime', 'limousine', 'lion', 'lip_balm', 'liquor',
  571. 'lizard', 'log', 'lollipop', 'speaker_(stereo_equipment)', 'loveseat',
  572. 'machine_gun', 'magazine', 'magnet', 'mail_slot', 'mailbox_(at_home)',
  573. 'mallard', 'mallet', 'mammoth', 'manatee', 'mandarin_orange', 'manger',
  574. 'manhole', 'map', 'marker', 'martini', 'mascot', 'mashed_potato',
  575. 'masher', 'mask', 'mast', 'mat_(gym_equipment)', 'matchbox',
  576. 'mattress', 'measuring_cup', 'measuring_stick', 'meatball', 'medicine',
  577. 'melon', 'microphone', 'microscope', 'microwave_oven', 'milestone',
  578. 'milk', 'milk_can', 'milkshake', 'minivan', 'mint_candy', 'mirror',
  579. 'mitten', 'mixer_(kitchen_tool)', 'money',
  580. 'monitor_(computer_equipment) computer_monitor', 'monkey', 'motor',
  581. 'motor_scooter', 'motor_vehicle', 'motorcycle', 'mound_(baseball)',
  582. 'mouse_(computer_equipment)', 'mousepad', 'muffin', 'mug', 'mushroom',
  583. 'music_stool', 'musical_instrument', 'nailfile', 'napkin',
  584. 'neckerchief', 'necklace', 'necktie', 'needle', 'nest', 'newspaper',
  585. 'newsstand', 'nightshirt', 'nosebag_(for_animals)',
  586. 'noseband_(for_animals)', 'notebook', 'notepad', 'nut', 'nutcracker',
  587. 'oar', 'octopus_(food)', 'octopus_(animal)', 'oil_lamp', 'olive_oil',
  588. 'omelet', 'onion', 'orange_(fruit)', 'orange_juice', 'ostrich',
  589. 'ottoman', 'oven', 'overalls_(clothing)', 'owl', 'packet', 'inkpad',
  590. 'pad', 'paddle', 'padlock', 'paintbrush', 'painting', 'pajamas',
  591. 'palette', 'pan_(for_cooking)', 'pan_(metal_container)', 'pancake',
  592. 'pantyhose', 'papaya', 'paper_plate', 'paper_towel', 'paperback_book',
  593. 'paperweight', 'parachute', 'parakeet', 'parasail_(sports)', 'parasol',
  594. 'parchment', 'parka', 'parking_meter', 'parrot',
  595. 'passenger_car_(part_of_a_train)', 'passenger_ship', 'passport',
  596. 'pastry', 'patty_(food)', 'pea_(food)', 'peach', 'peanut_butter',
  597. 'pear', 'peeler_(tool_for_fruit_and_vegetables)', 'wooden_leg',
  598. 'pegboard', 'pelican', 'pen', 'pencil', 'pencil_box',
  599. 'pencil_sharpener', 'pendulum', 'penguin', 'pennant', 'penny_(coin)',
  600. 'pepper', 'pepper_mill', 'perfume', 'persimmon', 'person', 'pet',
  601. 'pew_(church_bench)', 'phonebook', 'phonograph_record', 'piano',
  602. 'pickle', 'pickup_truck', 'pie', 'pigeon', 'piggy_bank', 'pillow',
  603. 'pin_(non_jewelry)', 'pineapple', 'pinecone', 'ping-pong_ball',
  604. 'pinwheel', 'tobacco_pipe', 'pipe', 'pistol', 'pita_(bread)',
  605. 'pitcher_(vessel_for_liquid)', 'pitchfork', 'pizza', 'place_mat',
  606. 'plate', 'platter', 'playpen', 'pliers', 'plow_(farm_equipment)',
  607. 'plume', 'pocket_watch', 'pocketknife', 'poker_(fire_stirring_tool)',
  608. 'pole', 'polo_shirt', 'poncho', 'pony', 'pool_table', 'pop_(soda)',
  609. 'postbox_(public)', 'postcard', 'poster', 'pot', 'flowerpot', 'potato',
  610. 'potholder', 'pottery', 'pouch', 'power_shovel', 'prawn', 'pretzel',
  611. 'printer', 'projectile_(weapon)', 'projector', 'propeller', 'prune',
  612. 'pudding', 'puffer_(fish)', 'puffin', 'pug-dog', 'pumpkin', 'puncher',
  613. 'puppet', 'puppy', 'quesadilla', 'quiche', 'quilt', 'rabbit',
  614. 'race_car', 'racket', 'radar', 'radiator', 'radio_receiver', 'radish',
  615. 'raft', 'rag_doll', 'raincoat', 'ram_(animal)', 'raspberry', 'rat',
  616. 'razorblade', 'reamer_(juicer)', 'rearview_mirror', 'receipt',
  617. 'recliner', 'record_player', 'reflector', 'remote_control',
  618. 'rhinoceros', 'rib_(food)', 'rifle', 'ring', 'river_boat', 'road_map',
  619. 'robe', 'rocking_chair', 'rodent', 'roller_skate', 'Rollerblade',
  620. 'rolling_pin', 'root_beer', 'router_(computer_equipment)',
  621. 'rubber_band', 'runner_(carpet)', 'plastic_bag',
  622. 'saddle_(on_an_animal)', 'saddle_blanket', 'saddlebag', 'safety_pin',
  623. 'sail', 'salad', 'salad_plate', 'salami', 'salmon_(fish)',
  624. 'salmon_(food)', 'salsa', 'saltshaker', 'sandal_(type_of_shoe)',
  625. 'sandwich', 'satchel', 'saucepan', 'saucer', 'sausage', 'sawhorse',
  626. 'saxophone', 'scale_(measuring_instrument)', 'scarecrow', 'scarf',
  627. 'school_bus', 'scissors', 'scoreboard', 'scraper', 'screwdriver',
  628. 'scrubbing_brush', 'sculpture', 'seabird', 'seahorse', 'seaplane',
  629. 'seashell', 'sewing_machine', 'shaker', 'shampoo', 'shark',
  630. 'sharpener', 'Sharpie', 'shaver_(electric)', 'shaving_cream', 'shawl',
  631. 'shears', 'sheep', 'shepherd_dog', 'sherbert', 'shield', 'shirt',
  632. 'shoe', 'shopping_bag', 'shopping_cart', 'short_pants', 'shot_glass',
  633. 'shoulder_bag', 'shovel', 'shower_head', 'shower_cap',
  634. 'shower_curtain', 'shredder_(for_paper)', 'signboard', 'silo', 'sink',
  635. 'skateboard', 'skewer', 'ski', 'ski_boot', 'ski_parka', 'ski_pole',
  636. 'skirt', 'skullcap', 'sled', 'sleeping_bag', 'sling_(bandage)',
  637. 'slipper_(footwear)', 'smoothie', 'snake', 'snowboard', 'snowman',
  638. 'snowmobile', 'soap', 'soccer_ball', 'sock', 'sofa', 'softball',
  639. 'solar_array', 'sombrero', 'soup', 'soup_bowl', 'soupspoon',
  640. 'sour_cream', 'soya_milk', 'space_shuttle', 'sparkler_(fireworks)',
  641. 'spatula', 'spear', 'spectacles', 'spice_rack', 'spider', 'crawfish',
  642. 'sponge', 'spoon', 'sportswear', 'spotlight', 'squid_(food)',
  643. 'squirrel', 'stagecoach', 'stapler_(stapling_machine)', 'starfish',
  644. 'statue_(sculpture)', 'steak_(food)', 'steak_knife', 'steering_wheel',
  645. 'stepladder', 'step_stool', 'stereo_(sound_system)', 'stew', 'stirrer',
  646. 'stirrup', 'stool', 'stop_sign', 'brake_light', 'stove', 'strainer',
  647. 'strap', 'straw_(for_drinking)', 'strawberry', 'street_sign',
  648. 'streetlight', 'string_cheese', 'stylus', 'subwoofer', 'sugar_bowl',
  649. 'sugarcane_(plant)', 'suit_(clothing)', 'sunflower', 'sunglasses',
  650. 'sunhat', 'surfboard', 'sushi', 'mop', 'sweat_pants', 'sweatband',
  651. 'sweater', 'sweatshirt', 'sweet_potato', 'swimsuit', 'sword',
  652. 'syringe', 'Tabasco_sauce', 'table-tennis_table', 'table',
  653. 'table_lamp', 'tablecloth', 'tachometer', 'taco', 'tag', 'taillight',
  654. 'tambourine', 'army_tank', 'tank_(storage_vessel)',
  655. 'tank_top_(clothing)', 'tape_(sticky_cloth_or_paper)', 'tape_measure',
  656. 'tapestry', 'tarp', 'tartan', 'tassel', 'tea_bag', 'teacup',
  657. 'teakettle', 'teapot', 'teddy_bear', 'telephone', 'telephone_booth',
  658. 'telephone_pole', 'telephoto_lens', 'television_camera',
  659. 'television_set', 'tennis_ball', 'tennis_racket', 'tequila',
  660. 'thermometer', 'thermos_bottle', 'thermostat', 'thimble', 'thread',
  661. 'thumbtack', 'tiara', 'tiger', 'tights_(clothing)', 'timer', 'tinfoil',
  662. 'tinsel', 'tissue_paper', 'toast_(food)', 'toaster', 'toaster_oven',
  663. 'toilet', 'toilet_tissue', 'tomato', 'tongs', 'toolbox', 'toothbrush',
  664. 'toothpaste', 'toothpick', 'cover', 'tortilla', 'tow_truck', 'towel',
  665. 'towel_rack', 'toy', 'tractor_(farm_equipment)', 'traffic_light',
  666. 'dirt_bike', 'trailer_truck', 'train_(railroad_vehicle)', 'trampoline',
  667. 'tray', 'trench_coat', 'triangle_(musical_instrument)', 'tricycle',
  668. 'tripod', 'trousers', 'truck', 'truffle_(chocolate)', 'trunk', 'vat',
  669. 'turban', 'turkey_(food)', 'turnip', 'turtle', 'turtleneck_(clothing)',
  670. 'typewriter', 'umbrella', 'underwear', 'unicycle', 'urinal', 'urn',
  671. 'vacuum_cleaner', 'vase', 'vending_machine', 'vent', 'vest',
  672. 'videotape', 'vinegar', 'violin', 'vodka', 'volleyball', 'vulture',
  673. 'waffle', 'waffle_iron', 'wagon', 'wagon_wheel', 'walking_stick',
  674. 'wall_clock', 'wall_socket', 'wallet', 'walrus', 'wardrobe',
  675. 'washbasin', 'automatic_washer', 'watch', 'water_bottle',
  676. 'water_cooler', 'water_faucet', 'water_heater', 'water_jug',
  677. 'water_gun', 'water_scooter', 'water_ski', 'water_tower',
  678. 'watering_can', 'watermelon', 'weathervane', 'webcam', 'wedding_cake',
  679. 'wedding_ring', 'wet_suit', 'wheel', 'wheelchair', 'whipped_cream',
  680. 'whistle', 'wig', 'wind_chime', 'windmill', 'window_box_(for_plants)',
  681. 'windshield_wiper', 'windsock', 'wine_bottle', 'wine_bucket',
  682. 'wineglass', 'blinder_(for_horses)', 'wok', 'wolf', 'wooden_spoon',
  683. 'wreath', 'wrench', 'wristband', 'wristlet', 'yacht', 'yogurt',
  684. 'yoke_(animal_equipment)', 'zebra', 'zucchini')
  685. def load_annotations(self, ann_file):
  686. try:
  687. import lvis
  688. if getattr(lvis, '__version__', '0') >= '10.5.3':
  689. warnings.warn(
  690. 'mmlvis is deprecated, please install official lvis-api by "pip install git+https://github.com/lvis-dataset/lvis-api.git"', # noqa: E501
  691. UserWarning)
  692. from lvis import LVIS
  693. except ImportError:
  694. raise ImportError(
  695. 'Package lvis is not installed. Please run "pip install git+https://github.com/lvis-dataset/lvis-api.git".' # noqa: E501
  696. )
  697. self.coco = LVIS(ann_file)
  698. self.cat_ids = self.coco.get_cat_ids()
  699. self.cat2label = {cat_id: i for i, cat_id in enumerate(self.cat_ids)}
  700. self.img_ids = self.coco.get_img_ids()
  701. data_infos = []
  702. for i in self.img_ids:
  703. info = self.coco.load_imgs([i])[0]
  704. # coco_url is used in LVISv1 instead of file_name
  705. # e.g. http://images.cocodataset.org/train2017/000000391895.jpg
  706. # train/val split in specified in url
  707. info['filename'] = info['coco_url'].replace(
  708. 'http://images.cocodataset.org/', '')
  709. data_infos.append(info)
  710. return data_infos

No Description

Contributors (3)