| # ------------------------------------------------------------------------ | |
| # LW-DETR | |
| # Copyright (c) 2024 Baidu. All Rights Reserved. | |
| # Licensed under the Apache License, Version 2.0 [see LICENSE for details] | |
| # ------------------------------------------------------------------------ | |
| """Utils to load object365 pretrain.""" | |
| # obj365_classes = [ | |
| # 'Person', 'Sneakers', 'Chair', 'Other Shoes', 'Hat', 'Car', 'Lamp', 'Glasses', | |
| # 'Bottle', 'Desk', 'Cup', 'Street Lights', 'Cabinet/shelf', 'Handbag/Satchel', | |
| # 'Bracelet', 'Plate', 'Picture/Frame', 'Helmet', 'Book', 'Gloves', 'Storage box', | |
| # 'Boat', 'Leather Shoes', 'Flower', 'Bench', 'Potted Plant', 'Bowl/Basin', 'Flag', | |
| # 'Pillow', 'Boots', 'Vase', 'Microphone', 'Necklace', 'Ring', 'SUV', 'Wine Glass', | |
| # 'Belt', 'Moniter/TV', 'Backpack', 'Umbrella', 'Traffic Light', 'Speaker', 'Watch', | |
| # 'Tie', 'Trash bin Can', 'Slippers', 'Bicycle', 'Stool', 'Barrel/bucket', 'Van', | |
| # 'Couch', 'Sandals', 'Bakset', 'Drum', 'Pen/Pencil', 'Bus', 'Wild Bird', 'High Heels', | |
| # 'Motorcycle', 'Guitar', 'Carpet', 'Cell Phone', 'Bread', 'Camera', 'Canned', 'Truck', | |
| # 'Traffic cone', 'Cymbal', 'Lifesaver', 'Towel', 'Stuffed Toy', 'Candle', 'Sailboat', | |
| # 'Laptop', 'Awning', 'Bed', 'Faucet', 'Tent', 'Horse', 'Mirror', 'Power outlet', | |
| # 'Sink', 'Apple', 'Air Conditioner', 'Knife', 'Hockey Stick', 'Paddle', 'Pickup Truck', | |
| # 'Fork', 'Traffic Sign', 'Ballon', 'Tripod', 'Dog', 'Spoon', 'Clock', 'Pot', 'Cow', | |
| # 'Cake', 'Dinning Table', 'Sheep', 'Hanger', 'Blackboard/Whiteboard', 'Napkin', | |
| # 'Other Fish', 'Orange/Tangerine', 'Toiletry', 'Keyboard', 'Tomato', 'Lantern', | |
| # 'Machinery Vehicle', 'Fan', 'Green Vegetables', 'Banana', 'Baseball Glove', | |
| # 'Airplane', 'Mouse', 'Train', 'Pumpkin', 'Soccer', 'Skiboard', 'Luggage', 'Nightstand', | |
| # 'Tea pot', 'Telephone', 'Trolley', 'Head Phone', 'Sports Car', 'Stop Sign', 'Dessert', | |
| # 'Scooter', 'Stroller', 'Crane', 'Remote', 'Refrigerator', 'Oven', 'Lemon', 'Duck', | |
| # 'Baseball Bat', 'Surveillance Camera', 'Cat', 'Jug', 'Broccoli', 'Piano', 'Pizza', | |
| # 'Elephant', 'Skateboard', 'Surfboard', 'Gun', 'Skating and Skiing shoes', 'Gas stove', | |
| # 'Donut', 'Bow Tie', 'Carrot', 'Toilet', 'Kite', 'Strawberry', 'Other Balls', 'Shovel', | |
| # 'Pepper', 'Computer Box', 'Toilet Paper', 'Cleaning Products', 'Chopsticks', 'Microwave', | |
| # 'Pigeon', 'Baseball', 'Cutting/chopping Board', 'Coffee Table', 'Side Table', 'Scissors', | |
| # 'Marker', 'Pie', 'Ladder', 'Snowboard', 'Cookies', 'Radiator', 'Fire Hydrant', 'Basketball', | |
| # 'Zebra', 'Grape', 'Giraffe', 'Potato', 'Sausage', 'Tricycle', 'Violin', 'Egg', | |
| # 'Fire Extinguisher', 'Candy', 'Fire Truck', 'Billards', 'Converter', 'Bathtub', | |
| # 'Wheelchair', 'Golf Club', 'Briefcase', 'Cucumber', 'Cigar/Cigarette ', 'Paint Brush', | |
| # 'Pear', 'Heavy Truck', 'Hamburger', 'Extractor', 'Extention Cord', 'Tong', | |
| # 'Tennis Racket', 'Folder', 'American Football', 'earphone', 'Mask', 'Kettle', | |
| # 'Tennis', 'Ship', 'Swing', 'Coffee Machine', 'Slide', 'Carriage', 'Onion', | |
| # 'Green beans', 'Projector', 'Frisbee', 'Washing Machine/Drying Machine', 'Chicken', | |
| # 'Printer', 'Watermelon', 'Saxophone', 'Tissue', 'Toothbrush', 'Ice cream', | |
| # 'Hotair ballon', 'Cello', 'French Fries', 'Scale', 'Trophy', 'Cabbage', 'Hot dog', | |
| # 'Blender', 'Peach', 'Rice', 'Wallet/Purse', 'Volleyball', 'Deer', 'Goose', 'Tape', | |
| # 'Tablet', 'Cosmetics', 'Trumpet', 'Pineapple', 'Golf Ball', 'Ambulance', 'Parking meter', | |
| # 'Mango', 'Key', 'Hurdle', 'Fishing Rod', 'Medal', 'Flute', 'Brush', 'Penguin', | |
| # 'Megaphone', 'Corn', 'Lettuce', 'Garlic', 'Swan', 'Helicopter', 'Green Onion', | |
| # 'Sandwich', 'Nuts', 'Speed Limit Sign', 'Induction Cooker', 'Broom', 'Trombone', | |
| # 'Plum', 'Rickshaw', 'Goldfish', 'Kiwi fruit', 'Router/modem', 'Poker Card', 'Toaster', | |
| # 'Shrimp', 'Sushi', 'Cheese', 'Notepaper', 'Cherry', 'Pliers', 'CD', 'Pasta', 'Hammer', | |
| # 'Cue', 'Avocado', 'Hamimelon', 'Flask', 'Mushroon', 'Screwdriver', 'Soap', 'Recorder', | |
| # 'Bear', 'Eggplant', 'Board Eraser', 'Coconut', 'Tape Measur/ Ruler', 'Pig', | |
| # 'Showerhead', 'Globe', 'Chips', 'Steak', 'Crosswalk Sign', 'Stapler', 'Campel', | |
| # 'Formula 1 ', 'Pomegranate', 'Dishwasher', 'Crab', 'Hoverboard', 'Meat ball', | |
| # 'Rice Cooker', 'Tuba', 'Calculator', 'Papaya', 'Antelope', 'Parrot', 'Seal', | |
| # 'Buttefly', 'Dumbbell', 'Donkey', 'Lion', 'Urinal', 'Dolphin', 'Electric Drill', | |
| # 'Hair Dryer', 'Egg tart', 'Jellyfish', 'Treadmill', 'Lighter', 'Grapefruit', | |
| # 'Game board', 'Mop', 'Radish', 'Baozi', 'Target', 'French', 'Spring Rolls', 'Monkey', | |
| # 'Rabbit', 'Pencil Case', 'Yak', 'Red Cabbage', 'Binoculars', 'Asparagus', 'Barbell', | |
| # 'Scallop', 'Noddles', 'Comb', 'Dumpling', 'Oyster', 'Table Teniis paddle', | |
| # 'Cosmetics Brush/Eyeliner Pencil', 'Chainsaw', 'Eraser', 'Lobster', 'Durian', 'Okra', | |
| # 'Lipstick', 'Cosmetics Mirror', 'Curling', 'Table Tennis ' | |
| # ] | |
| # coco_classes = ['person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', | |
| # 'train', 'truck', 'boat', 'traffic light', 'fire hydrant', | |
| # 'stop sign', 'parking meter', 'bench', 'wild bird', 'cat', 'dog', | |
| # 'horse', 'sheep', 'cow', 'elephant', 'bear', 'zebra', 'giraffe', | |
| # 'backpack', 'umbrella', 'handbag/satchel', 'tie', 'luggage', 'frisbee', | |
| # 'skating and skiing shoes', 'snowboard', 'baseball', 'kite', 'baseball bat', | |
| # 'baseball glove', 'skateboard', 'surfboard', 'tennis racket', | |
| # 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl/basin', | |
| # 'banana', 'apple', 'sandwich', 'orange/tangerine', 'broccoli', 'carrot', | |
| # 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch', | |
| # 'potted plant', 'bed', 'dinning table', 'toilet', 'moniter/tv', 'laptop', | |
| # 'mouse', 'remote', 'keyboard', 'cell phone', 'microwave', | |
| # 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', | |
| # 'vase', 'scissors', 'stuffed toy', 'hair dryer', 'toothbrush'] | |
| def get_coco_pretrain_from_obj365(cur_tensor, pretrain_tensor): | |
| """Get coco weights from obj365 pretrained model.""" | |
| if pretrain_tensor.size() == cur_tensor.size(): | |
| return pretrain_tensor | |
| cur_tensor.requires_grad = False | |
| coco_ids = [ | |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, | |
| 25, 27, 28, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49, | |
| 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 67, 70, 72, 73, 74, | |
| 75, 76, 77, 78, 79, 80, 81, 82, 84, 85, 86, 87, 88, 89, 90 | |
| ] | |
| obj365_ids = [ | |
| 0, 46, 5, 58, 114, 55, 116, 65, 21, 40, 176, 127, 249, 24, 56, 139, 92, 78, 99, 96, | |
| 144, 295, 178, 180, 38, 39, 13, 43, 120, 219, 148, 173, 165, 154, 137, 113, 145, 146, | |
| 204, 8, 35, 10, 88, 84, 93, 26, 112, 82, 265, 104, 141, 152, 234, 143, 150, 97, 2, | |
| 50, 25, 75, 98, 153, 37, 73, 115, 132, 106, 61, 163, 134, 277, 81, 133, 18, 94, 30, | |
| 169, 70, 328, 226 | |
| ] | |
| for coco_id, obj_id in zip(coco_ids, obj365_ids): | |
| cur_tensor[coco_id] = pretrain_tensor[obj_id + 1] | |
| return cur_tensor | |