"""
Class IDs for Objects
Sources: https://storage.googleapis.com/openimages/2018_04/class-descriptions-boxable.csv
         https://tech.amikelive.com/node-718/what-object-categories-labels-are-in-coco-dataset/
         https://www.pyimagesearch.com/2018/11/12/yolo-object-detection-with-opencv/
"""

object_list_coco = ["", "person", "bicycle", "car", "motorcycle", "airplane", "bus",
                    "train", "truck", "boat", "traffic light", "fire hydrant",
                    "street sign", "stop sign", "parking meter", "bench", "bird",
                    "cat", "dog", "horse", "sheep", "cow", "elephant", "bear",
                    "zebra", "giraffe", "hat", "backpack", "umbrella", "shoe",
                    "eye glasses", "handbag", "tie", "suitcase", "frisbee", "skis",
                    "snowboard", "sports ball", "kite", "baseball bat",
                    "baseball glove", "skateboard", "surfboard", "tennis racket",
                    "bottle", "plate", "wine glass", "cup", "fork", "knife", "spoon",
                    "bowl", "banana", "apple", "sandwich", "orange", "broccoli",
                    "carrot", "hot dog", "pizza", "donut", "cake", "chair", "couch",
                    "potted plant", "bed", "mirror", "dining table", "window", "desk",
                    "toilet", "door", "tv", "laptop", "mouse", "remote", "keyboard",
                    "cell phone", "microwave", "oven", "toaster", "sink",
                    "refrigerator", "blender", "book", "clock", "vase", "scissors",
                    "teddy bear", "hair drier", "toothbrush", "hairbrush"]

object_list_yolo_v3 = ["person", "bicycle", "car", "motorcycle", "airplane", "bus",
                       "train", "truck", "boat", "traffic light", "fire hydrant",
                       "stop sign", "parking meter", "bench", "bird", "cat", "dog",
                       "horse", "sheep", "cow", "elephant", "bear", "zebra",
                       "giraffe", "backpack", "umbrella", "handbag", "tie",
                       "suitcase", "frisbee", "skis", "snowboard", "sports ball",
                       "kite", "baseball bat", "baseball glove", "skateboard",
                       "surfboard", "tennis racket", "bottle", "wine glass", "cup",
                       "fork", "knife", "spoon", "bowl", "banana", "apple", "sandwich",
                       "orange", "broccoli", "carrot", "hot dog", "pizza", "donut",
                       "cake", "chair", "couch", "potted plant", "bed", "dining table",
                       "toilet", "tv", "laptop", "mouse", "remote", "keyboard",
                       "cell phone", "microwave", "oven", "toaster", "sink",
                       "refrigerator", "book", "clock", "vase", "scissors",
                       "teddy bear", "hair drier", "toothbrush"]

