Skip to content

Register now for

# Objects365 Dataset

The Objects365 dataset is a large-scale, high-quality dataset designed to foster object detection research with a focus on diverse objects in the wild. Created by a team of Megvii researchers, the dataset offers a wide range of high-resolution images with a comprehensive set of annotated bounding boxes covering 365 object categories.

Watch: How to Train Ultralytics YOLO11 on the Objects365 Dataset with Ultralytics | 2M Annotations 🚀

## Key Features

- Objects365 contains 365 object categories, with 2 million images and over 30 million bounding boxes.
- The dataset includes diverse objects in various scenarios, providing a rich and challenging benchmark for object detection tasks.
- Annotations include bounding boxes for objects, making it suitable for training and evaluating object detection models.
- Objects365 pre-trained models significantly outperform ImageNet pre-trained models, leading to better generalization on various tasks.

## Dataset Structure

The Objects365 dataset is organized into a single set of images with corresponding annotations:

- Images: The dataset includes 2 million high-resolution images, each containing a variety of objects across 365 categories.
- Annotations: The images are annotated with over 30 million bounding boxes, providing comprehensive ground truth information for object detection tasks.

## Applications

The Objects365 dataset is widely used for training and evaluating deep learning models in object detection tasks. The dataset's diverse set of object categories and high-quality annotations make it a valuable resource for researchers and practitioners in the field of computer vision.

## Dataset YAML

A YAML (Yet Another Markup Language) file is used to define the dataset configuration. It contains information about the dataset's paths, classes, and other relevant information. For the case of the Objects365 Dataset, the `Objects365.yaml` file is maintained at https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/Objects365.yaml.

ultralytics/cfg/datasets/Objects365.yaml

    # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

    # Objects365 dataset https://www.objects365.org/ by Megvii
    # Documentation: https://docs.ultralytics.com/datasets/detect/objects365/
    # 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: 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: Dining 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: Hami melon
      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: Meatball
      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 pathlib import Path

      import numpy as np

      from ultralytics.utils import TQDM
      from ultralytics.utils.checks import check_requirements
      from ultralytics.utils.downloads import download
      from ultralytics.utils.ops import xyxy2xywhn

      check_requirements("faster-coco-eval")
      from faster_coco_eval 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", encoding="utf-8") 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)

## Usage

To train a YOLO11n model on the Objects365 dataset for 100 epochs with an image size of 640, you can use the following code snippets. For a comprehensive list of available arguments, refer to the model Training page.

Train Example

Python CLI

    from ultralytics import YOLO

    # Load a model
    model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

    # Train the model
    results = model.train(data="Objects365.yaml", epochs=100, imgsz=640)

    # Start training from a pretrained *.pt model
    yolo detect train data=Objects365.yaml model=yolo11n.pt epochs=100 imgsz=640

## Sample Data and Annotations

The Objects365 dataset contains a diverse set of high-resolution images with objects from 365 categories, providing rich context for object detection tasks. Here are some examples of the images in the dataset:

- Objects365: This image demonstrates an example of object detection, where objects are annotated with bounding boxes. The dataset provides a wide range of images to facilitate the development of models for this task.

The example showcases the variety and complexity of the data in the Objects365 dataset and highlights the importance of accurate object detection for computer vision applications.

## Citations and Acknowledgments

If you use the Objects365 dataset in your research or development work, please cite the following paper:

BibTeX

    @inproceedings{shao2019objects365,
      title={Objects365: A Large-scale, High-quality Dataset for Object Detection},
      author={Shao, Shuai and Li, Zeming and Zhang, Tianyuan and Peng, Chao and Yu, Gang and Li, Jing and Zhang, Xiangyu and Sun, Jian},
      booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision},
      pages={8425--8434},
      year={2019}
    }

We would like to acknowledge the team of researchers who created and maintain the Objects365 dataset as a valuable resource for the computer vision research community. For more information about the Objects365 dataset and its creators, visit the Objects365 dataset website.

## FAQ

### What is the Objects365 dataset used for?

The Objects365 dataset is designed for object detection tasks in machine learning and computer vision. It provides a large-scale, high-quality dataset with 2 million annotated images and 30 million bounding boxes across 365 categories. Leveraging such a diverse dataset helps improve the performance and generalization of object detection models, making it invaluable for research and development in the field.

### How can I train a YOLO11 model on the Objects365 dataset?

To train a YOLO11n model using the Objects365 dataset for 100 epochs with an image size of 640, follow these instructions:

Train Example

Python CLI

    from ultralytics import YOLO

    # Load a model
    model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

    # Train the model
    results = model.train(data="Objects365.yaml", epochs=100, imgsz=640)

    # Start training from a pretrained *.pt model
    yolo detect train data=Objects365.yaml model=yolo11n.pt epochs=100 imgsz=640

Refer to the Training page for a comprehensive list of available arguments.

### Why should I use the Objects365 dataset for my object detection projects?

The Objects365 dataset offers several advantages for object detection tasks:

1. Diversity: It includes 2 million images with objects in diverse scenarios, covering 365 categories.
2. High-quality Annotations: Over 30 million bounding boxes provide comprehensive ground truth data.
3. Performance: Models pre-trained on Objects365 significantly outperform those trained on datasets like ImageNet, leading to better generalization.

### Where can I find the YAML configuration file for the Objects365 dataset?

The YAML configuration file for the Objects365 dataset is available at Objects365.yaml. This file contains essential information such as dataset paths and class labels, crucial for setting up your training environment.

### How does the dataset structure of Objects365 enhance object detection modeling?

The Objects365 dataset is organized with 2 million high-resolution images and comprehensive annotations of over 30 million bounding boxes. This structure ensures a robust dataset for training deep learning models in object detection, offering a wide variety of objects and scenarios. Such diversity and volume help in developing models that are more accurate and capable of generalizing well to real-world applications. For more details on the dataset structure, refer to the Dataset YAML section.

📅 Created 1 year ago ✏️ Updated 3 months ago

## Comments