Skip to content

Downloading AOT dataset

Vương Tuấn Khanh edited this page Dec 20, 2021 · 3 revisions

📚 This guide explains the details of downloading process and directory structure of the AOT Dataset 🚀. UPDATED 24 August 2021.

Reference: https://www.aicrowd.com/challenges/airborne-object-tracking-challenge

📥 Accessing Training Dataset

The complete training dataset size is nearly 13TB. You can also download partial dataset (500G) using partial=True flag in Dataset. It includes all the frames with valid encounter of planned airborne object.

You can access the dataset in public S3 bucket hosted at s3://airborne-obj-detection-challenge-training/

🗃 Dataset directory structure

Dataset Folder Structure: The dataset is given as a training directory, while the validation and test sets are kept separate and not available to competitors. To ensure generalization, sequences collected the same day are either in the training dataset, or in validation / test dataset. They cannot be split between the two datasets (validation and test sets can share common days/ areas).

The training set is further split into smaller directories (to facilitate download), each one containing ImageSets and Images folders.

data
├── part1
│   ├── ImageSets
│   │   └── groundtruth.json
│   │   └── valid_encounters_maxRange700_maxGap3_minEncLen30.json
│   └── Images
│       ├── 1497343b9d90411db5c305e785be9032
│       │   ├── 15580184151527797371497343b9d90411db5c305e785be9032.png
│       │   └── [...]
│       ├── 1f9a42f2d2194622b845bf5ad9ba1fce
│       │   ├── 15445285838485478651f9a42f2d2194622b845bf5ad9ba1fce.png
│       │   ├── [...]
│  
├── part2
│   └── ImageSets
│   |   └── groundtruth.json
│   │   └── valid_encounters_maxRange700_maxGap3_minEncLen30.json
│   └── Images
│       ├── [...]
│  
├── part3
│   ├── ImageSets
│   │   └── groundtruth.json
│   │   └── valid_encounters_maxRange700_maxGap3_minEncLen30.json
│   └── Images
│       └── f3b3af98f63543a0965fab8b005b13c7
│       |   ├── 1568218496792027402f3b3af98f63543a0965fab8b005b13c7.png
│       │   ├── [...]

💾 The ImageSets Folder

📃 The Ground Truth Folder

  • groundtruth.json (and its tabular representation groundtruth.csv), which contains metadata and ground truth information about sequence images.
  • In word, groundtruth.json contains all the relevant information regarding airborne objects, their locations, bbox and so on. While the Images folder have accompanied images for our training code to work on.

Before we start, let's check the vocabulary we will need to understand the dataset:

  • flights (a.k.a. samples in groundtruth): One flight is typically 2 minutes video at 10 fps i.e. 1200 images. Each of the frames are present in Images/{{flight_id}}/ folder. These files are typically 3-4mb each.

  • frame (a.k.a. entity in groundtruth): This is the most granular unit on which dataset can be sampled. Each frame have information timestamp, frame_id, and label is_above_horizon. There can be multiple entries for same frame in entity when multiple Airborne objects are present.

  • When an Airborne object following information is available as well:

    • id => signifies unique ID of this object (for whole frame)
    • bbox => it contains 4 floats signifying [left, top, width, height]
    • blob['range_distance_m'] => distance of airborne object
    • labels['is_above_horizon'] => It is marked as 1 when Airborne object is above horizon and -1 when it is below horizon. When unclear, it is marked as 0.
    • (derived) planned => for the planned objects range_distance_m is available
  • Sequence format: Each sequence is contained in a directory label with a Universally Unique Identifier (UUID), the directory then contains the images of the sequence captured at 10 Hz.

  • Image format: 2448 pixels wide by 2048 pixels high, encoded as 8-bit grayscale images and saved as PNG files (lossless compression). The filenames follow the convention .png. The timestamp is 19 characters, and the UUID is 32 characters. The field of view of the camera is 67.8 by 56.8 degrees, for an angular resolution of 0.48 mrad per pixel.

  • Ground truth format: The groundtruth.json files contain 2 keys: metadata and samples organized as follows.

