123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940 |
- # Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- from __future__ import absolute_import
- from __future__ import division
- from __future__ import print_function
- import os
- from ppdet.data.source.voc import pascalvoc_label
- from ppdet.data.source.widerface import widerface_label
- from ppdet.utils.logger import setup_logger
- logger = setup_logger(__name__)
- __all__ = ['get_categories']
- def get_categories(metric_type, anno_file=None, arch=None):
- """
- Get class id to category id map and category id
- to category name map from annotation file.
- Args:
- metric_type (str): metric type, currently support 'coco', 'voc', 'oid'
- and 'widerface'.
- anno_file (str): annotation file path
- """
- if arch == 'keypoint_arch':
- return (None, {'id': 'keypoint'})
- if anno_file == None or (not os.path.isfile(anno_file)):
- logger.warning(
- "anno_file '{}' is None or not set or not exist, "
- "please recheck TrainDataset/EvalDataset/TestDataset.anno_path, "
- "otherwise the default categories will be used by metric_type.".
- format(anno_file))
- if metric_type.lower() == 'coco' or metric_type.lower(
- ) == 'rbox' or metric_type.lower() == 'snipercoco':
- if anno_file and os.path.isfile(anno_file):
- if anno_file.endswith('json'):
- # lazy import pycocotools here
- from pycocotools.coco import COCO
- coco = COCO(anno_file)
- cats = coco.loadCats(coco.getCatIds())
- clsid2catid = {i: cat['id'] for i, cat in enumerate(cats)}
- catid2name = {cat['id']: cat['name'] for cat in cats}
- elif anno_file.endswith('txt'):
- cats = []
- with open(anno_file) as f:
- for line in f.readlines():
- cats.append(line.strip())
- if cats[0] == 'background': cats = cats[1:]
- clsid2catid = {i: i for i in range(len(cats))}
- catid2name = {i: name for i, name in enumerate(cats)}
- else:
- raise ValueError("anno_file {} should be json or txt.".format(
- anno_file))
- return clsid2catid, catid2name
- # anno file not exist, load default categories of COCO17
- else:
- if metric_type.lower() == 'rbox':
- logger.warning(
- "metric_type: {}, load default categories of DOTA.".format(
- metric_type))
- return _dota_category()
- logger.warning("metric_type: {}, load default categories of COCO.".
- format(metric_type))
- return _coco17_category()
- elif metric_type.lower() == 'voc':
- if anno_file and os.path.isfile(anno_file):
- cats = []
- with open(anno_file) as f:
- for line in f.readlines():
- cats.append(line.strip())
- if cats[0] == 'background':
- cats = cats[1:]
- clsid2catid = {i: i for i in range(len(cats))}
- catid2name = {i: name for i, name in enumerate(cats)}
- return clsid2catid, catid2name
- # anno file not exist, load default categories of
- # VOC all 20 categories
- else:
- logger.warning("metric_type: {}, load default categories of VOC.".
- format(metric_type))
- return _vocall_category()
- elif metric_type.lower() == 'oid':
- if anno_file and os.path.isfile(anno_file):
- logger.warning("only default categories support for OID19")
- return _oid19_category()
- elif metric_type.lower() == 'widerface':
- return _widerface_category()
- elif metric_type.lower() == 'keypointtopdowncocoeval' or metric_type.lower(
- ) == 'keypointtopdownmpiieval':
- return (None, {'id': 'keypoint'})
- elif metric_type.lower() == 'pose3deval':
- return (None, {'id': 'pose3d'})
- elif metric_type.lower() in ['mot', 'motdet', 'reid']:
- if anno_file and os.path.isfile(anno_file):
- cats = []
- with open(anno_file) as f:
- for line in f.readlines():
- cats.append(line.strip())
- if cats[0] == 'background':
- cats = cats[1:]
- clsid2catid = {i: i for i in range(len(cats))}
- catid2name = {i: name for i, name in enumerate(cats)}
- return clsid2catid, catid2name
- # anno file not exist, load default category 'pedestrian'.
- else:
- logger.warning(
- "metric_type: {}, load default categories of pedestrian MOT.".
- format(metric_type))
- return _mot_category(category='pedestrian')
- elif metric_type.lower() in ['kitti', 'bdd100kmot']:
- return _mot_category(category='vehicle')
- elif metric_type.lower() in ['mcmot']:
- if anno_file and os.path.isfile(anno_file):
- cats = []
- with open(anno_file) as f:
- for line in f.readlines():
- cats.append(line.strip())
- if cats[0] == 'background':
- cats = cats[1:]
- clsid2catid = {i: i for i in range(len(cats))}
- catid2name = {i: name for i, name in enumerate(cats)}
- return clsid2catid, catid2name
- # anno file not exist, load default categories of visdrone all 10 categories
- else:
- logger.warning(
- "metric_type: {}, load default categories of VisDrone.".format(
- metric_type))
- return _visdrone_category()
- else:
- raise ValueError("unknown metric type {}".format(metric_type))
- def _mot_category(category='pedestrian'):
- """
- Get class id to category id map and category id
- to category name map of mot dataset
- """
- label_map = {category: 0}
- label_map = sorted(label_map.items(), key=lambda x: x[1])
- cats = [l[0] for l in label_map]
- clsid2catid = {i: i for i in range(len(cats))}
- catid2name = {i: name for i, name in enumerate(cats)}
- return clsid2catid, catid2name
- def _coco17_category():
- """
- Get class id to category id map and category id
- to category name map of COCO2017 dataset
- """
- clsid2catid = {
- 1: 1,
- 2: 2,
- 3: 3,
- 4: 4,
- 5: 5,
- 6: 6,
- 7: 7,
- 8: 8,
- 9: 9,
- 10: 10,
- 11: 11,
- 12: 13,
- 13: 14,
- 14: 15,
- 15: 16,
- 16: 17,
- 17: 18,
- 18: 19,
- 19: 20,
- 20: 21,
- 21: 22,
- 22: 23,
- 23: 24,
- 24: 25,
- 25: 27,
- 26: 28,
- 27: 31,
- 28: 32,
- 29: 33,
- 30: 34,
- 31: 35,
- 32: 36,
- 33: 37,
- 34: 38,
- 35: 39,
- 36: 40,
- 37: 41,
- 38: 42,
- 39: 43,
- 40: 44,
- 41: 46,
- 42: 47,
- 43: 48,
- 44: 49,
- 45: 50,
- 46: 51,
- 47: 52,
- 48: 53,
- 49: 54,
- 50: 55,
- 51: 56,
- 52: 57,
- 53: 58,
- 54: 59,
- 55: 60,
- 56: 61,
- 57: 62,
- 58: 63,
- 59: 64,
- 60: 65,
- 61: 67,
- 62: 70,
- 63: 72,
- 64: 73,
- 65: 74,
- 66: 75,
- 67: 76,
- 68: 77,
- 69: 78,
- 70: 79,
- 71: 80,
- 72: 81,
- 73: 82,
- 74: 84,
- 75: 85,
- 76: 86,
- 77: 87,
- 78: 88,
- 79: 89,
- 80: 90
- }
- catid2name = {
- 0: 'background',
- 1: 'person',
- 2: 'bicycle',
- 3: 'car',
- 4: 'motorcycle',
- 5: 'airplane',
- 6: 'bus',
- 7: 'train',
- 8: 'truck',
- 9: 'boat',
- 10: 'traffic light',
- 11: 'fire hydrant',
- 13: 'stop sign',
- 14: 'parking meter',
- 15: 'bench',
- 16: 'bird',
- 17: 'cat',
- 18: 'dog',
- 19: 'horse',
- 20: 'sheep',
- 21: 'cow',
- 22: 'elephant',
- 23: 'bear',
- 24: 'zebra',
- 25: 'giraffe',
- 27: 'backpack',
- 28: 'umbrella',
- 31: 'handbag',
- 32: 'tie',
- 33: 'suitcase',
- 34: 'frisbee',
- 35: 'skis',
- 36: 'snowboard',
- 37: 'sports ball',
- 38: 'kite',
- 39: 'baseball bat',
- 40: 'baseball glove',
- 41: 'skateboard',
- 42: 'surfboard',
- 43: 'tennis racket',
- 44: 'bottle',
- 46: 'wine glass',
- 47: 'cup',
- 48: 'fork',
- 49: 'knife',
- 50: 'spoon',
- 51: 'bowl',
- 52: 'banana',
- 53: 'apple',
- 54: 'sandwich',
- 55: 'orange',
- 56: 'broccoli',
- 57: 'carrot',
- 58: 'hot dog',
- 59: 'pizza',
- 60: 'donut',
- 61: 'cake',
- 62: 'chair',
- 63: 'couch',
- 64: 'potted plant',
- 65: 'bed',
- 67: 'dining table',
- 70: 'toilet',
- 72: 'tv',
- 73: 'laptop',
- 74: 'mouse',
- 75: 'remote',
- 76: 'keyboard',
- 77: 'cell phone',
- 78: 'microwave',
- 79: 'oven',
- 80: 'toaster',
- 81: 'sink',
- 82: 'refrigerator',
- 84: 'book',
- 85: 'clock',
- 86: 'vase',
- 87: 'scissors',
- 88: 'teddy bear',
- 89: 'hair drier',
- 90: 'toothbrush'
- }
- clsid2catid = {k - 1: v for k, v in clsid2catid.items()}
- catid2name.pop(0)
- return clsid2catid, catid2name
- def _dota_category():
- """
- Get class id to category id map and category id
- to category name map of dota dataset
- """
- catid2name = {
- 0: 'background',
- 1: 'plane',
- 2: 'baseball-diamond',
- 3: 'bridge',
- 4: 'ground-track-field',
- 5: 'small-vehicle',
- 6: 'large-vehicle',
- 7: 'ship',
- 8: 'tennis-court',
- 9: 'basketball-court',
- 10: 'storage-tank',
- 11: 'soccer-ball-field',
- 12: 'roundabout',
- 13: 'harbor',
- 14: 'swimming-pool',
- 15: 'helicopter'
- }
- catid2name.pop(0)
- clsid2catid = {i: i + 1 for i in range(len(catid2name))}
- return clsid2catid, catid2name
- def _vocall_category():
- """
- Get class id to category id map and category id
- to category name map of mixup voc dataset
- """
- label_map = pascalvoc_label()
- label_map = sorted(label_map.items(), key=lambda x: x[1])
- cats = [l[0] for l in label_map]
- clsid2catid = {i: i for i in range(len(cats))}
- catid2name = {i: name for i, name in enumerate(cats)}
- return clsid2catid, catid2name
- def _widerface_category():
- label_map = widerface_label()
- label_map = sorted(label_map.items(), key=lambda x: x[1])
- cats = [l[0] for l in label_map]
- clsid2catid = {i: i for i in range(len(cats))}
- catid2name = {i: name for i, name in enumerate(cats)}
- return clsid2catid, catid2name
- def _oid19_category():
- clsid2catid = {k: k + 1 for k in range(500)}
- catid2name = {
- 0: "background",
- 1: "Infant bed",
- 2: "Rose",
- 3: "Flag",
- 4: "Flashlight",
- 5: "Sea turtle",
- 6: "Camera",
- 7: "Animal",
- 8: "Glove",
- 9: "Crocodile",
- 10: "Cattle",
- 11: "House",
- 12: "Guacamole",
- 13: "Penguin",
- 14: "Vehicle registration plate",
- 15: "Bench",
- 16: "Ladybug",
- 17: "Human nose",
- 18: "Watermelon",
- 19: "Flute",
- 20: "Butterfly",
- 21: "Washing machine",
- 22: "Raccoon",
- 23: "Segway",
- 24: "Taco",
- 25: "Jellyfish",
- 26: "Cake",
- 27: "Pen",
- 28: "Cannon",
- 29: "Bread",
- 30: "Tree",
- 31: "Shellfish",
- 32: "Bed",
- 33: "Hamster",
- 34: "Hat",
- 35: "Toaster",
- 36: "Sombrero",
- 37: "Tiara",
- 38: "Bowl",
- 39: "Dragonfly",
- 40: "Moths and butterflies",
- 41: "Antelope",
- 42: "Vegetable",
- 43: "Torch",
- 44: "Building",
- 45: "Power plugs and sockets",
- 46: "Blender",
- 47: "Billiard table",
- 48: "Cutting board",
- 49: "Bronze sculpture",
- 50: "Turtle",
- 51: "Broccoli",
- 52: "Tiger",
- 53: "Mirror",
- 54: "Bear",
- 55: "Zucchini",
- 56: "Dress",
- 57: "Volleyball",
- 58: "Guitar",
- 59: "Reptile",
- 60: "Golf cart",
- 61: "Tart",
- 62: "Fedora",
- 63: "Carnivore",
- 64: "Car",
- 65: "Lighthouse",
- 66: "Coffeemaker",
- 67: "Food processor",
- 68: "Truck",
- 69: "Bookcase",
- 70: "Surfboard",
- 71: "Footwear",
- 72: "Bench",
- 73: "Necklace",
- 74: "Flower",
- 75: "Radish",
- 76: "Marine mammal",
- 77: "Frying pan",
- 78: "Tap",
- 79: "Peach",
- 80: "Knife",
- 81: "Handbag",
- 82: "Laptop",
- 83: "Tent",
- 84: "Ambulance",
- 85: "Christmas tree",
- 86: "Eagle",
- 87: "Limousine",
- 88: "Kitchen & dining room table",
- 89: "Polar bear",
- 90: "Tower",
- 91: "Football",
- 92: "Willow",
- 93: "Human head",
- 94: "Stop sign",
- 95: "Banana",
- 96: "Mixer",
- 97: "Binoculars",
- 98: "Dessert",
- 99: "Bee",
- 100: "Chair",
- 101: "Wood-burning stove",
- 102: "Flowerpot",
- 103: "Beaker",
- 104: "Oyster",
- 105: "Woodpecker",
- 106: "Harp",
- 107: "Bathtub",
- 108: "Wall clock",
- 109: "Sports uniform",
- 110: "Rhinoceros",
- 111: "Beehive",
- 112: "Cupboard",
- 113: "Chicken",
- 114: "Man",
- 115: "Blue jay",
- 116: "Cucumber",
- 117: "Balloon",
- 118: "Kite",
- 119: "Fireplace",
- 120: "Lantern",
- 121: "Missile",
- 122: "Book",
- 123: "Spoon",
- 124: "Grapefruit",
- 125: "Squirrel",
- 126: "Orange",
- 127: "Coat",
- 128: "Punching bag",
- 129: "Zebra",
- 130: "Billboard",
- 131: "Bicycle",
- 132: "Door handle",
- 133: "Mechanical fan",
- 134: "Ring binder",
- 135: "Table",
- 136: "Parrot",
- 137: "Sock",
- 138: "Vase",
- 139: "Weapon",
- 140: "Shotgun",
- 141: "Glasses",
- 142: "Seahorse",
- 143: "Belt",
- 144: "Watercraft",
- 145: "Window",
- 146: "Giraffe",
- 147: "Lion",
- 148: "Tire",
- 149: "Vehicle",
- 150: "Canoe",
- 151: "Tie",
- 152: "Shelf",
- 153: "Picture frame",
- 154: "Printer",
- 155: "Human leg",
- 156: "Boat",
- 157: "Slow cooker",
- 158: "Croissant",
- 159: "Candle",
- 160: "Pancake",
- 161: "Pillow",
- 162: "Coin",
- 163: "Stretcher",
- 164: "Sandal",
- 165: "Woman",
- 166: "Stairs",
- 167: "Harpsichord",
- 168: "Stool",
- 169: "Bus",
- 170: "Suitcase",
- 171: "Human mouth",
- 172: "Juice",
- 173: "Skull",
- 174: "Door",
- 175: "Violin",
- 176: "Chopsticks",
- 177: "Digital clock",
- 178: "Sunflower",
- 179: "Leopard",
- 180: "Bell pepper",
- 181: "Harbor seal",
- 182: "Snake",
- 183: "Sewing machine",
- 184: "Goose",
- 185: "Helicopter",
- 186: "Seat belt",
- 187: "Coffee cup",
- 188: "Microwave oven",
- 189: "Hot dog",
- 190: "Countertop",
- 191: "Serving tray",
- 192: "Dog bed",
- 193: "Beer",
- 194: "Sunglasses",
- 195: "Golf ball",
- 196: "Waffle",
- 197: "Palm tree",
- 198: "Trumpet",
- 199: "Ruler",
- 200: "Helmet",
- 201: "Ladder",
- 202: "Office building",
- 203: "Tablet computer",
- 204: "Toilet paper",
- 205: "Pomegranate",
- 206: "Skirt",
- 207: "Gas stove",
- 208: "Cookie",
- 209: "Cart",
- 210: "Raven",
- 211: "Egg",
- 212: "Burrito",
- 213: "Goat",
- 214: "Kitchen knife",
- 215: "Skateboard",
- 216: "Salt and pepper shakers",
- 217: "Lynx",
- 218: "Boot",
- 219: "Platter",
- 220: "Ski",
- 221: "Swimwear",
- 222: "Swimming pool",
- 223: "Drinking straw",
- 224: "Wrench",
- 225: "Drum",
- 226: "Ant",
- 227: "Human ear",
- 228: "Headphones",
- 229: "Fountain",
- 230: "Bird",
- 231: "Jeans",
- 232: "Television",
- 233: "Crab",
- 234: "Microphone",
- 235: "Home appliance",
- 236: "Snowplow",
- 237: "Beetle",
- 238: "Artichoke",
- 239: "Jet ski",
- 240: "Stationary bicycle",
- 241: "Human hair",
- 242: "Brown bear",
- 243: "Starfish",
- 244: "Fork",
- 245: "Lobster",
- 246: "Corded phone",
- 247: "Drink",
- 248: "Saucer",
- 249: "Carrot",
- 250: "Insect",
- 251: "Clock",
- 252: "Castle",
- 253: "Tennis racket",
- 254: "Ceiling fan",
- 255: "Asparagus",
- 256: "Jaguar",
- 257: "Musical instrument",
- 258: "Train",
- 259: "Cat",
- 260: "Rifle",
- 261: "Dumbbell",
- 262: "Mobile phone",
- 263: "Taxi",
- 264: "Shower",
- 265: "Pitcher",
- 266: "Lemon",
- 267: "Invertebrate",
- 268: "Turkey",
- 269: "High heels",
- 270: "Bust",
- 271: "Elephant",
- 272: "Scarf",
- 273: "Barrel",
- 274: "Trombone",
- 275: "Pumpkin",
- 276: "Box",
- 277: "Tomato",
- 278: "Frog",
- 279: "Bidet",
- 280: "Human face",
- 281: "Houseplant",
- 282: "Van",
- 283: "Shark",
- 284: "Ice cream",
- 285: "Swim cap",
- 286: "Falcon",
- 287: "Ostrich",
- 288: "Handgun",
- 289: "Whiteboard",
- 290: "Lizard",
- 291: "Pasta",
- 292: "Snowmobile",
- 293: "Light bulb",
- 294: "Window blind",
- 295: "Muffin",
- 296: "Pretzel",
- 297: "Computer monitor",
- 298: "Horn",
- 299: "Furniture",
- 300: "Sandwich",
- 301: "Fox",
- 302: "Convenience store",
- 303: "Fish",
- 304: "Fruit",
- 305: "Earrings",
- 306: "Curtain",
- 307: "Grape",
- 308: "Sofa bed",
- 309: "Horse",
- 310: "Luggage and bags",
- 311: "Desk",
- 312: "Crutch",
- 313: "Bicycle helmet",
- 314: "Tick",
- 315: "Airplane",
- 316: "Canary",
- 317: "Spatula",
- 318: "Watch",
- 319: "Lily",
- 320: "Kitchen appliance",
- 321: "Filing cabinet",
- 322: "Aircraft",
- 323: "Cake stand",
- 324: "Candy",
- 325: "Sink",
- 326: "Mouse",
- 327: "Wine",
- 328: "Wheelchair",
- 329: "Goldfish",
- 330: "Refrigerator",
- 331: "French fries",
- 332: "Drawer",
- 333: "Treadmill",
- 334: "Picnic basket",
- 335: "Dice",
- 336: "Cabbage",
- 337: "Football helmet",
- 338: "Pig",
- 339: "Person",
- 340: "Shorts",
- 341: "Gondola",
- 342: "Honeycomb",
- 343: "Doughnut",
- 344: "Chest of drawers",
- 345: "Land vehicle",
- 346: "Bat",
- 347: "Monkey",
- 348: "Dagger",
- 349: "Tableware",
- 350: "Human foot",
- 351: "Mug",
- 352: "Alarm clock",
- 353: "Pressure cooker",
- 354: "Human hand",
- 355: "Tortoise",
- 356: "Baseball glove",
- 357: "Sword",
- 358: "Pear",
- 359: "Miniskirt",
- 360: "Traffic sign",
- 361: "Girl",
- 362: "Roller skates",
- 363: "Dinosaur",
- 364: "Porch",
- 365: "Human beard",
- 366: "Submarine sandwich",
- 367: "Screwdriver",
- 368: "Strawberry",
- 369: "Wine glass",
- 370: "Seafood",
- 371: "Racket",
- 372: "Wheel",
- 373: "Sea lion",
- 374: "Toy",
- 375: "Tea",
- 376: "Tennis ball",
- 377: "Waste container",
- 378: "Mule",
- 379: "Cricket ball",
- 380: "Pineapple",
- 381: "Coconut",
- 382: "Doll",
- 383: "Coffee table",
- 384: "Snowman",
- 385: "Lavender",
- 386: "Shrimp",
- 387: "Maple",
- 388: "Cowboy hat",
- 389: "Goggles",
- 390: "Rugby ball",
- 391: "Caterpillar",
- 392: "Poster",
- 393: "Rocket",
- 394: "Organ",
- 395: "Saxophone",
- 396: "Traffic light",
- 397: "Cocktail",
- 398: "Plastic bag",
- 399: "Squash",
- 400: "Mushroom",
- 401: "Hamburger",
- 402: "Light switch",
- 403: "Parachute",
- 404: "Teddy bear",
- 405: "Winter melon",
- 406: "Deer",
- 407: "Musical keyboard",
- 408: "Plumbing fixture",
- 409: "Scoreboard",
- 410: "Baseball bat",
- 411: "Envelope",
- 412: "Adhesive tape",
- 413: "Briefcase",
- 414: "Paddle",
- 415: "Bow and arrow",
- 416: "Telephone",
- 417: "Sheep",
- 418: "Jacket",
- 419: "Boy",
- 420: "Pizza",
- 421: "Otter",
- 422: "Office supplies",
- 423: "Couch",
- 424: "Cello",
- 425: "Bull",
- 426: "Camel",
- 427: "Ball",
- 428: "Duck",
- 429: "Whale",
- 430: "Shirt",
- 431: "Tank",
- 432: "Motorcycle",
- 433: "Accordion",
- 434: "Owl",
- 435: "Porcupine",
- 436: "Sun hat",
- 437: "Nail",
- 438: "Scissors",
- 439: "Swan",
- 440: "Lamp",
- 441: "Crown",
- 442: "Piano",
- 443: "Sculpture",
- 444: "Cheetah",
- 445: "Oboe",
- 446: "Tin can",
- 447: "Mango",
- 448: "Tripod",
- 449: "Oven",
- 450: "Mouse",
- 451: "Barge",
- 452: "Coffee",
- 453: "Snowboard",
- 454: "Common fig",
- 455: "Salad",
- 456: "Marine invertebrates",
- 457: "Umbrella",
- 458: "Kangaroo",
- 459: "Human arm",
- 460: "Measuring cup",
- 461: "Snail",
- 462: "Loveseat",
- 463: "Suit",
- 464: "Teapot",
- 465: "Bottle",
- 466: "Alpaca",
- 467: "Kettle",
- 468: "Trousers",
- 469: "Popcorn",
- 470: "Centipede",
- 471: "Spider",
- 472: "Sparrow",
- 473: "Plate",
- 474: "Bagel",
- 475: "Personal care",
- 476: "Apple",
- 477: "Brassiere",
- 478: "Bathroom cabinet",
- 479: "studio couch",
- 480: "Computer keyboard",
- 481: "Table tennis racket",
- 482: "Sushi",
- 483: "Cabinetry",
- 484: "Street light",
- 485: "Towel",
- 486: "Nightstand",
- 487: "Rabbit",
- 488: "Dolphin",
- 489: "Dog",
- 490: "Jug",
- 491: "Wok",
- 492: "Fire hydrant",
- 493: "Human eye",
- 494: "Skyscraper",
- 495: "Backpack",
- 496: "Potato",
- 497: "Paper towel",
- 498: "Lifejacket",
- 499: "Bicycle wheel",
- 500: "Toilet",
- }
- return clsid2catid, catid2name
- def _visdrone_category():
- clsid2catid = {i: i for i in range(10)}
- catid2name = {
- 0: 'pedestrian',
- 1: 'people',
- 2: 'bicycle',
- 3: 'car',
- 4: 'van',
- 5: 'truck',
- 6: 'tricycle',
- 7: 'awning-tricycle',
- 8: 'bus',
- 9: 'motor'
- }
- return clsid2catid, catid2name
|