123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443 |
- # Ultralytics YOLO 🚀, AGPL-3.0 license
- # Objects365 dataset https://www.objects365.org/ by Megvii
- # Example usage: yolo train data=Objects365.yaml
- # parent
- # ├── ultralytics
- # └── 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 ultralytics.utils.checks import check_requirements
- from ultralytics.utils.downloads import download
- from ultralytics.utils.ops import xyxy2xywhn
- import numpy as np
- from pathlib import Path
- 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) # annotations json
- download([f'{url}patch{i}.tar.gz' for i in range(patches)], dir=images, curl=True, threads=8)
- elif split == 'val':
- download([f'{url}zhiyuan_objv2_{split}.json'], dir=dir) # annotations json
- download([f'{url}images/v1/patch{i}.tar.gz' for i in range(15 + 1)], dir=images, curl=True, threads=8)
- download([f'{url}images/v2/patch{i}.tar.gz' for i in range(16, patches)], dir=images, curl=True, 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=None)
- 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)
|