3D目标检测数据集 DAIR-V2X-V

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 本文分享国内场景3D目标检测,公开数据集 DAIR-V2X-V(也称为DAIR-V2X车端)。DAIR-V2X车端3D检测数据集是一个大规模车端多模态数据集,包括:22325帧 图像数据22325帧 点云数据2D&3D标注基于该数据集,可以进行车端3D目标检测任务研究,例如单目3D检测、点云3D检测和多模态3D检测。

 一、数据采集

设备型号

Velodyne128 LiDAR

  • - 采样帧率:10HZ
  • - 水平FOV:360,垂直FOV:40°,-25°~15°
  • - 最大探测范围:245m;探测距离精度:<=3cm;最小角分辨率(垂直):0.11°

Camera

  • - 图像分辨率:1920x1080


标定和坐标系

  • 完备的车端3D感知需要获取相机和LiDAR传感器数据的相互位置和内外参数等,以建立不同传感器数据间的空间同步。
  • - LiDAR坐标系
  • LiDAR坐标系是以LiDAR传感器的几何中心为原点,x 轴水平向前,y 轴水平向左,z 轴竖直向上,符合右手坐标系规则。
  • - 相机坐标系
  • 相机坐标系是以相机光心为原点,x 轴和y 轴与图像平面坐标系的x 轴和y 轴平行,z 轴与相机光轴平行向前、与图像平面垂直。通过LiDAR到相机的外参矩阵,可以将点从LiDAR坐标系转到相机坐标系。
  • - 图像坐标系
  • 图像坐标是以相机主点(即相机光轴与图像平面的交点,一般位于图像平面中心)为原点,x 轴 水平向右,y 轴水平向下的二维坐标系。相机内参可以实现从相机坐标到图像坐标的投影。


二、数据标注

从车端数据中选择22325帧有效图像+点云多模态数据,利用2D&3D联合标注等技术标注图像和点云多模态数据中的道路障碍物目标的2D和3D框,同时标注了障碍物类别、障碍物3D信息、遮挡和截断等信息。其中DAIR-V2X的3D标注是以LiDAR为坐标系,同时保存如下标注信息:

  • - 障碍物类别:一共10类,包括行人、机动车等

类型

小汽车

卡车/大货车

面包车/厢式货车

公交车/大型旅客车

行人

英文

Car

Truck

Van

Bus

Pedestrian

类型

自行车

三轮车

摩托车

手推车

交通锥筒

英文

Cyclist

Tricyclist

Motorcyclist

Barrowlist

Trafficcone

  • - 障碍物截断:从[0, 1, 2]中取值,分别表示不截断、横向截断、纵向截断
  • - 障碍物遮挡:从[0, 1, 2]中取值,分别表示不遮挡、0%~50%遮挡,50%~100%遮挡
  • - 2D box:图像中2D bounding box框
  • - 3D box:点云上3D bounding box,车端基于LiDAR坐标系,路端基于虚拟LiDAR坐标系;包括 (height, width, length, x_loc, y_loc, z_loc, rotation),其中rotation表示障碍物绕Z轴旋转角度


三、下载数据集

来到官网下载:https://thudair.baai.ac.cn/mycount

image.gif

下载后的目录如下所示

image.gif

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轴正方向开始旋转的角度
}

image.gif

标签共有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 数据片段结束编号


七、示例数据效果

示例图像数据:

image.gif

image.gif


image.gif


分享完毕~

相关文章
|
编解码 算法 数据可视化
源码解读 | 单目相机实现3D目标检测—CaDDN
源码解读 | 单目相机实现3D目标检测—CaDDN
938 0
|
存储 机器学习/深度学习 算法
MMDetection3d对KITT数据集的训练与评估介绍
MMDetection3d对KITT数据集的训练与评估介绍
3725 0
MMDetection3d对KITT数据集的训练与评估介绍
|
传感器 机器学习/深度学习 自动驾驶
自动驾驶:BEV开山之作LSS(lift,splat,shoot)原理代码串讲
自动驾驶:BEV开山之作LSS(lift,splat,shoot)原理代码串讲
6111 1
自动驾驶:BEV开山之作LSS(lift,splat,shoot)原理代码串讲
|
存储 数据采集 传感器
一文多图搞懂KITTI数据集下载及解析
一文多图搞懂KITTI数据集下载及解析
17117 3
一文多图搞懂KITTI数据集下载及解析
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
28483 59
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
存储 传感器 数据可视化
3D目标检测数据集 KITTI(标签格式解析、3D框可视化、点云转图像、BEV鸟瞰图)
本文介绍在3D目标检测中,理解和使用KITTI 数据集,包括KITTI 的基本情况、下载数据集、标签格式解析、3D框可视化、点云转图像、画BEV鸟瞰图等,并配有实现代码。
5977 1
|
机器学习/深度学习 传感器 算法
单目3D目标检测 方法综述——直接回归方法、基于深度信息方法、基于点云信息方法
本文综合整理单目3D目标检测的方法模型,包括:基于几何约束的直接回归方法,基于深度信息的方法,基于点云信息的方法。万字长文,慢慢阅读~ 直接回归方法 涉及到模型包括:MonoCon、MonoDLE、MonoFlex、CUPNet、SMOKE等。 基于深度信息的方法 涉及到模型包括:MF3D、MonoGRNet、D4LCN、MonoPSR等。 基于点云信息的方法 涉及到模型包括:Pseudo lidar、DD3D、CaDDN、LPCG等。
3435 2
|
机器学习/深度学习 并行计算 PyTorch
深度学习环境搭建笔记(一):detectron2安装过程
这篇博客文章详细介绍了在Windows环境下,使用CUDA 10.2配置深度学习环境,并安装detectron2库的步骤,包括安装Python、pycocotools、Torch和Torchvision、fvcore,以及对Detectron2和PyTorch代码的修改。
3485 1
深度学习环境搭建笔记(一):detectron2安装过程
|
传感器 机器学习/深度学习 人工智能
史上最全综述 | 3D目标检测算法汇总!(单目/双目/LiDAR/多模态/时序/半弱自监督)(下)
近年来,自动驾驶因其减轻驾驶员负担、提高行车安全的潜力而受到越来越多的关注。在现代自动驾驶系统中,感知系统是不可或缺的组成部分,旨在准确估计周围环境的状态,并为预测和规划提供可靠的观察结果。3D目标检测可以智能地预测自动驾驶车辆附近关键3D目标的位置、大小和类别,是感知系统的重要组成部分。本文回顾了应用于自动驾驶领域的3D目标检测的进展。
史上最全综述 | 3D目标检测算法汇总!(单目/双目/LiDAR/多模态/时序/半弱自监督)(下)
|
机器学习/深度学习 传感器 编解码
【多传感器融合】BEVFusion: 激光雷达和摄像头融合框架 NeurIPS 2022
BEVFusion提出一个融合多摄像头和激光雷达数据的框架,可用于3D检测。在自动驾驶领域,通过独立处理并融合摄像头和激光雷达数据,可以显著提升3D对象检测的准确性和稳健性,尤其是在激光雷达可能出现故障的真实场景中。
5271 57
【多传感器融合】BEVFusion: 激光雷达和摄像头融合框架 NeurIPS 2022