本文分享国内场景3D目标检测,公开数据集 DAIR-V2X-V(也称为DAIR-V2X车端)。DAIR-V2X车端3D检测数据集是一个大规模车端多模态数据集,包括:
- 22325帧 图像数据
- 22325帧 点云数据
- 2D&3D标注
基于该数据集,可以进行车端3D目标检测任务研究,例如单目3D检测、点云3D检测和多模态3D检测。
该数据集由以下机构联合提供的,有什么问题和联系官方邮箱:Email: [email protected]
清华大学智能产业研究院(AIR)
北京市高级别自动驾驶示范区
北京车网科技发展有限公司
百度Apollo
北京智源人工智能研究院
目录
一、数据采集
二、数据标注
三、下载数据集
四、标定参数解析
五、标签解析
六、数据索引信息
七、示例数据效果
设备型号
Velodyne128 LiDAR
Camera
标定和坐标系
从车端数据中选择22325帧有效图像+点云多模态数据,利用2D&3D联合标注等技术标注图像和点云多模态数据中的道路障碍物目标的2D和3D框,同时标注了障碍物类别、障碍物3D信息、遮挡和截断等信息。其中DAIR-V2X的3D标注是以LiDAR为坐标系,同时保存如下标注信息:
类型 |
小汽车 |
卡车/大货车 |
面包车/厢式货车 |
公交车/大型旅客车 |
行人 |
英文 |
Car |
Truck |
Van |
Bus |
Pedestrian |
类型 |
自行车 |
三轮车 |
摩托车 |
手推车 |
交通锥筒 |
英文 |
Cyclist |
Tricyclist |
Motorcyclist |
Barrowlist |
Trafficcone |
来到官网下载:https://thudair.baai.ac.cn/mycount
下载后的目录如下所示
single-vehicle-side 存放calib、label、data_info.json。
single-vehicle-side-image 存放车端图像数据。
single-vehicle-side-velodyne 存放车端点云数据。
数据文件结构,如下表所示
数据 |
数据简介 |
|
single-vehicle-side |
velodyne/xxxxxx.pcd |
车端点云数据 |
image/xxxxxx.jpg |
车端图像数据 |
|
calib/lidar_to_camera/xxxxxx.json |
车端LiDAR到Camera的外参文件 |
|
calib/camera_intrinsic/xxxxxx.json |
车端Camera的内参文件 |
|
label/camera/xxxxxx.json |
标注文件,其中3D标注以相机时间戳为基准贴合图像中的障碍物目标、以LiDAR为坐标系 |
|
label/lidar/xxxxxx.json |
标注文件,其中3D标注以LiDAR时间戳为基准贴合点云中的障碍物目标、以LiDAR为坐标系 |
|
data_info.json |
数据索引相关信息 |
在single-vehicle-side/calib/camera_intrinsic目录中,示例文件 000000.json
{"cam_D": [-0.382041, 0.335649, 0.000523, 0.000634, 0.0], "cam_K": [3996.487567, 0.0, 955.58618, 0.0, 3963.430994, 527.646219, 0.0, 0.0, 1.0]}
cam_D是畸变参数;cam_K是3*3的内参矩阵。
在single-vehicle-side/calib/lidar_to_camera目录中,示例文件000000.json
{"rotation": [[0.006283, -0.999979, -0.001899], [-0.005334, 0.001865, -0.999984], [0.999966, 0.006293, -0.005322]], "translation": [[-0.298036], [-0.666812], [-0.516927]]}
rotation是3*3的旋转矩阵;translation是3*1平移向量。
图像标签:在single-vehicle-side/label/camera目录中,示例文件000000.json
[{"type": "Car", "occluded_state": 0, "truncated_state": 0, "alpha": 0.338885815438449, "2d_box": {"xmin": 0, "ymin": 527.938232, "xmax": 69.723068, "ymax": 637.4556269999999}, "3d_dimensions": {"h": 0.850836, "w": 2.073565, "l": 4.337498}, "3d_location": {"x": 32.83248, "y": 9.513366, "z": -1.261215}, "rotation": -1.615145}]
它的格式Kitti数据集基本是一致的;当然有细微差别。
{
"type": type, // 障碍物类型
"truncated_state": truncated_state, // 障碍物截断情况:从[0, 1, 2]中取值,分别表示不截断、横向截断、纵向截断
"occluded_state": occluded_state, // 障碍物遮挡情况:从[0, 1, 2]中取值,分别表示不遮挡、0%~50%遮挡,50%~100%遮挡
"alpha": alpha, // 观察者视角,从[-pi, pi]中取值
"2d_box": { // 图像中2D bounding box框
"xmin": xmin,
"ymin": ymin,
"xmax": xmax,
"ymax": ymax
},
"3d_dimensions": { // 3D bounding box长宽高
"h": height,
"w": width,
"l": length
},
"3d_location": { // 3D bounding box中心点坐标
"x": x,
"y": y,
"z": z
},
"rotation": rotation // 3D bounding box绕中心点z轴正方向为旋转轴,从y轴正方向开始旋转的角度
}
标签共有10类,如下所示。
类型 | 标签名称 |
---|---|
小汽车 | Car |
卡车/大货车 | Trunk |
面包车/厢式货车 | Van |
公交车/大型旅客车 | Bus |
行人 | Pedestrian |
自行车 | Cyclist |
三轮车 | Tricyclist |
摩托车 | Motorcyclist |
手推车 | Barrowlist |
交通锥筒 | TrafficCone |
1
点云标签:在single-vehicle-side/label/lidar目录中,示例文件000000.json
[{"type": "Car", "occluded_state": 0, "truncated_state": 0, "alpha": 0.3092128173071816, "2d_box": {"xmin": 0, "ymin": 527.938232, "xmax": 69.723068, "ymax": 637.4556269999999}, "3d_dimensions": {"h": 2.036748, "w": 2.073565, "l": 4.252306}, "3d_location": {"x": 32.84116, "y": 9.75075, "z": -1.040589}, "rotation": -1.578873}]
camera格式和lidar格式是一致的。
在single-vehicle-side/data_info.json文件,是记录数据索引相关信息。
[{"image_path": "image/000000.jpg", "image_timestamp": "1604988999001000", "pointcloud_path": "velodyne/000000.pcd", "point_cloud_stamp": "1604988999006000", "calib_camera_intrinsic_path": "calib/camera_intrinsic/000000.json", "calib_lidar_to_camera_path": "calib/lidar_to_camera/000000.json", "label_camera_std_path": "label/camera/000000.json", "label_lidar_std_path": "label/lidar/000000.json"},
{"image_path": "image/000001.jpg", "image_timestamp": "1604989000204000", "pointcloud_path": "velodyne/000001.pcd", "point_cloud_stamp": "1604989000206000", "calib_camera_intrinsic_path": "calib/camera_intrinsic/000001.json", "calib_lidar_to_camera_path": "calib/lidar_to_camera/000001.json", "label_camera_std_path": "label/camera/000001.json", "label_lidar_std_path": "label/lidar/000001.json"},
{"image_path": "image/000002.jpg", "image_timestamp": "1604989078801000", "pointcloud_path": "velodyne/000002.pcd", "point_cloud_stamp": "1604989078805000", "calib_camera_intrinsic_path": "calib/camera_intrinsic/000002.json", "calib_lidar_to_camera_path": "calib/lidar_to_camera/000002.json", "label_camera_std_path": "label/camera/000002.json", "label_lidar_std_path": "label/lidar/000002.json"},
对于的格式如下:
类型 | 字段 | 含义 |
---|---|---|
camera | image_path |
图像路径 |
camera | image_timestamp |
图像时间戳 |
lidar | pointcloud_path |
点云路径 |
lidar | pointcloud_timestamp |
点云时间戳 |
label | label_lidar_path |
以点云时间戳为基准标注结果路径 |
label | label_camera_path |
以图像时间戳为基准标注结果路径 |
calib | calib_lidar_to_camera_path |
LiDAR坐标系到相机坐标系参数路径 |
calib | calib_lidar_to_novatel_path |
LiDAR坐标系到NovAtel坐标系参数路径 |
calib | calib_novatel_to_world_path |
NovAtel坐标系到世界坐标系参数路径 |
calib | calib_camera_intrinsic_path |
相机参数路径 |
cooperative | batch_id |
数据片段编号:车端与路端共享相同的batch_id |
cooperative | intersection_loc |
数据采集所在路口名称 |
cooperative | batch_start_id |
数据片段起始编号 |
cooperative | batch_end_id |
数据片段结束编号 |
示例图像数据:
分享完毕~