Toolkit to use BDD Dataset
Clone or download
Latest commit ddcf50a Oct 27, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bdd_data check null shape Aug 31, 2018
doc change index to frameIndex Oct 28, 2018
.gitignore add box utilities Mar 4, 2018
LICENSE Initial commit Mar 4, 2018
README.md update readme for scalabel Aug 28, 2018
requirements.txt add utilities and update format Apr 20, 2018

README.md

BDD Data

This is supporting code for BDD100K data and Scalabel.

Please check the data download on the homepage to obtain the dataset. This code supports BDD100K, in particular.

teaser

Dependency

  • Python 3
  • pip3 install -r requirements.txt

Understanding the Data

After being unzipped, all the files will reside in a folder named bdd100k. All the original videos are in bdd100k/videos and labels in bdd100k/labels. bdd100k/images contains the frame at 10th second in the corresponding video.

bdd100k/labels contains two json files based on our label format for training and validation sets. bdd_data/show_labels.py provides examples to parse and visualize the labels.

For example, you can view training data one by one

python3 -m bdd_data.show_labels.py --image-dir bdd100k/images/100k/train \
    -l bdd100k/labels/bdd100k_labels_images_train.json

Or export the drivable area in segmentation maps:

python3 -m bdd_data.show_labels.py --image-dir bdd100k/images/100k/train \
    -l bdd100k/labels/bdd100k_labels_images_train.json \
    -s 1 -o bdd100k/out_drivable_maps/train --drivable

This exporting process will take a while, so we also provide Drivable Maps in the downloading page, which will be bdd100k/drivable_maps after decompressing. There are 3 possible labels on the maps: 0 for background, 1 for direct drivable area and 2 for alternative drivable area.

Object Detection

You can export object detection in concise format by

python3 -m bdd_data.label2det.py bdd100k/labels/bdd100k_labels_images_train.json \
    bdd100k/detection_train.json

The detection label format is below, which is the same as our detection evaluation format:

[
   {
      "name": str,
      "timestamp": 1000,
      "category": str,
      "bbox": [x1, y1, x2, y2],
      "score": float
   }
]

Semantic Segmentation

At present time, instance segmentation is provided as semantic segmentation maps and polygons in json will be provided in the future. The encoding of labels should still be train_id defined in bdd_data/label.py, thus car should be 13.