Spaces:
Sleeping
Sleeping
| # YOLOv5 π by Ultralytics, AGPL-3.0 license | |
| # Objects365 dataset https://www.objects365.org/ by Megvii | |
| # Example usage: python train.py --data Objects365.yaml | |
| # parent | |
| # βββ yolov5 | |
| # βββ datasets | |
| # βββ Objects365 β downloads here (712 GB = 367G data + 345G zips) | |
| # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..] | |
| path: ../datasets/Objects365 # dataset root dir | |
| train: images/train # train images (relative to 'path') 1742289 images | |
| val: images/val # val images (relative to 'path') 80000 images | |
| test: # test images (optional) | |
| # Classes | |
| names: | |
| 0: Person | |
| 1: Sneakers | |
| 2: Chair | |
| 3: Other Shoes | |
| 4: Hat | |
| 5: Car | |
| 6: Lamp | |
| 7: Glasses | |
| 8: Bottle | |
| 9: Desk | |
| 10: Cup | |
| 11: Street Lights | |
| 12: Cabinet/shelf | |
| 13: Handbag/Satchel | |
| 14: Bracelet | |
| 15: Plate | |
| 16: Picture/Frame | |
| 17: Helmet | |
| 18: Book | |
| 19: Gloves | |
| 20: Storage box | |
| 21: Boat | |
| 22: Leather Shoes | |
| 23: Flower | |
| 24: Bench | |
| 25: Potted Plant | |
| 26: Bowl/Basin | |
| 27: Flag | |
| 28: Pillow | |
| 29: Boots | |
| 30: Vase | |
| 31: Microphone | |
| 32: Necklace | |
| 33: Ring | |
| 34: SUV | |
| 35: Wine Glass | |
| 36: Belt | |
| 37: Monitor/TV | |
| 38: Backpack | |
| 39: Umbrella | |
| 40: Traffic Light | |
| 41: Speaker | |
| 42: Watch | |
| 43: Tie | |
| 44: Trash bin Can | |
| 45: Slippers | |
| 46: Bicycle | |
| 47: Stool | |
| 48: Barrel/bucket | |
| 49: Van | |
| 50: Couch | |
| 51: Sandals | |
| 52: Basket | |
| 53: Drum | |
| 54: Pen/Pencil | |
| 55: Bus | |
| 56: Wild Bird | |
| 57: High Heels | |
| 58: Motorcycle | |
| 59: Guitar | |
| 60: Carpet | |
| 61: Cell Phone | |
| 62: Bread | |
| 63: Camera | |
| 64: Canned | |
| 65: Truck | |
| 66: Traffic cone | |
| 67: Cymbal | |
| 68: Lifesaver | |
| 69: Towel | |
| 70: Stuffed Toy | |
| 71: Candle | |
| 72: Sailboat | |
| 73: Laptop | |
| 74: Awning | |
| 75: Bed | |
| 76: Faucet | |
| 77: Tent | |
| 78: Horse | |
| 79: Mirror | |
| 80: Power outlet | |
| 81: Sink | |
| 82: Apple | |
| 83: Air Conditioner | |
| 84: Knife | |
| 85: Hockey Stick | |
| 86: Paddle | |
| 87: Pickup Truck | |
| 88: Fork | |
| 89: Traffic Sign | |
| 90: Balloon | |
| 91: Tripod | |
| 92: Dog | |
| 93: Spoon | |
| 94: Clock | |
| 95: Pot | |
| 96: Cow | |
| 97: Cake | |
| 98: Dinning Table | |
| 99: Sheep | |
| 100: Hanger | |
| 101: Blackboard/Whiteboard | |
| 102: Napkin | |
| 103: Other Fish | |
| 104: Orange/Tangerine | |
| 105: Toiletry | |
| 106: Keyboard | |
| 107: Tomato | |
| 108: Lantern | |
| 109: Machinery Vehicle | |
| 110: Fan | |
| 111: Green Vegetables | |
| 112: Banana | |
| 113: Baseball Glove | |
| 114: Airplane | |
| 115: Mouse | |
| 116: Train | |
| 117: Pumpkin | |
| 118: Soccer | |
| 119: Skiboard | |
| 120: Luggage | |
| 121: Nightstand | |
| 122: Tea pot | |
| 123: Telephone | |
| 124: Trolley | |
| 125: Head Phone | |
| 126: Sports Car | |
| 127: Stop Sign | |
| 128: Dessert | |
| 129: Scooter | |
| 130: Stroller | |
| 131: Crane | |
| 132: Remote | |
| 133: Refrigerator | |
| 134: Oven | |
| 135: Lemon | |
| 136: Duck | |
| 137: Baseball Bat | |
| 138: Surveillance Camera | |
| 139: Cat | |
| 140: Jug | |
| 141: Broccoli | |
| 142: Piano | |
| 143: Pizza | |
| 144: Elephant | |
| 145: Skateboard | |
| 146: Surfboard | |
| 147: Gun | |
| 148: Skating and Skiing shoes | |
| 149: Gas stove | |
| 150: Donut | |
| 151: Bow Tie | |
| 152: Carrot | |
| 153: Toilet | |
| 154: Kite | |
| 155: Strawberry | |
| 156: Other Balls | |
| 157: Shovel | |
| 158: Pepper | |
| 159: Computer Box | |
| 160: Toilet Paper | |
| 161: Cleaning Products | |
| 162: Chopsticks | |
| 163: Microwave | |
| 164: Pigeon | |
| 165: Baseball | |
| 166: Cutting/chopping Board | |
| 167: Coffee Table | |
| 168: Side Table | |
| 169: Scissors | |
| 170: Marker | |
| 171: Pie | |
| 172: Ladder | |
| 173: Snowboard | |
| 174: Cookies | |
| 175: Radiator | |
| 176: Fire Hydrant | |
| 177: Basketball | |
| 178: Zebra | |
| 179: Grape | |
| 180: Giraffe | |
| 181: Potato | |
| 182: Sausage | |
| 183: Tricycle | |
| 184: Violin | |
| 185: Egg | |
| 186: Fire Extinguisher | |
| 187: Candy | |
| 188: Fire Truck | |
| 189: Billiards | |
| 190: Converter | |
| 191: Bathtub | |
| 192: Wheelchair | |
| 193: Golf Club | |
| 194: Briefcase | |
| 195: Cucumber | |
| 196: Cigar/Cigarette | |
| 197: Paint Brush | |
| 198: Pear | |
| 199: Heavy Truck | |
| 200: Hamburger | |
| 201: Extractor | |
| 202: Extension Cord | |
| 203: Tong | |
| 204: Tennis Racket | |
| 205: Folder | |
| 206: American Football | |
| 207: earphone | |
| 208: Mask | |
| 209: Kettle | |
| 210: Tennis | |
| 211: Ship | |
| 212: Swing | |
| 213: Coffee Machine | |
| 214: Slide | |
| 215: Carriage | |
| 216: Onion | |
| 217: Green beans | |
| 218: Projector | |
| 219: Frisbee | |
| 220: Washing Machine/Drying Machine | |
| 221: Chicken | |
| 222: Printer | |
| 223: Watermelon | |
| 224: Saxophone | |
| 225: Tissue | |
| 226: Toothbrush | |
| 227: Ice cream | |
| 228: Hot-air balloon | |
| 229: Cello | |
| 230: French Fries | |
| 231: Scale | |
| 232: Trophy | |
| 233: Cabbage | |
| 234: Hot dog | |
| 235: Blender | |
| 236: Peach | |
| 237: Rice | |
| 238: Wallet/Purse | |
| 239: Volleyball | |
| 240: Deer | |
| 241: Goose | |
| 242: Tape | |
| 243: Tablet | |
| 244: Cosmetics | |
| 245: Trumpet | |
| 246: Pineapple | |
| 247: Golf Ball | |
| 248: Ambulance | |
| 249: Parking meter | |
| 250: Mango | |
| 251: Key | |
| 252: Hurdle | |
| 253: Fishing Rod | |
| 254: Medal | |
| 255: Flute | |
| 256: Brush | |
| 257: Penguin | |
| 258: Megaphone | |
| 259: Corn | |
| 260: Lettuce | |
| 261: Garlic | |
| 262: Swan | |
| 263: Helicopter | |
| 264: Green Onion | |
| 265: Sandwich | |
| 266: Nuts | |
| 267: Speed Limit Sign | |
| 268: Induction Cooker | |
| 269: Broom | |
| 270: Trombone | |
| 271: Plum | |
| 272: Rickshaw | |
| 273: Goldfish | |
| 274: Kiwi fruit | |
| 275: Router/modem | |
| 276: Poker Card | |
| 277: Toaster | |
| 278: Shrimp | |
| 279: Sushi | |
| 280: Cheese | |
| 281: Notepaper | |
| 282: Cherry | |
| 283: Pliers | |
| 284: CD | |
| 285: Pasta | |
| 286: Hammer | |
| 287: Cue | |
| 288: Avocado | |
| 289: Hamimelon | |
| 290: Flask | |
| 291: Mushroom | |
| 292: Screwdriver | |
| 293: Soap | |
| 294: Recorder | |
| 295: Bear | |
| 296: Eggplant | |
| 297: Board Eraser | |
| 298: Coconut | |
| 299: Tape Measure/Ruler | |
| 300: Pig | |
| 301: Showerhead | |
| 302: Globe | |
| 303: Chips | |
| 304: Steak | |
| 305: Crosswalk Sign | |
| 306: Stapler | |
| 307: Camel | |
| 308: Formula 1 | |
| 309: Pomegranate | |
| 310: Dishwasher | |
| 311: Crab | |
| 312: Hoverboard | |
| 313: Meat ball | |
| 314: Rice Cooker | |
| 315: Tuba | |
| 316: Calculator | |
| 317: Papaya | |
| 318: Antelope | |
| 319: Parrot | |
| 320: Seal | |
| 321: Butterfly | |
| 322: Dumbbell | |
| 323: Donkey | |
| 324: Lion | |
| 325: Urinal | |
| 326: Dolphin | |
| 327: Electric Drill | |
| 328: Hair Dryer | |
| 329: Egg tart | |
| 330: Jellyfish | |
| 331: Treadmill | |
| 332: Lighter | |
| 333: Grapefruit | |
| 334: Game board | |
| 335: Mop | |
| 336: Radish | |
| 337: Baozi | |
| 338: Target | |
| 339: French | |
| 340: Spring Rolls | |
| 341: Monkey | |
| 342: Rabbit | |
| 343: Pencil Case | |
| 344: Yak | |
| 345: Red Cabbage | |
| 346: Binoculars | |
| 347: Asparagus | |
| 348: Barbell | |
| 349: Scallop | |
| 350: Noddles | |
| 351: Comb | |
| 352: Dumpling | |
| 353: Oyster | |
| 354: Table Tennis paddle | |
| 355: Cosmetics Brush/Eyeliner Pencil | |
| 356: Chainsaw | |
| 357: Eraser | |
| 358: Lobster | |
| 359: Durian | |
| 360: Okra | |
| 361: Lipstick | |
| 362: Cosmetics Mirror | |
| 363: Curling | |
| 364: Table Tennis | |
| # Download script/URL (optional) --------------------------------------------------------------------------------------- | |
| download: | | |
| from tqdm import tqdm | |
| from utils.general import Path, check_requirements, download, np, xyxy2xywhn | |
| check_requirements('pycocotools>=2.0') | |
| from pycocotools.coco import COCO | |
| # Make Directories | |
| dir = Path(yaml['path']) # dataset root dir | |
| for p in 'images', 'labels': | |
| (dir / p).mkdir(parents=True, exist_ok=True) | |
| for q in 'train', 'val': | |
| (dir / p / q).mkdir(parents=True, exist_ok=True) | |
| # Train, Val Splits | |
| for split, patches in [('train', 50 + 1), ('val', 43 + 1)]: | |
| print(f"Processing {split} in {patches} patches ...") | |
| images, labels = dir / 'images' / split, dir / 'labels' / split | |
| # Download | |
| url = f"https://dorc.ks3-cn-beijing.ksyun.com/data-set/2020Objects365%E6%95%B0%E6%8D%AE%E9%9B%86/{split}/" | |
| if split == 'train': | |
| download([f'{url}zhiyuan_objv2_{split}.tar.gz'], dir=dir, delete=False) # annotations json | |
| download([f'{url}patch{i}.tar.gz' for i in range(patches)], dir=images, curl=True, delete=False, threads=8) | |
| elif split == 'val': | |
| download([f'{url}zhiyuan_objv2_{split}.json'], dir=dir, delete=False) # annotations json | |
| download([f'{url}images/v1/patch{i}.tar.gz' for i in range(15 + 1)], dir=images, curl=True, delete=False, threads=8) | |
| download([f'{url}images/v2/patch{i}.tar.gz' for i in range(16, patches)], dir=images, curl=True, delete=False, threads=8) | |
| # Move | |
| for f in tqdm(images.rglob('*.jpg'), desc=f'Moving {split} images'): | |
| f.rename(images / f.name) # move to /images/{split} | |
| # Labels | |
| coco = COCO(dir / f'zhiyuan_objv2_{split}.json') | |
| names = [x["name"] for x in coco.loadCats(coco.getCatIds())] | |
| for cid, cat in enumerate(names): | |
| catIds = coco.getCatIds(catNms=[cat]) | |
| imgIds = coco.getImgIds(catIds=catIds) | |
| for im in tqdm(coco.loadImgs(imgIds), desc=f'Class {cid + 1}/{len(names)} {cat}'): | |
| width, height = im["width"], im["height"] | |
| path = Path(im["file_name"]) # image filename | |
| try: | |
| with open(labels / path.with_suffix('.txt').name, 'a') as file: | |
| annIds = coco.getAnnIds(imgIds=im["id"], catIds=catIds, iscrowd=False) | |
| for a in coco.loadAnns(annIds): | |
| x, y, w, h = a['bbox'] # bounding box in xywh (xy top-left corner) | |
| xyxy = np.array([x, y, x + w, y + h])[None] # pixels(1,4) | |
| x, y, w, h = xyxy2xywhn(xyxy, w=width, h=height, clip=True)[0] # normalized and clipped | |
| file.write(f"{cid} {x:.5f} {y:.5f} {w:.5f} {h:.5f}\n") | |
| except Exception as e: | |
| print(e) | |