{
  "metadata": {
    "description": "PrimeAir, camera 0 ",  # Description of the sequences
    "last_modified": "Jan-08-2021 23:27:55",  # Last time the file was modified
    "version": "1.0",  # Version of the ground truth file
  },
  "samples": "[...]",  # Collection of sample sequences
}
Code Block 1: structure of the groundtruth.json files
  • Each sample sequence is then provided with its own metadata and entitites:
{
  "metadata": {
    "data_path": "train/673f29c3e4b4428fa26bc55d812d45d9/",  # Relative path to video
    "fps": 10.0,  # Frequency of the capture in frames per second (FPS)
    "number_of_frames": 1199,  # Number of frames in the sequence
    "resolution": {
        "height": 2048,  # Height of the images in the sequence
        "width": 2448,  # Width of the images in the sequence
    },
  },
  "entities": [...],  # Collection of entities (frames / objects)
}
Code Block 2: structure of a sample sequence
  • Finally, each entity corresponds to an image ground truth label. If the label corresponds to a planned airborne object, its distance information may be available. Note that distance data is not available for other non-planned airborne objects in the scene. When such fields may not be available, they are marked as optional below. For example, one image frame may not contain an object label if not airborne object is present in the scene, however some information about the image is still provided (frame number and timestamp).
{
  "time": 1573043646380340792,  # Timestamp associated with the image
  "blob": {
    "frame": 3,  # Frame number associated with the image
    "range_distance_m": 1366,  # (optional) Distance to planned airborne objects [m]
  },
  "id": "Airplane1",  # (optional) Identifier for the label (unique for the sequence)
  "bb": [1355.2, 1133.4, 6.0, 6.0],  # (optional), Bounding box [top, left, width, height]
  "labels": {
    "is_above_horizon": -1, # the object is Below(-1)/Not clear(0)/Above(1) the horizon
  },
  "flight_id": "673f29c3e4b4428fa26bc55d812d45d9",
  "img_name": "1566556046185850341673f29c3e4b4428fa26bc55d812d45d9.png",
}
Code Block 3: structure of an entity (image label)

Please note that the entire training contains nearly 12TB. To experiment with less flights/images, please review valid_encounters_maxRange700_maxGap3_minEncLen30.json (provided in each training folder), which contains information about encounters (defined in the Benchmarks section). For each encounter, we provide the corresponding sequence (sub-folder) name, relevant image names and additional information on distance statistics of aircraft in the encounter, if the encounter is below or above horizon and its length in frames.

📑 The valid_encounters_maxRange700_maxGap3_minEncLen30 Folder

  • Only available whether we defined partial = True
  • valid_encounters_maxRange700_maxGap3_minEncLen30.json contains information about encounters (defined in the 🎯 Benchmarks section) with planned aircraft within 700m. distance, which last at least 3 seconds.
    • For each encounter, I provide the corresponding sequence (sub-folder) name, relevant image names and additional information on distance statistics of aircraft in the encounter, if the encounter is below or above horizon and its length in frames.
    • This file provides information on a representative set of images / sequences to start training with, in case usage of the full dataset is not possible.
  • valid_encounters_maxRange700_maxGap3_minEncLen30.csv – tabular representation of encounter information from valid_encounters_maxRange700_maxGap3_minEncLen30.json (image names that correspond to each encounter are omitted).

💽 The Images Folder

The Images folder finally holds images sampled from one sequence per directory (directory name is unique per each Images folder, but can repeat across in different Images folders). An overview of the dataset split is provided in Table 2 below.

Directory Size (TB) Sequences Images Labels
training 11.3 4,154 4,975,765 2,891,891
validation + test 2.1 789 943,852 496,075
TOTAL 13.4 4,943 5,919,617 3,387,966

Table 2: Dataset size

Clone this wiki locally