The files mentioned below can also be downloaded via OpenDataLab. It is recommended to use provided command line interface for acceleration.
Subset | Split | Google Drive | Baidu Yun | md5 | Size |
---|---|---|---|---|---|
subset_A | sample | sample | sample | 21c607fa5a1930275b7f1409b25042a0 | ~300M |
subset_A | all | info | info | 95bf28ccf22583d20434d75800be065d | ~8.8G |
train | image_0 | image_0 | 8ade7daeec1b64f8ab91a50c81d812f6 | ~14.0G | |
image_1 | image_1 | c78e776f79e2394d2d5d95b7b5985e0f | ~14.3G | ||
image_2 | image_2 | 4bf09079144aa54cb4dcd5ff6e00cf79 | ~14.2G | ||
image_3 | image_3 | fd9e64345445975f462213b209632aee | ~14.4G | ||
image_4 | image_4 | ae07e48c88ea2c3f6afbdf5ff71e9821 | ~14.5G | ||
image_5 | image_5 | df62c1f6e6b3fb2a2a0868c78ab19c92 | ~14.2G | ||
image_6 | image_6 | 7bff1ce30329235f8e0f25f6f6653b8f | ~14.4G | ||
val | image_7 | image_7 | c73af4a7aef2692b96e4e00795120504 | ~21.0G | |
test | image_8 | image_8 | fb2f61e7309e0b48e2697e085a66a259 | ~21.2G | |
subset_B | coming soon | - | - | - | - |
For files in Google Drive, you can use the following command by replacing [FILE_ID]
and [FILE_NAME]
accordingly:
wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=[FILE_ID]' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=[FILE_ID]" -O [FILE_NAME]
The dataset is preprocessed into pickle files representing different collections, which then be used for training models or evaluation:
cd data
python OpenLane-V2/preprocess.py
The hierarchy of folder OpenLane-V2/
is described below:
└── OpenLane-V2
├── train
| ├── [segment_id]
| | ├── image
| | | ├── [camera]
| | | | ├── [timestamp].jpg
| | | | └── ...
| | | └── ...
| | └── info
| | ├── [timestamp].json
| | └── ...
| └── ...
├── val
| └── ...
├── test
| └── ...
├── data_dict_example.json
├── data_dict_subset_A.json
├── data_dict_subset_B.json
├── openlanev2.md5
└── preprocess.py
[segment_id]
specifies a sequence of frames, and[timestamp]
specifies a single frame in a sequence.image/
contains images captured by various cameras, andinfo/
contains meta data and annotations of a single frame.data_dict_[xxx].json
notes the split of train / val / test under the subset of data.
The json files under the info/
folder contain meta data and annotations for each frame.
Each file is formatted as follows:
{
'version': <str> -- version
'segment_id': <str> -- segment_id
'meta_data': {
'source': <str> -- name of the original dataset
'source_id': <str> -- original identifier of the segment
}
'timestamp': <int> -- timestamp of the frame
'sensor': {
[camera]: { <str> -- name of the camera
'image_path': <str> -- image path
'extrinsic': <dict> -- extrinsic parameters of the camera
'intrinsic': <dict> -- intrinsic parameters of the camera
},
...
}
'pose': <dict> -- ego pose
'annotation': <dict> -- anntations for the current frame
}
For a single frame, annotations are formatted as follow:
{
'lane_centerline': [ (n lane centerlines in the current frame)
{
'id': <int> -- unique ID in the current frame
'points': <float> [n, 3] -- 3D coordiate
'confidence': <float> -- confidence, only for prediction
},
...
],
'traffic_element': [ (k traffic elements in the current frame)
{
'id': <int> -- unique ID in the current frame
'category': <int> -- traffic element category
1: 'traffic_light',
2: 'road_sign',
'attribute': <int> -- attribute of traffic element
0: 'unknown',
1: 'red',
2: 'green',
3: 'yellow',
4: 'go_straight',
5: 'turn_left',
6: 'turn_right',
7: 'no_left_turn',
8: 'no_right_turn',
9: 'u_turn',
10: 'no_u_turn',
11: 'slight_left',
12: 'slight_right',
'points': <float> [2, 2] -- top-left and bottom-right corners of the 2D bounding box
'confidence': <float> -- confidence, only for prediction
},
...
],
'topology_lclc': <float> [n, n] -- adjacent matrix among lane centerlines
'topology_lcte': <float> [n, k] -- adjacent matrix between lane centerlines and traffic elements
}
id
is the identifier of a lane centerline or traffic element and is consistent in a sequence. For predictions, it can be randomly assigned but unique in a single frame.topology_lclc
andtopology_lcte
are adjacent matrices, where row and column are sorted according to the order of the listslane_centerline
andtraffic_element
. It is a MUST to keep the ordering the same for correct evaluation. For ground truth, only 0 or 1 is a valid boolean value for an element in the matrix. For predictions, the value varies from 0 to 1, representing the confidence of the predicted relationship.- #lane_centerline and #traffic_element are not required to be equal between ground truth and predictions. In the process of evaluation, a matching of ground truth and predictions is determined.