Using Data

Dependency

The BDD100K toolkit depends on Python 3.7+. To install the python dependencies:

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 json files based on Scalabel Format for training and validation sets. bdd100k.vis.labels provides examples to parse and visualize the labels.

For example, you can view training data one by one

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

Or export the drivable area in segmentation maps:

python3 -m bdd100k.vis.labels --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.

Trajectories

To visualize the GPS trajectories provided in bdd100k/info, you can run the command below to produce an html file that displays a single trajectory and output the results in folder out/:

python3 -m bdd100k.vis.trajectory \
    -i bdd100k/info/train/0000f77c-6257be58.json -o out/ -k {YOUR_API_KEY}

Or create html file for each GPS trajectory in a directory, for example:

python3 -m bdd100k.vis.trajectory \
    -i bdd100k/info/train -o out/ -k {YOUR_API_KEY}

To create a Google Map API key, please follow the instruction here. The generated maps will look like

Trajectory on Google Map

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 bdd100k.label.label, thus car should be 13.