一、简介
真值时间戳=前视摄像头时间戳
数据集来源:nuScenes 、Argoverse
数据集结构:
图像:各视角图像、内外参
真值:车道中心线、车道线、空中元素(信号灯,道路标志)、ego pose
OpenLane-V2/data/README.md at master · OpenDriveLab/OpenLane-V2 · GitHub
二、OpenLane-V2真值结构:
{"version":"OpenLaneV2_V1.0", ##string类型
"segment_id":"00000", ##string类型
"meta_data":{"source":"ArgoverseV2","source_id":""},
"timestamp":cam_front_center_timestamp, ##float类型,18位
"sensor":{"ring_front_center":{"image_path":"", ##string类型,相对路径“train/00000/image/ring_front_center/315967376899927209.jpg”
"extrinsic":{"rotation":[], ##3x3矩阵,区别于nuscenes数据集(四元数1x4)
"translation":[] ##1x3
}, ##sensor2ego
"intrinsic":{"K":[], ##3x3
"distortion":[] ##1x3
}
}, ##三个参数
"ring_front_left":{},
"ring_front_right":{},
"ring_rear_left":{},
"ring_rear_right":{},
"ring_side_left":{},
"ring_side_right":{}}, ##7个视角
"pose":{"rotation":[], ##3x3矩阵,ego pose
"translation":[] ##1x3矩阵
},
"annotation":{} ##真值
}
其中真值annotation分两种:
(1)一种为只包含了车道中心线:
{"lane_centerline":[{"id":"",
"points":[], ##nx3,3D坐标
"is_intersection_or_connector":True,confidence?
},...],
"traffic_element":[{"id":"",
"category":1, ##int类型
"attribute":0, ##int类型
"points":[] ##2x2
},...],
"topology_lclc":[], ##40x40[n,n]
"topology_lcte":[], ##40x2[n,k]
}
(2)另一种为Map Element Bucket:包含了车道中心线以及中心线左右的车道线以及其他属性Map Element Bucket--替代OpenLane-V2真值结构中annotation对应的值
{
'lane_segment': [ (i lane segments in the current frame)
{
'id': <int> -- unique ID in the current frame
'centerline': <float> [n, 3] -- 3D coordiate
'left_laneline': <float> [n, 3] -- 3D coordiate
'left_laneline_type': <int> -- type of the left laneline
0: 'none',
1: 'solid',
2: 'dash',
'right_laneline': <float> [n, 3] -- 3D coordiate
'right_laneline_type': <int> -- type of the right laneline
'is_intersection_or_connector': <bool> -- whether the lane segment is in a intersection or connector
'confidence': <float> -- confidence, only for prediction
},
...
],
'traffic_element': [ (j 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
},
...
],
'area': [ (k areas in the current frame)
{
'id': <int> -- unique ID in the current frame
'category': <int> -- area category
1: 'pedestrian_crossing',
2: 'road_boundary',
'points': <float> [n, 3] -- 3D coordiate
'confidence': <float> -- confidence, only for prediction
},
...
],
'topology_lsls': <float> [n, n] -- adjacent matrix among lane segments
'topology_lste': <float> [n, k] -- adjacent matrix between lane segments and traffic elements
}
这两种表达中的3D点均为ego坐标系下的点:The data are in the ego coordinate system, where the ego is at (0, 0), with x-forward and y-left,其中ego坐标系中x向前,y向左。question about creating my own dataset · Issue #100 · OpenDriveLab/OpenLane-V2 · GitHub
(3)交通元素枚举:
{"category"'":{1: 'traffic_light',
2: 'road_sign'},
"attribute":{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'}
}
三、相关路径
(1)评定数据格式:
https://github.com/OpenDriveLab/OpenLane-V2/blob/master/docs/submission.md
(2)数据集下载:
https://github.com/OpenDriveLab/OpenLane-V2/blob/master/data/README.md
(3)Devkit使用:
- Centerline:
OpenLane-V2/tutorials/Centerline.ipynb at master · OpenDriveLab/OpenLane-V2 · GitHub
- LaneSegment:
OpenLane-V2/tutorials/LaneSegment.ipynb at master · OpenDriveLab/OpenLane-V2 · GitHub
(4)生成pickle文件
OpenLane-V2/data/OpenLane-V2/preprocess.py at master · OpenDriveLab/OpenLane-V2 · GitHub
四、验证
from openlanev2.lanesegment.evaluation.evaluate import evaluate
res = evaluate(ground_truth='./data_dict_sample_train_ls.pkl',
predictions='./submission.pkl')
submission中车道线点集必须为numpy格式,否则会报错: AttributeError: 'list' object has no attribute 'ndim'。计算精度时会做判断。