object_list_oi = [
    "",
    "Tortoise",
    "Container",
    "Magpie",
    "Sea turtle",
    "Football",
    "Ambulance",
    "Ladder",
    "Toothbrush",
    "Syringe",
    "Sink",
    "Toy",
    "Organ",
    "Cassette deck",
    "Apple",
    "Human eye",
    "Cosmetics",
    "Paddle",
    "Snowman",
    "Beer",
    "Chopsticks",
    "Human beard",
    "Bird",
    "Parking meter",
    "Traffic light",
    "Croissant",
    "Cucumber",
    "Radish",
    "Towel",
    "Doll",
    "Skull",
    "Washing machine",
    "Glove",
    "Tick",
    "Belt",
    "Sunglasses",
    "Banjo",
    "Cart",
    "Ball",
    "Backpack",
    "Bicycle",
    "Home appliance",
    "Centipede",
    "Boat",
    "Surfboard",
    "Boot",
    "Headphones",
    "Hot dog",
    "Shorts",
    "Fast food",
    "Bus",
    "Boy",
    "Screwdriver",
    "Bicycle wheel",
    "Barge",
    "Laptop",
    "Miniskirt",
    "Drill",
    "Dress",
    "Bear",
    "Waffle",
    "Pancake",
    "Brown bear",
    "Woodpecker",
    "Blue jay",
    "Pretzel",
    "Bagel",
    "Tower",
    "Teapot",
    "Person",
    "Bow and arrow",
    "Swimwear",
    "Beehive",
    "Brassiere",
    "Bee",
    "Bat",
    "Starfish",
    "Popcorn",
    "Burrito",
    "Chainsaw",
    "Balloon",
    "Wrench",
    "Tent",
    "Vehicle registration plate",
    "Lantern",
    "Toaster",
    "Flashlight",
    "Billboard",
    "Tiara",
    "Limousine",
    "Necklace",
    "Carnivore",
    "Scissors",
    "Stairs",
    "Computer keyboard",
    "Printer",
    "Traffic sign",
    "Chair",
    "Shirt",
    "Poster",
    "Cheese",
    "Sock",
    "Fire hydrant",
    "Land vehicle",
    "Earrings",
    "Tie",
    "Watercraft",
    "Cabinetry",
    "Suitcase",
    "Muffin",
    "Bidet",
    "Snack",
    "Snowmobile",
    "Clock",
    "Medical equipment",
    "Cattle",
    "Cello",
    "Jet ski",
    "Camel",
    "Coat",
    "Suit",
    "Desk",
    "Cat",
    "Bronze sculpture",
    "Juice",
    "Gondola",
    "Beetle",
    "Cannon",
    "Computer mouse",
    "Cookie",
    "Office building",
    "Fountain",
    "Coin",
    "Calculator",
    "Cocktail",
    "Computer monitor",
    "Box",
    "Stapler",
    "Christmas tree",
    "Cowboy hat",
    "Hiking equipment",
    "Studio couch",
    "Drum",
    "Dessert",
    "Wine rack",
    "Drink",
    "Zucchini",
    "Ladle",
    "Human mouth",
    "Dairy",
    "Dice",
    "Oven",
    "Dinosaur",
    "Ratchet",
    "Couch",
    "Cricket ball",
    "Winter melon",
    "Spatula",
    "Whiteboard",
    "Pencil sharpener",
    "Door",
    "Hat",
    "Shower",
    "Eraser",
    "Fedora",
    "Guacamole",
    "Dagger",
    "Scarf",
    "Dolphin",
    "Sombrero",
    "Tin can",
    "Mug",
    "Tap",
    "Harbor seal",
    "Stretcher",
    "Can opener",
    "Goggles",
    "Human body",
    "Roller skates",
    "Coffee cup",
    "Cutting board",
    "Blender",
    "Plumbing fixture",
    "Stop sign",
    "Office supplies",
    "Volleyball",
    "Vase",
    "Slow cooker",
    "Wardrobe",
    "Coffee",
    "Whisk",
    "Paper towel",
    "Personal care",
    "Food",
    "Sun hat",
    "Tree house",
    "Flying disc",
    "Skirt",
    "Gas stove",
    "Salt and pepper shakers",
    "Mechanical fan",
    "Face powder",
    "Fax",
    "Fruit",
    "French fries",
    "Nightstand",
    "Barrel",
    "Kite",
    "Tart",
    "Treadmill",
    "Fox",
    "Flag",
    "Horn",
    "Window blind",
    "Human foot",
    "Golf cart",
    "Jacket",
    "Egg",
    "Street light",
    "Guitar",
    "Pillow",
    "Human leg",
    "Isopod",
    "Grape",
    "Human ear",
    "Power plugs and sockets",
    "Panda",
    "Giraffe",
    "Woman",
    "Door handle",
    "Rhinoceros",
    "Bathtub",
    "Goldfish",
    "Houseplant",
    "Goat",
    "Baseball bat",
    "Baseball glove",
    "Mixing bowl",
    "Marine invertebrates",
    "Kitchen utensil",
    "Light switch",
    "House",
    "Horse",
    "Stationary bicycle",
    "Hammer",
    "Ceiling fan",
    "Sofa bed",
    "Adhesive tape",
    "Harp",
    "Sandal",
    "Bicycle helmet",
    "Saucer",
    "Harpsichord",
    "Human hair",
    "Heater",
    "Harmonica",
    "Hamster",
    "Curtain",
    "Bed",
    "Kettle",
    "Fireplace",
    "Scale",
    "Drinking straw",
    "Insect",
    "Hair dryer",
    "Kitchenware",
    "Indoor rower",
    "Invertebrate",
    "Food processor",
    "Bookcase",
    "Refrigerator",
    "Wood-burning stove",
    "Punching bag",
    "Common fig",
    "Cocktail shaker",
    "Jaguar",
    "Golf ball",
    "Fashion accessory",
    "Alarm clock",
    "Filing cabinet",
    "Artichoke",
    "Table",
    "Tableware",
    "Kangaroo",
    "Koala",
    "Knife",
    "Bottle",
    "Bottle opener",
    "Lynx",
    "Lavender",
    "Lighthouse",
    "Dumbbell",
    "Human head",
    "Bowl",
    "Humidifier",
    "Porch",
    "Lizard",
    "Billiard table",
    "Mammal",
    "Mouse",
    "Motorcycle",
    "Musical instrument",
    "Swim cap",
    "Frying pan",
    "Snowplow",
    "Bathroom cabinet",
    "Missile",
    "Bust",
    "Man",
    "Waffle iron",
    "Milk",
    "Ring binder",
    "Plate",
    "Mobile phone",
    "Baked goods",
    "Mushroom",
    "Crutch",
    "Pitcher",
    "Mirror",
    "Lifejacket",
    "Table tennis racket",
    "Pencil case",
    "Musical keyboard",
    "Scoreboard",
    "Briefcase",
    "Kitchen knife",
    "Nail",
    "Tennis ball",
    "Plastic bag",
    "Oboe",
    "Chest of drawers",
    "Ostrich",
    "Piano",
    "Girl",
    "Plant",
    "Potato",
    "Hair spray",
    "Sports equipment",
    "Pasta",
    "Penguin",
    "Pumpkin",
    "Pear",
    "Infant bed",
    "Polar bear",
    "Mixer",
    "Cupboard",
    "Jacuzzi",
    "Pizza",
    "Digital clock",
    "Pig",
    "Reptile",
    "Rifle",
    "Lipstick",
    "Skateboard",
    "Raven",
    "High heels",
    "Red panda",
    "Rose",
    "Rabbit",
    "Sculpture",
    "Saxophone",
    "Shotgun",
    "Seafood",
    "Submarine sandwich",
    "Snowboard",
    "Sword",
    "Picture frame",
    "Sushi",
    "Loveseat",
    "Ski",
    "Squirrel",
    "Tripod",
    "Stethoscope",
    "Submarine",
    "Scorpion",
    "Segway",
    "Training bench",
    "Snake",
    "Coffee table",
    "Skyscraper",
    "Sheep",
    "Television",
    "Trombone",
    "Tea",
    "Tank",
    "Taco",
    "Telephone",
    "Torch",
    "Tiger",
    "Strawberry",
    "Trumpet",
    "Tree",
    "Tomato",
    "Train",
    "Tool",
    "Picnic basket",
    "Cooking spray",
    "Trousers",
    "Bowling equipment",
    "Football helmet",
    "Truck",
    "Measuring cup",
    "Coffeemaker",
    "Violin",
    "Vehicle",
    "Handbag",
    "Paper cutter",
    "Wine",
    "Weapon",
    "Wheel",
    "Worm",
    "Wok",
    "Whale",
    "Zebra",
    "Auto part",
    "Jug",
    "Pizza cutter",
    "Cream",
    "Monkey",
    "Lion",
    "Bread",
    "Platter",
    "Chicken",
    "Eagle",
    "Helicopter",
    "Owl",
    "Duck",
    "Turtle",
    "Hippopotamus",
    "Crocodile",
    "Toilet",
    "Toilet paper",
    "Squid",
    "Clothing",
    "Footwear",
    "Lemon",
    "Spider",
    "Deer",
    "Frog",
    "Banana",
    "Rocket",
    "Wine glass",
    "Countertop",
    "Tablet computer",
    "Waste container",
    "Swimming pool",
    "Dog",
    "Book",
    "Elephant",
    "Shark",
    "Candle",
    "Leopard",
    "Axe",
    "Hand dryer",
    "Soap dispenser",
    "Porcupine",
    "Flower",
    "Canary",
    "Cheetah",
    "Palm tree",
    "Hamburger",
    "Maple",
    "Building",
    "Fish",
    "Lobster",
    "Asparagus",
    "Furniture",
    "Hedgehog",
    "Airplane",
    "Spoon",
    "Otter",
    "Bull",
    "Oyster",
    "Horizontal bar",
    "Convenience store",
    "Bomb",
    "Bench",
    "Ice cream",
    "Caterpillar",
    "Butterfly",
    "Parachute",
    "Orange",
    "Antelope",
    "Beaker",
    "Moths and butterflies",
    "Window",
    "Closet",
    "Castle",
    "Jellyfish",
    "Goose",
    "Mule",
    "Swan",
    "Peach",
    "Coconut",
    "Seat belt",
    "Raccoon",
    "Chisel",
    "Fork",
    "Lamp",
    "Camera",
    "Squash",
    "Racket",
    "Human face",
    "Human arm",
    "Vegetable",
    "Diaper",
    "Unicycle",
    "Falcon",
    "Chime",
    "Snail",
    "Shellfish",
    "Cabbage",
    "Carrot",
    "Mango",
    "Jeans",
    "Flowerpot",
    "Pineapple",
    "Drawer",
    "Stool",
    "Envelope",
    "Cake",
    "Dragonfly",
    "Sunflower",
    "Microwave oven",
    "Honeycomb",
    "Marine mammal",
    "Sea lion",
    "Ladybug",
    "Shelf",
    "Watch",
    "Candy",
    "Salad",
    "Parrot",
    "Handgun",
    "Sparrow",
    "Van",
    "Grinder",
    "Spice rack",
    "Light bulb",
    "Corded phone",
    "Sports uniform",
    "Tennis racket",
    "Wall clock",
    "Serving tray",
    "Kitchen & dining room table",
    "Dog bed",
    "Cake stand",
    "Cat furniture",
    "Bathroom accessory",
    "Facial tissue holder",
    "Pressure cooker",
    "Kitchen appliance",
    "Tire",
    "Ruler",
    "Luggage and bags",
    "Microphone",
    "Broccoli",
    "Umbrella",
    "Pastry",
    "Grapefruit",
    "Band-aid",
    "Animal",
    "Bell pepper",
    "Turkey",
    "Lily",
    "Pomegranate",
    "Doughnut",
    "Glasses",
    "Human nose",
    "Pen",
    "Ant",
    "Car",
    "Aircraft",
    "Human hand",
    "Skunk",
    "Teddy bear",
    "Watermelon",
    "Cantaloupe",
    "Dishwasher",
    "Flute",
    "Balance beam",
    "Sandwich",
    "Shrimp",
    "Sewing machine",
    "Binoculars",
    "Rays and skates",
    "Ipod",
    "Accordion",
    "Willow",
    "Crab",
    "Crown",
    "Seahorse",
    "Perfume",
    "Alpaca",
    "Taxi",
    "Canoe",
    "Remote control",
    "Wheelchair",
    "Rugby ball",
    "Armadillo",
    "Maracas",
    "Helmet"
]


def get_coco_object_by_classID(id):
    return object_list_coco[id]


def get_oi_object_by_classID(id):
    return object_list_oi[id]


def get_yolo_v3_coco_object_by_classID(id):
    return object_list_yolo_v3[id]
