-
Notifications
You must be signed in to change notification settings - Fork 5
Downloading AOT dataset
📚 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
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 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
│ │ ├── [...]
-
groundtruth.json(and its tabular representationgroundtruth.csv), which containsmetadataandground truthinformation about sequence images. - In word,
groundtruth.jsoncontains all the relevant information regarding airborne objects, their locations, bbox and so on. While theImagesfolder 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.samplesingroundtruth): Oneflightis typically 2 minutes video at 10 fps i.e. 1200 images. Each of the frames are present inImages/{{flight_id}}/folder. These files are typically 3-4mb each. -
frame(a.k.a.entityingroundtruth): This is the most granular unit on which dataset can be sampled. Each frame have informationtimestamp,frame_id, andlabelis_above_horizon. There can be multiple entries for same frame inentitywhen 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 objectsrange_distance_mis available
-
-
Sequence format: Each
sequenceis contained in adirectorylabel with a Universally Unique Identifier (UUID), thedirectorythen contains the images of thesequencecaptured 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.jsonfiles contain 2 keys:metadataandsamplesorganized 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
}- Each
samplesequence is then provided with its ownmetadataandentitites:
{
"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)
}- Finally, each
entitycorresponds to an image ground truth label. If the label corresponds to aplannedairborne object, its distance information may be available. Note that distance data is not available for othernon-plannedairborne 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",
}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.
- Only available whether we defined
partial = True -
valid_encounters_maxRange700_maxGap3_minEncLen30.jsoncontains 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 fromvalid_encounters_maxRange700_maxGap3_minEncLen30.json(image names that correspond to each encounter are omitted).
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